sdksio.VerizonApisSDK 1.0.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package sdksio.VerizonApisSDK --version 1.0.0                
NuGet\Install-Package sdksio.VerizonApisSDK -Version 1.0.0                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="sdksio.VerizonApisSDK" Version="1.0.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add sdksio.VerizonApisSDK --version 1.0.0                
#r "nuget: sdksio.VerizonApisSDK, 1.0.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install sdksio.VerizonApisSDK as a Cake Addin
#addin nuget:?package=sdksio.VerizonApisSDK&version=1.0.0

// Install sdksio.VerizonApisSDK as a Cake Tool
#tool nuget:?package=sdksio.VerizonApisSDK&version=1.0.0                

Getting Started with Verizon

Introduction

The Verizon Edge Discovery Service API can direct your application clients to connect to the optimal service endpoints for your Multi-access Edge Computing (MEC) applications for every session. The Edge Discovery Service takes into account the current location of a device, its IP anchor location, current network traffic and other factors to determine which 5G Edge platform a device should connect to.

Verizon Terms of Service: https://www.verizon.com/business/5g-edge-portal/legal.html

Install the Package

If you are building with .NET CLI tools then you can also use the following command:

dotnet add package sdksio.VerizonApisSDK --version 1.0.0

You can also view the package at: https://www.nuget.org/packages/sdksio.VerizonApisSDK/1.0.0

Initialize the API Client

Note: Documentation for the client can be found here.

The following parameters are configurable for the API Client:

Parameter Type Description
VZM2mToken string M2M Session Token
Environment Environment The API environment. <br> Default: Environment.Production
Timeout TimeSpan Http client timeout.<br>Default: TimeSpan.FromSeconds(100)
OauthClientId string OAuth 2 Client ID
OauthClientSecret string OAuth 2 Client Secret
OauthToken Models.OauthToken Object for storing information about the OAuth token
OauthScopes List<Models.OauthScopeEnum>

The API client can be initialized as follows:

Verizon.Standard.VerizonClient client = new Verizon.Standard.VerizonClient.Builder()
    .OauthScopes(new List<OauthScopeEnum>() { OauthScopeEnum.Discoveryread, OauthScopeEnum.Serviceprofileread })
    .ClientCredentialsAuth("OAuthClientId", "OAuthClientSecret")
    .VZM2MToken("VZ-M2M-Token")
    .Environment(Verizon.Standard.Environment.Production)
    .Build();

API calls return an ApiResponse object that includes the following fields:

Field Description
StatusCode Status code of the HTTP response
Headers Headers of the HTTP response as a Hash
Data The deserialized body of the HTTP response as a String

Authorization

This API uses OAuth 2 Client Credentials Grant.

Client Credentials Grant

Your application must obtain user authorization before it can execute an endpoint call in case this SDK chooses to use OAuth 2.0 Client Credentials Grant. This authorization includes the following steps

The FetchToken() method will exchange the OAuth client credentials for an access token. The access token is an object containing information for authorizing client requests and refreshing the token itself.

You must have initialized the client with scopes for which you need permission to access.

var authManager = client.ClientCredentialsAuth;

try
{
    OAuthToken token = authManager.FetchToken();
    // re-instantiate the client with OAuth token
    client = client.ToBuilder().OAuthToken(token).Build();
}
catch (ApiException e)
{
    // TODO Handle exception
}

The client can now make authorized endpoint calls.

Scopes

Scopes enable your application to only request access to the resources it needs while enabling users to control the amount of access they grant to your application. Available scopes are defined in the OauthScopeEnum enumeration.

Scope Name Description
DISCOVERYREAD Grant read-only access to discovery data
SERVICEPROFILEREAD Grant read-only access to service profile data
SERVICEPROFILEWRITE Grant write access to service profile data
SERVICEREGISTRYREAD Grant read-only access to Service registry data
SERVICEREGISTRYWRITE Grant write access to Service registry data
TS.MEC.FULLACCESS Full access for /serviceprofiles and /serviceendpoints.
TS.MEC.LIMITACCESS Limited access. Will not allow use of /serviceprofiles and /serviceendpoints but will allow discovery.
TS.APPLICATION.RO
EDGEDISCOVERYREAD
EDGESERVICEPROFILEREAD
EDGESERVICEPROFILEWRITE
EDGESERVICEREGISTRYREAD
EDGESERVICEREGISTRYWRITE
READ read access
WRITE read/write access

Storing an access token for reuse

It is recommended that you store the access token for reuse.

// store token
SaveTokenToDatabase(client.ClientCredentialsAuth.OAuthToken);

Creating a client from a stored token

To authorize a client from a stored access token, just set the access token in Configuration along with the other configuration parameters before creating the client:

// load token later
OAuthToken token = LoadTokenFromDatabase();

// Provide token along with other configuration properties while instantiating the client
VerizonClient client = client.ToBuilder().OAuthToken(token).Build();

Complete example

using Verizon.Standard;
using Verizon.Standard.Models;
using Verizon.Standard.Exceptions;
using Verizon.Standard.Authentication;
using System.Collections.Generic;
namespace OAuthTestApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            Verizon.Standard.VerizonClient client = new Verizon.Standard.VerizonClient.Builder()
                .OauthScopes(new List<OauthScopeEnum>() { OauthScopeEnum.Discoveryread, OauthScopeEnum.Serviceprofileread })
                .ClientCredentialsAuth("OAuthClientId", "OAuthClientSecret")
                .VZM2MToken("VZ-M2M-Token")
                .Environment(Verizon.Standard.Environment.Production)
                .Build();
            try
            {
                OAuthToken token = LoadTokenFromDatabase();

                // Set the token if it is not set before
                if (token == null)
                {
                    var authManager = client.ClientCredentialsAuth;
                    token = authManager.FetchToken();
                }

                SaveTokenToDatabase(token);
                client = client.ToBuilder().OAuthToken(token).Build();
            }
            catch (OAuthProviderException e)
            {
                // TODO Handle exception
            }
        }

        //function for storing token to database
        static void SaveTokenToDatabase(OAuthToken token)
        {
            //Save token here
        }

        //function for loading token from database
        static OAuthToken LoadTokenFromDatabase()
        {
            OAuthToken token = null;
            //token = Get token here
            return token;
        }
    }
}

// the client is now authorized and you can use controllers to make endpoint calls

List of APIs

Classes Documentation

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.5.0 213 6/5/2024
1.4.0 94 6/4/2024
1.3.0 137 4/6/2024
1.0.0 787 7/20/2023