diff --git a/docs/authentication.md b/docs/authentication.md index 6aeb7e32f0e..3068135b3aa 100644 --- a/docs/authentication.md +++ b/docs/authentication.md @@ -116,6 +116,8 @@ Before using the provided `-AccessToken` to get Microsoft Graph resources, custo AT PoP is a security mechanism that binds an access token to a cryptographic key that only the intended recipient has. This prevents unauthorized use of the token by malicious actors. AT PoP enhances data protection, reduces token replay attacks, and enables fine-grained authorization policies. +Note: AT PoP requires WAM to function. + Microsoft Graph PowerShell module supports AT PoP in the following scenario: - To enable AT PoP on supported devices diff --git a/src/Authentication/Authentication.Core/Microsoft.Graph.Authentication.Core.csproj b/src/Authentication/Authentication.Core/Microsoft.Graph.Authentication.Core.csproj index 3b3b781195a..6dbd8a822c0 100644 --- a/src/Authentication/Authentication.Core/Microsoft.Graph.Authentication.Core.csproj +++ b/src/Authentication/Authentication.Core/Microsoft.Graph.Authentication.Core.csproj @@ -1,4 +1,4 @@ - + 9.0 @@ -11,12 +11,11 @@ true - - - + + + + - - diff --git a/src/Authentication/Authentication.Core/Utilities/AuthenticationHelpers.cs b/src/Authentication/Authentication.Core/Utilities/AuthenticationHelpers.cs index 132f55ec103..d6397ef2106 100644 --- a/src/Authentication/Authentication.Core/Utilities/AuthenticationHelpers.cs +++ b/src/Authentication/Authentication.Core/Utilities/AuthenticationHelpers.cs @@ -3,6 +3,7 @@ // ------------------------------------------------------------------------------ using Azure.Core; using Azure.Core.Diagnostics; +using Azure.Core.Pipeline; using Azure.Identity; using Azure.Identity.Broker; using Microsoft.Graph.Authentication; @@ -86,6 +87,12 @@ private static bool IsWamSupported() return GraphSession.Instance.GraphOption.EnableWAMForMSGraph && SharedUtilities.IsWindowsPlatform(); } + //Check to see if ATPoP is Supported + private static bool IsATPoPSupported() + { + return GraphSession.Instance.GraphOption.EnableATPoPForMSGraph; + } + private static async Task GetClientSecretCredentialAsync(IAuthContext authContext) { if (authContext is null) @@ -125,11 +132,29 @@ private static async Task GetInteractiveBrowserCre var interactiveBrowserCredential = new InteractiveBrowserCredential(interactiveOptions); if (IsWamSupported()) { - authRecord = await Task.Run(() => + // Adding a scenario to account for Access Token Proof of Possession + if (IsATPoPSupported()) { - // Run the thread in MTA. - return interactiveBrowserCredential.Authenticate(new TokenRequestContext(authContext.Scopes), cancellationToken); - }); + // Logic to implement ATPoP Authentication + var client = new PopClient(interactiveBrowserCredential, authContext, new PopClientOptions() + { + Diagnostics = + { + IsLoggingContentEnabled = true, + LoggedHeaderNames = { "Authorization" } + } + }); + //var response = client.Get(new Uri("https://20.190.132.47/beta/me"), CancellationToken.None); + authRecord = client.GetAuthRecord(); + } + else + { + authRecord = await Task.Run(() => + { + // Run the thread in MTA. + return interactiveBrowserCredential.Authenticate(new TokenRequestContext(authContext.Scopes), cancellationToken); + }); + } } else { diff --git a/src/Authentication/Authentication.Core/Utilities/PopClient.cs b/src/Authentication/Authentication.Core/Utilities/PopClient.cs new file mode 100644 index 00000000000..7343a6960d7 --- /dev/null +++ b/src/Authentication/Authentication.Core/Utilities/PopClient.cs @@ -0,0 +1,88 @@ +using System; +using System.IdentityModel; +using System.Threading; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.Identity; +using Azure.Identity.Broker; +using Microsoft.Identity.Client.NativeInterop; + +namespace Microsoft.Graph.PowerShell.Authentication.Core.Utilities +{ + public class PopClient + { + private readonly HttpPipeline _pipeline; + private AuthenticationRecord _authenticationRecord; + private readonly InteractiveBrowserCredential _interactiveBrowserCredential; + + public PopClient(TokenCredential credential, IAuthContext authContext, ClientOptions options = null) + { + //_interactiveBrowserCredential = (InteractiveBrowserCredential)credential; + _interactiveBrowserCredential = new InteractiveBrowserCredential(new InteractiveBrowserCredentialBrokerOptions(WindowHandleUtlities.GetConsoleOrTerminalWindow())); + + if (!(credential is ISupportsProofOfPossession)) + { + throw new ArgumentException("The provided TokenCredential does not support proof of possession.", nameof(credential)); + } + + var pipelineOptions = new HttpPipelineOptions(options); + pipelineOptions.PerRetryPolicies.Add(new InteractivePopTokenAuthenticationPolicy(_interactiveBrowserCredential, "https://graph.microsoft.com/.default", () => _authenticationRecord)); + + _pipeline = HttpPipelineBuilder.Build(pipelineOptions); + } + + public async ValueTask GetAsync(Uri uri, CancellationToken cancellationToken = default) + { + using var request = _pipeline.CreateRequest(); + request.Method = RequestMethod.Get; + request.Uri.Reset(uri); + return await _pipeline.SendRequestAsync(request, cancellationToken).ConfigureAwait(false); + } + + public Response Get(Uri uri, CancellationToken cancellationToken = default) + { + using var request = _pipeline.CreateRequest(); + request.Method = RequestMethod.Get; + request.Uri.Reset(uri); + return _pipeline.SendRequest(request, cancellationToken); + } + + public async ValueTask GetAuthRecordAsync() + { + _authenticationRecord ??= await _interactiveBrowserCredential.AuthenticateAsync(); + return _authenticationRecord; + } + + public AuthenticationRecord GetAuthRecord() + { + _authenticationRecord ??= _interactiveBrowserCredential.Authenticate(); + return _authenticationRecord; + } + } + + public class InteractivePopTokenAuthenticationPolicy : PopTokenAuthenticationPolicy + { + private readonly InteractiveBrowserCredential _interactiveBrowserCredential; + private readonly Func _getAuthRecord; + + public InteractivePopTokenAuthenticationPolicy(InteractiveBrowserCredential credential, string scope, Func getAuthRecord) + : base(credential, scope) + { + _interactiveBrowserCredential = credential; + _getAuthRecord = getAuthRecord; + } + + protected override ValueTask AuthorizeRequestAsync(HttpMessage message) + { + var authRecord = _getAuthRecord(); + if (authRecord != null) + { + _interactiveBrowserCredential.AuthenticateAsync(new TokenRequestContext(new[] { "https://graph.microsoft.com/.default" })).ConfigureAwait(false); + } + + return base.AuthorizeRequestAsync(message); + } + } +} diff --git a/src/Authentication/Authentication.Core/Utilities/PopClientOptions.cs b/src/Authentication/Authentication.Core/Utilities/PopClientOptions.cs new file mode 100644 index 00000000000..f0954c0b32f --- /dev/null +++ b/src/Authentication/Authentication.Core/Utilities/PopClientOptions.cs @@ -0,0 +1,2 @@ +using Azure.Core; +public class PopClientOptions : ClientOptions { } \ No newline at end of file diff --git a/src/Authentication/Authentication.Core/tempPackages/Azure.Core.Experimental.dll b/src/Authentication/Authentication.Core/tempPackages/Azure.Core.Experimental.dll new file mode 100644 index 00000000000..b569c4d5c72 Binary files /dev/null and b/src/Authentication/Authentication.Core/tempPackages/Azure.Core.Experimental.dll differ diff --git a/src/Authentication/Authentication.Core/tempPackages/Azure.Core.Experimental.xml b/src/Authentication/Authentication.Core/tempPackages/Azure.Core.Experimental.xml new file mode 100644 index 00000000000..ca81a693eff --- /dev/null +++ b/src/Authentication/Authentication.Core/tempPackages/Azure.Core.Experimental.xml @@ -0,0 +1,2314 @@ + + + + Azure.Core.Experimental + + + + + Stores configuration of a CloudMachine. + + + + + Unique identifier of a CloudMachine. It's the name of the resource group of all the CloudMachine resources. + + + + + Friendly name of CloudMachine. It's stored as a Tag of all Azure resources associated with the machine. + + + + + Azure subscription ID. + + + + + Azure region, e.g. westus2 + + + + + Creates a new CloudMachine + + + + + DisplayName is initialized to id. It can be changed by setting the DisplayName property. + + + + Loads CloudMachine settings from configurationFile + + Default value is .azure\cloudmachine.json + + + + + Loads CloudMachine settings from stream. + + + + + + + Save CloudMachine configuration to a stream. + + + + + + Save CloudMachine configuration to a file. + + + + + + An interface used to decorate a that supports Proof of Possession tokens for authenticating to Microsoft Entra ID. + + + + + Gets an for the specified set of scopes. + + The with authentication information. + The to use. + A valid . + Caching and management of the lifespan for the is considered the responsibility of the caller. Each call should request a fresh token. + + + + Gets an for the specified set of scopes. + + The with authentication information. + The to use. + A valid . + Caching and management of the lifespan for the is considered the responsibility of the caller. Each call should request a fresh token. + + + + A policy that supports Proof of Possession (PoP) tokens. + + + + + Creates a new instance of . + + The to be used for authorization. + The scope to be included in acquired tokens. + + + + Applies the policy to the . Implementers are expected to mutate before calling and observe the changes after. + The this policy would be applied to.The set of to execute after current one.The representing the asynchronous operation. + + + + Applies the policy to the . Implementers are expected to mutate before calling and observe the changes after. + The this policy would be applied to.The set of to execute after current one. + + + + Executes before or + is called. + Implementers of this method are expected to call or + if authorization is required for requests not related to handling a challenge response. + + The this policy would be applied to. + The representing the asynchronous operation. + + + + Executes before or + is called. + Implementers of this method are expected to call or + if authorization is required for requests not related to handling a challenge response. + The this policy would be applied to. + + + + Sets the Authorization header on the by calling GetToken, or from cache, if possible. + + The with the to be authorized. + The used to authorize the . + + + + Sets the Authorization header on the by calling GetToken, or from cache, if possible. + + The with the to be authorized. + The used to authorize the . + + + + Executed in the event a 401 response with a WWW-Authenticate authentication challenge header is received after the initial request. + + Service client libraries may override this to handle service specific authentication challenges. + The to be authenticated. + A boolean indicating whether the request was successfully authenticated and should be sent to the transport. + + + + Executed in the event a 401 response with a WWW-Authenticate authentication challenge header is received after the initial request. + + Service client libraries may override this to handle service specific authentication challenges. + The to be authenticated. + A boolean indicating whether the request was successfully authenticated and should be sent to the transport. + + + + Initializes a new instance of the class. + + The customer provided client options object. + Flag controlling if + created by this for client method calls should be suppressed when called + by other Azure SDK client methods. It's recommended to set it to true for new clients; use default (null) + for backward compatibility reasons, or set it to false to explicitly disable suppression for specific cases. + The default value could change in the future, the flag should be only set to false if suppression for the client + should never be enabled. + + + + Initializes a new instance of the class. + + Namespace of the client class, such as Azure.Storage or Azure.AppConfiguration. + Azure Resource Provider namespace of the Azure service SDK is primarily used for. + The customer provided client diagnostics options. + Flag controlling if + created by this for client method calls should be suppressed when called + by other Azure SDK client methods. It's recommended to set it to true for new clients, use default (null) for old clients + for backward compatibility reasons, or set it to false to explicitly disable suppression for specific cases. + The default value could change in the future, the flag should be only set to false if suppression for the client + should never be enabled. + + + + Adds a link to the scope. This must be called before has been called for the DiagnosticScope. + + The traceparent for the link. + The tracestate for the link. + Optional attributes to associate with the link. + + + + Sets the trace context for the current scope. + + The trace parent to set for the current scope. + The trace state to set for the current scope. + + + + Marks the scope as failed. + + The exception to associate with the failed scope. + + + + Marks the scope as failed with low-cardinality error.type attribute. + + Error code to associate with the failed scope. + + + + Until Activity Source is no longer considered experimental. + + + + + Creates diagnostic scope factory. + + The namespace which is used as a prefix for all ActivitySources created by the factory and the name of DiagnosticSource (when used). + Azure resource provider namespace. + Flag indicating if distributed tracing is enabled. + Flag indicating if nested Azure SDK activities describing public API calls should be suppressed. + Whether instrumentation is considered stable. When false, experimental feature flag controls if tracing is enabled. + + + + Both and are defined as public structs so that foreach can use duck typing + to call and avoid heap memory allocation. + Please don't delete this method and don't make these types private. + + + + + + Contains the details of an authentication token request. + + + + + Creates a new TokenRequest with the specified scopes. + + The scopes required for the token. + The of the request requiring a token for authentication, if applicable. + Additional claims to be included in the token. + The tenant ID to be included in the token request. + Indicates whether to enable Continuous Access Evaluation (CAE) for the requested token. + The nonce value required for PoP token requests. + The request to be authorized with a PoP token. + + + + Creates a new TokenRequestContext from this instance. + + + + + + Creates a new PopTokenRequestContext from a TokenRequestContext. + + + + + + + + Creates a new TokenRequestContext from this instance. + + + + + + The scopes required for the token. + + + + + The of the request requiring a token for authentication, if applicable. + + + + + Additional claims to be included in the token. See https://openid.net/specs/openid-connect-core-1_0-final.html#ClaimsParameter for more information on format and content. + + + + + The tenant ID to be included in the token request. + + + + + Indicates whether to enable Continuous Access Evaluation (CAE) for the requested token. + + + If a resource API implements CAE and your application declares it can handle CAE, your app receives CAE tokens for that resource. + For this reason, if you declare your app CAE-ready, your app must handle the CAE claim challenge for all resource APIs that accept Microsoft Identity access tokens. + If you don't handle CAE responses in these API calls, your app could end up in a loop retrying an API call with a token that is still in the returned lifespan of the token but has been revoked due to CAE. + + + + + The nonce value required for PoP token requests. This is typically retrieved from teh WWW-Authenticate header of a 401 challenge response. + This is used in combination with and to generate the PoP token. + + + + + The HTTP method of the request. This is used in combination with and to generate the PoP token. + + + + + The URI of the request. This is used in combination with and to generate the PoP token. + + + + + Attribute used to describe a deployment template. + + + + + Deployment teplate stored in resources. + + + + + + Name of assembly resource file containing a deployment template. + + + + + A simple LRU cache implementation using a doubly linked list and dictionary. + + The type of key. + The type of value. + + + + Gets the number of key/value pairs contained in the . + + + + + Gets the total length of all values currently stored in the . + + + + + Initializes a new instance of the class. + + + + + + Gets the value associated with the specified key. + + The key of the value to get. + When this method returns, contains the value associated with + the specified key, if the key is found; otherwise, the default value for the type of + the type of the parameter. + true if the contains an element + with the specified key; otherwise, false. + + + + Adds a key/value pair to the if the key doesn't already exist, or updates a key/value + pair in the if the key does already exist. + + + + + + + + Returns an enumerator that iterates through the . + + + + + + This abstract class allows any available library to be used to generate schemas from .NET types and validate + objects against schemas. + + + Defining both and is required. If you + do not wish to validate, then evaluate all schemas as valid. + + + + + Validates that is valid according to . + + The data to validate. + The type of data to validate. + The schema definition to validate against. + When this method returns, contains the validation errors if was invalid according to + the . + + + + + Validates that is valid according to . If the object is not valid, + this method throws an containing all of the validation errors. + + The data to validate. + The type of data to validate. + The schema definition to validate against. + is not valid according to the . + + + + Generates a schema from and returns it as a string. + + The type of the data to use when generating the schema. + The generated schema in string format. + + + + A helper class for parsing Authorization challenge headers. + + + + + Parses the specified parameter from a challenge hearder found in the specified . + + The to parse. + The challenge scheme containing the . For example: "Bearer" + The parameter key name containing the value to return. + The value of the parameter name specified in if it is found in the specified . + + + + Iterates through the challenge schemes present in a challenge header. + + + The header value which will be sliced to remove the first parsed . + + The parsed challenge scheme. + + true if a challenge scheme was successfully parsed. + The value of should be passed to to parse the challenge parameters if true. + + + + + Iterates through a challenge header value after being parsed by . + + The header value after being parsed by . + The parsed challenge parameter key. + The parsed challenge parameter value. + The challenge parameter key / value pair separator. The default is '='. + + true if the next available challenge parameter was successfully parsed. + false if there are no more parameters for the current challenge scheme or an additional challenge scheme was encountered in the . + The value of should be passed again to to attempt to parse any additional challenge schemes if false. + + + + + Copied from https://github.com/dotnet/corefx/blob/master/src/Common/src/CoreLib/System/HashCode.cs. + + + + + Helper for interacting with AppConfig settings and their related Environment variable settings. + + + + + Determines if either an AppContext switch or its corresponding Environment Variable is set + + Name of the AppContext switch. + Name of the Environment variable. + If the AppContext switch has been set, returns the value of the switch. + If the AppContext switch has not been set, returns the value of the environment variable. + False if neither is set. + + + + + Argument validation. + + + This class should be shared via source using Azure.Core.props and contain only common argument validation. + It is declared partial so that you can use the same familiar class name but extend it with project-specific validation. + To extend the functionality of this class, just declare your own partial class with project-specific methods. + + + Be sure to document exceptions thrown by these methods on your public methods. + + + + + + Throws if is null. + + The value to validate. + The name of the parameter. + is null. + + + + Throws if has not been initialized. + + The value to validate. + The name of the parameter. + has not been initialized. + + + + Throws if is null or an empty collection. + + The value to validate. + The name of the parameter. + is an empty collection. + is null. + + + + Throws if is null or an empty string. + + The value to validate. + The name of the parameter. + is an empty string. + is null. + + + + Throws if is null, an empty string, or consists only of white-space characters. + + The value to validate. + The name of the parameter. + is an empty string or consists only of white-space characters. + is null. + + + + Throws if is the default value for type . + + The type of structure to validate which implements . + The value to validate. + The name of the parameter. + is the default value for type . + + + + Throws if is less than the or greater than the . + + The type of to validate which implements . + The value to validate. + The minimum value to compare. + The maximum value to compare. + The name of the parameter. + + + + Throws if is not defined for . + + The type to validate against. + The value to validate. + The name of the parameter. + is not defined for . + + + + Throws if has not been initialized; otherwise, returns . + + The value to validate. + The name of the parameter. + has not been initialized. + + + + Throws if is null or an empty string; otherwise, returns . + + The value to validate. + The name of the parameter. + is an empty string. + is null. + + + + Throws if is not null. + + The value to validate. + The name of the parameter. + The error message. + is not null. + + + + Primitive that combines async lock and value cache + + + + + + Method that either returns cached value or acquire a lock. + If one caller has acquired a lock, other callers will be waiting for the lock to be released. + If value is set, lock is released and all waiters get that value. + If value isn't set, the next waiter in the queue will get the lock. + + + + + + + + Returns true if lock contains the cached value. Otherwise false. + + + + + Returns cached value if it was set when lock has been created. Throws exception otherwise. + + Value isn't set. + + + + Set value to the cache and to all the waiters. + + + Value is set already. + + + + A delay strategy that uses a fixed delay with no jitter applied. This is used by data plane LROs. + + + + + A helper class used to build long-running operation instances. In order to use this helper: + + Make sure your LRO implements the interface. + Add a private field to your LRO, and instantiate it during construction. + Delegate method calls to the implementations. + + Supported members: + + + + + + , used for + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class in a final successful state. + + The final value of . + + + + Initializes a new instance of the class in a final failed state. + + The final value of . + The exception that will be thrown by UpdateStatusAsync. + + + + Initializes a new instance of the class. + + The long-running operation making use of this class. Passing "this" is expected. + Used for diagnostic scope and exception creation. This is expected to be the instance created during the construction of your main client. + + The initial value of . Usually, long-running operation objects can be instantiated in two ways: + + + When calling a client's "Start<OperationName>" method, a service call is made to start the operation, and an instance is returned. + In this case, the response received from this service call can be passed here. + + + When a user instantiates an directly using a public constructor, there's no previous service call. In this case, passing null is expected. + + + + + The type name of the long-running operation making use of this class. Used when creating diagnostic scopes. If left null, the type name will be inferred based on the + parameter . + + The attributes to use during diagnostic scope creation. + The delay strategy to use. Default is . + + + + An interface used by for making service calls and updating state. It's expected that + your long-running operation classes implement this interface. + + + + + Calls the service and updates the state of the long-running operation. Properties directly handled by the + class, such as + don't need to be updated. Operation-specific properties, such as "CreateOn" or "LastModified", + must be manually updated by the operation implementing this method. + Usage example: + + async ValueTask<OperationState> IOperation.UpdateStateAsync(bool async, CancellationToken cancellationToken)
+ {
+ Response<R> response = async ? <async service call> : <sync service call>;
+ if (<operation succeeded>) return OperationState.Success(response.GetRawResponse(), <parse response>);
+ if (<operation failed>) return OperationState.Failure(response.GetRawResponse());
+ return OperationState.Pending(response.GetRawResponse());
+ } +
+
+
+ true if the call should be executed asynchronously. Otherwise, false. + A controlling the request lifetime. + + A structure indicating the current operation state. The structure must be instantiated by one of + its static methods: + + Use when the operation has completed successfully. + Use when the operation has completed with failures. + Use when the operation has not completed yet. + + +
+ + + A helper structure passed to to indicate the current operation state. This structure must be + instantiated by one of its static methods, depending on the operation state: + + Use when the operation has completed successfully. + Use when the operation has completed with failures. + Use when the operation has not completed yet. + + + + + + Instantiates an indicating the operation has completed successfully. + + The HTTP response obtained during the status update. + A new instance. + Thrown if is null. + + + + Instantiates an indicating the operation has completed with failures. + + The HTTP response obtained during the status update. + + The exception to throw from UpdateStatus because of the operation failure. If left null, + a default exception is created based on the parameter. + + A new instance. + Thrown if is null. + + + + Instantiates an indicating the operation has not completed yet. + + The HTTP response obtained during the status update. + A new instance. + Thrown if is null. + + + + The last HTTP response received from the server. Its update already handled in calls to "UpdateStatus" and + "WaitForCompletionAsync", but custom methods not supported by this class, such as "CancelOperation", + must update it as well. + Usage example: + + public Response GetRawResponse() => _operationInternal.RawResponse; + + + + + + + Returns true if the long-running operation has completed. + Usage example: + + public bool HasCompleted => _operationInternal.HasCompleted; + + + + + + + Calls the server to get the latest status of the long-running operation, handling diagnostic scope creation for distributed + tracing. The default scope name can be changed with the "operationTypeName" parameter passed to the constructor. + Usage example: + + public async ValueTask<Response> UpdateStatusAsync(CancellationToken cancellationToken) => + await _operationInternal.UpdateStatusAsync(cancellationToken).ConfigureAwait(false); + + + + A controlling the request lifetime. + The HTTP response received from the server. + + After a successful run, this method will update and might update . + + Thrown if there's been any issues during the connection, or if the operation has completed with failures. + + + + Calls the server to get the latest status of the long-running operation, handling diagnostic scope creation for distributed + tracing. The default scope name can be changed with the "operationTypeName" parameter passed to the constructor. + Usage example: + + public Response UpdateStatus(CancellationToken cancellationToken) => _operationInternal.UpdateStatus(cancellationToken); + + + + A controlling the request lifetime. + The HTTP response received from the server. + + After a successful run, this method will update and might update . + + Thrown if there's been any issues during the connection, or if the operation has completed with failures. + + + + Periodically calls until the long-running operation completes. + After each service call, a retry-after header may be returned to communicate that there is no reason to poll + for status change until the specified time has passed. The maximum of the retry after value and the fallback strategy + is then used as the wait interval. + Headers supported are: "Retry-After", "retry-after-ms", and "x-ms-retry-after-ms", + Usage example: + + public async ValueTask<Response<T>> WaitForCompletionAsync(CancellationToken cancellationToken) => + await _operationInternal.WaitForCompletionAsync(cancellationToken).ConfigureAwait(false); + + + + A controlling the request lifetime. + The last HTTP response received from the server, including the final result of the long-running operation. + Thrown if there's been any issues during the connection, or if the operation has completed with failures. + + + + Periodically calls until the long-running operation completes. The interval + between calls is defined by the parameter , but it can change based on information returned + from the server. After each service call, a retry-after header may be returned to communicate that there is no reason to poll + for status change until the specified time has passed. In this case, the maximum value between the + parameter and the retry-after header is chosen as the wait interval. Headers supported are: "Retry-After", "retry-after-ms", + and "x-ms-retry-after-ms". + Usage example: + + public async ValueTask<Response<T>> WaitForCompletionAsync(TimeSpan pollingInterval, CancellationToken cancellationToken) => + await _operationInternal.WaitForCompletionAsync(pollingInterval, cancellationToken).ConfigureAwait(false); + + + + The interval between status requests to the server. + A controlling the request lifetime. + The last HTTP response received from the server, including the final result of the long-running operation. + Thrown if there's been any issues during the connection, or if the operation has completed with failures. + + + + Periodically calls until the long-running operation completes. + After each service call, a retry-after header may be returned to communicate that there is no reason to poll + for status change until the specified time has passed. The maximum of the retry after value and the fallback strategy + is then used as the wait interval. + Headers supported are: "Retry-After", "retry-after-ms", and "x-ms-retry-after-ms", + and "x-ms-retry-after-ms". + Usage example: + + public async ValueTask<Response<T>> WaitForCompletionAsync(TimeSpan pollingInterval, CancellationToken cancellationToken) => + await _operationInternal.WaitForCompletionAsync(pollingInterval, cancellationToken).ConfigureAwait(false); + + + + A controlling the request lifetime. + The last HTTP response received from the server, including the final result of the long-running operation. + Thrown if there's been any issues during the connection, or if the operation has completed with failures. + + + + Periodically calls until the long-running operation completes. The interval + between calls is defined by the parameter , but it can change based on information returned + from the server. After each service call, a retry-after header may be returned to communicate that there is no reason to poll + for status change until the specified time has passed. In this case, the maximum value between the + parameter and the retry-after header is chosen as the wait interval. Headers supported are: "Retry-After", "retry-after-ms", + and "x-ms-retry-after-ms". + Usage example: + + public async ValueTask<Response<T>> WaitForCompletionAsync(TimeSpan pollingInterval, CancellationToken cancellationToken) => + await _operationInternal.WaitForCompletionAsync(pollingInterval, cancellationToken).ConfigureAwait(false); + + + + The interval between status requests to the server. + A controlling the request lifetime. + The last HTTP response received from the server, including the final result of the long-running operation. + Thrown if there's been any issues during the connection, or if the operation has completed with failures. + + + + A helper class used to build long-running operation instances. In order to use this helper: + + Make sure your LRO implements the interface. + Add a private field to your LRO, and instantiate it during construction. + Delegate method calls to the implementations. + + Supported members: + + + + + + + + + + + + , used for + + + + + + + + + + + + + + + + The final result of the long-running operation. Must match the type used in . + + + + Initializes a new instance of the class in a final successful state. + + The final value of . + The final result of the long-running operation. + + + + Initializes a new instance of the class in a final failed state. + + The final value of . + The exception that will be thrown by UpdateStatusAsync. + + + + Initializes a new instance of the class. + + The long-running operation making use of this class. Passing "this" is expected. + Used for diagnostic scope and exception creation. This is expected to be the instance created during the construction of your main client. + + The initial value of . Usually, long-running operation objects can be instantiated in two ways: + + + When calling a client's "Start<OperationName>" method, a service call is made to start the operation, and an instance is returned. + In this case, the response received from this service call can be passed here. + + + When a user instantiates an directly using a public constructor, there's no previous service call. In this case, passing null is expected. + + + + + The type name of the long-running operation making use of this class. Used when creating diagnostic scopes. If left null, the type name will be inferred based on the + parameter . + + The attributes to use during diagnostic scope creation. + The delay strategy when Retry-After header is not present. When it is present, the longer of the two delays will be used. + Default is . + + + + Returns true if the long-running operation completed successfully and has produced a final result. + Usage example: + + public bool HasValue => _operationInternal.HasValue; + + + + + + + The final result of the long-running operation. + Usage example: + + public T Value => _operationInternal.Value; + + + + Thrown when the operation has not completed yet. + Thrown when the operation has completed with failures. + + + + Periodically calls until the long-running operation completes. + After each service call, a retry-after header may be returned to communicate that there is no reason to poll + for status change until the specified time has passed. + Headers supported are: "Retry-After", "retry-after-ms", and "x-ms-retry-after-ms", + Usage example: + + public async ValueTask<Response<T>> WaitForCompletionAsync(CancellationToken cancellationToken) => + await _operationInternal.WaitForCompletionAsync(cancellationToken).ConfigureAwait(false); + + + + A controlling the request lifetime. + The last HTTP response received from the server, including the final result of the long-running operation. + Thrown if there's been any issues during the connection, or if the operation has completed with failures. + + + + Periodically calls until the long-running operation completes. The interval + between calls is defined by the parameter , but it can change based on information returned + from the server. After each service call, a retry-after header may be returned to communicate that there is no reason to poll + for status change until the specified time has passed. In this case, the maximum value between the + parameter and the retry-after header is chosen as the wait interval. Headers supported are: "Retry-After", "retry-after-ms", + and "x-ms-retry-after-ms". + Usage example: + + public async ValueTask<Response<T>> WaitForCompletionAsync(TimeSpan pollingInterval, CancellationToken cancellationToken) => + await _operationInternal.WaitForCompletionAsync(pollingInterval, cancellationToken).ConfigureAwait(false); + + + + The interval between status requests to the server. + A controlling the request lifetime. + The last HTTP response received from the server, including the final result of the long-running operation. + Thrown if there's been any issues during the connection, or if the operation has completed with failures. + + + + Periodically calls until the long-running operation completes. + After each service call, a retry-after header may be returned to communicate that there is no reason to poll + for status change until the specified time has passed. + Headers supported are: "Retry-After", "retry-after-ms", and "x-ms-retry-after-ms", + Usage example: + + public async ValueTask<Response<T>> WaitForCompletionAsync(CancellationToken cancellationToken) => + await _operationInternal.WaitForCompletionAsync(cancellationToken).ConfigureAwait(false); + + + + A controlling the request lifetime. + The last HTTP response received from the server, including the final result of the long-running operation. + Thrown if there's been any issues during the connection, or if the operation has completed with failures. + + + + Periodically calls until the long-running operation completes. The interval + between calls is defined by the , which takes into account any retry-after header that is returned + from the server. + Usage example: + + public async ValueTask<Response<T>> WaitForCompletionAsync(CancellationToken cancellationToken) => + await _operationInternal.WaitForCompletionAsync(cancellationToken).ConfigureAwait(false); + + + + The interval between status requests to the server. + A controlling the request lifetime. + The last HTTP response received from the server, including the final result of the long-running operation. + Thrown if there's been any issues during the connection, or if the operation has completed with failures. + + + + An interface used by for making service calls and updating state. It's expected that + your long-running operation classes implement this interface. + + The final result of the long-running operation. Must match the type used in . + + + + Calls the service and updates the state of the long-running operation. Properties directly handled by the + class, such as or + , don't need to be updated. Operation-specific properties, such + as "CreateOn" or "LastModified", must be manually updated by the operation implementing this + method. + Usage example: + + async ValueTask<OperationState<T>> IOperation<T>.UpdateStateAsync(bool async, CancellationToken cancellationToken)
+ {
+ Response<R> response = async ? <async service call> : <sync service call>;
+ if (<operation succeeded>) return OperationState<T>.Success(response.GetRawResponse(), <parse response>);
+ if (<operation failed>) return OperationState<T>.Failure(response.GetRawResponse());
+ return OperationState<T>.Pending(response.GetRawResponse());
+ } +
+
+
+ true if the call should be executed asynchronously. Otherwise, false. + A controlling the request lifetime. + + A structure indicating the current operation state. The structure must be instantiated by one of + its static methods: + + Use when the operation has completed successfully. + Use when the operation has completed with failures. + Use when the operation has not completed yet. + + +
+ + + A helper structure passed to to indicate the current operation state. This structure must be + instantiated by one of its static methods, depending on the operation state: + + Use when the operation has completed successfully. + Use when the operation has completed with failures. + Use when the operation has not completed yet. + + + The final result of the long-running operation. Must match the type used in . + + + + Instantiates an indicating the operation has completed successfully. + + The HTTP response obtained during the status update. + The final result of the long-running operation. + A new instance. + Thrown if or is null. + + + + Instantiates an indicating the operation has completed with failures. + + The HTTP response obtained during the status update. + + The exception to throw from UpdateStatus because of the operation failure. The same exception will be thrown when + is called. If left null, a default exception is created based on the + parameter. + + A new instance. + Thrown if is null. + + + + Instantiates an indicating the operation has not completed yet. + + The HTTP response obtained during the status update. + A new instance. + Thrown if is null. + + + + Implementation of LRO polling logic. + + + + + Gets an ID representing the operation that can be used to poll for + the status of the long-running operation. + + + + + Final result of the long-running operation. + + This property can be accessed only after the operation completes successfully (HasValue is true). + + + + + Returns true if the long-running operation completed. + + + + + Returns true if the long-running operation completed successfully and has produced final result (accessible by Value property). + + + + + The last HTTP response received from the server. + + The last response returned from the server during the lifecycle of this instance. + An instance of sends requests to a server in UpdateStatusAsync, UpdateStatus, and other methods. + Responses from these requests can be accessed using GetRawResponse. + + + + + Calls the server to get updated status of the long-running operation. + A used for the service call.The HTTP response received from the server. + This operation will update the value returned from GetRawResponse and might update HasCompleted. + + + + + Calls the server to get updated status of the long-running operation. + A used for the service call.The HTTP response received from the server. + This operation will update the value returned from GetRawResponse and might update HasCompleted. + + + + + Periodically calls the server till the long-running operation completes. + A used for the periodical service calls.The last HTTP response received from the server. + This method will periodically call UpdateStatusAsync till HasCompleted is true, then return the final result of the operation. + + + + + Periodically calls the server till the long-running operation completes. + + The interval between status requests to the server. + The interval can change based on information returned from the server. + For example, the server might communicate to the client that there is not reason to poll for status change sooner than some time. + A used for the periodical service calls.The last HTTP response received from the server. + This method will periodically call UpdateStatusAsync till HasCompleted is true, then return the final result of the operation. + + + + + A delay strategy that uses a fixed sequence of delays with no jitter applied. This is used by management LROs. + + + + + Used to store primitive values without boxing, and other instances. + + + + + Creates instance. + + + + + + Type of the instance stored in this value. + + + + + Stores byte in this value. + + + + + + Stores nullable byte in this value. + + + + + + Casts byte to value. + + + + + + Casts value to byte, if possible. + + + + + + Casts nullable byte to value. + + + + + + Casts value to nullable byte, if possible. + + + + + + Stores sbyte in this value. + + + + + + Stores nullable sbyte in this value. + + + + + + Casts sbyte to value. + + + + + + Casts value to sbyte, if possible. + + + + + + Casts nullable sbyte to value. + + + + + + Casts value to nullable sbyte, if possible. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + TBD. + + + + + + + + TBD. + + + + + + + + TBD. + + + + + + Returns the fully qualified type name of this instance.The fully qualified type name. + + + + Null Variant. + + + + + Indicates whether the Variant is null or has a value. + + true if the Variant is null; false otherwise. + + + Specifies that null is allowed as an input even if the corresponding type disallows it. + + + Specifies that null is disallowed as an input even if the corresponding type allows it. + + + Specifies that an output may be null even if the corresponding type disallows it. + + + Specifies that an output will not be null even if the corresponding type allows it. + + + Specifies that when a method returns , the parameter may be null even if the corresponding type disallows it. + + + Initializes the attribute with the specified return value condition. + + The return value condition. If the method returns this value, the associated parameter may be null. + + + + Gets the return value condition. + + + Specifies that when a method returns , the parameter will not be null even if the corresponding type allows it. + + + Initializes the attribute with the specified return value condition. + + The return value condition. If the method returns this value, the associated parameter will not be null. + + + + Gets the return value condition. + + + Specifies that the output will be non-null if the named parameter is non-null. + + + Initializes the attribute with the associated parameter name. + + The associated parameter name. The output will be non-null if the argument to the parameter specified is non-null. + + + + Gets the associated parameter name. + + + Applied to a method that will never return under any circumstance. + + + Specifies that the method will not return if the associated Boolean parameter is passed the specified value. + + + Initializes the attribute with the specified parameter value. + + The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to + the associated parameter matches this value. + + + + Gets the condition parameter value. + + + + Indicates that the specified method requires the ability to generate new code at runtime, + for example through . + + + This allows tools to understand which methods are unsafe to call when compiling ahead of time. + + + + + Initializes a new instance of the class + with the specified message. + + + A message that contains information about the usage of dynamic code. + + + + + Gets a message that contains information about the usage of dynamic code. + + + + + Gets or sets an optional URL that contains more information about the method, + why it requires dynamic code, and what options a consumer has to deal with it. + + + + + Indicates that the specified method requires dynamic access to code that is not referenced + statically, for example through . + + + This allows tools to understand which methods are unsafe to call when removing unreferenced + code from an application. + + + + + Initializes a new instance of the class + with the specified message. + + + A message that contains information about the usage of unreferenced code. + + + + + Gets a message that contains information about the usage of unreferenced code. + + + + + Gets or sets an optional URL that contains more information about the method, + why it requires unreferenced code, and what options a consumer has to deal with it. + + + + + Suppresses reporting of a specific rule violation, allowing multiple suppressions on a + single code artifact. + + + is different than + in that it doesn't have a + . So it is always preserved in the compiled assembly. + + + + + Initializes a new instance of the + class, specifying the category of the tool and the identifier for an analysis rule. + + The category for the attribute. + The identifier of the analysis rule the attribute applies to. + + + + Gets the category identifying the classification of the attribute. + + + The property describes the tool or tool analysis category + for which a message suppression attribute applies. + + + + + Gets the identifier of the analysis tool rule to be suppressed. + + + Concatenated together, the and + properties form a unique check identifier. + + + + + Gets or sets the scope of the code that is relevant for the attribute. + + + The Scope property is an optional argument that specifies the metadata scope for which + the attribute is relevant. + + + + + Gets or sets a fully qualified path that represents the target of the attribute. + + + The property is an optional argument identifying the analysis target + of the attribute. An example value is "System.IO.Stream.ctor():System.Void". + Because it is fully qualified, it can be long, particularly for targets such as parameters. + The analysis tool user interface should be capable of automatically formatting the parameter. + + + + + Gets or sets an optional argument expanding on exclusion criteria. + + + The property is an optional argument that specifies additional + exclusion where the literal metadata target is not sufficiently precise. For example, + the cannot be applied within a method, + and it may be desirable to suppress a violation against a statement in the method that will + give a rule violation, but not against all statements in the method. + + + + + Gets or sets the justification for suppressing the code analysis message. + + + + + States a dependency that one member has on another. + + + This can be used to inform tooling of a dependency that is otherwise not evident purely from + metadata and IL, for example a member relied on via reflection. + + + + + Initializes a new instance of the class + with the specified signature of a member on the same type as the consumer. + + The signature of the member depended on. + + + + Initializes a new instance of the class + with the specified signature of a member on a . + + The signature of the member depended on. + The containing . + + + + Initializes a new instance of the class + with the specified signature of a member on a type in an assembly. + + The signature of the member depended on. + The full name of the type containing the specified member. + The assembly name of the type containing the specified member. + + + + Initializes a new instance of the class + with the specified types of members on a . + + The types of members depended on. + The containing the specified members. + + + + Initializes a new instance of the class + with the specified types of members on a type in an assembly. + + The types of members depended on. + The full name of the type containing the specified members. + The assembly name of the type containing the specified members. + + + + Gets the signature of the member depended on. + + + Either must be a valid string or + must not equal , but not both. + + + + + Gets the which specifies the type + of members depended on. + + + Either must be a valid string or + must not equal , but not both. + + + + + Gets the containing the specified member. + + + If neither nor are specified, + the type of the consumer is assumed. + + + + + Gets the full name of the type containing the specified member. + + + If neither nor are specified, + the type of the consumer is assumed. + + + + + Gets the assembly name of the specified type. + + + is only valid when is specified. + + + + + Gets or sets the condition in which the dependency is applicable, e.g. "DEBUG". + + + + + Indicates that certain members on a specified are accessed dynamically, + for example through . + + + This allows tools to understand which members are being accessed during the execution + of a program. + + This attribute is valid on members whose type is or . + + When this attribute is applied to a location of type , the assumption is + that the string represents a fully qualified type name. + + When this attribute is applied to a class, interface, or struct, the members specified + can be accessed dynamically on instances returned from calling + on instances of that class, interface, or struct. + + If the attribute is applied to a method it's treated as a special case and it implies + the attribute should be applied to the "this" parameter of the method. As such the attribute + should only be used on instance methods of types assignable to System.Type (or string, but no methods + will use it there). + + + + + Initializes a new instance of the class + with the specified member types. + + The types of members dynamically accessed. + + + + Gets the which specifies the type + of members dynamically accessed. + + + + + Specifies the types of members that are dynamically accessed. + + This enumeration has a attribute that allows a + bitwise combination of its member values. + + + + + Specifies no members. + + + + + Specifies the default, parameterless public constructor. + + + + + Specifies all public constructors. + + + + + Specifies all non-public constructors. + + + + + Specifies all public methods. + + + + + Specifies all non-public methods. + + + + + Specifies all public fields. + + + + + Specifies all non-public fields. + + + + + Specifies all public nested types. + + + + + Specifies all non-public nested types. + + + + + Specifies all public properties. + + + + + Specifies all non-public properties. + + + + + Specifies all public events. + + + + + Specifies all non-public events. + + + + + Specifies all interfaces implemented by the type. + + + + + Specifies all members. + + + + Returns an enumerator that iterates through a collection.An object that can be used to iterate through the collection. + + + Returns an enumerator that iterates through a collection.An object that can be used to iterate through the collection. + + + Gets an enumerable collection that contains the keys in the read-only dictionary.An enumerable collection that contains the keys in the read-only dictionary. + + + Gets an enumerable collection that contains the values in the read-only dictionary.An enumerable collection that contains the values in the read-only dictionary. + + + Returns an enumerator that iterates through a collection.An object that can be used to iterate through the collection. + + + Returns an enumerator that iterates through the collection.An enumerator that can be used to iterate through the collection. + + + Returns an enumerator that iterates through a collection.An object that can be used to iterate through the collection. + + + Gets the element in the collection at the current position of the enumerator.The element in the collection at the current position of the enumerator. + +
+
diff --git a/src/Authentication/Authentication.Core/tempPackages/Azure.Core.dll b/src/Authentication/Authentication.Core/tempPackages/Azure.Core.dll new file mode 100644 index 00000000000..9337feefc51 Binary files /dev/null and b/src/Authentication/Authentication.Core/tempPackages/Azure.Core.dll differ diff --git a/src/Authentication/Authentication.Core/tempPackages/Azure.Core.xml b/src/Authentication/Authentication.Core/tempPackages/Azure.Core.xml new file mode 100644 index 00000000000..866c22f7c1b --- /dev/null +++ b/src/Authentication/Authentication.Core/tempPackages/Azure.Core.xml @@ -0,0 +1,8061 @@ + + + + Azure.Core + + + + + Represents an Azure service bearer access token with expiry information. + + + + + Creates a new instance of using the provided and . + + The bearer access token value. + The bearer access token expiry date. + + + + Get the access token value. + + + + + Gets the time when the provided token expires. + + + + Indicates whether this instance and a specified object are equal.The object to compare with the current instance. if and this instance are the same type and represent the same value; otherwise, . + + + Returns the hash code for this instance.A 32-bit signed integer that is the hash code for this instance. + + + + Represents an Azure geography region where supported resource providers live. + + + + + Public cloud location for East Asia. + + + + + Public cloud location for Southeast Asia. + + + + + Public cloud location for Central US. + + + + + Public cloud location for East US. + + + + + Public cloud location for East US 2. + + + + + Public cloud location for West US. + + + + + Public cloud location for West US 2. + + + + + Public cloud location for West US 3. + + + + + Public cloud location for North Central US. + + + + + Public cloud location for South Central US. + + + + + Public cloud location for North Europe. + + + + + Public cloud location for West Europe. + + + + + Public cloud location for Japan West. + + + + + Public cloud location for Japan East. + + + + + Public cloud location for Brazil South. + + + + + Public cloud location for Australia East. + + + + + Public cloud location for Australia Southeast. + + + + + Public cloud location for South India. + + + + + Public cloud location for Central India. + + + + + Public cloud location for West India. + + + + + Public cloud location for Canada Central. + + + + + Public cloud location for Canada East. + + + + + Public cloud location for UK South. + + + + + Public cloud location for UK West. + + + + + Public cloud location for West Central US. + + + + + Public cloud location for Korea Central. + + + + + Public cloud location for Korea South. + + + + + Public cloud location for France Central. + + + + + Public cloud location for France South. + + + + + Public cloud location for Australia Central. + + + + + Public cloud location for Australia Central 2. + + + + + Public cloud location for UAE Central. + + + + + Public cloud location for UAE North. + + + + + Public cloud location for South Africa North. + + + + + Public cloud location for South Africa West. + + + + + Public cloud location for Sweden Central. + + + + + Public cloud location for Switzerland North. + + + + + Public cloud location for Switzerland West. + + + + + Public cloud location for Germany North. + + + + + Public cloud location for Germany West Central. + + + + + Public cloud location for Germany Central. + + + + + Public cloud location for Germany NorthEast. + + + + + Public cloud location for Norway West. + + + + + Public cloud location for Norway East. + + + + + Public cloud location for Brazil Southeast. + + + + + Public cloud location for China North. + + + + + Public cloud location for China East. + + + + + Public cloud location for China North 2. + + + + + Public cloud location for China East 2. + + + + + Public cloud location for Qatar Central. + + + + + Public cloud location for US DoD Central. + + + + + Public cloud location for US DoD East. + + + + + Public cloud location for US Gov Arizona. + + + + + Public cloud location for US Gov Texas. + + + + + Public cloud location for US Gov Virginia. + + + + + Public cloud location for US Gov Iowa. + + + + Initializes a new instance of Location. + The location name or the display name. + + + Initializes a new instance of Location. + The location name. + The display name of the location. + + + + Gets a location name consisting of only lowercase characters without white spaces or any separation character between words, e.g. "westus". + + + + + Gets a location display name consisting of titlecase words or alphanumeric characters separated by whitespaces, e.g. "West US". + + + + + Gets the name of a location object. + + The name. + + + + Creates a new location implicitly from a string. + + String to be assigned in the Name form. + + + + Detects if a location object is equal to another location instance or a string representing the location name. + + AzureLocation object or name as a string. + True or false. + + + + Creates a string implicitly from a AzureLocation object. + + AzureLocation object to be assigned. + + + Indicates whether this instance and a specified object are equal.The object to compare with the current instance. if and this instance are the same type and represent the same value; otherwise, . + + + Returns the hash code for this instance.A 32-bit signed integer that is the hash code for this instance. + + + + Compares this instance with another object and determines if they are equals. + + The object on the left side of the operator. + The object on the right side of the operator. + True if they are equal, otherwise false. + + + + Compares this instance with another object and determines if they are equals. + + The object on the left side of the operator. + The object on the right side of the operator. + True if they are not equal, otherwise false. + + + + Implements chaining of classifiers for the general case where the end-of-chain + is not a . + is preferred due to its enhanced performance + characteristics. + The classifier chain is a series of classifiers + followed by the "end-of-chain" . The handlers are + added to the chain via , + and all of them are applied starting with the most recently added handler and + iterating over the list to the least-recently added handler, then applying status code + classification, and finally by applying the "end-of-chain" classifier. + + + + + Base type for all client option types, exposes various common client options like , , . + + + + + Gets the default set of . Changes to the options would be reflected + in new instances of type created after changes to were made. + + + + + Creates a new instance of . + + + + + Creates a new instance of with the specificed . + + to be used for . + + + + The to be used for this client. Defaults to an instance of . + + + + + Gets the client diagnostic options. + + + + + Gets the client retry options. + + + + + Gets or sets the policy to use for retries. If a policy is specified, it will be used in place of the property. + The type can be derived from to modify the default behavior without needing to fully implement the retry logic. + If is overridden or a custom is specified, + it is the implementer's responsibility to update the values. + + + + + Adds an policy into the client pipeline. The position of policy in the pipeline is controlled by the parameter. + If you want the policy to execute once per client request use otherwise use + to run the policy for every retry. Note that the same instance of would be added to all pipelines of client constructed using this object. + + The instance to be added to the pipeline. + The position of policy in the pipeline. + + + Determines whether the specified object is equal to the current object.The object to compare with the current object. if the specified object is equal to the current object; otherwise, . + + + Serves as the default hash function.A hash code for the current object. + + + Returns a string that represents the current object.A string that represents the current object. + + + + Represents content type. + + + + + application/json + + + + + application/octet-stream + + + + + text/plain + + + + + Creates an instance of . + + The content type string. + + + + Creates an instance of . + + The content type string. + + + Indicates whether the current object is equal to another object of the same type.An object to compare with this object. if the current object is equal to the parameter; otherwise, . + + + Indicates whether the current object is equal to another object of the same type.An object to compare with this object. if the current object is equal to the parameter; otherwise, . + + + Indicates whether this instance and a specified object are equal.The object to compare with the current instance. if and this instance are the same type and represent the same value; otherwise, . + + + Returns the hash code for this instance.A 32-bit signed integer that is the hash code for this instance. + + + + Compares equality of two instances. + + The method to compare. + The method to compare against. + true if values are equal for and , otherwise false. + + + + Compares inequality of two instances. + + The method to compare. + The method to compare against. + true if values are equal for and , otherwise false. + + + Returns the fully qualified type name of this instance.The fully qualified type name. + + + + A key which is used to encrypt, or wrap, another key. + + + + + The Id of the key used to perform cryptographic operations for the client. + + + + + Encrypts the specified key using the specified algorithm. + + The key wrap algorithm used to encrypt the specified key. + The key to be encrypted. + A controlling the request lifetime. + The encrypted key bytes. + + + + Encrypts the specified key using the specified algorithm. + + The key wrap algorithm used to encrypt the specified key. + The key to be encrypted. + A controlling the request lifetime. + The encrypted key bytes. + + + + Decrypts the specified encrypted key using the specified algorithm. + + The key wrap algorithm which was used to encrypt the specified encrypted key. + The encrypted key to be decrypted. + A controlling the request lifetime. + The decrypted key bytes. + + + + Decrypts the specified encrypted key using the specified algorithm. + + The key wrap algorithm which was used to encrypt the specified encrypted key. + The encrypted key to be decrypted. + A controlling the request lifetime. + The decrypted key bytes. + + + + An object capable of retrieving key encryption keys from a provided key identifier. + + + + + Retrieves the key encryption key corresponding to the specified keyId. + + The key identifier of the key encryption key to retrieve. + A controlling the request lifetime. + The key encryption key corresponding to the specified keyId. + + + + Retrieves the key encryption key corresponding to the specified keyId. + + The key identifier of the key encryption key to retrieve. + A controlling the request lifetime. + The key encryption key corresponding to the specified keyId. + + + + An abstraction to control delay behavior. + + + + + Constructs a new instance of . This constructor can be used by derived classes to customize the jitter factor and max delay. + + The max delay value to apply on an individual delay. + The jitter factor to apply to each delay. For example, if the delay is 1 second with a jitterFactor of 0.2, the actual + delay used will be a random double between 0.8 and 1.2. If set to 0, no jitter will be applied. + + + + Constructs an exponential delay with jitter. + + The initial delay to use. + The maximum delay to use. + The instance. + + + + Constructs a fixed delay with jitter. + + The delay to use. + The instance. + + + + Gets the next delay interval. Implement this method to provide custom delay logic. + The Max Delay, jitter, and any Retry-After headers will be applied to the value returned from this method. + + The response, if any, returned from the service. + The retry number. + A representing the next delay interval. + + + + Gets the next delay interval taking into account the Max Delay, jitter, and any Retry-After headers. + + The response, if any, returned from the service. + The retry number. + A representing the next delay interval. + + + + Gets the maximum of two values. + + The first value. + The second value. + The maximum of the two values. + + + + Gets the minimum of two values. + + The first value. + The second value. + The minimum of the two values. + + + + A factory for creating a delegated capable of providing an OAuth token. + + + + + Creates a static that accepts delegates which will produce an . + + + Typically, the created by this method is for use when you have already obtained an + from some other source and need a that will simply return that token. Because the static token can expire, + the delegates offer a mechanism to handle renewal. + + A delegate that returns an . + A delegate that returns a of type . + + + + + Creates a static that accepts delegates which will produce an . + + + Typically, the created by this method is for use when you have already obtained an + from some other source and need a that will simply return that token. Because the static token can expire, + the delegates offer a mechanism to handle renewal. + + A delegate that returns an . + + + + + Exposes client options related to logging, telemetry, and distributed tracing. + + + + + Creates a new instance of with default values. + + + + + Initializes the newly created with the same settings as the specified . + + The to model the newly created instance on. + + + + Get or sets value indicating whether HTTP pipeline logging is enabled. + + + + + Gets or sets value indicating whether distributed tracing activities () are going to be created for the clients methods calls and HTTP calls. + + + + + Gets or sets value indicating whether the "User-Agent" header containing , client library package name and version, + and should be sent. + The default value can be controlled process wide by setting AZURE_TELEMETRY_DISABLED to true, false, 1 or 0. + + + + + Gets or sets value indicating if request or response content should be logged. + + + + + Gets or sets value indicating maximum size of content to log in bytes. Defaults to 4096. + + + + + Gets a list of header names that are not redacted during logging. + + + + + Gets a list of query parameter names that are not redacted during logging. + + + + + Gets or sets the value sent as the first part of "User-Agent" headers for all requests issues by this client. Defaults to . + + + + + Gets or sets the default application id. Default application id would be set on all instances. + + + + + Implementation of that listens to events produced by Azure SDK client libraries. + + + + + The trait name that has to be present on all event sources collected by this listener. + + + + + The trait value that has to be present on all event sources collected by this listener. + + + + + Creates an instance of that executes a callback every time event is written. + + The to call when event is written. The second parameter is formatted message. + The level of events to enable. + + + Called for all existing event sources when the event listener is created and when a new event source is attached to the listener.The event source. + + + Called whenever an event has been written by an event source for which the event listener has enabled events.The event arguments that describe the event. + + + + Creates a new instance of that forwards events to . + + The level of events to enable. + + + + Creates a new instance of that forwards events to . + + The level of events to enable. + + + + A dynamic abstraction over content data, such as JSON. + + This and related types are not intended to be mocked. + + + + + An enumerable and enumerator for the contents of a mutable JSON array. + + + + Returns an enumerator that iterates through a collection. + An value that can be used to iterate through the array. + + + Gets the element in the collection at the current position of the enumerator.The element in the collection at the current position of the enumerator. + + + Returns an enumerator that iterates through a collection.An object that can be used to iterate through the collection. + + + Returns an enumerator that iterates through the collection.An enumerator that can be used to iterate through the collection. + + + Sets the enumerator to its initial position, which is before the first element in the collection.The collection was modified after the enumerator was created. + + + Gets the element in the collection at the current position of the enumerator.The element in the collection at the current position of the enumerator. + + + Advances the enumerator to the next element of the collection. if the enumerator was successfully advanced to the next element; if the enumerator has passed the end of the collection.The collection was modified after the enumerator was created. + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + Returns a string that represents the current object.A string that represents the current object. + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + Determines whether the specified object is equal to the current object.The object to compare with the current object. if the specified object is equal to the current object; otherwise, . + + + Serves as the default hash function.A hash code for the current object. + + + Returns the responsible for binding operations performed on this object.The expression tree representation of the runtime value.The to bind this object. + + + + An enumerable and enumerator for the properties of a mutable JSON object. + + + + + Returns an enumerator that iterates the properties of an object. + + + An value that can be used to iterate + through the object. + + + The enumerator will enumerate the properties in the order they are + declared, and when an object has multiple definitions of a single + property they will all individually be returned (each in the order + they appear in the content). + + + + Gets the element in the collection at the current position of the enumerator.The element in the collection at the current position of the enumerator. + + + Returns an enumerator that iterates through a collection.An object that can be used to iterate through the collection. + + + Returns an enumerator that iterates through the collection.An enumerator that can be used to iterate through the collection. + + + Sets the enumerator to its initial position, which is before the first element in the collection.The collection was modified after the enumerator was created. + + + Gets the element in the collection at the current position of the enumerator.The element in the collection at the current position of the enumerator. + + + Advances the enumerator to the next element of the collection. if the enumerator was successfully advanced to the next element; if the enumerator has passed the end of the collection.The collection was modified after the enumerator was created. + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + Converts the value to a . + + The value to convert. + + + + Converts the value to a . + + The value to convert. + + + + Converts the value to a . + + The value to convert. + + + + Converts the value to a . + + The value to convert. + + + + Converts the value to a . + + The value to convert. + + + + Converts the value to a . + + The value to convert. + + + + Converts the value to a . + + The value to convert. + + + + Converts the value to a . + + The value to convert. + + + + Converts the value to a . + + The value to convert. + + + + Converts the value to a . + + The value to convert. + + + + Converts the value to a . + + The value to convert. + + + + Converts the value to a . + + The value to convert. + + + + Converts the value to a . + + The value to convert. + + + + Converts the value to a . + + The value to convert. + + + + Converts the value to a . + + The value to convert. + + + + Converts the value to a . + + The value to convert. + + + + Determines whether the specified and have the same value. + + + This operator calls through to when DynamicData is on the left-hand + side of the operation. has value semantics when the DynamicData represents + a JSON primitive, i.e. string, bool, number, or null, and reference semantics otherwise, i.e. for objects and arrays. + + Please note that if DynamicData is on the right-hand side of a == operation, this operator will not be invoked. + Because of this the result of a == comparison with null on the left and a DynamicData instance on the right will return false. + + The to compare. + The to compare. + true if the value of is the same as the value of ; otherwise, false. + + + + Determines whether the specified and have different values. + + + This operator calls through to when DynamicData is on the left-hand + side of the operation. has value semantics when the DynamicData represents + a JSON primitive, i.e. string, bool, number, or null, and reference semantics otherwise, i.e. for objects and arrays. + + The to compare. + The to compare. + true if the value of is different from the value of ; otherwise, false. + + + + Copy constructor + + + + + + Represents a single property on a dynamic JSON object. + + + + + Gets the name of this property. + + + + + Gets the value of this property. + + + + Returns the responsible for binding operations performed on this object.The expression tree representation of the runtime value.The to bind this object. + + + + Converts type member names to serializable member names. + + + + + Converts a to a serializable member name. + + The to convert to a serializable member name. + The serializable member name, or null if the member is not defined or ignored by the serializer. + is null. + + + + An implementation that uses for serialization/deserialization. + + + + + A shared instance of , initialized with the default options. + + + + + Initializes new instance of . + + + + + Initializes new instance of . + + The instance to use when serializing/deserializing. + is null. + + + + Convert the provided value to it's binary representation and write it to . + + The to write to. + The value to convert. + The type of the to convert. + The to use during serialization. + + + + Convert the provided value to it's binary representation and write it to . + + The to write to. + The value to convert. + The type of the to convert. + The to use during serialization. + + + + Read the binary representation into a . + The Stream will be read to completion. + + The to read from. + The type of the object to convert to and return. + The to use during deserialization. + + + + Read the binary representation into a . + The Stream will be read to completion. + + The to read from. + The type of the object to convert to and return. + The to use during deserialization. + + + + Convert the provided value to it's binary representation and return it as a instance. + + The value to convert. + The type to use when serializing . If omitted, the type will be determined using (). + The to use during serialization. + The object's binary representation as . + + + + Convert the provided value to it's binary representation and return it as a instance. + + The value to convert. + The type to use when serializing . If omitted, the type will be determined using (). + The to use during serialization. + The object's binary representation as . + + + + Converts a to a serializable member name. + + The to convert to a serializable member name. + The serializable member name, or null if the member is not defined or ignored by the serializer. + is null. + + + + The format of property names in dynamic and serialized JSON content. + + + + + Exact property name matches will be used with JSON property names. + + + + + Indicates that the JSON content uses a camel-case format for property names. + + + + + An abstraction for reading typed objects. + + + + + Convert the provided value to it's binary representation and write it to . + + The to write to. + The value to convert. + The type of the to convert. + The to use during serialization. + + + + Convert the provided value to it's binary representation and write it to . + + The to write to. + The value to convert. + The type of the to convert. + The to use during serialization. + + + + Read the binary representation into a . + The Stream will be read to completion. + + The to read from. + The type of the object to convert to and return. + The to use during deserialization. + + + + Read the binary representation into a . + The Stream will be read to completion. + + The to read from. + The type of the object to convert to and return. + The to use during deserialization. + + + + Convert the provided value to it's binary representation and return it as a instance. + + The value to convert. + The type to use when serializing . If omitted, the type will be determined using (). + The to use during serialization. + The object's binary representation as . + + + + Convert the provided value to it's binary representation and return it as a instance. + + The value to convert. + The type to use when serializing . If omitted, the type will be determined using (). + The to use during serialization. + The object's binary representation as . + + + + A mutable representation of a JSON value. + + + + + Gets the root element of this JSON document. + + + + + Writes the document to the provided stream as a JSON value. + + The stream to which to write the document. + A format string indicating the format to use when writing the document. + The parameter is . + Thrown if an unsupported value is passed for format. + The value of can be default or "J" to write the document as JSON, or "P" to write the changes as JSON Merge Patch. + + + + Writes the document to the provided stream as a JSON value. + + The writer to which to write the document. + The parameter is . + + + + Parses a UTF-8 encoded string representing a single JSON value into a . + + A UTF-8 encoded string representing a JSON value. + A representation of the value. + Serializer options used to serialize and deserialize any changes to the JSON. + does not represent a valid single JSON value. + + + + Parses JSON into a . + + Reader holding the JSON value. + Serializer options used to serialize and deserialize any changes to the JSON. + A representation of the value. + + + + Parses a UTF-8 encoded string representing a single JSON value into a . + + A UTF-8 encoded string representing a JSON value. + Serializer options used to serialize and deserialize any changes to the JSON. + A representation of the value. + does not represent a valid single JSON value. + + + + Parses test representing a single JSON value into a . + + The JSON string. + Serializer options used to serialize and deserialize any changes to the JSON. + A representation of the value. + does not represent a valid single JSON value. + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + A mutable representation of a JSON element. + + + A mutable representation of a JSON element. + + + + + An enumerable and enumerator for the contents of a mutable JSON array. + + + + Gets the element in the collection at the current position of the enumerator.The element in the collection at the current position of the enumerator. + + + + Returns an enumerator that iterates through a collection. + + + An value that can be used to iterate + through the array. + + + + Returns an enumerator that iterates through a collection.An object that can be used to iterate through the collection. + + + Returns an enumerator that iterates through the collection.An enumerator that can be used to iterate through the collection. + + + Sets the enumerator to its initial position, which is before the first element in the collection.The collection was modified after the enumerator was created. + + + Gets the element in the collection at the current position of the enumerator.The element in the collection at the current position of the enumerator. + + + Advances the enumerator to the next element of the collection. if the enumerator was successfully advanced to the next element; if the enumerator has passed the end of the collection.The collection was modified after the enumerator was created. + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + Gets the type of the current JSON value. + + + + + Gets the MutableJsonElement for the value of the property with the specified name. + + + + + Gets the MutableJsonElement for the value of the property with the specified name. + + + + + Looks for a property named propertyName in the current object, returning a value that indicates whether or not such a property exists. When the property exists, its value is assigned to the value argument. + + + The value to assign to the element. + + + + + Looks for a property named propertyName in the current object, returning a value that indicates whether or not such a property exists. When the property exists, its value is assigned to the value argument. + + + The value to assign to the element. + + + + + Attempts to represent the current JSON number as a . + + + if the number can be represented as a , + otherwise. + + This value's is not . + + + + Gets the current JSON number as a . + + The current JSON number as a . + This value's is not . + The value cannot be represented as a . + + + + Attempts to represent the current JSON number as a . + + + if the number can be represented as a , + otherwise. + + This value's is not . + + + + Gets the current JSON number as a . + + The current JSON number as a . + This value's is not . + The value cannot be represented as a . + + + + Attempts to represent the current JSON number as a . + + + if the number can be represented as a , + otherwise. + + This value's is not . + + + + Gets the current JSON number as a . + + The current JSON number as a . + This value's is not . + The value cannot be represented as a . + + + + Attempts to represent the current JSON number as a . + + + if the number can be represented as a , + otherwise. + + This value's is not . + + + + Gets the current JSON number as a . + + The current JSON number as a . + This value's is not . + The value cannot be represented as a . + + + + Gets the value of the element as a string. + + + + + + + Gets the value of the element as a bool. + + + + + + + Gets an enumerator to enumerate the values in the JSON array represented by this MutableJsonElement. + + + + + Gets an enumerator to enumerate the properties in the JSON object represented by this JsonElement. + + + + + Remove the property with the specified name from the current MutableJsonElement. + + + + + + + Sets the value of this element to the passed-in value. + + The value to assign to the element. + + + + Sets the value of this element to the passed-in value. + + The value to assign to the element. + + + + Sets the value of this element to the passed-in value. + + The value to assign to the element. + + + + Sets the value of this element to the passed-in value. + + The value to assign to the element. + + + + Sets the value of this element to the passed-in value. + + The value to assign to the element. + + + + Sets the value of this element to the passed-in value. + + The value to assign to the element. + + + + Sets the value of this element to the passed-in value. + + The value to assign to the element. + + + + Sets the value of this element to the passed-in value. + + The value to assign to the element. + + + + Sets the value of this element to the passed-in value. + + The value to assign to the element. + + + + Sets the value of this element to the passed-in value. + + The value to assign to the element. + + + + Sets the value of this element to the passed-in value. + + The value to assign to the element. + + + + Sets the value of this element to the passed-in value. + + The value to assign to the element. + + + + Sets the value of this element to the passed-in value. + + The value to assign to the element. + + + + Sets the value of this element to the passed-in value. + + The value to assign to the element. + + + + Sets the value of this element to the passed-in value. + + The value to assign to the element. + + + + Sets the value of this element to the passed-in value. + + The value to assign to the element. + + + + Sets the value of this element to the passed-in value. + + The value to assign to the element. + + + Returns the fully qualified type name of this instance.The fully qualified type name. + + + + An enumerable and enumerator for the properties of a JSON object. + + + + Gets the element in the collection at the current position of the enumerator.The element in the collection at the current position of the enumerator. + + + + Returns an enumerator that iterates the properties of an object. + + + An value that can be used to iterate + through the object. + + + The enumerator will enumerate the properties in the order they are + declared, and when an object has multiple definitions of a single + property they will all individually be returned (each in the order + they appear in the content). + + + + + Returns an enumerator that iterates the properties of an object. + + + An that can be used to iterate + through the properties of the object. + + + The enumerator will enumerate the properties in the order they are + declared, and when an object has multiple definitions of a single + property they will all individually be returned (each in the order + they appear in the content). + + + + + Returns an enumerator that iterates the properties of an object. + + + An over a + that can be used to iterate through the properties of the object. + + + The enumerator will enumerate the properties in the order they are + declared, and when an object has multiple definitions of a single + property they will all individually be returned (each in the order + they appear in the content). + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + Sets the enumerator to its initial position, which is before the first element in the collection.The collection was modified after the enumerator was created. + + + Gets the element in the collection at the current position of the enumerator.The element in the collection at the current position of the enumerator. + + + Advances the enumerator to the next element of the collection. if the enumerator was successfully advanced to the next element; if the enumerator has passed the end of the collection.The collection was modified after the enumerator was created. + + + + Marks the type exposing client registration options for clients registered with . + + The type of the client. + The options type used by the client. + + + + Abstraction for registering Azure clients in dependency injection containers. + + + + + Registers a client in the dependency injection container using the factory to create a client instance. + + The type of the client. + The client options type used the client. + The factory, that given the instance of options, returns a client instance. + that allows customizing the client registration. + + + + Abstraction for registering Azure clients in dependency injection containers and initializing them using IConfiguration objects. + + + + + Registers a client in the dependency injection container using the configuration to create a client instance. + + The type of the client. + The client options type used the client. + Instance of to use. + that allows customizing the client registration. + + + + Abstraction for registering Azure clients that require in dependency injection containers. + + + + + Registers a client in dependency injection container the using the factory to create a client instance. + + The type of the client. + The client options type used the client. + The factory, that given the instance of options and credential, returns a client instance. + Specifies whether the credential is optional (client supports anonymous authentication). + that allows customizing the client registration. + + + + Represents a geometry coordinates array + + The type of the value. + + + + Returns a value at the provided index. + + The index to retrieve the value from. + + + + Returns the size of the array. + + + + + Returns an enumerator that iterates through the collection. + + An enumerator that can be used to iterate through the collection. + + + + Enumerates the elements of a + + + + Advances the enumerator to the next element of the collection. if the enumerator was successfully advanced to the next element; if the enumerator has passed the end of the collection.The collection was modified after the enumerator was created. + + + Sets the enumerator to its initial position, which is before the first element in the collection.The collection was modified after the enumerator was created. + + + Gets the element in the collection at the current position of the enumerator.The element in the collection at the current position of the enumerator. + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + Represents information about the coordinate range of the . + + + + + The westmost value of coordinates. + + + + + The southmost value of coordinates. + + + + + The eastmost value of coordinates. + + + + + The northmost value of coordinates. + + + + + The minimum altitude value of coordinates. + + + + + The maximum altitude value of coordinates. + + + + + Initializes a new instance of . + + + + + Initializes a new instance of . + + + + Indicates whether the current object is equal to another object of the same type.An object to compare with this object. if the current object is equal to the parameter; otherwise, . + + + Determines whether the specified object is equal to the current object.The object to compare with the current object. if the specified object is equal to the current object; otherwise, . + + + Serves as the default hash function.A hash code for the current object. + + + + Gets the component of the based on its index. + + The index of the bounding box component. + + + Returns a string that represents the current object.A string that represents the current object. + + + + Represents a geometry that is composed of multiple geometries. + + + + + Initializes new instance of . + + The collection of inner geometries. + + + + Initializes new instance of . + + The collection of inner geometries. + The to use. + The set of custom properties associated with the . + + + + Gets the list of geometry is composed of. + + + + Returns an enumerator that iterates through the collection.An enumerator that can be used to iterate through the collection. + + + Gets the number of elements in the collection.The number of elements in the collection. + + + Gets the element at the specified index in the read-only list.The zero-based index of the element to get.The element at the specified index in the read-only list. + + + + Gets the GeoJSON type of this object. + + + + + Converts a value from and to JSON in GeoJSON format. + + + + Determines whether the specified type can be converted.The type to compare against. if the type can be converted; otherwise, . + + + Reads and converts the JSON to type .The reader.The type to convert.An object that specifies serialization options to use.The converted value. + + + Writes a specified value as JSON.The writer to write to.The value to convert to JSON.An object that specifies serialization options to use. + + + + Represents a linear ring that's a part of a polygon + + + + + Initializes new instance of . + + + + + + Returns a view over the coordinates array that forms this linear ring. + + + + + Represents a line geometry that consists of multiple coordinates. + + + Creating a line: + + var line = new GeoLineString(new[] + { + new GeoPosition(-122.108727, 47.649383), + new GeoPosition(-122.081538, 47.640846), + new GeoPosition(-122.078634, 47.576066), + new GeoPosition(-122.112686, 47.578559), + }); + + + + + + Initializes new instance of . + + The collection of that make up the line. + + + + Initializes new instance of . + + The collection of that make up the line. + The to use. + The set of custom properties associated with the . + + + + Returns a view over the coordinates array that forms this geometry. + + + + + Gets the GeoJSON type of this object. + + + + + Represents a geometry that is composed of multiple . + + + + + Initializes new instance of . + + The collection of inner lines. + + + + Initializes new instance of . + + The collection of inner lines. + The to use. + The set of custom properties associated with the . + + + Returns an enumerator that iterates through the collection.An enumerator that can be used to iterate through the collection. + + + Gets the number of elements in the collection.The number of elements in the collection. + + + Gets the element at the specified index in the read-only list.The zero-based index of the element to get.The element at the specified index in the read-only list. + + + + Returns a view over the coordinates array that forms this geometry. + + + + + Gets the GeoJSON type of this object. + + + + + A base type for all spatial types. + + + + + Initializes a new instance of . + + The to use. + The set of custom properties associated with the . + + + + Gets the GeoJSON type of this object. + + + + + Represents information about the coordinate range of the . + + + + + Tries to get a value of a custom property associated with the . + + + + + Converts an instance of to a GeoJSON representation. + + + + + + Parses an instance of see from provided JSON representation. + + The GeoJSON representation of an object. + The resulting object. + + + + Identifies the type of the + + + + + The is of the type. + + + + + The is of the type. + + + + + The is of the type. + + + + + The is of the type. + + + + + The is of the type. + + + + + The is of the type. + + + + + The is of the type. + + + + + Represents a point geometry. + + + Creating a point: + + var point = new GeoPoint(-122.091954, 47.607148); + + + + + + Initializes new instance of . + + The longitude of the point. + The latitude of the point. + + + + Initializes new instance of . + + The longitude of the point. + The latitude of the point. + The altitude of the point. + + + + Initializes new instance of . + + The position of the point. + + + + Initializes new instance of . + + The position of the point. + The to use. + The set of custom properties associated with the . + + + + Gets position of the point. + + + + + Gets the GeoJSON type of this object. + + + + + Represents a geometry that is composed of multiple . + + + + + Initializes new instance of . + + The collection of inner points. + + + + Initializes new instance of . + + The collection of inner points. + The to use. + The set of custom properties associated with the . + + + Returns an enumerator that iterates through the collection.An enumerator that can be used to iterate through the collection. + + + Returns an enumerator that iterates through a collection.An object that can be used to iterate through the collection. + + + Gets the number of elements in the collection.The number of elements in the collection. + + + Gets the element at the specified index in the read-only list.The zero-based index of the element to get.The element at the specified index in the read-only list. + + + + Returns a view over the coordinates array that forms this geometry. + + + + + Gets the GeoJSON type of this object. + + + + + Represents a polygon consisting of outer ring and optional inner rings. + + + Creating a polygon: + + var polygon = new GeoPolygon(new[] + { + new GeoPosition(-122.108727, 47.649383), + new GeoPosition(-122.081538, 47.640846), + new GeoPosition(-122.078634, 47.576066), + new GeoPosition(-122.112686, 47.578559), + new GeoPosition(-122.108727, 47.649383), + }); + + Creating a polygon with holes: + + var polygon = new GeoPolygon(new[] + { + // Outer ring + new GeoLinearRing(new[] + { + new GeoPosition(-122.108727, 47.649383), + new GeoPosition(-122.081538, 47.640846), + new GeoPosition(-122.078634, 47.576066), + new GeoPosition(-122.112686, 47.578559), + // Last position same as first + new GeoPosition(-122.108727, 47.649383), + }), + // Inner ring + new GeoLinearRing(new[] + { + new GeoPosition(-122.102370, 47.607370), + new GeoPosition(-122.083488, 47.608007), + new GeoPosition(-122.085419, 47.597879), + new GeoPosition(-122.107005, 47.596895), + // Last position same as first + new GeoPosition(-122.102370, 47.607370), + }) + }); + + + + + + Initializes new instance of . + + The positions that make up the outer ring of the polygon. + + + + Initializes new instance of . + + The collection of rings that make up the polygon, first ring is the outer ring others are inner rings. + + + + Initializes new instance of . + + The collection of rings that make up the polygon, first ring is the outer ring others are inner rings. + The to use. + The set of custom properties associated with the . + + + + Gets a set of rings that form the polygon. + + + + + Returns the outer ring of the polygon. + + + + + Returns a view over the coordinates array that forms this geometry. + + + + + Gets the GeoJSON type of this object. + + + + + Represents a geometry that is composed of multiple . + + + + + Initializes new instance of . + + The collection of inner polygons. + + + + Initializes new instance of . + + The collection of inner geometries. + The to use. + The set of custom properties associated with the . + + + Returns an enumerator that iterates through the collection.An enumerator that can be used to iterate through the collection. + + + Returns an enumerator that iterates through a collection.An object that can be used to iterate through the collection. + + + Gets the number of elements in the collection.The number of elements in the collection. + + + Gets the element at the specified index in the read-only list.The zero-based index of the element to get.The element at the specified index in the read-only list. + + + + Returns a view over the coordinates array that forms this geometry. + + + + + Gets the GeoJSON type of this object. + + + + + Represents a single spatial position with latitude, longitude, and optional altitude. + + + + + Gets the altitude of the position. + + + + + Gets the longitude of the position. + + + + + Gets the latitude of the position. + + + + + Initializes a new instance of . + + The longitude of the position. + The latitude of the position. + + + + Initializes a new instance of . + + The longitude of the position. + The latitude of the position. + The altitude of the position. + + + Indicates whether the current object is equal to another object of the same type.An object to compare with this object. if the current object is equal to the parameter; otherwise, . + + + Indicates whether this instance and a specified object are equal.The object to compare with the current instance. if and this instance are the same type and represent the same value; otherwise, . + + + Returns the hash code for this instance.A 32-bit signed integer that is the hash code for this instance. + + + + Determines whether two specified positions have the same value. + + The first position to compare. + The first position to compare. + true if the value of left is the same as the value of b; otherwise, false. + + + + Determines whether two specified positions have the same value. + + The first position to compare. + The first position to compare. + false if the value of left is the same as the value of b; otherwise, true. + + + Returns the fully qualified type name of this instance.The fully qualified type name. + + + + Get the value of coordinate component using its index. + + + + + + Returns the count of the coordinate components. + + + + + Represents an HTTP header. + + + + + Creates a new instance of with provided name and value. + + The header name. + The header value. + + + + Gets header name. + + + + + Gets header value. If the header has multiple values they would be joined with a comma. To get separate values use or . + + + + Returns the hash code for this instance.A 32-bit signed integer that is the hash code for this instance. + + + Indicates whether this instance and a specified object are equal.The object to compare with the current instance. if and this instance are the same type and represent the same value; otherwise, . + + + Returns the fully qualified type name of this instance.The fully qualified type name. + + + Indicates whether the current object is equal to another object of the same type.An object to compare with this object. if the current object is equal to the parameter; otherwise, . + + + + Contains names of commonly used headers. + + + + + Returns. "Date" + + + + + Returns. "x-ms-date" + + + + + Returns. "Content-Type" + + + + + Returns. "Content-Length" + + + + + Returns. "ETag" + + + + + Returns. "x-ms-request-id" + + + + + Returns. "User-Agent" + + + + + Returns. "Accept" + + + + + Returns. "Authorization" + + + + + Returns. "Range" + + + + + Returns. "x-ms-range" + + + + + Returns. "If-Match" + + + + + Returns. "If-None-Match" + + + + + Returns. "If-Modified-Since" + + + + + Returns. "If-Unmodified-Since" + + + + + Returns. "Prefer" + + + + + Returns. "Referer" + + + + + Returns. "Host" + + + + + Returns "Content-Disposition". + + + + + Returns "WWW-Authenticate". + + + + + Commonly defined header values. + + + + + Returns header with name "ContentType" and value "application/json". + + + + + Returns header with name "Accept" and value "application/json". + + + + + Returns header with name "ContentType" and value "application/octet-stream". + + + + + Returns header with name "ContentType" and value "application/x-www-form-urlencoded". + + + + + Represents a context flowing through the . + + + + + Creates a new instance of . + + The request. + The response classifier. + + + + Gets the associated with this message. + + + + + Gets the associated with this message. Throws an exception if it wasn't set yet. + To avoid the exception use property to check. + + + + + Gets the value indicating if the response is set on this message. + + + + + The to be used during the processing. + + + + + The instance to use for response classification during pipeline invocation. + + + + + Gets or sets the value indicating if response would be buffered as part of the pipeline. Defaults to true. + + + + + Gets or sets the network timeout value for this message. If null the value provided in would be used instead. + Defaults to null. + + + + + The processing context for the message. + + + + + Gets a property that modifies the pipeline behavior. Please refer to individual policies documentation on what properties it supports. + + The property name. + The property value. + true if property exists, otherwise. false. + + + + Sets a property that modifies the pipeline behavior. Please refer to individual policies documentation on what properties it supports. + + The property name. + The property value. + + + + Gets a property that is stored with this instance and can be used for modifying pipeline behavior. + + The property type. + The property value. + + The key value is of type Type for a couple of reasons. Primarily, it allows values to be stored such that though the accessor methods + are public, storing values keyed by internal types make them inaccessible to other assemblies. This protects internal values from being overwritten + by external code. See the and types for an example of this usage. Secondly, Type + comparisons are faster than string comparisons. + + true if property exists, otherwise. false. + + + + Sets a property that is stored with this instance and can be used for modifying pipeline behavior. + Internal properties can be keyed with internal types to prevent external code from overwriting these values. + + The key for the value. + The property value. + + + + Returns the response content stream and releases it ownership to the caller. After calling this methods using or would result in exception. + + The content stream or null if response didn't have any. + + + + Disposes the request and response. + + + + + Represents a position of the policy in the pipeline. + + + + + The policy would be invoked once per pipeline invocation (service call). + + + + + The policy would be invoked every time request is retried. + + + + + The policy would be invoked before the request is sent by the transport. + + + + + A property bag which is optimized for storage of a small number of items. + If the item count is less than 2, there are no allocations. Any additional items are stored in an array which will grow as needed. + MUST be passed by ref only. + + + + + Internal policy that can be used to support georedundant fallbacks for Azure services. The policy maintains the current healthy host + across requests. It falls back only if no response is received from a request, i.e. any response is treated as an indication that the + host is healthy. + + + + + Construct a new instance of the GeoRedundantFallbackPolicy. + + The hosts to use as fallbacks for read operations. + The hosts to use as fallbacks for write operations. + The amount of time to wait before the primary host will be used again after a failure. + + + + This can be used to indicate that the current host cannot be swapped for a specific request. This is useful when a client method + must make multiple requests against the same endpoint. + + The message to mark the host affinity for. + True if the host should not be swapped. + + + + A policy that sends an provided by a as an Authentication header. + + + + + Creates a new instance of using provided token credential and scope to authenticate for. + + The token credential to use for authentication. + The scope to be included in acquired tokens. + + + + Creates a new instance of using provided token credential and scopes to authenticate for. + + The token credential to use for authentication. + Scopes to be included in acquired tokens. + When or is null. + + + + Applies the policy to the . Implementers are expected to mutate before calling and observe the changes after. + + The this policy would be applied to. + The set of to execute after current one. + The representing the asynchronous operation. + + + + Applies the policy to the . Implementers are expected to mutate before calling and observe the changes after. + + The this policy would be applied to. + The set of to execute after current one. + + + + Executes before or + is called. + Implementers of this method are expected to call or + if authorization is required for requests not related to handling a challenge response. + + The this policy would be applied to. + The representing the asynchronous operation. + + + + Executes before or + is called. + Implementers of this method are expected to call or + if authorization is required for requests not related to handling a challenge response. + + The this policy would be applied to. + + + + Executed in the event a 401 response with a WWW-Authenticate authentication challenge header is received after the initial request. + + Service client libraries may override this to handle service specific authentication challenges. + The to be authenticated. + A boolean indicating whether the request was successfully authenticated and should be sent to the transport. + + + + Executed in the event a 401 response with a WWW-Authenticate authentication challenge header is received after the initial request. + + Service client libraries may override this to handle service specific authentication challenges. + The to be authenticated. + A boolean indicating whether the request was successfully authenticated and should be sent to the transport. + + + + Sets the Authorization header on the by calling GetToken, or from cache, if possible. + + The with the to be authorized. + The used to authorize the . + + + + Sets the Authorization header on the by calling GetToken, or from cache, if possible. + + The with the to be authorized. + The used to authorize the . + + + + An implementation of that may contain resources that require disposal. + + + + + Creates a new instance of with the provided transport, policies and response classifier. + + The to use for sending the requests. + + + Policies to be invoked as part of the pipeline in order. + The response classifier to be used in invocations. + + + + + Disposes the underlying transport if it is owned by the client, i.e. it was created via the Build method on . If the underlying transport is not owned by the client, i.e. it was supplied as a custom transport on , it will not be disposed. + + The reason not to dispose a transport owned outside the client, i.e. one that was provided via is to account for scenarios + where the custom transport may be shared across clients. In this case, it is possible to dispose of a transport + still in use by other clients. When the transport is created internally, it can properly determine if a shared instance is in use. + + + + + + An implementation that uses as the transport. + + + + + Creates a new instance using default configuration. + + + + + Creates a new instance using default configuration. + + The that to configure the behavior of the transport. + + + + Creates a new instance of using the provided client instance. + + The instance of to use. + + + + Creates a new instance of using the provided client instance. + + The instance of to use. + + + + A shared instance of with default parameters. + + + + + Creates a new transport specific instance of . This should not be called directly, or + should be used instead. + + + + + + Sends the request contained by the and sets the property to received response synchronously. + + The containing request and response. + + + + Sends the request contained by the and sets the property to received response asynchronously. + + The containing request and response. + + + + Disposes the underlying . + + + + + Represents a primitive for sending HTTP requests and receiving responses extensible by adding processing steps. + + + + + Creates a new instance of with the provided transport, policies and response classifier. + + The to use for sending the requests. + Policies to be invoked as part of the pipeline in order. + The response classifier to be used in invocations. + + + + Creates a new instance. + + The request. + + + + Creates a new instance. + + The message. + + + + + + + + + + Creates a new instance. + + Context specifying the message options. + + The message. + + + + The instance used in this pipeline invocations. + + + + + Invokes the pipeline asynchronously. After the task completes response would be set to the property. + + The to send. + The to use. + The representing the asynchronous operation. + + + + Invokes the pipeline synchronously. After the task completes response would be set to the property. + + The to send. + The to use. + + + + Invokes the pipeline asynchronously with the provided request. + + The to send. + The to use. + The representing the asynchronous operation. + + + + Invokes the pipeline synchronously with the provided request. + + The to send. + The to use. + The from the server. + + + + Creates a scope in which all outgoing requests would use the provided + + The client request id value to be sent with request. + The instance that needs to be disposed when client request id shouldn't be sent anymore. + + Sample usage: + + var secretClient = new SecretClient(new Uri("http://example.com"), new DefaultAzureCredential()); + + using (HttpPipeline.CreateClientRequestIdScope("<custom-client-request-id>")) + { + // The HTTP request resulting from the client call would have x-ms-client-request-id value set to <custom-client-request-id> + secretClient.GetSecret("<secret-name>"); + } + + + + + + Creates a scope in which all s would have provided properties. + + Properties to be added to s + The instance that needs to be disposed when properties shouldn't be used anymore. + + + + Factory for creating instances of populated with default policies. + + + + + Creates an instance of populated with default policies, customer provided policies from and client provided per call policies. + + The customer provided client options object. + Client provided per-retry policies. + A new instance of + + + + Creates an instance of populated with default policies, customer provided policies from and client provided per call policies. + + The customer provided client options object. + Client provided per-call policies. + Client provided per-retry policies. + The client provided response classifier. + A new instance of + + + + Creates an instance of populated with default policies, customer provided policies from , client provided per call policies, and the supplied . + + The customer provided client options object. + Client provided per-call policies. + Client provided per-retry policies. + The customer provided transport options which will be applied to the default transport. Note: If a custom transport has been supplied via the , these will be ignored. + The client provided response classifier. + A new instance of + + + + Creates an instance of populated with default policies, customer provided policies from and client provided per call policies. + + The configuration options used to build the + A new instance of + + + + Creates an instance of populated with default policies, customer provided policies from , client provided per call policies, and the supplied . + + The configuration options used to build the + The customer provided transport options which will be applied to the default transport. Note: If a custom transport has been supplied via the , these will be ignored. + A new instance of + + + + Specifies configuration of options for building the + + + + + Initializes a new instance of . + + The customer provided client options object. + + + + The customer provided client options object. + + + + + Client provided per-call policies. + + + + + Client provided per-retry policies. + + + + + The client provided response classifier. + + + + + Responsible for parsing the error content related to a failed request from the service. + + + + + Represent an extension point for the that can mutate the and react to received . + + + + + Applies the policy to the . Implementers are expected to mutate before calling and observe the changes after. + + The this policy would be applied to. + The set of to execute after current one. + The representing the asynchronous operation. + + + + Applies the policy to the . Implementers are expected to mutate before calling and observe the changes after. + + The this policy would be applied to. + The set of to execute after current one. + + + + Invokes the next in the . + + The next policy would be applied to. + The set of to execute after next one. + The representing the asynchronous operation. + + + + Invokes the next in the . + + The next policy would be applied to. + The set of to execute after next one. + + + + Represents a that doesn't do any asynchronous or synchronously blocking operations. + + + + + Initializes a new instance of + + + + + Applies the policy to the . Implementers are expected to mutate before calling and observe the changes after. + + The this policy would be applied to. + The set of to execute after current one. + + + + Applies the policy to the . Implementers are expected to mutate before calling and observe the changes after. + + The this policy would be applied to. + The set of to execute after current one. + The representing the asynchronous operation. + + + + Method is invoked before the request is sent. + + The containing the request. + + + + Method is invoked after the response is received. + + The containing the response. + + + + Represents an HTTP pipeline transport used to send HTTP requests and receive responses. + + + + + Sends the request contained by the and sets the property to received response synchronously. + + The containing request and response. + + + + Sends the request contained by the and sets the property to received response asynchronously. + + The containing request and response. + + + + Creates a new transport specific instance of . This should not be called directly, or + should be used instead. + + + + + + Creates the default based on the current environment and configuration. + + that affect how the transport is configured. + + + + + Enables configuration of options for the + + + + + Initializes an instance of . + + + + + A delegate that validates the certificate presented by the server. + + + + + The client certificate collection that will be configured for the transport. + + + + + + Gets or sets a value that indicates whether the redirect policy should follow redirection responses. + + + true if the redirect policy should follow redirection responses; otherwise false. The default value is false. + + + + + The default . + + + + + Gets the proxy URI. (iWebProxy interface). + + + + + Checks if URI is subject to proxy or not. + + + + + Read-only Stream that will throw a if it has to wait longer than a configurable timeout to read more data + + + + + Pipeline policy to buffer response content or add a timeout to response content managed by the client + + + + Throws a cancellation exception if cancellation has been requested via or . + The customer provided token. + The linked token that is cancelled on timeout provided token. + The inner exception to use. + The timeout used for the operation. + + + + Class that serves as the key for UserAgent strings on . + + + + + A pipeline policy that detects a redirect response code and resends the request to the + location specified by the response. + + + + + Creates a new instance of the class. + + Determinds whether redirects will be handled by this policy. Rather than passing false, consider using the static instance instead which defaults to false. + + + + Sets a value that indicates whether redirects will be automatically followed for this message. + + + + + + + Applies the policy to the . Implementers are expected to mutate before calling and observe the changes after. + + The this policy would be applied to. + The set of to execute after current one. + The representing the asynchronous operation. + + + + Applies the policy to the . Implementers are expected to mutate before calling and observe the changes after. + + The this policy would be applied to. + The set of to execute after current one. + + + + Represents a policy that can be overriden to customize whether or not a request will be retried and how long to wait before retrying. + + + + + Initializes a new instance of the class. + + The maximum number of retries to attempt. + The delay to use for computing the interval between retry attempts. + + + + This method can be overriden to take full control over the retry policy. If this is overriden and the base method isn't called, + it is the implementer's responsibility to populate the property. + This method will only be called for async methods. + + The this policy would be applied to. + The set of to execute after current one. + The representing the asynchronous operation. + + + + This method can be overriden to take full control over the retry policy. If this is overriden and the base method isn't called, + it is the implementer's responsibility to populate the property. + This method will only be called for sync methods. + + The this policy would be applied to. + The set of to execute after current one. + + + + This method can be overriden to control whether a request should be retried. It will be called for any response where + is true, or if an exception is thrown from any subsequent pipeline policies or the transport. + This method will only be called for sync methods. + + The message containing the request and response. + The exception that occurred, if any, which can be used to determine if a retry should occur. + Whether or not to retry. + + + + This method can be overriden to control whether a request should be retried. It will be called for any response where + is true, or if an exception is thrown from any subsequent pipeline policies or the transport. + This method will only be called for async methods. + + The message containing the request and response. + The exception that occurred, if any, which can be used to determine if a retry should occur. + Whether or not to retry. + + + + This method can be overriden to control how long to delay before retrying. This method will only be called for sync methods. + + The message containing the request and response. + The Retry-After header value, if any, returned from the service. + The amount of time to delay before retrying. + + + + This method can be overriden to control how long to delay before retrying. This method will only be called for async methods. + + The message containing the request and response. + The Retry-After header value, if any, returned from the service. + The amount of time to delay before retrying. + + + + This method can be overridden to introduce logic before each request attempt is sent. This will run even for the first attempt. + This method will only be called for sync methods. + + The message containing the request and response. + + + + This method can be overriden to introduce logic that runs before the request is sent. This will run even for the first attempt. + This method will only be called for async methods. + + The message containing the request and response. + + + + This method can be overridden to introduce logic that runs after the request is sent through the pipeline and control is returned to the retry + policy. This method will only be called for sync methods. + + The message containing the request and response. + + + + This method can be overridden to introduce logic that runs after the request is sent through the pipeline and control is returned to the retry + policy. This method will only be called for async methods. + + The message containing the request and response. + + + + Enables configuration of options for the + + + + + The certificate used to authenticate the remote party. + + + + + The chain of certificate authorities associated with the remote certificate. + + + + + One or more errors associated with the remote certificate. + + + + + Initializes an instance of . + + The certificate + + + + + + Initializes a new instance of the class. + + The customer provided client options object. + Flag controlling if + created by this for client method calls should be suppressed when called + by other Azure SDK client methods. It's recommended to set it to true for new clients; use default (null) + for backward compatibility reasons, or set it to false to explicitly disable suppression for specific cases. + The default value could change in the future, the flag should be only set to false if suppression for the client + should never be enabled. + + + + Initializes a new instance of the class. + + Namespace of the client class, such as Azure.Storage or Azure.AppConfiguration. + Azure Resource Provider namespace of the Azure service SDK is primarily used for. + The customer provided client diagnostics options. + Flag controlling if + created by this for client method calls should be suppressed when called + by other Azure SDK client methods. It's recommended to set it to true for new clients, use default (null) for old clients + for backward compatibility reasons, or set it to false to explicitly disable suppression for specific cases. + The default value could change in the future, the flag should be only set to false if suppression for the client + should never be enabled. + + + + Adds a link to the scope. This must be called before has been called for the DiagnosticScope. + + The traceparent for the link. + The tracestate for the link. + Optional attributes to associate with the link. + + + + Sets the trace context for the current scope. + + The trace parent to set for the current scope. + The trace state to set for the current scope. + + + + Marks the scope as failed. + + The exception to associate with the failed scope. + + + + Marks the scope as failed with low-cardinality error.type attribute. + + Error code to associate with the failed scope. + + + + Until Activity Source is no longer considered experimental. + + + + + Creates diagnostic scope factory. + + The namespace which is used as a prefix for all ActivitySources created by the factory and the name of DiagnosticSource (when used). + Azure resource provider namespace. + Flag indicating if distributed tracing is enabled. + Flag indicating if nested Azure SDK activities describing public API calls should be suppressed. + Whether instrumentation is considered stable. When false, experimental feature flag controls if tracing is enabled. + + + + Both and are defined as public structs so that foreach can use duck typing + to call and avoid heap memory allocation. + Please don't delete this method and don't make these types private. + + + + + + Contains information related to the processing of the as it traverses the pipeline. + + + + + The time that the pipeline processing started for the message. + + + + + The retry number for the request. For the initial request, the value is 0. + + + + + Initializes a new instance of . + + The message that the context is attached to. + + + + A Stream that wraps another stream and allows reading lines. + The data is buffered in memory. + + + + + Creates a new stream. + + The stream to wrap. + Size of buffer in bytes. + + + + Creates a new stream. + + The stream to wrap. + Size of buffer in bytes. + ArrayPool for the buffer. + + + + The currently buffered data. + + + + When overridden in a derived class, gets a value indicating whether the current stream supports reading. if the stream supports reading; otherwise, . + + + When overridden in a derived class, gets a value indicating whether the current stream supports seeking. if the stream supports seeking; otherwise, . + + + Gets a value that determines whether the current stream can time out.A value that determines whether the current stream can time out. + + + When overridden in a derived class, gets a value indicating whether the current stream supports writing. if the stream supports writing; otherwise, . + + + When overridden in a derived class, gets the length in bytes of the stream.A long value representing the length of the stream in bytes.A class derived from does not support seeking.Methods were called after the stream was closed. + + + When overridden in a derived class, gets or sets the position within the current stream.The current position within the stream.An I/O error occurs.The stream does not support seeking.Methods were called after the stream was closed. + + + When overridden in a derived class, sets the position within the current stream.A byte offset relative to the parameter.A value of type indicating the reference point used to obtain the new position.The new position within the current stream.An I/O error occurs.The stream does not support seeking, such as if the stream is constructed from a pipe or console output.Methods were called after the stream was closed. + + + When overridden in a derived class, sets the length of the current stream.The desired length of the current stream in bytes.An I/O error occurs.The stream does not support both writing and seeking, such as if the stream is constructed from a pipe or console output.Methods were called after the stream was closed. + + + Releases the unmanaged resources used by the and optionally releases the managed resources. to release both managed and unmanaged resources; to release only unmanaged resources. + + + When overridden in a derived class, clears all buffers for this stream and causes any buffered data to be written to the underlying device.An I/O error occurs. + + + Asynchronously clears all buffers for this stream, causes any buffered data to be written to the underlying device, and monitors cancellation requests.The token to monitor for cancellation requests. The default value is .A task that represents the asynchronous flush operation.The stream has been disposed. + + + When overridden in a derived class, writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written.An array of bytes. This method copies bytes from to the current stream.The zero-based byte offset in at which to begin copying bytes to the current stream.The number of bytes to be written to the current stream.The sum of and is greater than the buffer length. is . or is negative.An I/O error occurred, such as the specified file cannot be found.The stream does not support writing. was called after the stream was closed. + + + Asynchronously writes a sequence of bytes to the current stream, advances the current position within this stream by the number of bytes written, and monitors cancellation requests.The buffer to write data from.The zero-based byte offset in from which to begin copying bytes to the stream.The maximum number of bytes to write.The token to monitor for cancellation requests. The default value is .A task that represents the asynchronous write operation. is . or is negative.The sum of and is larger than the buffer length.The stream does not support writing.The stream has been disposed.The stream is currently in use by a previous write operation. + + + When overridden in a derived class, reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read.An array of bytes. When this method returns, the buffer contains the specified byte array with the values between and ( + - 1) replaced by the bytes read from the current source.The zero-based byte offset in at which to begin storing the data read from the current stream.The maximum number of bytes to be read from the current stream.The total number of bytes read into the buffer. This can be less than the number of bytes requested if that many bytes are not currently available, or zero (0) if the end of the stream has been reached.The sum of and is larger than the buffer length. is . or is negative.An I/O error occurs.The stream does not support reading.Methods were called after the stream was closed. + + + Asynchronously reads a sequence of bytes from the current stream, advances the position within the stream by the number of bytes read, and monitors cancellation requests.The buffer to write the data into.The byte offset in at which to begin writing data from the stream.The maximum number of bytes to read.The token to monitor for cancellation requests. The default value is .A task that represents the asynchronous read operation. The value of the parameter contains the total number of bytes read into the buffer. The result value can be less than the number of bytes requested if the number of bytes currently available is less than the requested number, or it can be 0 (zero) if the end of the stream has been reached. is . or is negative.The sum of and is larger than the buffer length.The stream does not support reading.The stream has been disposed.The stream is currently in use by a previous read operation. + + + + Ensures that the buffer is not empty. + + Returns true if the buffer is not empty; false otherwise. + + + + Ensures that the buffer is not empty. + + Cancellation token. + Returns true if the buffer is not empty; false otherwise. + + + + Ensures that a minimum amount of buffered data is available. + + Minimum amount of buffered data. + Returns true if the minimum amount of buffered data is available; false otherwise. + + + + Ensures that a minimum amount of buffered data is available. + + Minimum amount of buffered data. + Cancellation token. + Returns true if the minimum amount of buffered data is available; false otherwise. + + + + Reads a line. A line is defined as a sequence of characters followed by + a carriage return immediately followed by a line feed. The resulting string does not + contain the terminating carriage return and line feed. + + Maximum allowed line length. + A line. + + + + Reads a line. A line is defined as a sequence of characters followed by + a carriage return immediately followed by a line feed. The resulting string does not + contain the terminating carriage return and line feed. + + Maximum allowed line length. + Cancellation token. + A line. + + + + The limit for the number of headers to read. + + + + + The combined size limit for headers per multipart section. + + + + + The optional limit for the total response body length. + + + + + Sets whether the reader will always expect CRLF around boundaries. + + + + + + Creates a stream that reads until it reaches the given boundary pattern. + + The . + The boundary pattern to use. + + + + Creates a stream that reads until it reaches the given boundary pattern. + + The . + The boundary pattern to use. + The ArrayPool pool to use for temporary byte arrays. + + + + Gets or sets the body. + + + + + The position where the body starts in the total multipart body. + This may not be available if the total multipart body is not seekable. + + + + + Provides support for creating and parsing multipart/mixed content. + This is implementing a couple of layered standards as mentioned at + https://docs.microsoft.com/en-us/rest/api/storageservices/blob-batch and + https://docs.microsoft.com/en-us/rest/api/storageservices/performing-entity-group-transactions + including https://www.odata.org/documentation/odata-version-3-0/batch-processing/ + and https://www.ietf.org/rfc/rfc2046.txt. + + + + + Parse a multipart/mixed response body into several responses. + + The response containing multi-part content. + Controls whether the parser will expect all multi-part boundaries to use CRLF line breaks. This should be true unless more permissive line break parsing is required. + + Optional to propagate notifications + that the operation should be cancelled. + + The parsed s. + + + + Parse a multipart/mixed response body into several responses. + + The response containing multi-part content. + Controls whether the parser will expect all multi-part boundaries to use CRLF line breaks. This should be true unless more permissive line break parsing is required. + + Optional to propagate notifications + that the operation should be cancelled. + + The parsed s. + + + + Parse a multipart/mixed response body into several responses. + + The response containing multi-part content. + Controls whether the parser will expect all multi-part boundaries to use CRLF line breaks. This should be true unless more permissive line break parsing is required. + + Whether to invoke the operation asynchronously. + + + Optional to propagate notifications + that the operation should be cancelled. + + The parsed s. + + + + Read the next line of text. + + The stream to read from. + + Whether to invoke the operation asynchronously. + + + Optional to propagate notifications + that the operation should be cancelled. + + The next line of text. + + + + Read the next multipart section. + + The reader to parse with. + + Whether to invoke the operation asynchronously. + + + Optional to propagate notifications + that the operation should be cancelled. + + The next multipart section. + + + + Controls how error response content should be parsed. + + + + + Parses the error details from the provided . + + The to parse. The will already be buffered. + The describing the parsed error details. + Data to be applied to the property. + true if successful, otherwise false. + + + + Represents an HTTP request. Use or to create an instance. + + + + + Gets or sets and instance of used to create the Uri. + + + + + Gets or sets the request HTTP method. + + + + + Gets or sets the request content. + + + + + Adds a header value to the header collection. + + The header name. + The header value. + + + + Returns header value if the header is stored in the collection. If the header has multiple values they are going to be joined with a comma. + + The header name. + The reference to populate with value. + true if the specified header is stored in the collection, otherwise false. + + + + Returns header values if the header is stored in the collection. + + The header name. + The reference to populate with values. + true if the specified header is stored in the collection, otherwise false. + + + + Returns true if the header is stored in the collection. + + The header name. + true if the specified header is stored in the collection, otherwise false. + + + + Sets a header value the header collection. + + The header name. + The header value. + + + + Removes the header from the collection. + + The header name. + + + + Returns an iterator enumerating in the request. + + The enumerating in the response. + + + + Gets or sets the client request id that was sent to the server as x-ms-client-request-id headers. + + + + + Gets the response HTTP headers. + + + + + Frees resources held by this instance. + + + + + Represents the content sent as part of the . + + + + + Creates an instance of that wraps a . + + The to use. + An instance of that wraps a . + + + + Creates an instance of that wraps an of . + + The of to use. + An instance of that wraps provided of . + + + + Creates an instance of that wraps an of . + + The of to use. + The offset in to start from. + The length of the segment to use. + An instance of that wraps provided of . + + + + Creates an instance of that wraps a . + + The to use. + An instance of that wraps a . + + + + Creates an instance of that wraps a . + + The to use. + An instance of that wraps a . + + + + Creates a RequestContent representing the UTF-8 Encoding of the given / + + The to use. + An instance of that wraps a . + The returned content represents the UTF-8 Encoding of the given string. + + + + Creates an instance of that wraps a . + + The to use. + An instance of that wraps a . + + + + Creates an instance of that wraps a . + + The to use. + An instance of that wraps a . + + + + Creates an instance of that wraps a serialized version of an object. + + The to serialize. + An instance of that wraps a serialized version of the object. + + + + Creates an instance of that wraps a serialized version of an object. + + The to serialize. + The to use to convert the object to bytes. If not provided, is used. + An instance of that wraps a serialized version of the object. + + + + Creates an instance of that wraps a serialized version of an object. + + The to serialize. + The format to use for property names in the serialized content. + The format to use for DateTime and DateTimeOffset values in the serialized content. + An instance of that wraps a serialized version of the object. + + + + Creates a RequestContent representing the UTF-8 Encoding of the given . + + The to use. + + + + Creates a RequestContent that wraps a . + + The to use. + + + + Creates a RequestContent that wraps a . + + The to use. + + + + Writes contents of this object to an instance of . + + The stream to write to. + To cancellation token to use. + + + + Writes contents of this object to an instance of . + + The stream to write to. + To cancellation token to use. + + + + Attempts to compute the length of the underlying content, if available. + + The length of the underlying data. + + + + Frees resources held by the object. + + + + + Headers to be sent as part of the . + + + + + Returns an enumerator that iterates through the . + + A for the . + + + + Returns an enumerator that iterates through the . + + A for the . + + + + Adds the instance to the collection. + + The header to add. + + + + Adds the header to the collection. If a header with this name already exist adds an additional value to the header values. + + The header name. + The header value. + + + + Returns header value if the headers is stored in the collection. If the header has multiple values they are going to be joined with a comma. + + The header name. + The reference to populate with value. + true if the specified header is stored in the collection, otherwise false. + + + + Returns header values if the header is stored in the collection. + + The header name. + The reference to populate with values. + true if the specified header is stored in the collection, otherwise false. + + + + Returns true if the headers is stored in the collection. + + The header name. + true if the specified header is stored in the collection, otherwise false. + + + + Sets the header value name. If a header with this name already exist replaces it's value. + + The header name. + The header value. + + + + Removes the header from the collection. + + The header name. + true if the header existed, otherwise false. + + + + Represents HTTP methods sent as part of a . + + + + + Gets the HTTP method. + + + + + Gets instance for GET method. + + + + + Gets instance for POST method. + + + + + Gets instance for PUT method. + + + + + Gets instance for PATCH method. + + + + + Gets instance for DELETE method. + + + + + Gets instance for HEAD method. + + + + + Gets instance for OPTIONS method. + + + + + Gets instance for TRACE method. + + + + + Creates an instance of with provided method. Method must be all uppercase. + Prefer if can be one of predefined method names. + + The method to use. + + + + Parses string to it's representation. + + The method string to parse. + + + Indicates whether the current object is equal to another object of the same type.An object to compare with this object. if the current object is equal to the parameter; otherwise, . + + + Indicates whether this instance and a specified object are equal.The object to compare with the current instance. if and this instance are the same type and represent the same value; otherwise, . + + + Returns the hash code for this instance.A 32-bit signed integer that is the hash code for this instance. + + + + Compares equality of two instances. + + The method to compare. + The method to compare against. + true if values are equal for and , otherwise false. + + + + Compares inequality of two instances. + + The method to compare. + The method to compare against. + true if values are equal for and , otherwise false. + + + Returns the fully qualified type name of this instance.The fully qualified type name. + + + + Provides a custom builder for Uniform Resource Identifiers (URIs) and modifies URIs for the class. + + + + + Gets or sets the scheme name of the URI. + + + + + Gets or sets the Domain Name System (DNS) host name or IP address of a server. + + + + + Gets or sets the port number of the URI. + + + + + Gets or sets any query information included in the URI. + + + + + Gets or sets the path to the resource referenced by the URI. + + + + Gets whether or not this instance of has a path. + + + Gets whether or not this instance of has a query. + + + + Gets the path and query string to the resource referenced by the URI. + + + + + Replaces values inside this instance with values provided in the parameter. + + The instance to get values from. + + + + Gets the instance constructed by the specified instance. + + + A that contains the URI constructed by the . + + + + + Appends a query parameter adding separator if required. Escapes the value. + + The name of parameter. + The value of parameter. + + + + Appends a query parameter adding separator if required. + + The name of parameter. + The value of parameter. + Whether value should be escaped. + + + + Appends a query parameter adding separator if required. + + The name of parameter. + The value of parameter. + Whether value should be escaped. + + + + Escapes and appends the to without adding path separator. + Path segments and any other characters will be escaped, e.g. ":" will be escaped as "%3a". + + The value to escape and append. + + + + Optionally escapes and appends the to without adding path separator. + If is true, path segments and any other characters will be escaped, e.g. ":" will be escaped as "%3a". + + The value to optionally escape and append. + Whether value should be escaped. + + + + Optionally escapes and appends the to without adding path separator. + If is true, path segments and any other characters will be escaped, e.g. ":" will be escaped as "%3a". + + The value to optionally escape and append. + Whether value should be escaped. + + + + Returns a string representation of this . + + A string representation of this . + + + + An Azure Resource Manager resource identifier. + + + + + The root of the resource hierarchy. + + + + + Initializes a new instance of the class. + + The id string to create the ResourceIdentifier from. + + For more information on ResourceIdentifier format see the following. + ResourceGroup level id https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/template-functions-resource#resourceid + Subscription level id https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/template-functions-resource#subscriptionresourceid + Tenant level id https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/template-functions-resource#tenantresourceid + Extension id https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/template-functions-resource#extensionresourceid + + + + + The resource type of the resource. + + + + + The name of the resource. + + + + + The immediate parent containing this resource. + + + + + Determines whether this resource is in the same namespace as its parent. + + + + + Gets the subscription id if it exists otherwise null. + + + + + Gets the provider namespace if it exists otherwise null. + + + + + Gets the location if it exists otherwise null. + + + + + The name of the resource group if it exists otherwise null. + + + + + Return the string representation of the resource identifier. + + The string representation of this resource identifier. + + + + Determine if this resource identifier is equivalent to the given resource identifier. + + The resource identifier to compare to. + True if the resource identifiers are equivalent, otherwise false. + + + + Compre this resource identifier to the given resource identifier. + + The resource identifier to compare to. + 0 if the resource identifiers are equivalent, less than 0 if this resource identifier + should be ordered before the given resource identifier, greater than 0 if this resource identifier + should be ordered after the given resource identifier. + + + Determines whether the specified object is equal to the current object.The object to compare with the current object. if the specified object is equal to the current object; otherwise, . + + + Serves as the default hash function.A hash code for the current object. + + + + Convert a resource identifier to a string. + + The resource identifier. + + + + Operator overloading for '=='. + + Left ResourceIdentifier object to compare. + Right ResourceIdentifier object to compare. + + + + + Operator overloading for '!='. + + Left ResourceIdentifier object to compare. + Right ResourceIdentifier object to compare. + + + + + Compares one with another instance. + + The object on the left side of the operator. + The object on the right side of the operator. + True if the left object is less than the right. + + + + Compares one with another instance. + + The object on the left side of the operator. + The object on the right side of the operator. + True if the left object is less than or equal to the right. + + + + Compares one with another instance. + + The object on the left side of the operator. + The object on the right side of the operator. + True if the left object is greater than the right. + + + + Compares one with another instance. + + The object on the left side of the operator. + The object on the right side of the operator. + True if the left object is greater than or equal to the right. + + + + Converts the string representation of a ResourceIdentifier to the equivalent structure. + + The id string to convert. + A class that contains the value that was parsed. + when resourceId is not a valid format. + when resourceId is null. + when resourceId is empty. + + + + Converts the string representation of a ResourceIdentifier to the equivalent structure. + + The id string to convert. + + The structure that will contain the parsed value. + If the method returns true result contains a valid ResourceIdentifier. + If the method returns false, result will be null. + + True if the parse operation was successful; otherwise, false. + + + + Add a provider resource to an existing resource id. + + The provider namespace of the added resource. + The simple type of the added resource, without slashes (/), + for example, 'virtualMachines'. + The name of the resource. + The combined resource id. + + + + Add a provider resource to an existing resource id. + + The simple type of the child resource, without slashes (/), + for example, 'subnets'. + The name of the resource. + The combined resource id. + + + + Structure representing a resource type. + + See https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/resource-providers-and-types for more info. + + + + Initializes a new instance of the class. + + The resource type string to convert. + + + + Gets the last resource type name. + + + + + Gets the resource type Namespace. + + + + + Gets the resource Type. + + + + + Implicit operator for initializing a instance from a string. + + String to be converted into a object. + + + + Implicit operator for initializing a string from a . + + to be converted into a string. + + + + Compares two objects. + + First object. + Second object. + True if they are equal, otherwise False. + + + + Compares two objects. + + First object. + Second object. + False if they are equal, otherwise True. + + + + Compares this instance with another object and determines if they are equals. + + object to compare. + True if they are equals, otherwise false. + + + Returns the fully qualified type name of this instance.The fully qualified type name. + + + Indicates whether this instance and a specified object are equal.The object to compare with the current instance. if and this instance are the same type and represent the same value; otherwise, . + + + Returns the hash code for this instance.A 32-bit signed integer that is the hash code for this instance. + + + + A type that analyzes an HTTP message and determines if the response it holds + should be treated as an error response. A classifier of this type may use information + from the request, the response, or other message property to decide + whether and how to classify the message. + + This type's TryClassify method allows chaining together handlers before + applying default classifier logic. + If a handler in the chain returns false from TryClassify, + the next handler will be tried, and so on. The first handler that returns true + will determine whether the response is an error. + + + + + Populates the isError out parameter to indicate whether or not + to classify the message's response as an error. + + The message to classify. + Whether the message's response should be considered an error. + true if the handler had a classification for this message; false otherwise. + + + + A type that analyzes HTTP responses and exceptions and determines if they should be retried, + and/or analyzes responses and determines if they should be treated as error responses. + + + + + Specifies if the request contained in the should be retried. + + + + + Specifies if the operation that caused the exception should be retried. + + + + + Specifies if the operation that caused the exception should be retried taking the into consideration. + + + + + Specifies if the response contained in the is not successful. + + + + + Headers received as part of the . + + + + + Gets the parsed value of "Date" or "x-ms-date" header. + + + + + Gets the value of "Content-Type" header. + + + + + Gets the parsed value of "Content-Length" header. + + + + + Gets the parsed value of "Content-Length" header as a long. + + + + + Gets the parsed value of "ETag" header. + + + + + Gets the value of "x-ms-request-id" header. + + + + + Gets the value of the retry after header, one of "Retry-After", "retry-after-ms", or "x-ms-retry-after-ms". + + + + + Returns an enumerator that iterates through the . + + A for the . + + + + Returns an enumerator that iterates through the . + + A for the . + + + + Returns header value if the header is stored in the collection. If header has multiple values they are going to be joined with a comma. + + The header name. + The reference to populate with value. + true if the specified header is stored in the collection, otherwise false. + + + + Returns header values if the header is stored in the collection. + + The header name. + The reference to populate with values. + true if the specified header is stored in the collection, otherwise false. + + + + Returns true if the header is stored in the collection. + + The header name. + true if the specified header is stored in the collection, otherwise false. + + + + The type of approach to apply when calculating the delay + between retry attempts. + + + + + Retry attempts happen at fixed intervals; each delay is a consistent duration. + + + + + Retry attempts will delay based on a backoff strategy, where each attempt will increase + the duration that it waits before retrying. + + + + + The set of options that can be specified to influence how + retry attempts are made, and a failure is eligible to be retried. + + + + + Creates a new instance with default values. + + + + + Initializes the newly created with the same settings as the specified . + + The to model the newly created instance on. + + + + The maximum number of retry attempts before giving up. + + + + + The delay between retry attempts for a fixed approach or the delay + on which to base calculations for a backoff-based approach. + If the service provides a Retry-After response header, the next retry will be delayed by the duration specified by the header value. + + + + + The maximum permissible delay between retry attempts when the service does not provide a Retry-After response header. + If the service provides a Retry-After response header, the next retry will be delayed by the duration specified by the header value. + + + + + The approach to use for calculating retry delays. + + + + + The timeout applied to an individual network operations. + + + + + This type inherits from ResponseClassifier and is designed to work + efficiently with classifier customizations specified in . + + + + + Creates a new instance of + + The status codes that this classifier will consider + not to be errors. + + + + Specifies if the response contained in the is not successful. + + + + + Represents a method that can handle an event and execute either + synchronously or asynchronously. + + + Type of the event arguments deriving or equal to + . + + + An instance that contains the event + data. + + + A task that represents the handler. You can return + if implementing a sync handler. + Please see the Remarks section for more details. + + + + If you're using the synchronous, blocking methods of a client (i.e., + methods without an Async suffix), they will raise events that require + handlers to execute synchronously as well. Even though the signature + of your handler returns a , you should write regular + sync code that blocks and return when + finished. + + var client = new AlarmClient(); + client.Ring += (SyncAsyncEventArgs e) => + { + Console.WriteLine("Wake up!"); + return Task.CompletedTask; + }; + + client.Snooze(); + + If you need to call an async method from a synchronous event handler, + you have two options. You can use to + queue a task for execution on the ThreadPool without waiting on it to + complete. This "fire and forget" approach may not run before your + handler finishes executing. Be sure to understand + + exception handling in the Task Parallel Library to avoid + unhandled exceptions tearing down your process. If you absolutely need + the async method to execute before returning from your handler, you can + call myAsyncTask.GetAwaiter().GetResult(). Please be aware + this may cause ThreadPool starvation. See the sync-over-async note in + Remarks for more details. + + + If you're using the asynchronous, non-blocking methods of a client + (i.e., methods with an Async suffix), they will raise events that + expect handlers to execute asynchronously. + + var client = new AlarmClient(); + client.Ring += async (SyncAsyncEventArgs e) => + { + await Console.Out.WriteLineAsync("Wake up!"); + }; + + await client.SnoozeAsync(); + + + + The same event can be raised from both synchronous and asynchronous + code paths depending on whether you're calling sync or async methods + on a client. If you write an async handler but raise it from a sync + method, the handler will be doing sync-over-async and may cause + ThreadPool starvation. See the note in Remarks for more details. You + should use the + property to check how the event is being raised and implement your + handler accordingly. Here's an example handler that's safe to invoke + from both sync and async code paths. + + var client = new AlarmClient(); + client.Ring += async (SyncAsyncEventArgs e) => + { + if (e.IsRunningSynchronously) + { + Console.WriteLine("Wake up!"); + } + else + { + await Console.Out.WriteLineAsync("Wake up!"); + } + }; + + client.Snooze(); // sync call that blocks + await client.SnoozeAsync(); // async call that doesn't block + + + + + + + Any exceptions thrown by an event handler will be wrapped in a single + AggregateException and thrown from the code that raised the event. You + can check the property + to see the original exceptions thrown by your event handlers. + AggregateException also provides + + a number of helpful methods like + and + to make + complex failures easier to work with. + + var client = new AlarmClient(); + client.Ring += (SyncAsyncEventArgs e) => + throw new InvalidOperationException("Alarm unplugged."); + + try + { + client.Snooze(); + } + catch (AggregateException ex) + { + ex.Handle(e => e is InvalidOperationException); + Console.WriteLine("Please switch to your backup alarm."); + } + + + + + Most Azure client libraries for .NET offer both synchronous and + asynchronous methods for calling Azure services. You can distinguish + the asynchronous methods by their Async suffix. For example, + BlobClient.Download and BlobClient.DownloadAsync make the same + underlying REST call and only differ in whether they block. We + recommend using our async methods for new applications, but there are + perfectly valid cases for using sync methods as well. These dual + method invocation semantics allow for flexibility, but require a little + extra care when writing event handlers. + + + The SyncAsyncEventHandler is a delegate used by events in Azure client + libraries to represent an event handler that can be invoked from either + sync or async code paths. It takes event arguments deriving from + that contain important information for + writing your event handler: + + + + is a cancellation + token related to the original operation that raised the event. It's + important for your handler to pass this token along to any asynchronous + or long-running synchronous operations that take a token so cancellation + (via something like + new CancellationTokenSource(TimeSpan.FromSeconds(10)).Token, + for example) will correctly propagate. + + + + + is a flag indicating + whether your handler was invoked synchronously or asynchronously. If + you're calling sync methods on your client, you should use sync methods + to implement your event handler (you can return + ). If you're calling async methods on + your client, you should use async methods where possible to implement + your event handler. If you're not in control of how the client will be + used or want to write safer code, you should check the + property and call + either sync or async methods as directed. + + + + + Most events will customize the event data by deriving from + and including details about what + triggered the event or providing options to react. Many times this + will include a reference to the client that raised the event in case + you need it for additional processing. + + + + + + When an event using SyncAsyncEventHandler is raised, the handlers will + be executed sequentially to avoid introducing any unintended + parallelism. The event handlers will finish before returning control + to the code path raising the event. This means blocking for events + raised synchronously and waiting for the returned to + complete for events raised asynchronously. + + + Any exceptions thrown from a handler will be wrapped in a single + . If one handler throws an exception, + it will not prevent other handlers from running. This is also relevant + for cancellation because all handlers are still raised if cancellation + occurs. You should both pass + to asynchronous or long-running synchronous operations and consider + calling + in compute heavy handlers. + + + A + distributed tracing span is wrapped around your handlers using + the event name so you can see how long your handlers took to run, + whether they made other calls to Azure services, and details about any + exceptions that were thrown. + + + Executing asynchronous code from a sync code path is commonly referred + to as sync-over-async because you're getting sync behavior but still + invoking all the async machinery. See + + Diagnosing.NET Core ThreadPool Starvation with PerfView + for a detailed explanation of how that can cause serious performance + problems. We recommend you use the + flag to avoid + ThreadPool starvation. + + + + + + Details about the package to be included in UserAgent telemetry + + + + + The package type represented by this instance. + + + + + The value of the applicationId used to initialize this instance. + + + + + Initialize an instance of by extracting the name and version information from the associated with the . + + The used to generate the package name and version information for the value. + An optional value to be prepended to the . + This value overrides the behavior of the property for the it is applied to. + + + + Sets the package name and version portion of the UserAgent telemetry value for the context of the + Note: If is false, this value is never used. + + The that will use this . + + + + The properly formatted UserAgent string based on this instance. + + + + + Represents a credential capable of providing an OAuth token. + + + + + Gets an for the specified set of scopes. + + The with authentication information. + The to use. + A valid . + Caching and management of the lifespan for the is considered the responsibility of the caller: each call should request a fresh token being requested. + + + + Gets an for the specified set of scopes. + + The with authentication information. + The to use. + A valid . + Caching and management of the lifespan for the is considered the responsibility of the caller: each call should request a fresh token being requested. + + + + Contains the details of an authentication token request. + + + + + Creates a new TokenRequest with the specified scopes. + + The scopes required for the token. + The of the request requiring a token for authentication, if applicable. + + + + Creates a new TokenRequest with the specified scopes. + + The scopes required for the token. + The of the request requiring a token for authentication, if applicable. + Additional claims to be included in the token. + + + + Creates a new TokenRequest with the specified scopes. + + The scopes required for the token. + The of the request requiring a token for authentication, if applicable. + Additional claims to be included in the token. + The tenantId to be included in the token request. + + + + Creates a new TokenRequest with the specified scopes. + + The scopes required for the token. + The of the request requiring a token for authentication, if applicable. + Additional claims to be included in the token. + The tenantId to be included in the token request. + Indicates whether to enable Continuous Access Evaluation (CAE) for the requested token. + + + + The scopes required for the token. + + + + + The of the request requiring a token for authentication, if applicable. + + + + + Additional claims to be included in the token. See https://openid.net/specs/openid-connect-core-1_0-final.html#ClaimsParameter for more information on format and content. + + + + + The tenantId to be included in the token request. + + + + + Indicates whether to enable Continuous Access Evaluation (CAE) for the requested token. + + + If a resource API implements CAE and your application declares it can handle CAE, your app receives CAE tokens for that resource. + For this reason, if you declare your app CAE ready, your application must handle the CAE claim challenge for all resource APIs that accept Microsoft Identity access tokens. + If you don't handle CAE responses in these API calls, your app could end up in a loop retrying an API call with a token that is still in the returned lifespan of the token but has been revoked due to CAE. + + + + + Helper for interacting with AppConfig settings and their related Environment variable settings. + + + + + Determines if either an AppContext switch or its corresponding Environment Variable is set + + Name of the AppContext switch. + Name of the Environment variable. + If the AppContext switch has been set, returns the value of the switch. + If the AppContext switch has not been set, returns the value of the environment variable. + False if neither is set. + + + + + Primitive that combines async lock and value cache + + + + + + Method that either returns cached value or acquire a lock. + If one caller has acquired a lock, other callers will be waiting for the lock to be released. + If value is set, lock is released and all waiters get that value. + If value isn't set, the next waiter in the queue will get the lock. + + + + + + + + Returns true if lock contains the cached value. Otherwise false. + + + + + Returns cached value if it was set when lock has been created. Throws exception otherwise. + + Value isn't set. + + + + Set value to the cache and to all the waiters. + + + Value is set already. + + + + Argument validation. + + + This class should be shared via source using Azure.Core.props and contain only common argument validation. + It is declared partial so that you can use the same familiar class name but extend it with project-specific validation. + To extend the functionality of this class, just declare your own partial class with project-specific methods. + + + Be sure to document exceptions thrown by these methods on your public methods. + + + + + + Throws if is null. + + The value to validate. + The name of the parameter. + is null. + + + + Throws if has not been initialized. + + The value to validate. + The name of the parameter. + has not been initialized. + + + + Throws if is null or an empty collection. + + The value to validate. + The name of the parameter. + is an empty collection. + is null. + + + + Throws if is null or an empty string. + + The value to validate. + The name of the parameter. + is an empty string. + is null. + + + + Throws if is null, an empty string, or consists only of white-space characters. + + The value to validate. + The name of the parameter. + is an empty string or consists only of white-space characters. + is null. + + + + Throws if is the default value for type . + + The type of structure to validate which implements . + The value to validate. + The name of the parameter. + is the default value for type . + + + + Throws if is less than the or greater than the . + + The type of to validate which implements . + The value to validate. + The minimum value to compare. + The maximum value to compare. + The name of the parameter. + + + + Throws if is not defined for . + + The type to validate against. + The value to validate. + The name of the parameter. + is not defined for . + + + + Throws if has not been initialized; otherwise, returns . + + The value to validate. + The name of the parameter. + has not been initialized. + + + + Throws if is null or an empty string; otherwise, returns . + + The value to validate. + The name of the parameter. + is an empty string. + is null. + + + + Throws if is not null. + + The value to validate. + The name of the parameter. + The error message. + is not null. + + + + A helper class for parsing Authorization challenge headers. + + + + + Parses the specified parameter from a challenge hearder found in the specified . + + The to parse. + The challenge scheme containing the . For example: "Bearer" + The parameter key name containing the value to return. + The value of the parameter name specified in if it is found in the specified . + + + + Iterates through the challenge schemes present in a challenge header. + + + The header value which will be sliced to remove the first parsed . + + The parsed challenge scheme. + + true if a challenge scheme was successfully parsed. + The value of should be passed to to parse the challenge parameters if true. + + + + + Iterates through a challenge header value after being parsed by . + + The header value after being parsed by . + The parsed challenge parameter key. + The parsed challenge parameter value. + The challenge parameter key / value pair separator. The default is '='. + + true if the next available challenge parameter was successfully parsed. + false if there are no more parameters for the current challenge scheme or an additional challenge scheme was encountered in the . + The value of should be passed again to to attempt to parse any additional challenge schemes if false. + + + + + Initializes a new instance of the class. + + The used to authenticate requests. + The name of the key header used for the credential. + The prefix to apply before the credential key. For example, a prefix of "SharedAccessKey" would result in + a value of "SharedAccessKey {credential.Key}" being stamped on the request header with header key of . + + + + Method is invoked before the request is sent. + + The containing the request. + + + + Initializes a new instance of the class. + + The used to authenticate requests. + + + + Method is invoked before the request is sent. + + The containing the request. + + + Converts a Base64URL encoded string to a string. + The Base64Url encoded string containing UTF8 bytes for a string. + The string represented by the Base64URL encoded string. + + + Encode a byte array as a Base64URL encoded string. + Raw byte input buffer. + The bytes, encoded as a Base64URL string. + + + Converts a Base64URL encoded string to a string. + The Base64Url encoded string containing UTF8 bytes for a string. + The string represented by the Base64URL encoded string. + + + Encode a string as a Base64URL encoded string. + String input buffer. + The UTF8 bytes for the string, encoded as a Base64URL string. + + + + An implementation for manipulating headers on . + + + + + Initializes an instance of + + + + + Adds a header value to the header collection. + + The header name. + The header value. + + + + Returns header value if the header is stored in the collection. If the header has multiple values they are going to be joined with a comma. + + The header name. + The reference to populate with value. + true if the specified header is stored in the collection, otherwise false. + + + + Returns header values if the header is stored in the collection. + + The header name. + The reference to populate with values. + true if the specified header is stored in the collection, otherwise false. + + + + Returns true if the header is stored in the collection. + + The header name. + true if the specified header is stored in the collection, otherwise false. + + + + Sets a header value the header collection. + + The header name. + The header value. + + + + Removes the header from the collection. + + The header name. + + + + Returns an iterator enumerating in the request. + + The enumerating in the response. + + + + A delay strategy that uses a fixed delay with no jitter applied. This is used by data plane LROs. + + + + + Copied from https://github.com/dotnet/corefx/blob/master/src/Common/src/CoreLib/System/HashCode.cs. + + + + + An attribute class indicating to AutoRest which constructor to use for initialization. + + + + + A Response that can be constructed in memory without being tied to a + live request. + + + + + Gets the HTTP status code. + + + + + Gets the HTTP reason phrase. + + + + + Gets the contents of HTTP response. Returns null for responses without content. + + + + + Gets the client request id that was sent to the server as x-ms-client-request-id headers. + + + + + Set the Response . + + The Response status. + + + + Set the Response . + + The Response ReasonPhrase. + + + + Set the Response . + + The response content. + + + + Set the Response . + + The response content. + + + + Dispose the Response. + + + + + Set the value of a response header (and overwrite any existing + values). + + The name of the response header. + The response header value. + + + + Set the values of a response header (and overwrite any existing + values). + + The name of the response header. + The response header values. + + + + Add a response header value. + + The name of the response header. + The response header value. + + + + Returns true if the header is stored in the collection. + + The header name. + true if the specified header is stored in the collection, otherwise false. + + + + Returns an iterator for enumerating in the response. + + The enumerating in the response. + + + + Returns header value if the header is stored in the collection. If header has multiple values they are going to be joined with a comma. + + The header name. + The reference to populate with value. + true if the specified header is stored in the collection, otherwise false. + + + + Returns header values if the header is stored in the collection. + + The header name. + The reference to populate with values. + true if the specified header is stored in the collection, otherwise false. + + + + The last HTTP response received from the server. Its update already handled in calls to "UpdateStatus" and + "WaitForCompletionAsync", but custom methods not supported by this class, such as "CancelOperation", + must update it as well. + Usage example: + + public Response GetRawResponse() => _operationInternal.RawResponse; + + + + + + + Returns true if the long-running operation has completed. + Usage example: + + public bool HasCompleted => _operationInternal.HasCompleted; + + + + + + + Calls the server to get the latest status of the long-running operation, handling diagnostic scope creation for distributed + tracing. The default scope name can be changed with the "operationTypeName" parameter passed to the constructor. + Usage example: + + public async ValueTask<Response> UpdateStatusAsync(CancellationToken cancellationToken) => + await _operationInternal.UpdateStatusAsync(cancellationToken).ConfigureAwait(false); + + + + A controlling the request lifetime. + The HTTP response received from the server. + + After a successful run, this method will update and might update . + + Thrown if there's been any issues during the connection, or if the operation has completed with failures. + + + + Calls the server to get the latest status of the long-running operation, handling diagnostic scope creation for distributed + tracing. The default scope name can be changed with the "operationTypeName" parameter passed to the constructor. + Usage example: + + public Response UpdateStatus(CancellationToken cancellationToken) => _operationInternal.UpdateStatus(cancellationToken); + + + + A controlling the request lifetime. + The HTTP response received from the server. + + After a successful run, this method will update and might update . + + Thrown if there's been any issues during the connection, or if the operation has completed with failures. + + + + Periodically calls until the long-running operation completes. + After each service call, a retry-after header may be returned to communicate that there is no reason to poll + for status change until the specified time has passed. The maximum of the retry after value and the fallback strategy + is then used as the wait interval. + Headers supported are: "Retry-After", "retry-after-ms", and "x-ms-retry-after-ms", + Usage example: + + public async ValueTask<Response<T>> WaitForCompletionAsync(CancellationToken cancellationToken) => + await _operationInternal.WaitForCompletionAsync(cancellationToken).ConfigureAwait(false); + + + + A controlling the request lifetime. + The last HTTP response received from the server, including the final result of the long-running operation. + Thrown if there's been any issues during the connection, or if the operation has completed with failures. + + + + Periodically calls until the long-running operation completes. The interval + between calls is defined by the parameter , but it can change based on information returned + from the server. After each service call, a retry-after header may be returned to communicate that there is no reason to poll + for status change until the specified time has passed. In this case, the maximum value between the + parameter and the retry-after header is chosen as the wait interval. Headers supported are: "Retry-After", "retry-after-ms", + and "x-ms-retry-after-ms". + Usage example: + + public async ValueTask<Response<T>> WaitForCompletionAsync(TimeSpan pollingInterval, CancellationToken cancellationToken) => + await _operationInternal.WaitForCompletionAsync(pollingInterval, cancellationToken).ConfigureAwait(false); + + + + The interval between status requests to the server. + A controlling the request lifetime. + The last HTTP response received from the server, including the final result of the long-running operation. + Thrown if there's been any issues during the connection, or if the operation has completed with failures. + + + + Periodically calls until the long-running operation completes. + After each service call, a retry-after header may be returned to communicate that there is no reason to poll + for status change until the specified time has passed. The maximum of the retry after value and the fallback strategy + is then used as the wait interval. + Headers supported are: "Retry-After", "retry-after-ms", and "x-ms-retry-after-ms", + and "x-ms-retry-after-ms". + Usage example: + + public async ValueTask<Response<T>> WaitForCompletionAsync(TimeSpan pollingInterval, CancellationToken cancellationToken) => + await _operationInternal.WaitForCompletionAsync(pollingInterval, cancellationToken).ConfigureAwait(false); + + + + A controlling the request lifetime. + The last HTTP response received from the server, including the final result of the long-running operation. + Thrown if there's been any issues during the connection, or if the operation has completed with failures. + + + + Periodically calls until the long-running operation completes. The interval + between calls is defined by the parameter , but it can change based on information returned + from the server. After each service call, a retry-after header may be returned to communicate that there is no reason to poll + for status change until the specified time has passed. In this case, the maximum value between the + parameter and the retry-after header is chosen as the wait interval. Headers supported are: "Retry-After", "retry-after-ms", + and "x-ms-retry-after-ms". + Usage example: + + public async ValueTask<Response<T>> WaitForCompletionAsync(TimeSpan pollingInterval, CancellationToken cancellationToken) => + await _operationInternal.WaitForCompletionAsync(pollingInterval, cancellationToken).ConfigureAwait(false); + + + + The interval between status requests to the server. + A controlling the request lifetime. + The last HTTP response received from the server, including the final result of the long-running operation. + Thrown if there's been any issues during the connection, or if the operation has completed with failures. + + + + A helper class used to build long-running operation instances. In order to use this helper: + + Make sure your LRO implements the interface. + Add a private field to your LRO, and instantiate it during construction. + Delegate method calls to the implementations. + + Supported members: + + + + + + , used for + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class in a final successful state. + + The final value of . + + + + Initializes a new instance of the class in a final failed state. + + The final value of . + The exception that will be thrown by UpdateStatusAsync. + + + + Initializes a new instance of the class. + + The long-running operation making use of this class. Passing "this" is expected. + Used for diagnostic scope and exception creation. This is expected to be the instance created during the construction of your main client. + + The initial value of . Usually, long-running operation objects can be instantiated in two ways: + + + When calling a client's "Start<OperationName>" method, a service call is made to start the operation, and an instance is returned. + In this case, the response received from this service call can be passed here. + + + When a user instantiates an directly using a public constructor, there's no previous service call. In this case, passing null is expected. + + + + + The type name of the long-running operation making use of this class. Used when creating diagnostic scopes. If left null, the type name will be inferred based on the + parameter . + + The attributes to use during diagnostic scope creation. + The delay strategy to use. Default is . + + + + An interface used by for making service calls and updating state. It's expected that + your long-running operation classes implement this interface. + + + + + Calls the service and updates the state of the long-running operation. Properties directly handled by the + class, such as + don't need to be updated. Operation-specific properties, such as "CreateOn" or "LastModified", + must be manually updated by the operation implementing this method. + Usage example: + + async ValueTask<OperationState> IOperation.UpdateStateAsync(bool async, CancellationToken cancellationToken)
+ {
+ Response<R> response = async ? <async service call> : <sync service call>;
+ if (<operation succeeded>) return OperationState.Success(response.GetRawResponse(), <parse response>);
+ if (<operation failed>) return OperationState.Failure(response.GetRawResponse());
+ return OperationState.Pending(response.GetRawResponse());
+ } +
+
+
+ true if the call should be executed asynchronously. Otherwise, false. + A controlling the request lifetime. + + A structure indicating the current operation state. The structure must be instantiated by one of + its static methods: + + Use when the operation has completed successfully. + Use when the operation has completed with failures. + Use when the operation has not completed yet. + + +
+ + + A helper structure passed to to indicate the current operation state. This structure must be + instantiated by one of its static methods, depending on the operation state: + + Use when the operation has completed successfully. + Use when the operation has completed with failures. + Use when the operation has not completed yet. + + + + + + Instantiates an indicating the operation has completed successfully. + + The HTTP response obtained during the status update. + A new instance. + Thrown if is null. + + + + Instantiates an indicating the operation has completed with failures. + + The HTTP response obtained during the status update. + + The exception to throw from UpdateStatus because of the operation failure. If left null, + a default exception is created based on the parameter. + + A new instance. + Thrown if is null. + + + + Instantiates an indicating the operation has not completed yet. + + The HTTP response obtained during the status update. + A new instance. + Thrown if is null. + + + + A helper class used to build long-running operation instances. In order to use this helper: + + Make sure your LRO implements the interface. + Add a private field to your LRO, and instantiate it during construction. + Delegate method calls to the implementations. + + Supported members: + + + + + + + + + + + + , used for + + + + + + + + + + + + + + + + The final result of the long-running operation. Must match the type used in . + + + + Initializes a new instance of the class in a final successful state. + + The final value of . + The final result of the long-running operation. + + + + Initializes a new instance of the class in a final failed state. + + The final value of . + The exception that will be thrown by UpdateStatusAsync. + + + + Initializes a new instance of the class. + + The long-running operation making use of this class. Passing "this" is expected. + Used for diagnostic scope and exception creation. This is expected to be the instance created during the construction of your main client. + + The initial value of . Usually, long-running operation objects can be instantiated in two ways: + + + When calling a client's "Start<OperationName>" method, a service call is made to start the operation, and an instance is returned. + In this case, the response received from this service call can be passed here. + + + When a user instantiates an directly using a public constructor, there's no previous service call. In this case, passing null is expected. + + + + + The type name of the long-running operation making use of this class. Used when creating diagnostic scopes. If left null, the type name will be inferred based on the + parameter . + + The attributes to use during diagnostic scope creation. + The delay strategy when Retry-After header is not present. When it is present, the longer of the two delays will be used. + Default is . + + + + Returns true if the long-running operation completed successfully and has produced a final result. + Usage example: + + public bool HasValue => _operationInternal.HasValue; + + + + + + + The final result of the long-running operation. + Usage example: + + public T Value => _operationInternal.Value; + + + + Thrown when the operation has not completed yet. + Thrown when the operation has completed with failures. + + + + Periodically calls until the long-running operation completes. + After each service call, a retry-after header may be returned to communicate that there is no reason to poll + for status change until the specified time has passed. + Headers supported are: "Retry-After", "retry-after-ms", and "x-ms-retry-after-ms", + Usage example: + + public async ValueTask<Response<T>> WaitForCompletionAsync(CancellationToken cancellationToken) => + await _operationInternal.WaitForCompletionAsync(cancellationToken).ConfigureAwait(false); + + + + A controlling the request lifetime. + The last HTTP response received from the server, including the final result of the long-running operation. + Thrown if there's been any issues during the connection, or if the operation has completed with failures. + + + + Periodically calls until the long-running operation completes. The interval + between calls is defined by the parameter , but it can change based on information returned + from the server. After each service call, a retry-after header may be returned to communicate that there is no reason to poll + for status change until the specified time has passed. In this case, the maximum value between the + parameter and the retry-after header is chosen as the wait interval. Headers supported are: "Retry-After", "retry-after-ms", + and "x-ms-retry-after-ms". + Usage example: + + public async ValueTask<Response<T>> WaitForCompletionAsync(TimeSpan pollingInterval, CancellationToken cancellationToken) => + await _operationInternal.WaitForCompletionAsync(pollingInterval, cancellationToken).ConfigureAwait(false); + + + + The interval between status requests to the server. + A controlling the request lifetime. + The last HTTP response received from the server, including the final result of the long-running operation. + Thrown if there's been any issues during the connection, or if the operation has completed with failures. + + + + Periodically calls until the long-running operation completes. + After each service call, a retry-after header may be returned to communicate that there is no reason to poll + for status change until the specified time has passed. + Headers supported are: "Retry-After", "retry-after-ms", and "x-ms-retry-after-ms", + Usage example: + + public async ValueTask<Response<T>> WaitForCompletionAsync(CancellationToken cancellationToken) => + await _operationInternal.WaitForCompletionAsync(cancellationToken).ConfigureAwait(false); + + + + A controlling the request lifetime. + The last HTTP response received from the server, including the final result of the long-running operation. + Thrown if there's been any issues during the connection, or if the operation has completed with failures. + + + + Periodically calls until the long-running operation completes. The interval + between calls is defined by the , which takes into account any retry-after header that is returned + from the server. + Usage example: + + public async ValueTask<Response<T>> WaitForCompletionAsync(CancellationToken cancellationToken) => + await _operationInternal.WaitForCompletionAsync(cancellationToken).ConfigureAwait(false); + + + + The interval between status requests to the server. + A controlling the request lifetime. + The last HTTP response received from the server, including the final result of the long-running operation. + Thrown if there's been any issues during the connection, or if the operation has completed with failures. + + + + An interface used by for making service calls and updating state. It's expected that + your long-running operation classes implement this interface. + + The final result of the long-running operation. Must match the type used in . + + + + Calls the service and updates the state of the long-running operation. Properties directly handled by the + class, such as or + , don't need to be updated. Operation-specific properties, such + as "CreateOn" or "LastModified", must be manually updated by the operation implementing this + method. + Usage example: + + async ValueTask<OperationState<T>> IOperation<T>.UpdateStateAsync(bool async, CancellationToken cancellationToken)
+ {
+ Response<R> response = async ? <async service call> : <sync service call>;
+ if (<operation succeeded>) return OperationState<T>.Success(response.GetRawResponse(), <parse response>);
+ if (<operation failed>) return OperationState<T>.Failure(response.GetRawResponse());
+ return OperationState<T>.Pending(response.GetRawResponse());
+ } +
+
+
+ true if the call should be executed asynchronously. Otherwise, false. + A controlling the request lifetime. + + A structure indicating the current operation state. The structure must be instantiated by one of + its static methods: + + Use when the operation has completed successfully. + Use when the operation has completed with failures. + Use when the operation has not completed yet. + + +
+ + + A helper structure passed to to indicate the current operation state. This structure must be + instantiated by one of its static methods, depending on the operation state: + + Use when the operation has completed successfully. + Use when the operation has completed with failures. + Use when the operation has not completed yet. + + + The final result of the long-running operation. Must match the type used in . + + + + Instantiates an indicating the operation has completed successfully. + + The HTTP response obtained during the status update. + The final result of the long-running operation. + A new instance. + Thrown if or is null. + + + + Instantiates an indicating the operation has completed with failures. + + The HTTP response obtained during the status update. + + The exception to throw from UpdateStatus because of the operation failure. The same exception will be thrown when + is called. If left null, a default exception is created based on the + parameter. + + A new instance. + Thrown if is null. + + + + Instantiates an indicating the operation has not completed yet. + + The HTTP response obtained during the status update. + A new instance. + Thrown if is null. + + + + A delay strategy that uses a fixed sequence of delays with no jitter applied. This is used by management LROs. + + + + + An attribute class indicating to AutoRest which constructor to use for serialization. + + + + Determines whether to wrap an in a cancellation exception. + The exception. + The that may have triggered the exception. + true if the exception should be wrapped; otherwise, false. + + + Creates a cancellation exception. + The inner exception to wrap. May be null. + The that triggered the cancellation. + The custom message to use. + The cancellation exception. + + + Throws a cancellation exception if cancellation has been requested via . + The token to check for a cancellation request. + + + + Implementation of LRO polling logic. + + + + + An attribute class indicating to Autorest a reference type which can replace a type in target SDKs. + + + + + Constructs a new instance of . + + + + + Constructs a new instance of . + + Whether to allow replacement to occur when the type to be replaced + contains extra properties as compared to the reference type attributed with that it will + be replaced with. Defaults to false. + An array of internal properties to include for the reference type when evaluating whether type + replacement should occur. When evaluating a type for replacement with a reference type, all internal properties are considered on the + type to be replaced. Thus this parameter can be used to specify internal properties to allow replacement to occur on a type with internal + properties. + + + + A collection of values that may take multiple service requests to + iterate over. + + The type of the values. + + Example of enumerating an AsyncPageable using the async foreach loop: + + // call a service method, which returns AsyncPageable<T> + AsyncPageable<SecretProperties> allSecretProperties = client.GetPropertiesOfSecretsAsync(); + + await foreach (SecretProperties secretProperties in allSecretProperties) + { + Console.WriteLine(secretProperties.Name); + } + + or using a while loop: + + // call a service method, which returns AsyncPageable<T> + AsyncPageable<SecretProperties> allSecretProperties = client.GetPropertiesOfSecretsAsync(); + + IAsyncEnumerator<SecretProperties> enumerator = allSecretProperties.GetAsyncEnumerator(); + try + { + while (await enumerator.MoveNextAsync()) + { + SecretProperties secretProperties = enumerator.Current; + Console.WriteLine(secretProperties.Name); + } + } + finally + { + await enumerator.DisposeAsync(); + } + + + + + + Gets a used for requests made while + enumerating asynchronously. + + + + + Initializes a new instance of the + class for mocking. + + + + + Initializes a new instance of the + class. + + + The used for requests made while + enumerating asynchronously. + + + + + Enumerate the values a at a time. This may + make multiple service requests. + + + A continuation token indicating where to resume paging or null to + begin paging from the beginning. + + + The number of items per that should be requested (from + service operations that support it). It's not guaranteed that the value will be respected. + + + An async sequence of s. + + + + + Enumerate the values in the collection asynchronously. This may + make multiple service requests. + + + The used for requests made while + enumerating asynchronously. + + An async sequence of values. + + + + Creates an instance of using the provided pages. + + The pages of values to list as part of net new pageable instance. + A new instance of + + + + Creates a string representation of an . + + + A string representation of an . + + + + + Check if two instances are equal. + + The instance to compare to. + True if they're equal, false otherwise. + + + + Get a hash code for the . + + Hash code for the . + + + + Key credential used to authenticate to an Azure Service. + It provides the ability to update the key without creating a new client. + + + + + Key used to authenticate to an Azure service. + + + + + Initializes a new instance of the class. + + Key to use to authenticate with the Azure service. + + Thrown when the is null. + + + Thrown when the is empty. + + + + + Updates the service key. + This is intended to be used when you've regenerated your service key + and want to update long lived clients. + + Key to authenticate the service against. + + Thrown when the is null. + + + Thrown when the is empty. + + + + + Credential allowing a named key to be used for authenticating to an Azure Service. + It provides the ability to update the key without creating a new client. + + + + + Name of the key used to authenticate to an Azure service. + + + + + Initializes a new instance of the class. + + The name of the . + The key to use for authenticating with the Azure service. + + Thrown when the or is null. + + + Thrown when the or is empty. + + + + + Updates the named key. This is intended to be used when you've regenerated your + service key and want to update long-lived clients. + + The name of the . + The key to use for authenticating with the Azure service. + + Thrown when the or is null. + + + Thrown when the or is empty. + + + + + Allows deconstruction of the credential into the associated name and key as an atomic operation. + + The name of the . + The key to use for authenticating with the Azure service. + + + var credential = new AzureNamedKeyCredential("SomeName", "SomeKey"); + + (string name, string key) = credential; + + + Deconstructing tuples and other types + + + + Shared access signature credential used to authenticate to an Azure Service. + It provides the ability to update the shared access signature without creating a new client. + + + + + Shared access signature used to authenticate to an Azure service. + + + + + Initializes a new instance of the class. + + Shared access signature to use to authenticate with the Azure service. + + Thrown when the is null. + + + Thrown when the is empty. + + + + + Updates the shared access signature. + This is intended to be used when you've regenerated your shared access signature + and want to update long lived clients. + + Shared access signature to authenticate the service against. + + Thrown when the is null. + + + Thrown when the is empty. + + + + + ErrorOptions controls the behavior of an operation when an unexpected response status code is received. + + + + + Indicates that an operation should throw an exception when the response indicates a failure. + + + + + Indicates that an operation should not throw an exception when the response indicates a failure. + Callers should check the Response.IsError property instead of catching exceptions. + + + + + Represents an HTTP ETag. + + + + + Creates a new instance of . + + The string value of the ETag. + + + + Compares equality of two instances. + + The to compare. + The to compare to. + true if values of both ETags are equal, otherwise false. + + + + Compares inequality of two instances. + + The to compare. + The to compare to. + true if values of both ETags are not equal, otherwise false. + + + + Instance of with the value. * + + + + Indicates whether the current object is equal to another object of the same type.An object to compare with this object. if the current object is equal to the parameter; otherwise, . + + + + Indicates whether the value of current is equal to the provided string. + An object to compare with this object. + true if the current object is equal to the other parameter; otherwise, false. + + + Indicates whether this instance and a specified object are equal.The object to compare with the current instance. if and this instance are the same type and represent the same value; otherwise, . + + + Returns the hash code for this instance.A 32-bit signed integer that is the hash code for this instance. + + + + + + The string representation of this . + + + + Returns the string representation of the . + + A format string. Valid values are "G" for standard format and "H" for header format. + The formatted string representation of this . This includes outer quotes and the W/ prefix in the case of weak ETags. + + + ETag tag = ETag.Parse("\"sometag\""); + Console.WriteLine(tag.ToString("G")); + // Displays: sometag + Console.WriteLine(tag.ToString("H")); + // Displays: "sometag" + + + + + + Represents authentication information in Authorization, ProxyAuthorization, + WWW-Authenticate, and Proxy-Authenticate header values. + + + + + Gets the scheme to use for authorization. + + + + + Gets the credentials containing the authentication information of the + user agent for the resource being requested. + + + + + Initializes a new instance of the class. + + + The scheme to use for authorization. + + + The credentials containing the authentication information of the + user agent for the resource being requested. + + + + + Returns a string that represents the current object. + + + + + Defines a range of bytes within an HTTP resource, starting at an offset and + ending at offset+count-1 inclusively. + + + + + Gets the starting offset of the . + + + + + Gets the size of the . null means the range + extends all the way to the end. + + + + + Creates an instance of HttpRange. + + The starting offset of the . Defaults to 0. + The length of the range. null means to the end. + + + + Converts the specified range to a string. + + String representation of the range. + For more information, see https://docs.microsoft.com/en-us/rest/api/storageservices/specifying-the-range-header-for-file-service-operations. + + + + Check if two instances are equal. + + The first instance to compare. + The second instance to compare. + True if they're equal, false otherwise. + + + + Check if two instances are not equal. + + The first instance to compare. + The second instance to compare. + True if they're not equal, false otherwise. + + + + Check if two instances are equal. + + The instance to compare to. + True if they're equal, false otherwise. + + + + Check if two instances are equal. + + The instance to compare to. + True if they're equal, false otherwise. + + + + Get a hash code for the . + + Hash code for the . + + + + Represents a JSON Patch document. + + + + + Initializes a new instance of that uses as the default serializer. + + + + + Initializes a new instance of + + The instance to use for value serialization. + + + + Initializes a new instance of + + The binary representation of JSON Patch document. + + + + Initializes a new instance of using an existing UTF8-encoded JSON Patch document. + + The binary representation of JSON Patch document. + The instance to use for value serialization. + + + + Initializes a new instance of using an existing UTF8-encoded JSON Patch document. + + The path to apply the addition to. + The raw JSON value to add to the path. + + + + Appends an "add" operation to this . + + The path to apply the addition to. + The value to add to the path. + + + + Appends a "replace" operation to this . + + The path to replace. + The raw JSON value to replace with. + + + + Appends a "replace" operation to this . + + The path to replace. + The value to replace with. + + + + Appends a "copy" operation to this . + + The path to copy from. + The path to copy to. + + + + Appends a "move" operation to this . + + The path to move from. + The path to move to. + + + + Appends a "remove" operation to this . + + The path to remove. + + + + Appends a "test" operation to this . + + The path to test. + The raw JSON value to test against. + + + + Appends a "test" operation to this . + + The path to test. + The value to replace with. + + + + Returns a UTF8-encoded representation of this instance. + + The UTF8-encoded JSON. + + + + Returns a formatted JSON string representation of this . + + A formatted JSON string representation of this . + + + + Specifies HTTP options for conditional requests. + + + + + Optionally limit requests to resources that have a matching ETag. + + + + + Optionally limit requests to resources that do not match the ETag. + + + + Represents a CloudEvent conforming to the 1.0 schema. This type has built-in serialization using System.Text.Json. + + + Initializes a new instance of the class. + Identifies the context in which an event happened. The combination of id and source must be unique for each distinct event. + Type of event related to the originating occurrence. For example, "Contoso.Items.ItemReceived". + Event data specific to the event type. + The type to use when serializing the data. + If not specified, will be used on . + + or was null. + + + + Initializes a new instance of the class using binary event data. + Identifies the context in which an event happened. The combination of id and source must be unique for each distinct event. + Type of event related to the originating occurrence. For example, "Contoso.Items.ItemReceived". + Binary event data specific to the event type. + Content type of the payload. A content type different from "application/json" should be specified if payload is not JSON. + The format that the data of a should be sent in + when using the JSON envelope format. + + or was null. + + + + + Gets or sets the event data as . Using BinaryData, + one can deserialize the payload into rich data, or access the raw JSON data using . + + + + + Gets or sets an identifier for the event. The combination of and must be unique for each distinct event. + If not explicitly set, this will default to a . + + + + Gets or sets the context in which an event happened. The combination of + and must be unique for each distinct event. + + + Gets or sets the type of event related to the originating occurrence. + + + + The spec version of the cloud event. + + + + + Gets or sets the time (in UTC) the event was generated, in RFC3339 format. + If not explicitly set, this will default to the time that the event is constructed. + + + + Gets or sets the schema that the data adheres to. + + + Gets or sets the content type of the data. + + + Gets or sets the subject of the event in the context of the event producer (identified by source). + + + + Gets extension attributes that can be additionally added to the CloudEvent envelope. + + + + + Given JSON-encoded events, parses the event envelope and returns an array of CloudEvents. + If the specified event is not valid JSON an exception is thrown. + By default, if the event is missing required properties, an exception is thrown though this can be relaxed + by setting the parameter. + + An instance of containing the JSON for one or more CloudEvents. + Set to to allow missing or invalid properties to still parse into a CloudEvent. + In particular, by setting strict to , the source, id, specversion and type properties are no longer required + to be present in the JSON. Additionally, the casing requirements of the extension attribute names are relaxed. + + An array of instances. + + + + Given a single JSON-encoded event, parses the event envelope and returns a . + If the specified event is not valid JSON an exception is thrown. + By default, if the event is missing required properties, an exception is thrown though this can be relaxed + by setting the parameter. + + An instance of containing the JSON for the CloudEvent. + Set to to allow missing or invalid properties to still parse into a CloudEvent. + In particular, by setting strict to , the source, id, specversion and type properties are no longer required + to be present in the JSON. Additionally, the casing requirements of the extension attribute names are relaxed. + + A . + + contained multiple events. should be used instead. + + + + + A custom converter that attributes the type. + This allows System.Text.Json to serialize and deserialize CloudEvents by default. + + + + + Gets or sets the serializer to use for the data portion of the . If not specified, + JsonObjectSerializer is used. + + The reader.The type to convert.An object that specifies serialization options to use.The converted value. + + + Writes a specified value as JSON.The writer to write to.The value to convert to JSON.An object that specifies serialization options to use. + + + + Specifies the format that the data of a should be sent in + when using the JSON envelope format for a . + . + + + + + Indicates the should be serialized as binary data. + This data will be included as a Base64 encoded string in the "data_base64" + field of the JSON payload. + + + + + Indicates the should be serialized as JSON. + The data will be included in the "data" field of the JSON payload. + + + + + The content of a message containing a content type along with the message data. + + + + + Gets or sets the data. + + + + + Gets or sets the content type. + + + + + For inheriting types that have a string ContentType property, this property should be overriden to forward + the property into the inheriting type's string property, and vice versa. + For types that have a ContentType property, it is not necessary to override this member. + + + + + Gets whether the message is read only or not. This + can be overriden by inheriting classes to specify whether or + not the message can be modified. + + + + + Represents a result of Azure operation. + + The type of returned value. + + + + Gets a value indicating whether the current instance has a valid value of its underlying type. + + + + + Gets the value returned by the service. Accessing this property will throw if is false. + + + + + Returns the HTTP response returned by the service. + + The HTTP response returned by the service. + + + Determines whether the specified object is equal to the current object.The object to compare with the current object. if the specified object is equal to the current object; otherwise, . + + + Serves as the default hash function.A hash code for the current object. + + + Returns a string that represents the current object.A string that represents the current object. + + + + Represents a long-running operation. + + + + + Gets an ID representing the operation that can be used to poll for + the status of the long-running operation. + + + + + The last HTTP response received from the server. + + + The last response returned from the server during the lifecycle of this instance. + An instance of sends requests to a server in UpdateStatusAsync, UpdateStatus, and other methods. + Responses from these requests can be accessed using GetRawResponse. + + + + + Returns true if the long-running operation completed. + + + + + Calls the server to get updated status of the long-running operation. + + A used for the service call. + The HTTP response received from the server. + + This operation will update the value returned from GetRawResponse and might update HasCompleted. + + + + + Calls the server to get updated status of the long-running operation. + + A used for the service call. + The HTTP response received from the server. + + This operation will update the value returned from GetRawResponse and might update HasCompleted. + + + + + Periodically calls the server till the long-running operation completes. + + A used for the periodical service calls. + The last HTTP response received from the server. + + This method will periodically call UpdateStatusAsync till HasCompleted is true, then return the final response of the operation. + + + + + Periodically calls the server till the long-running operation completes. + + + The interval between status requests to the server. + The interval can change based on information returned from the server. + For example, the server might communicate to the client that there is not reason to poll for status change sooner than some time. + + A used for the periodical service calls. + The last HTTP response received from the server. + + This method will periodically call UpdateStatusAsync till HasCompleted is true, then return the final response of the operation. + + + + + Periodically calls the server till the long-running operation completes. + + + The strategy to use to determine the delay between status requests to the server. If the server returns retry-after header, + the delay used will be the maximum specified by the strategy and the header value. + + A used for the periodical service calls. + The last HTTP response received from the server. + + This method will periodically call UpdateStatusAsync till HasCompleted is true, then return the final response of the operation. + + + + + Periodically calls the server till the long-running operation completes. + + A used for the periodical service calls. + The last HTTP response received from the server. + + This method will periodically call UpdateStatusAsync till HasCompleted is true, then return the final response of the operation. + + + + + Periodically calls the server till the long-running operation completes. + + + The interval between status requests to the server. + The interval can change based on information returned from the server. + For example, the server might communicate to the client that there is not reason to poll for status change sooner than some time. + + A used for the periodical service calls. + The last HTTP response received from the server. + + This method will periodically call UpdateStatusAsync till HasCompleted is true, then return the final response of the operation. + + + + + Periodically calls the server till the long-running operation completes. + + + The strategy to use to determine the delay between status requests to the server. If the server returns retry-after header, + the delay used will be the maximum specified by the strategy and the header value. + + A used for the periodical service calls. + The last HTTP response received from the server. + + This method will periodically call UpdateStatusAsync till HasCompleted is true, then return the final response of the operation. + + + + Determines whether the specified object is equal to the current object.The object to compare with the current object. if the specified object is equal to the current object; otherwise, . + + + Serves as the default hash function.A hash code for the current object. + + + Returns a string that represents the current object.A string that represents the current object. + + + + Represents a long-running operation that returns a value when it completes. + + The final result of the long-running operation. + + + + Final result of the long-running operation. + + + This property can be accessed only after the operation completes successfully (HasValue is true). + + + + + Returns true if the long-running operation completed successfully and has produced final result (accessible by Value property). + + + + + Periodically calls the server till the long-running operation completes. + + A used for the periodical service calls. + The last HTTP response received from the server. + + This method will periodically call UpdateStatusAsync till HasCompleted is true, then return the final result of the operation. + + + + + Periodically calls the server till the long-running operation completes. + + + The interval between status requests to the server. + The interval can change based on information returned from the server. + For example, the server might communicate to the client that there is not reason to poll for status change sooner than some time. + + A used for the periodical service calls. + The last HTTP response received from the server. + + This method will periodically call UpdateStatusAsync till HasCompleted is true, then return the final result of the operation. + + + + + Periodically calls the server till the long-running operation completes. + + A used for the periodical service calls. + The last HTTP response received from the server. + + This method will periodically call UpdateStatusAsync till HasCompleted is true, then return the final result of the operation. + + + + + Periodically calls the server till the long-running operation completes. + + + The interval between status requests to the server. + The interval can change based on information returned from the server. + For example, the server might communicate to the client that there is not reason to poll for status change sooner than some time. + + A used for the periodical service calls. + The last HTTP response received from the server. + + This method will periodically call UpdateStatusAsync till HasCompleted is true, then return the final result of the operation. + + + + + Periodically calls the server till the long-running operation completes. + + + The strategy to use to determine the delay between status requests to the server. If the server returns retry-after header, + the delay used will be the maximum specified by the strategy and the header value. + + A used for the periodical service calls. + The last HTTP response received from the server. + + This method will periodically call UpdateStatusAsync till HasCompleted is true, then return the final result of the operation. + + + + + Periodically calls the server till the long-running operation completes. + + + The strategy to use to determine the delay between status requests to the server. If the server returns retry-after header, + the delay used will be the maximum specified by the strategy and the header value. + + A used for the periodical service calls. + The last HTTP response received from the server. + + This method will periodically call UpdateStatusAsync till HasCompleted is true, then return the final result of the operation. + + + + + Periodically calls the server till the long-running operation completes. + + A used for the periodical service calls. + The last HTTP response received from the server. + + This method will periodically call UpdateStatusAsync till HasCompleted is true, then return the final response of the operation. + + + + + Periodically calls the server till the long-running operation completes. + + + The interval between status requests to the server. + The interval can change based on information returned from the server. + For example, the server might communicate to the client that there is not reason to poll for status change sooner than some time. + + A used for the periodical service calls. + The last HTTP response received from the server. + + This method will periodically call UpdateStatusAsync till HasCompleted is true, then return the final response of the operation. + + + + + A single of values from a request that may return + zero or more s of values. + + The type of values. + + + + Gets the values in this . + + + + + Gets the continuation token used to request the next + . The continuation token may be null or + empty when there are no more pages. + + + + + Gets the that provided this + . + + + + + Creates a new . + + + The values in this . + + + The continuation token used to request the next . + + + The that provided this . + + + + + Creates a string representation of an . + + + A string representation of an . + + + + + Check if two instances are equal. + + The instance to compare to. + True if they're equal, false otherwise. + + + + Get a hash code for the . + + Hash code for the . + + + + A collection of values that may take multiple service requests to + iterate over. + + The type of the values. + + + + Gets a used for requests made while + enumerating asynchronously. + + + + + Initializes a new instance of the + class for mocking. + + + + + Initializes a new instance of the + class. + + + The used for requests made while + enumerating asynchronously. + + + + + Enumerate the values a at a time. This may + make multiple service requests. + + + A continuation token indicating where to resume paging or null to + begin paging from the beginning. + + + The number of items per that should be requested (from + service operations that support it). It's not guaranteed that the value will be respected. + + + An async sequence of s. + + + + + Creates a string representation of an . + + + A string representation of an . + + + + + Enumerate the values in the collection. This may make multiple service requests. + + + + + Creates an instance of using the provided pages. + + The pages of values to list as part of net new pageable instance. + A new instance of + + + + Check if two instances are equal. + + The instance to compare to. + True if they're equal, false otherwise. + + + + Get a hash code for the . + + Hash code for the . + + + + Represents a pageable long-running operation that exposes the results + in either synchronous or asynchronous format. + + + + + + Gets the final result of the long-running operation asynchronously. + + + This property can be accessed only after the operation completes successfully (HasValue is true). + + + + + Gets the final result of the long-running operation asynchronously. + + A used for the periodical service calls. + The final result of the long-running operation asynchronously. + + Operation must complete successfully (HasValue is true) for it to provide values. + + + + + Gets the final result of the long-running operation synchronously. + + A used for the periodical service calls. + The final result of the long-running operation synchronously. + + Operation must complete successfully (HasValue is true) for it to provide values. + + + + + Specifies HTTP options for conditional requests based on modification time. + + + + + Optionally limit requests to resources that have only been + modified since this point in time. + + + + + Optionally limit requests to resources that have remained + unmodified. + + + + + Options that can be used to control the behavior of a request sent by a client. + + + + + Controls under what conditions the operation raises an exception if the underlying response indicates a failure. + + + + + The token to check for cancellation. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class using the given . + + + + + + Adds an into the pipeline for the duration of this request. + The position of policy in the pipeline is controlled by parameter. + If you want the policy to execute once per client request use + otherwise use to run the policy for every retry. + + The instance to be added to the pipeline. + The position of the policy in the pipeline. + + + + Customizes the for this operation to change + the default classification behavior so that it considers + the passed-in status code to be an error or not, as specified. + Status code classifiers are applied after all classifiers. + This is useful for cases where you'd like to prevent specific response status codes from being treated as errors by + logging and distributed tracing policies -- that is, if a response is not classified as an error, it will not appear as an error in + logs or distributed traces. + + The status code to customize classification for. + Whether the passed-in status code should be classified as an error. + statusCode is not between 100 and 599 (inclusive). + If this method is called after the has been + used in a method call. + + + + Customizes the for this operation. + Adding a changes the classification + behavior so that it first tries to classify a response via the handler, and if + the handler doesn't have an opinion, it instead uses the default classifier. + Handlers are applied in order so the most recently added takes precedence. + This is useful for cases where you'd like to prevent specific response status codes from being treated as errors by + logging and distributed tracing policies -- that is, if a response is not classified as an error, it will not appear as an error in + logs or distributed traces. + + The custom classifier. + If this method is called after the has been + used in a method call. + + + + An exception thrown when service request fails. + + + + + Gets the HTTP status code of the response. Returns. 0 if response was not received. + + + + + Gets the service specific error code if available. Please refer to the client documentation for the list of supported error codes. + + + + Initializes a new instance of the class with a specified error message. + The message that describes the error. + + + Initializes a new instance of the class with a specified error message, HTTP status code and a reference to the inner exception that is the cause of this exception. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + Initializes a new instance of the class with a specified error message and HTTP status code. + The HTTP status code, or 0 if not available. + The message that describes the error. + + + Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. + The HTTP status code, or 0 if not available. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + Initializes a new instance of the class with a specified error message, HTTP status code, error code, and a reference to the inner exception that is the cause of this exception. + The HTTP status code, or 0 if not available. + The error message that explains the reason for the exception. + The service specific error code. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + Initializes a new instance of the class + with an error message, HTTP status code, and error code obtained from the specified response. + The response to obtain error details from. + + + Initializes a new instance of the class + with an error message, HTTP status code, and error code obtained from the specified response. + The response to obtain error details from. + An inner exception to associate with the new . + + + Initializes a new instance of the class + with an error message, HTTP status code, and error code obtained from the specified response. + The response to obtain error details from. + An inner exception to associate with the new . + The parser to use to parse the response content. + + + Initializes a new instance of the class with serialized data.The that holds the serialized object data about the exception being thrown.The that contains contextual information about the source or destination. is .The class name is or is zero (0). + + + When overridden in a derived class, sets the with information about the exception.The that holds the serialized object data about the exception being thrown.The that contains contextual information about the source or destination.The parameter is a null reference ( in Visual Basic). + + + + Gets the response, if any, that led to the exception. + + + + + Represents the HTTP response from the service. + + + + + Gets the HTTP status code. + + + + + Gets the HTTP reason phrase. + + + + + Gets the contents of HTTP response. Returns null for responses without content. + + + + + Gets the client request id that was sent to the server as x-ms-client-request-id headers. + + + + + Get the HTTP response headers. + + + + + Gets the contents of HTTP response, if it is available. + + + Throws when is not a . + + + + + Frees resources held by this instance. + + + + + Indicates whether the status code of the returned response is considered + an error code. + + + + + Returns header value if the header is stored in the collection. If header has multiple values they are going to be joined with a comma. + + The header name. + The reference to populate with value. + true if the specified header is stored in the collection, otherwise false. + + + + Returns header values if the header is stored in the collection. + + The header name. + The reference to populate with values. + true if the specified header is stored in the collection, otherwise false. + + + + Returns true if the header is stored in the collection. + + The header name. + true if the specified header is stored in the collection, otherwise false. + + + + Returns an iterator for enumerating in the response. + + The enumerating in the response. + + + + Creates a new instance of with the provided value and HTTP response. + + The type of the value. + The value. + The HTTP response. + A new instance of with the provided value and HTTP response. + + + + Returns the string representation of this . + + The string representation of this + + + + Represents an error returned by an Azure Service. + + + + + Initializes a new instance of . + + The error code. + The error message. + + + + Initializes a new instance of . + + The error code. + The error message. + The raw JSON element the error was parsed from. + The inner error. + The error target. + The error details. + + + + Gets the error code. + + + + + Gets the error message. + + + + + Gets the inner error. + + + + + Gets the error target. + + + + + Gets the list of related errors. + + + + Returns a string that represents the current object.A string that represents the current object. + + + + Represents an inner error. + + + + + Gets the error code. + + + + + Gets the inner error. + + + + Returns a string that represents the current object.A string that represents the current object. + + + + Represents a result of Azure operation. + + The type of returned value. + + + + Gets a value indicating whether the current instance has a valid value of its underlying type. + + + + + Gets the value returned by the service. Accessing this property will throw if is false. + + + + + Returns the value of this object. + + The instance. + + + Determines whether the specified object is equal to the current object.The object to compare with the current object. if the specified object is equal to the current object; otherwise, . + + + Serves as the default hash function.A hash code for the current object. + + + + Extensions that can be used for serialization. + + + + + Converts the to the specified type using + the provided . + + The type that the data should be + converted to. + The instance to convert. + The serializer to use + when deserializing the data. + The to use during deserialization. + The data converted to the specified type. + + + + Converts the to the specified type using + the provided . + + The type that the data should be + converted to. + The instance to convert. + The serializer to use + when deserializing the data. + The to use during deserialization. + The data converted to the specified type. + + + + Converts the json value represented by to an object of a specific type. + + The instance to convert. + The object value of the json value. + If the object contains a primitive type such as string, int, double, bool, or null literal, it returns that type. + Otherwise, it returns either an object[] or Dictionary<string, object>. + Each value in the key value pair or list will also be converted into a primitive or another complex type recursively. + + + + + Return the content of the BinaryData as a dynamic type. Please see https://aka.ms/azsdk/net/dynamiccontent for details. + + + + + Return the content of the BinaryData as a dynamic type. Please see https://aka.ms/azsdk/net/dynamiccontent for details. + The format of property names in the JSON content. + This value indicates to the dynamic type that it can convert property names on the returned value to this format in the underlying JSON. + Please see https://aka.ms/azsdk/net/dynamiccontent#use-c-naming-conventions for details. + + The standard format specifier to pass when serializing DateTime and DateTimeOffset values in the JSON content. + To serialize to unix time, pass the value "x" and + see https://learn.microsoft.com/dotnet/standard/base-types/standard-date-and-time-format-strings#table-of-format-specifiers for other well known values. + + + + + + Return the content of the BinaryData as a dynamic type. + + + + + Provides data for + events that can be invoked either synchronously or asynchronously. + + + + + Gets a value indicating whether the event handler was invoked + synchronously or asynchronously. Please see + for more details. + + + + The same + event can be raised from both synchronous and asynchronous code + paths depending on whether you're calling sync or async methods on + a client. If you write an async handler but raise it from a sync + method, the handler will be doing sync-over-async and may cause + ThreadPool starvation. See + + Diagnosing .NET Core ThreadPool Starvation with PerfView for + a detailed explanation of how that can cause ThreadPool starvation + and serious performance problems. + + + You can use this property to check + how the event is being raised and implement your handler + accordingly. Here's an example handler that's safe to invoke from + both sync and async code paths. + + var client = new AlarmClient(); + client.Ring += async (SyncAsyncEventArgs e) => + { + if (e.IsRunningSynchronously) + { + Console.WriteLine("Wake up!"); + } + else + { + await Console.Out.WriteLineAsync("Wake up!"); + } + }; + + client.Snooze(); // sync call that blocks + await client.SnoozeAsync(); // async call that doesn't block + + + + + + + Gets a cancellation token related to the original operation that + raised the event. It's important for your handler to pass this + token along to any asynchronous or long-running synchronous + operations that take a token so cancellation (via something like + + new CancellationTokenSource(TimeSpan.FromSeconds(10)).Token + + for example) will correctly propagate. + + + + + Initializes a new instance of the + class. + + + A value indicating whether the event handler was invoked + synchronously or asynchronously. Please see + for more details. + + + A cancellation token related to the original operation that raised + the event. It's important for your handler to pass this token + along to any asynchronous or long-running synchronous operations + that take a token so cancellation will correctly propagate. The + default value is . + + + + + Indicates whether the invocation of a long running operation should return once it has + started or wait for the server operation to fully complete before returning. + + + + + Indicates the method should wait until the server operation fully completes. + + + + + Indicates the method should return once the server operation has started. + + + + Specifies that null is allowed as an input even if the corresponding type disallows it. + + + Specifies that null is disallowed as an input even if the corresponding type allows it. + + + Specifies that an output may be null even if the corresponding type disallows it. + + + Specifies that an output will not be null even if the corresponding type allows it. + + + Specifies that when a method returns , the parameter may be null even if the corresponding type disallows it. + + + Initializes the attribute with the specified return value condition. + + The return value condition. If the method returns this value, the associated parameter may be null. + + + + Gets the return value condition. + + + Specifies that when a method returns , the parameter will not be null even if the corresponding type allows it. + + + Initializes the attribute with the specified return value condition. + + The return value condition. If the method returns this value, the associated parameter will not be null. + + + + Gets the return value condition. + + + Specifies that the output will be non-null if the named parameter is non-null. + + + Initializes the attribute with the associated parameter name. + + The associated parameter name. The output will be non-null if the argument to the parameter specified is non-null. + + + + Gets the associated parameter name. + + + Applied to a method that will never return under any circumstance. + + + Specifies that the method will not return if the associated Boolean parameter is passed the specified value. + + + Initializes the attribute with the specified parameter value. + + The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to + the associated parameter matches this value. + + + + Gets the condition parameter value. + + + + Indicates that the specified method requires the ability to generate new code at runtime, + for example through . + + + This allows tools to understand which methods are unsafe to call when compiling ahead of time. + + + + + Initializes a new instance of the class + with the specified message. + + + A message that contains information about the usage of dynamic code. + + + + + Gets a message that contains information about the usage of dynamic code. + + + + + Gets or sets an optional URL that contains more information about the method, + why it requires dynamic code, and what options a consumer has to deal with it. + + + + + Indicates that the specified method requires dynamic access to code that is not referenced + statically, for example through . + + + This allows tools to understand which methods are unsafe to call when removing unreferenced + code from an application. + + + + + Initializes a new instance of the class + with the specified message. + + + A message that contains information about the usage of unreferenced code. + + + + + Gets a message that contains information about the usage of unreferenced code. + + + + + Gets or sets an optional URL that contains more information about the method, + why it requires unreferenced code, and what options a consumer has to deal with it. + + + + + Suppresses reporting of a specific rule violation, allowing multiple suppressions on a + single code artifact. + + + is different than + in that it doesn't have a + . So it is always preserved in the compiled assembly. + + + + + Initializes a new instance of the + class, specifying the category of the tool and the identifier for an analysis rule. + + The category for the attribute. + The identifier of the analysis rule the attribute applies to. + + + + Gets the category identifying the classification of the attribute. + + + The property describes the tool or tool analysis category + for which a message suppression attribute applies. + + + + + Gets the identifier of the analysis tool rule to be suppressed. + + + Concatenated together, the and + properties form a unique check identifier. + + + + + Gets or sets the scope of the code that is relevant for the attribute. + + + The Scope property is an optional argument that specifies the metadata scope for which + the attribute is relevant. + + + + + Gets or sets a fully qualified path that represents the target of the attribute. + + + The property is an optional argument identifying the analysis target + of the attribute. An example value is "System.IO.Stream.ctor():System.Void". + Because it is fully qualified, it can be long, particularly for targets such as parameters. + The analysis tool user interface should be capable of automatically formatting the parameter. + + + + + Gets or sets an optional argument expanding on exclusion criteria. + + + The property is an optional argument that specifies additional + exclusion where the literal metadata target is not sufficiently precise. For example, + the cannot be applied within a method, + and it may be desirable to suppress a violation against a statement in the method that will + give a rule violation, but not against all statements in the method. + + + + + Gets or sets the justification for suppressing the code analysis message. + + + + + States a dependency that one member has on another. + + + This can be used to inform tooling of a dependency that is otherwise not evident purely from + metadata and IL, for example a member relied on via reflection. + + + + + Initializes a new instance of the class + with the specified signature of a member on the same type as the consumer. + + The signature of the member depended on. + + + + Initializes a new instance of the class + with the specified signature of a member on a . + + The signature of the member depended on. + The containing . + + + + Initializes a new instance of the class + with the specified signature of a member on a type in an assembly. + + The signature of the member depended on. + The full name of the type containing the specified member. + The assembly name of the type containing the specified member. + + + + Initializes a new instance of the class + with the specified types of members on a . + + The types of members depended on. + The containing the specified members. + + + + Initializes a new instance of the class + with the specified types of members on a type in an assembly. + + The types of members depended on. + The full name of the type containing the specified members. + The assembly name of the type containing the specified members. + + + + Gets the signature of the member depended on. + + + Either must be a valid string or + must not equal , but not both. + + + + + Gets the which specifies the type + of members depended on. + + + Either must be a valid string or + must not equal , but not both. + + + + + Gets the containing the specified member. + + + If neither nor are specified, + the type of the consumer is assumed. + + + + + Gets the full name of the type containing the specified member. + + + If neither nor are specified, + the type of the consumer is assumed. + + + + + Gets the assembly name of the specified type. + + + is only valid when is specified. + + + + + Gets or sets the condition in which the dependency is applicable, e.g. "DEBUG". + + + + + Indicates that certain members on a specified are accessed dynamically, + for example through . + + + This allows tools to understand which members are being accessed during the execution + of a program. + + This attribute is valid on members whose type is or . + + When this attribute is applied to a location of type , the assumption is + that the string represents a fully qualified type name. + + When this attribute is applied to a class, interface, or struct, the members specified + can be accessed dynamically on instances returned from calling + on instances of that class, interface, or struct. + + If the attribute is applied to a method it's treated as a special case and it implies + the attribute should be applied to the "this" parameter of the method. As such the attribute + should only be used on instance methods of types assignable to System.Type (or string, but no methods + will use it there). + + + + + Initializes a new instance of the class + with the specified member types. + + The types of members dynamically accessed. + + + + Gets the which specifies the type + of members dynamically accessed. + + + + + Specifies the types of members that are dynamically accessed. + + This enumeration has a attribute that allows a + bitwise combination of its member values. + + + + + Specifies no members. + + + + + Specifies the default, parameterless public constructor. + + + + + Specifies all public constructors. + + + + + Specifies all non-public constructors. + + + + + Specifies all public methods. + + + + + Specifies all non-public methods. + + + + + Specifies all public fields. + + + + + Specifies all non-public fields. + + + + + Specifies all public nested types. + + + + + Specifies all non-public nested types. + + + + + Specifies all public properties. + + + + + Specifies all non-public properties. + + + + + Specifies all public events. + + + + + Specifies all non-public events. + + + + + Specifies all interfaces implemented by the type. + + + + + Specifies all members. + + + + Returns an enumerator that iterates through a collection.An object that can be used to iterate through the collection. + + + Returns an enumerator that iterates through a collection.An object that can be used to iterate through the collection. + + + Returns an enumerator that iterates through a collection.An object that can be used to iterate through the collection. + + + Returns an enumerator that iterates through the collection.An enumerator that can be used to iterate through the collection. + + + Returns an enumerator that iterates through a collection.An object that can be used to iterate through the collection. + + + Returns an enumerator that iterates through a collection.An object that can be used to iterate through the collection. + + + Returns an enumerator that iterates through the collection.An enumerator that can be used to iterate through the collection. + + + Returns an enumerator that iterates through a collection.An object that can be used to iterate through the collection. + + + Gets the element in the collection at the current position of the enumerator.The element in the collection at the current position of the enumerator. + + + Gets the element in the collection at the current position of the enumerator.The element in the collection at the current position of the enumerator. + + + Returns an enumerator that iterates through the collection.An enumerator that can be used to iterate through the collection. + +
+
diff --git a/src/Authentication/Authentication.Core/tempPackages/Azure.Identity.Broker.deps.json b/src/Authentication/Authentication.Core/tempPackages/Azure.Identity.Broker.deps.json new file mode 100644 index 00000000000..77311e339ee --- /dev/null +++ b/src/Authentication/Authentication.Core/tempPackages/Azure.Identity.Broker.deps.json @@ -0,0 +1,583 @@ +{ + "runtimeTarget": { + "name": ".NETStandard,Version=v2.0/", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETStandard,Version=v2.0": {}, + ".NETStandard,Version=v2.0/": { + "Azure.Identity.Broker/1.1.0-alpha.20240122.1": { + "dependencies": { + "Azure.ClientSdk.Analyzers": "0.1.1-dev.20231116.1", + "Azure.Identity": "1.11.0-alpha.20240122.1", + "Microsoft.Azure.AutoRest.CSharp": "3.0.0-beta.20240118.1", + "Microsoft.CodeAnalysis.BannedApiAnalyzers": "3.3.2", + "Microsoft.CodeAnalysis.NetAnalyzers": "7.0.4", + "Microsoft.DotNet.ApiCompat": "5.0.0-beta.20467.1", + "Microsoft.DotNet.GenAPI": "5.0.0-beta.19552.1", + "Microsoft.Identity.Client": "4.56.0", + "Microsoft.Identity.Client.Broker": "4.56.0", + "Microsoft.Identity.Client.Extensions.Msal": "4.56.0", + "Microsoft.SourceLink.GitHub": "1.1.1", + "NETStandard.Library": "2.0.3", + "SauceControl.InheritDoc": "1.2.0", + "StyleCop.Analyzers": "1.2.0-beta.333", + "System.Memory": "4.5.4", + "System.Security.Cryptography.ProtectedData": "4.7.0", + "System.Text.Json": "4.7.2", + "System.Threading.Tasks.Extensions": "4.5.4" + }, + "runtime": { + "Azure.Identity.Broker.dll": {} + } + }, + "Azure.ClientSdk.Analyzers/0.1.1-dev.20231116.1": {}, + "Azure.Core/1.37.0": { + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "1.1.1", + "System.Diagnostics.DiagnosticSource": "6.0.1", + "System.Memory.Data": "1.0.2", + "System.Numerics.Vectors": "4.5.0", + "System.Text.Encodings.Web": "4.7.2", + "System.Text.Json": "4.7.2", + "System.Threading.Tasks.Extensions": "4.5.4" + }, + "runtime": { + "lib/netstandard2.0/Azure.Core.dll": { + "assemblyVersion": "1.37.0.0", + "fileVersion": "1.3700.24.6103" + } + } + }, + "Microsoft.Azure.AutoRest.CSharp/3.0.0-beta.20240118.1": {}, + "Microsoft.Bcl.AsyncInterfaces/1.1.1": { + "dependencies": { + "System.Threading.Tasks.Extensions": "4.5.4" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "4.700.20.21406" + } + } + }, + "Microsoft.Build.Tasks.Git/1.1.1": {}, + "Microsoft.CodeAnalysis.BannedApiAnalyzers/3.3.2": {}, + "Microsoft.CodeAnalysis.NetAnalyzers/7.0.4": {}, + "Microsoft.CSharp/4.7.0": { + "runtime": { + "lib/netstandard2.0/Microsoft.CSharp.dll": { + "assemblyVersion": "4.0.5.0", + "fileVersion": "4.700.19.56404" + } + } + }, + "Microsoft.DotNet.ApiCompat/5.0.0-beta.20467.1": {}, + "Microsoft.DotNet.GenAPI/5.0.0-beta.19552.1": {}, + "Microsoft.Identity.Client/4.56.0": { + "dependencies": { + "Microsoft.IdentityModel.Abstractions": "6.22.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Identity.Client.dll": { + "assemblyVersion": "4.56.0.0", + "fileVersion": "4.56.0.0" + } + } + }, + "Microsoft.Identity.Client.Broker/4.56.0": { + "dependencies": { + "Microsoft.Identity.Client": "4.56.0", + "Microsoft.Identity.Client.NativeInterop": "0.13.8" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Identity.Client.Broker.dll": { + "assemblyVersion": "4.56.0.0", + "fileVersion": "4.56.0.0" + } + } + }, + "Microsoft.Identity.Client.Extensions.Msal/4.56.0": { + "dependencies": { + "Microsoft.Identity.Client": "4.56.0", + "System.IO.FileSystem.AccessControl": "5.0.0", + "System.Security.Cryptography.ProtectedData": "4.7.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Identity.Client.Extensions.Msal.dll": { + "assemblyVersion": "4.56.0.0", + "fileVersion": "4.56.0.0" + } + } + }, + "Microsoft.Identity.Client.NativeInterop/0.13.8": { + "runtime": { + "lib/netstandard2.0/Microsoft.Identity.Client.NativeInterop.dll": { + "assemblyVersion": "0.13.8.0", + "fileVersion": "0.13.8.0" + } + } + }, + "Microsoft.IdentityModel.Abstractions/6.22.0": { + "runtime": { + "lib/netstandard2.0/Microsoft.IdentityModel.Abstractions.dll": { + "assemblyVersion": "6.22.0.0", + "fileVersion": "6.22.0.30727" + } + } + }, + "Microsoft.NETCore.Platforms/1.1.0": {}, + "Microsoft.SourceLink.Common/1.1.1": {}, + "Microsoft.SourceLink.GitHub/1.1.1": { + "dependencies": { + "Microsoft.Build.Tasks.Git": "1.1.1", + "Microsoft.SourceLink.Common": "1.1.1" + } + }, + "NETStandard.Library/2.0.3": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0" + } + }, + "SauceControl.InheritDoc/1.2.0": {}, + "StyleCop.Analyzers/1.2.0-beta.333": { + "dependencies": { + "StyleCop.Analyzers.Unstable": "1.2.0.333" + } + }, + "StyleCop.Analyzers.Unstable/1.2.0.333": {}, + "System.Buffers/4.5.1": { + "runtime": { + "lib/netstandard2.0/System.Buffers.dll": { + "assemblyVersion": "4.0.3.0", + "fileVersion": "4.6.28619.1" + } + } + }, + "System.Diagnostics.DiagnosticSource/6.0.1": { + "dependencies": { + "System.Memory": "4.5.4", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + }, + "runtime": { + "lib/netstandard2.0/System.Diagnostics.DiagnosticSource.dll": { + "assemblyVersion": "6.0.0.0", + "fileVersion": "6.0.1523.11507" + } + } + }, + "System.IO.FileSystem.AccessControl/5.0.0": { + "dependencies": { + "System.Buffers": "4.5.1", + "System.Memory": "4.5.4", + "System.Security.AccessControl": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + }, + "runtime": { + "lib/netstandard2.0/System.IO.FileSystem.AccessControl.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.20.51904" + } + } + }, + "System.Memory/4.5.4": { + "dependencies": { + "System.Buffers": "4.5.1", + "System.Numerics.Vectors": "4.5.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + }, + "runtime": { + "lib/netstandard2.0/System.Memory.dll": { + "assemblyVersion": "4.0.1.1", + "fileVersion": "4.6.28619.1" + } + } + }, + "System.Memory.Data/1.0.2": { + "dependencies": { + "System.Text.Encodings.Web": "4.7.2", + "System.Text.Json": "4.7.2" + }, + "runtime": { + "lib/netstandard2.0/System.Memory.Data.dll": { + "assemblyVersion": "1.0.2.0", + "fileVersion": "1.0.221.20802" + } + } + }, + "System.Numerics.Vectors/4.5.0": { + "runtime": { + "lib/netstandard2.0/System.Numerics.Vectors.dll": { + "assemblyVersion": "4.1.4.0", + "fileVersion": "4.6.26515.6" + } + } + }, + "System.Runtime.CompilerServices.Unsafe/6.0.0": { + "runtime": { + "lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll": { + "assemblyVersion": "6.0.0.0", + "fileVersion": "6.0.21.52210" + } + } + }, + "System.Security.AccessControl/5.0.0": { + "dependencies": { + "System.Security.Principal.Windows": "5.0.0" + }, + "runtime": { + "lib/netstandard2.0/System.Security.AccessControl.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.20.51904" + } + } + }, + "System.Security.Cryptography.ProtectedData/4.7.0": { + "dependencies": { + "System.Memory": "4.5.4" + }, + "runtime": { + "lib/netstandard2.0/System.Security.Cryptography.ProtectedData.dll": { + "assemblyVersion": "4.0.5.0", + "fileVersion": "4.700.19.56404" + } + } + }, + "System.Security.Principal.Windows/5.0.0": { + "runtime": { + "lib/netstandard2.0/System.Security.Principal.Windows.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.20.51904" + } + } + }, + "System.Text.Encodings.Web/4.7.2": { + "dependencies": { + "System.Buffers": "4.5.1", + "System.Memory": "4.5.4" + }, + "runtime": { + "lib/netstandard2.0/System.Text.Encodings.Web.dll": { + "assemblyVersion": "4.0.5.1", + "fileVersion": "4.700.21.11602" + } + } + }, + "System.Text.Json/4.7.2": { + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "1.1.1", + "System.Buffers": "4.5.1", + "System.Memory": "4.5.4", + "System.Numerics.Vectors": "4.5.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Text.Encodings.Web": "4.7.2", + "System.Threading.Tasks.Extensions": "4.5.4" + }, + "runtime": { + "lib/netstandard2.0/System.Text.Json.dll": { + "assemblyVersion": "4.0.1.2", + "fileVersion": "4.700.20.21406" + } + } + }, + "System.Threading.Tasks.Extensions/4.5.4": { + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + }, + "runtime": { + "lib/netstandard2.0/System.Threading.Tasks.Extensions.dll": { + "assemblyVersion": "4.2.0.1", + "fileVersion": "4.6.28619.1" + } + } + }, + "Azure.Core.Experimental/0.1.0-alpha.20240122.1": { + "dependencies": { + "Azure.Core": "1.37.0", + "Microsoft.CSharp": "4.7.0" + }, + "runtime": { + "Azure.Core.Experimental.dll": {} + } + }, + "Azure.Identity/1.11.0-alpha.20240122.1": { + "dependencies": { + "Azure.Core": "1.37.0", + "Azure.Core.Experimental": "0.1.0-alpha.20240122.1", + "Microsoft.Identity.Client": "4.56.0", + "Microsoft.Identity.Client.Extensions.Msal": "4.56.0", + "System.Memory": "4.5.4", + "System.Security.Cryptography.ProtectedData": "4.7.0", + "System.Text.Json": "4.7.2", + "System.Threading.Tasks.Extensions": "4.5.4" + }, + "runtime": { + "Azure.Identity.dll": {} + } + } + } + }, + "libraries": { + "Azure.Identity.Broker/1.1.0-alpha.20240122.1": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Azure.ClientSdk.Analyzers/0.1.1-dev.20231116.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-M36Mwxv6A1K+qwvQZ98NNUPqJ9qO7pHozxneYmHxz8pO7BEWn1+es6oehZCljFTfHWAbbuv8ubwr1VctqiTAvQ==", + "path": "azure.clientsdk.analyzers/0.1.1-dev.20231116.1", + "hashPath": "azure.clientsdk.analyzers.0.1.1-dev.20231116.1.nupkg.sha512" + }, + "Azure.Core/1.37.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ZSWV/ftBM/c/+Eo2hlzeEWntjqNG+8TWXX/DAKjBSWIf7nEvFILQoJL7JZx5HjypDvdNUMj5J2ji8ZpFFSghSg==", + "path": "azure.core/1.37.0", + "hashPath": "azure.core.1.37.0.nupkg.sha512" + }, + "Microsoft.Azure.AutoRest.CSharp/3.0.0-beta.20240118.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-8aclx/JxzAd2j1zzj4TQnU1rGBBGrJLCn+S/Y0SYJGU1T00wMy/lvp5/1Ir9R96XkaUREJtS1s4zz9TLtCtrSA==", + "path": "microsoft.azure.autorest.csharp/3.0.0-beta.20240118.1", + "hashPath": "microsoft.azure.autorest.csharp.3.0.0-beta.20240118.1.nupkg.sha512" + }, + "Microsoft.Bcl.AsyncInterfaces/1.1.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-yuvf07qFWFqtK3P/MRkEKLhn5r2UbSpVueRziSqj0yJQIKFwG1pq9mOayK3zE5qZCTs0CbrwL9M6R8VwqyGy2w==", + "path": "microsoft.bcl.asyncinterfaces/1.1.1", + "hashPath": "microsoft.bcl.asyncinterfaces.1.1.1.nupkg.sha512" + }, + "Microsoft.Build.Tasks.Git/1.1.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-AT3HlgTjsqHnWpBHSNeR0KxbLZD7bztlZVj7I8vgeYG9SYqbeFGh0TM/KVtC6fg53nrWHl3VfZFvb5BiQFcY6Q==", + "path": "microsoft.build.tasks.git/1.1.1", + "hashPath": "microsoft.build.tasks.git.1.1.1.nupkg.sha512" + }, + "Microsoft.CodeAnalysis.BannedApiAnalyzers/3.3.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-LlcsDRSYfkJFWOdDpysY/4Ph4llHc8DLOc3roFTz9+216vl+vwVGfbys2rcSmhZCTDv/0kxSs2oOdd9SX2NiVg==", + "path": "microsoft.codeanalysis.bannedapianalyzers/3.3.2", + "hashPath": "microsoft.codeanalysis.bannedapianalyzers.3.3.2.nupkg.sha512" + }, + "Microsoft.CodeAnalysis.NetAnalyzers/7.0.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-qkdUzgth6IBtGvGjII8PZ1B+dfXZ4VPXzlIGeE444vJlih/cVFTCTzF2ZY9s1buK1yLnkkDcTVGH2kyUWbyPTw==", + "path": "microsoft.codeanalysis.netanalyzers/7.0.4", + "hashPath": "microsoft.codeanalysis.netanalyzers.7.0.4.nupkg.sha512" + }, + "Microsoft.CSharp/4.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==", + "path": "microsoft.csharp/4.7.0", + "hashPath": "microsoft.csharp.4.7.0.nupkg.sha512" + }, + "Microsoft.DotNet.ApiCompat/5.0.0-beta.20467.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-qiZRTUT0+uCWHyfYKk2FTNvkUxpnG/sEFOZ4fB4Eble4R/4/ulgUTzhWbF0qH+ux4Zk7TydaBFfy6/P3GycM+A==", + "path": "microsoft.dotnet.apicompat/5.0.0-beta.20467.1", + "hashPath": "microsoft.dotnet.apicompat.5.0.0-beta.20467.1.nupkg.sha512" + }, + "Microsoft.DotNet.GenAPI/5.0.0-beta.19552.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-lfpxOPSnPK/2fmWQbDfSX6CbYl5w3t/uXO31VWRIOeIvaJC9eopXQQ8styZYgYERl6ETePNv4qMk5r+B3QftGw==", + "path": "microsoft.dotnet.genapi/5.0.0-beta.19552.1", + "hashPath": "microsoft.dotnet.genapi.5.0.0-beta.19552.1.nupkg.sha512" + }, + "Microsoft.Identity.Client/4.56.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rr4zbidvHy9r4NvOAs5hdd964Ao2A0pAeFBJKR95u1CJAVzbd1p6tPTXUZ+5ld0cfThiVSGvz6UHwY6JjraTpA==", + "path": "microsoft.identity.client/4.56.0", + "hashPath": "microsoft.identity.client.4.56.0.nupkg.sha512" + }, + "Microsoft.Identity.Client.Broker/4.56.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Dzwo9X3hIgv+wcWZCEnyRuiHQXGvlb05WgKjkxjUScbf0dYQwmeUGwJNf1A4ge68wYNyQ25BZKtMpuhO/pPqRw==", + "path": "microsoft.identity.client.broker/4.56.0", + "hashPath": "microsoft.identity.client.broker.4.56.0.nupkg.sha512" + }, + "Microsoft.Identity.Client.Extensions.Msal/4.56.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-H12YAzEGK55vZ+QpxUzozhW8ZZtgPDuWvgA0JbdIR9UhMUplj29JhIgE2imuH8W2Nw9D8JKygR1uxRFtpSNcrg==", + "path": "microsoft.identity.client.extensions.msal/4.56.0", + "hashPath": "microsoft.identity.client.extensions.msal.4.56.0.nupkg.sha512" + }, + "Microsoft.Identity.Client.NativeInterop/0.13.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-eccVwaDOan12YJrh6ntIBIXeKTNoWz+af2/c13lhvrDoX0ydVXitCXMJVz0dh2eJK5y2KJ7IfkEvNilB/A9V7A==", + "path": "microsoft.identity.client.nativeinterop/0.13.8", + "hashPath": "microsoft.identity.client.nativeinterop.0.13.8.nupkg.sha512" + }, + "Microsoft.IdentityModel.Abstractions/6.22.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-iI+9V+2ciCrbheeLjpmjcqCnhy+r6yCoEcid3nkoFWerHgjVuT6CPM4HODUTtUPe1uwks4wcnAujJ8u+IKogHQ==", + "path": "microsoft.identitymodel.abstractions/6.22.0", + "hashPath": "microsoft.identitymodel.abstractions.6.22.0.nupkg.sha512" + }, + "Microsoft.NETCore.Platforms/1.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==", + "path": "microsoft.netcore.platforms/1.1.0", + "hashPath": "microsoft.netcore.platforms.1.1.0.nupkg.sha512" + }, + "Microsoft.SourceLink.Common/1.1.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-WMcGpWKrmJmzrNeuaEb23bEMnbtR/vLmvZtkAP5qWu7vQsY59GqfRJd65sFpBszbd2k/bQ8cs8eWawQKAabkVg==", + "path": "microsoft.sourcelink.common/1.1.1", + "hashPath": "microsoft.sourcelink.common.1.1.1.nupkg.sha512" + }, + "Microsoft.SourceLink.GitHub/1.1.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-IaJGnOv/M7UQjRJks7B6p7pbPnOwisYGOIzqCz5ilGFTApZ3ktOR+6zJ12ZRPInulBmdAf1SrGdDG2MU8g6XTw==", + "path": "microsoft.sourcelink.github/1.1.1", + "hashPath": "microsoft.sourcelink.github.1.1.1.nupkg.sha512" + }, + "NETStandard.Library/2.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", + "path": "netstandard.library/2.0.3", + "hashPath": "netstandard.library.2.0.3.nupkg.sha512" + }, + "SauceControl.InheritDoc/1.2.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-6/SPY5RjYvG7aSDoHMBsecUzKvU+zy+9Q2gN4NAU+ESZnMUA/hkRvvPCNqyDleojEM5uUBqesiwHhUCk8XOIfQ==", + "path": "saucecontrol.inheritdoc/1.2.0", + "hashPath": "saucecontrol.inheritdoc.1.2.0.nupkg.sha512" + }, + "StyleCop.Analyzers/1.2.0-beta.333": { + "type": "package", + "serviceable": true, + "sha512": "sha512-o2r6o6TVTb6VdTtWEYT88/SgixcujjZ3gXMktvI/aNkA3y0CxUSVZEL23OjFe4/sDiTvldkdhKEyAQP9Z8r5wA==", + "path": "stylecop.analyzers/1.2.0-beta.333", + "hashPath": "stylecop.analyzers.1.2.0-beta.333.nupkg.sha512" + }, + "StyleCop.Analyzers.Unstable/1.2.0.333": { + "type": "package", + "serviceable": true, + "sha512": "sha512-7mwxcwa3xZnyU71OTqSgntCDpsZ5gkc4saXhuJeyg5Xc+3xiQxzyhy26uG8rVF8Z7GKpXCsHCL3rd5ZomA+a/A==", + "path": "stylecop.analyzers.unstable/1.2.0.333", + "hashPath": "stylecop.analyzers.unstable.1.2.0.333.nupkg.sha512" + }, + "System.Buffers/4.5.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==", + "path": "system.buffers/4.5.1", + "hashPath": "system.buffers.4.5.1.nupkg.sha512" + }, + "System.Diagnostics.DiagnosticSource/6.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-KiLYDu2k2J82Q9BJpWiuQqCkFjRBWVq4jDzKKWawVi9KWzyD0XG3cmfX0vqTQlL14Wi9EufJrbL0+KCLTbqWiQ==", + "path": "system.diagnostics.diagnosticsource/6.0.1", + "hashPath": "system.diagnostics.diagnosticsource.6.0.1.nupkg.sha512" + }, + "System.IO.FileSystem.AccessControl/5.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-SxHB3nuNrpptVk+vZ/F+7OHEpoHUIKKMl02bUmYHQr1r+glbZQxs7pRtsf4ENO29TVm2TH3AEeep2fJcy92oYw==", + "path": "system.io.filesystem.accesscontrol/5.0.0", + "hashPath": "system.io.filesystem.accesscontrol.5.0.0.nupkg.sha512" + }, + "System.Memory/4.5.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-1MbJTHS1lZ4bS4FmsJjnuGJOu88ZzTT2rLvrhW7Ygic+pC0NWA+3hgAen0HRdsocuQXCkUTdFn9yHJJhsijDXw==", + "path": "system.memory/4.5.4", + "hashPath": "system.memory.4.5.4.nupkg.sha512" + }, + "System.Memory.Data/1.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-JGkzeqgBsiZwKJZ1IxPNsDFZDhUvuEdX8L8BDC8N3KOj+6zMcNU28CNN59TpZE/VJYy9cP+5M+sbxtWJx3/xtw==", + "path": "system.memory.data/1.0.2", + "hashPath": "system.memory.data.1.0.2.nupkg.sha512" + }, + "System.Numerics.Vectors/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==", + "path": "system.numerics.vectors/4.5.0", + "hashPath": "system.numerics.vectors.4.5.0.nupkg.sha512" + }, + "System.Runtime.CompilerServices.Unsafe/6.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==", + "path": "system.runtime.compilerservices.unsafe/6.0.0", + "hashPath": "system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512" + }, + "System.Security.AccessControl/5.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", + "path": "system.security.accesscontrol/5.0.0", + "hashPath": "system.security.accesscontrol.5.0.0.nupkg.sha512" + }, + "System.Security.Cryptography.ProtectedData/4.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ehYW0m9ptxpGWvE4zgqongBVWpSDU/JCFD4K7krxkQwSz/sFQjEXCUqpvencjy6DYDbn7Ig09R8GFffu8TtneQ==", + "path": "system.security.cryptography.protecteddata/4.7.0", + "hashPath": "system.security.cryptography.protecteddata.4.7.0.nupkg.sha512" + }, + "System.Security.Principal.Windows/5.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==", + "path": "system.security.principal.windows/5.0.0", + "hashPath": "system.security.principal.windows.5.0.0.nupkg.sha512" + }, + "System.Text.Encodings.Web/4.7.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-iTUgB/WtrZ1sWZs84F2hwyQhiRH6QNjQv2DkwrH+WP6RoFga2Q1m3f9/Q7FG8cck8AdHitQkmkXSY8qylcDmuA==", + "path": "system.text.encodings.web/4.7.2", + "hashPath": "system.text.encodings.web.4.7.2.nupkg.sha512" + }, + "System.Text.Json/4.7.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-TcMd95wcrubm9nHvJEQs70rC0H/8omiSGGpU4FQ/ZA1URIqD4pjmFJh2Mfv1yH1eHgJDWTi2hMDXwTET+zOOyg==", + "path": "system.text.json/4.7.2", + "hashPath": "system.text.json.4.7.2.nupkg.sha512" + }, + "System.Threading.Tasks.Extensions/4.5.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==", + "path": "system.threading.tasks.extensions/4.5.4", + "hashPath": "system.threading.tasks.extensions.4.5.4.nupkg.sha512" + }, + "Azure.Core.Experimental/0.1.0-alpha.20240122.1": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Azure.Identity/1.11.0-alpha.20240122.1": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/src/Authentication/Authentication.Core/tempPackages/Azure.Identity.Broker.dll b/src/Authentication/Authentication.Core/tempPackages/Azure.Identity.Broker.dll new file mode 100644 index 00000000000..a1dfb03e1a7 Binary files /dev/null and b/src/Authentication/Authentication.Core/tempPackages/Azure.Identity.Broker.dll differ diff --git a/src/Authentication/Authentication.Core/tempPackages/Azure.Identity.Broker.xml b/src/Authentication/Authentication.Core/tempPackages/Azure.Identity.Broker.xml new file mode 100644 index 00000000000..06653414171 --- /dev/null +++ b/src/Authentication/Authentication.Core/tempPackages/Azure.Identity.Broker.xml @@ -0,0 +1,67 @@ + + + + Azure.Identity.Broker + + + + + Options to configure the to use the system authentication broker in lieu of an embedded web view or the system browser. + + + + + Gets or sets whether Microsoft Account (MSA) passthrough is enabled. + + + + + + Gets or sets whether proof of possession is required. + + + + + Authenticate with the currently signed in user instead of prompting the user with a login dialog. + + + + + Creates a new instance of to configure a . + + Handle of the parent window the system authentication broker should be docked to. + + + + Options to configure the to use the system authentication broker for silent authentication if available. + + + + + Gets or sets whether Microsoft Account (MSA) passthrough is enabled. + + + + + + Gets or sets whether proof of possession is required. + + + + + Authenticate with the currently signed in user instead of prompting the user with a login dialog. + + + + + Initializes a new instance of . + + + + + Initializes a new instance of . + + The that will apply to the token cache used by this credential. + + + diff --git a/src/Authentication/Authentication.Core/tempPackages/Azure.Identity.dll b/src/Authentication/Authentication.Core/tempPackages/Azure.Identity.dll new file mode 100644 index 00000000000..4c8f064e1fa Binary files /dev/null and b/src/Authentication/Authentication.Core/tempPackages/Azure.Identity.dll differ diff --git a/src/Authentication/Authentication.Core/tempPackages/Azure.Identity.xml b/src/Authentication/Authentication.Core/tempPackages/Azure.Identity.xml new file mode 100644 index 00000000000..5b81cf2efda --- /dev/null +++ b/src/Authentication/Authentication.Core/tempPackages/Azure.Identity.xml @@ -0,0 +1,3359 @@ + + + + Azure.Identity + + + + + An exception class raised for errors in authenticating client requests. + + + + + Creates a new AuthenticationFailedException with the specified message. + + The message describing the authentication failure. + + + + Creates a new AuthenticationFailedException with the specified message. + + The message describing the authentication failure. + The exception underlying the authentication failure. + + + + A constructor used for serialization. + + The . + The . + + + + + Account information relating to an authentication request. + + . + + + + The user principal or service principal name of the account. + + + + + The authority host used to authenticate the account. + + + + + A unique identifier of the account. + + + + + The tenant the account should authenticate in. + + + + + The client id of the application which performed the original authentication + + + + + Serializes the to the specified . + + The which the serialized will be written to. + A controlling the request lifetime. + + + + Serializes the to the specified . + + The to which the serialized will be written. + A controlling the request lifetime. + + + + Deserializes the from the specified . + + The from which the serialized will be read. + A controlling the request lifetime. + + + + Deserializes the from the specified . + + The from which the serialized will be read. + A controlling the request lifetime. + + + + An exception indicating that interactive authentication is required. + + + + + Creates a new with the specified message and context. + + The message describing the authentication failure. + The details of the authentication request. + + + + Creates a new with the specified message, context and inner exception. + + The message describing the authentication failure. + The details of the authentication request. + The exception underlying the authentication failure. + + + + A constructor used for serialization. + + The . + The . + + + + + The details of the authentication request which resulted in the authentication failure. + + + + + Defines fields exposing the well known authority hosts for the Azure Public Cloud and sovereign clouds. + + + + + The host of the Microsoft Entra authority for tenants in the Azure Public Cloud. + + + + + The host of the Microsoft Entra authority for tenants in the Azure China Cloud. + + + + + The host of the Microsoft Entra authority for tenants in the Azure German Cloud. + + + + + The host of the Microsoft Entra authority for tenants in the Azure US Government Cloud. + + + + + Authenticates by redeeming an authorization code previously obtained from Microsoft Entra ID. See + for more information + about the authorization code authentication flow. + + + + + Protected constructor for mocking. + + + + + Creates an instance of the ClientSecretCredential with the details needed to authenticate against Microsoft Entra ID with a prefetched authorization code. + + The Microsoft Entra tenant (directory) ID of the service principal. + The client (application) ID of the service principal + A client secret that was generated for the App Registration used to authenticate the client. + The authorization code obtained from a call to authorize. The code should be obtained with all required scopes. + See https://learn.microsoft.com/entra/identity-platform/v2-oauth2-auth-code-flow for more information. + + + + Creates an instance of the ClientSecretCredential with the details needed to authenticate against Microsoft Entra ID with a prefetched authorization code. + + The Microsoft Entra tenant (directory) ID of the service principal. + The client (application) ID of the service principal + A client secret that was generated for the App Registration used to authenticate the client. + The authorization code obtained from a call to authorize. The code should be obtained with all required scopes. + See for more information. + Options that allow to configure the management of the requests sent to Microsoft Entra ID. + + + + Creates an instance of the ClientSecretCredential with the details needed to authenticate against Microsoft Entra ID with a prefetched authorization code. + + The Microsoft Entra tenant (directory) ID of the service principal. + The client (application) ID of the service principal + A client secret that was generated for the App Registration used to authenticate the client. + The authorization code obtained from a call to authorize. The code should be obtained with all required scopes. + See for more information. + Options that allow to configure the management of the requests sent to Microsoft Entra ID. + + + + Obtains a token from Microsoft Entra ID, using the specified authorization code to authenticate. Acquired tokens + are cached by the credential instance. Token lifetime and refreshing is handled automatically. Where possible, reuse credential + instances to optimize cache effectiveness. + + The details of the authentication request. + A controlling the request lifetime. + An which can be used to authenticate service client calls. + + + + Obtains a token from Microsoft Entra ID, using the specified authorization code to authenticate. Acquired tokens + are cached by the credential instance. Token lifetime and refreshing is handled automatically. Where possible, reuse credential + instances to optimize cache effectiveness. + + The details of the authentication request. + A controlling the request lifetime. + An which can be used to authenticate service client calls. + + + + Options used to configure the . + + + + + The redirect Uri that will be sent with the GetToken request. + + + + + For multi-tenant applications, specifies additional tenants for which the credential may acquire tokens. Add the wildcard value "*" to allow the credential to acquire tokens for any tenant in which the application is installed. + + + + + Gets or sets the setting which determines whether or not instance discovery is performed when attempting to authenticate. + Setting this to true will completely disable both instance discovery and authority validation. + This functionality is intended for use in scenarios where the metadata endpoint cannot be reached, such as in private clouds or Azure Stack. + The process of instance discovery entails retrieving authority metadata from https://login.microsoft.com/ to validate the authority. + By setting this to true, the validation of the authority is disabled. + As a result, it is crucial to ensure that the configured authority host is valid and trustworthy." + + + + + Provides a implementation which chains the and implementations to be tried in order + until one of the getToken methods returns a non-default . + + + This credential is designed for applications deployed to Azure is + better suited to local development). It authenticates service principals and managed identities.. + + + + + Initializes an instance of the . + + + + + Initializes an instance of the . + + The to configure this credential. + + + + Sequentially calls on all the specified sources, returning the first successfully obtained + . Acquired tokens are cached by the credential instance. Token lifetime and refreshing is handled + automatically. Where possible, reuse credential instances to optimize cache effectiveness. + + The details of the authentication request. + A controlling the request lifetime. + The first returned by the specified sources. Any credential which raises a will be skipped. + + + + Sequentially calls on all the specified sources, returning the first successfully obtained + . Acquired tokens are cached by the credential instance. Token lifetime and refreshing is handled + automatically. Where possible,reuse credential instances to optimize cache effectiveness. + + The details of the authentication request. + A controlling the request lifetime. + The first returned by the specified sources. Any credential which raises a will be skipped. + + + + Options to configure the authentication flow and requests made to Azure Identity services. + + + + + Specifies the client id of the azure ManagedIdentity in the case of user assigned identity. + + + + + Enables authentication to Microsoft Entra ID using Azure CLI to obtain an access token. + + + + + Create an instance of class. + + + + + Create an instance of class. + + The Microsoft Entra tenant (directory) ID of the service principal. + + + + Obtains a access token from Azure CLI credential, using this access token to authenticate. This method called by Azure SDK clients. + + + + + + + + Obtains a access token from Azure CLI service, using the access token to authenticate. This method id called by Azure SDK clients. + + + + + + + + Options for configuring the . + + + + + The ID of the tenant to which the credential will authenticate by default. If not specified, the credential will authenticate to any requested tenant, and will default to the tenant provided to the 'az login' command. + + + + + Specifies tenants in addition to the specified for which the credential may acquire tokens. + Add the wildcard value "*" to allow the credential to acquire tokens for any tenant the logged in account can access. + If no value is specified for this option will have no effect, and the credential will acquire tokens for any requested tenant. + + + + + The Cli process timeout. + + + + + Enables authentication to Microsoft Entra ID using Azure Developer CLI to obtain an access token. + + + + + Create an instance of the class. + + + + + Create an instance of the class. + + The Microsoft Entra tenant (directory) ID of the service principal. + + + + Obtains an access token from Azure Developer CLI credential, using this access token to authenticate. This method called by Azure SDK clients. + + + + AccessToken + + + + Obtains an access token from Azure Developer CLI service, using the access token to authenticate. This method is called by Azure SDK clients. + + + + + + + + Options for configuring the . + + + + + The ID of the tenant to which the credential will authenticate by default. If not specified, the credential will authenticate to any requested tenant, and will default to the tenant provided to the 'azd auth login' command. + + + + + Specifies tenants in addition to the specified for which the credential may acquire tokens. + Add the wildcard value "*" to allow the credential to acquire tokens for any tenant the logged in account can access. + If no value is specified for , this option will have no effect, and the credential will acquire tokens for any requested tenant. + + + + + The CLI process timeout. + + + + + Enables authentication to Microsoft Entra ID using Azure PowerShell to obtain an access token. + + + + + Creates a new instance of the . + + + + + Creates a new instance of the with the specified options. + + Options for configuring the credential. + + + + Obtains a access token from Azure PowerShell, using the access token to authenticate. This method id called by Azure SDK clients. + + + + + + + + Obtains a access token from Azure PowerShell, using the access token to authenticate. This method id called by Azure SDK clients. + + + + + + + + Options for configuring the . + + + + + The ID of the tenant to which the credential will authenticate by default. If not specified, the credential will authenticate to any requested tenant, and will default to the tenant provided to the 'Connect-AzAccount' cmdlet. + + + + + Specifies tenants in addition to the specified for which the credential may acquire tokens. + Add the wildcard value "*" to allow the credential to acquire tokens for any tenant the logged in account can access. + If no value is specified for , this option will have no effect, and the credential will acquire tokens for any requested tenant. + + + + + The Powershell process timeout. + + + + + Options to customize browser view. + + + + + Specifies if the public client application should used an embedded web browser + or the system default browser + + + + + Property to set HtmlMessageSuccess of SystemWebViewOptions from MSAL, + which the browser will show to the user when the user finishes authenticating successfully. + + + + + Property to set HtmlMessageError of SystemWebViewOptions from MSAL, + which the browser will show to the user when the user finishes authenticating, but an error occurred. + You can use a string format e.g. "An error has occurred: {0} details: {1}". + + + + + Provides a implementation which chains multiple implementations to be tried in order + until one of the getToken methods returns a non-default . + + + + The ChainedTokenCredential class provides the ability to link together multiple credential instances to be tried sequentially when authenticating. + The following example demonstrates creating a credential which will attempt to authenticate using managed identity, and fall back to Azure CLI for authentication + if a managed identity is unavailable in the current environment. + + + // Authenticate using managed identity if it is available; otherwise use the Azure CLI to authenticate. + + var credential = new ChainedTokenCredential(new ManagedIdentityCredential(), new AzureCliCredential()); + + var eventHubProducerClient = new EventHubProducerClient("myeventhub.eventhubs.windows.net", "myhubpath", credential); + + + + + + Constructor for instrumenting in tests + + + + + Creates an instance with the specified sources. + + The ordered chain of implementations to tried when calling or + + + + Sequentially calls on all the specified sources, returning the first successfully obtained + . Acquired tokens are cached by the credential instance. Token lifetime and refreshing is handled + automatically. Where possible, reuse credential instances to optimize cache effectiveness. + + The details of the authentication request. + A controlling the request lifetime. + The first returned by the specified sources. Any credential which raises a will be skipped. + + + + Sequentially calls on all the specified sources, returning the first successfully obtained + . Acquired tokens are cached by the credential instance. Token lifetime and refreshing is handled + automatically. Where possible, reuse credential instances to optimize cache effectiveness. + + The details of the authentication request. + A controlling the request lifetime. + The first returned by the specified sources. Any credential which raises a will be skipped. + + + + Enables authentication of a Microsoft Entra service principal using a signed client assertion. + + + + + Protected constructor for mocking. + + + + + Creates an instance of the ClientCertificateCredential with an asynchronous callback that provides a signed client assertion to authenticate against Microsoft Entra ID. + + The Microsoft Entra tenant (directory) ID of the service principal. + The client (application) ID of the service principal + An asynchronous callback returning a valid client assertion used to authenticate the service principal. + Options that allow to configure the management of the requests sent to Microsoft Entra ID. + + + + Creates an instance of the ClientCertificateCredential with a synchronous callback that provides a signed client assertion to authenticate against Microsoft Entra ID. + + The Microsoft Entra tenant (directory) ID of the service principal. + The client (application) ID of the service principal + A synchronous callback returning a valid client assertion used to authenticate the service principal. + Options that allow to configure the management of the requests sent to Microsoft Entra ID. + + + + Obtains a token from Microsoft Entra ID, by calling the assertionCallback specified when constructing the credential to obtain a client assertion for authentication. + + The details of the authentication request. + A controlling the request lifetime. + An which can be used to authenticate service client calls. + + + + Obtains a token from Microsoft Entra ID, by calling the assertionCallback specified when constructing the credential to obtain a client assertion for authentication. + + The details of the authentication request. + A controlling the request lifetime. + An which can be used to authenticate service client calls. + + + + Options used to configure the . + + + + + For multi-tenant applications, specifies additional tenants for which the credential may acquire tokens. Add the wildcard value "*" to allow the credential to acquire tokens for any tenant in which the application is installed. + + + + + Gets or sets the setting which determines whether or not instance discovery is performed when attempting to authenticate. + Setting this to true will completely disable both instance discovery and authority validation. + This functionality is intended for use in scenarios where the metadata endpoint cannot be reached, such as in private clouds or Azure Stack. + The process of instance discovery entails retrieving authority metadata from https://login.microsoft.com/ to validate the authority. + By setting this to true, the validation of the authority is disabled. + As a result, it is crucial to ensure that the configured authority host is valid and trustworthy." + + + + + Enables authentication of a service principal to Microsoft Entra ID using a X509 certificate that is assigned to its App Registration. More information + on how to configure certificate authentication can be found at + . + + + + + Gets the Microsoft Entra tenant (directory) ID of the service principal + + + + + Gets the client (application) ID of the service principal + + + + + Protected constructor for mocking. + + + + + Creates an instance of the ClientCertificateCredential with the details needed to authenticate against Microsoft Entra ID with the specified certificate. + + The Microsoft Entra tenant (directory) ID of the service principal. + The client (application) ID of the service principal + The path to a file which contains both the client certificate and private key. + + + + Creates an instance of the ClientCertificateCredential with the details needed to authenticate against Microsoft Entra ID with the specified certificate. + + The Microsoft Entra tenant (directory) ID of the service principal. + The client (application) ID of the service principal + The path to a file which contains both the client certificate and private key. + Options that allow to configure the management of the requests sent to Microsoft Entra ID. + + + + Creates an instance of the ClientCertificateCredential with the details needed to authenticate against Microsoft Entra ID with the specified certificate. + + The Microsoft Entra tenant (directory) ID of the service principal. + The client (application) ID of the service principal + The path to a file which contains both the client certificate and private key. + Options that allow to configure the management of the requests sent to Microsoft Entra ID. + + + + Creates an instance of the ClientCertificateCredential with the details needed to authenticate against Microsoft Entra ID with the specified certificate. + + The Microsoft Entra tenant (directory) ID of the service principal. + The client (application) ID of the service principal + The authentication X509 Certificate of the service principal + + + + Creates an instance of the ClientCertificateCredential with the details needed to authenticate against Microsoft Entra ID with the specified certificate. + + The Microsoft Entra tenant (directory) ID of the service principal. + The client (application) ID of the service principal + The authentication X509 Certificate of the service principal + Options that allow to configure the management of the requests sent to Microsoft Entra ID. + + + + Creates an instance of the ClientCertificateCredential with the details needed to authenticate against Microsoft Entra ID with the specified certificate. + + The Microsoft Entra tenant (directory) ID of the service principal. + The client (application) ID of the service principal + The authentication X509 Certificate of the service principal + Options that allow to configure the management of the requests sent to Microsoft Entra ID. + + + + Obtains a token from Microsoft Entra ID, using the specified X509 certificate to authenticate. Acquired tokens are + cached by the credential instance. Token lifetime and refreshing is handled automatically. Where possible, reuse credential + instances to optimize cache effectiveness. + + The details of the authentication request. + A controlling the request lifetime. + An which can be used to authenticate service client calls. + + + + Obtains a token from Microsoft Entra ID, using the specified X509 certificate to authenticate. Acquired tokens are + cached by the credential instance. Token lifetime and refreshing is handled automatically. Where possible, reuse credential + instances to optimize cache effectiveness. + + The details of the authentication request. + A controlling the request lifetime. + An which can be used to authenticate service client calls. + + + + Options used to configure the . + + + + + Specifies the to be used by the credential. If no options are specified, the token cache will not be persisted to disk. + + + + + Will include x5c header in client claims when acquiring a token to enable subject name / issuer based authentication for the . + + + + + For multi-tenant applications, specifies additional tenants for which the credential may acquire tokens. Add the wildcard value "*" to allow the credential to acquire tokens for any tenant in which the application is installed. + + + + + Gets or sets the setting which determines whether or not instance discovery is performed when attempting to authenticate. + Setting this to true will completely disable both instance discovery and authority validation. + This functionality is intended for use in scenarios where the metadata endpoint cannot be reached, such as in private clouds or Azure Stack. + The process of instance discovery entails retrieving authority metadata from https://login.microsoft.com/ to validate the authority. + By setting this to true, the validation of the authority is disabled. + As a result, it is crucial to ensure that the configured authority host is valid and trustworthy." + + + + + Enables authentication to Microsoft Entra ID using a client secret that was generated for an App Registration. More information on how + to configure a client secret can be found at + . + + + + + Gets the Microsoft Entra tenant (directory) Id of the service principal + + + + + Gets the client (application) ID of the service principal + + + + + Gets the client secret that was generated for the App Registration used to authenticate the client. + + + + + Protected constructor for mocking. + + + + + Creates an instance of the ClientSecretCredential with the details needed to authenticate against Microsoft Entra ID with a client secret. + + The Microsoft Entra tenant (directory) ID of the service principal. + The client (application) ID of the service principal + A client secret that was generated for the App Registration used to authenticate the client. + + + + Creates an instance of the ClientSecretCredential with the details needed to authenticate against Microsoft Entra ID with a client secret. + + The Microsoft Entra tenant (directory) ID of the service principal. + The client (application) ID of the service principal + A client secret that was generated for the App Registration used to authenticate the client. + Options that allow to configure the management of the requests sent to the Microsoft Entra ID. + + + + Creates an instance of the ClientSecretCredential with the details needed to authenticate against Microsoft Entra ID with a client secret. + + The Microsoft Entra tenant (directory) ID of the service principal. + The client (application) ID of the service principal + A client secret that was generated for the App Registration used to authenticate the client. + Options that allow to configure the management of the requests sent to Microsoft Entra ID. + + + + Obtains a token from Microsoft Entra ID, using the specified client secret to authenticate. Acquired tokens are cached by the credential instance. Token lifetime and refreshing is handled automatically. Where possible, reuse credential instances to optimize cache effectiveness. + + The details of the authentication request. + A controlling the request lifetime. + An which can be used to authenticate service client calls. + + + + Obtains a token from Microsoft Entra ID, using the specified client secret to authenticate. Acquired tokens are cached by the credential instance. Token lifetime and refreshing is handled automatically. Where possible, reuse credential instances to optimize cache effectiveness. + + The details of the authentication request. + A controlling the request lifetime. + An which can be used to authenticate service client calls. + + + + Options used to configure the . + + + + + Specifies the to be used by the credential. If not options are specified, the token cache will not be persisted to disk. + + + + + For multi-tenant applications, specifies additional tenants for which the credential may acquire tokens. Add the wildcard value "*" to allow the credential to acquire tokens for any tenant in which the application is installed. + + + + + Gets or sets the setting which determines whether or not instance discovery is performed when attempting to authenticate. + Setting this to true will completely disable both instance discovery and authority validation. + This functionality is intended for use in scenarios where the metadata endpoint cannot be reached, such as in private clouds or Azure Stack. + The process of instance discovery entails retrieving authority metadata from https://login.microsoft.com/ to validate the authority. + By setting this to true, the validation of the authority is disabled. + As a result, it is crucial to ensure that the configured authority host is valid and trustworthy." + + + + + Provides a default authentication flow for applications that will be deployed to Azure. The following credential + types if enabled will be tried, in order: + + + + + + + + + + + + + Consult the documentation of these credential types for more information on how they attempt authentication. + + + Note that credentials requiring user interaction, such as the , are not included by default. Callers must explicitly enable this when + constructing the either by setting the includeInteractiveCredentials parameter to true, or the setting the + property to false when passing . + + + + This example demonstrates authenticating the BlobClient from the Azure.Storage.Blobs client library using the DefaultAzureCredential, + deployed to an Azure resource with a user assigned managed identity configured. + + + // When deployed to an azure host, the default azure credential will authenticate the specified user assigned managed identity. + + string userAssignedClientId = "<your managed identity client Id>"; + var credential = new DefaultAzureCredential(new DefaultAzureCredentialOptions { ManagedIdentityClientId = userAssignedClientId }); + + var blobClient = new BlobClient(new Uri("https://myaccount.blob.core.windows.net/mycontainer/myblob"), credential); + + + + + + Creates an instance of the DefaultAzureCredential class. + + Specifies whether credentials requiring user interaction will be included in the default authentication flow. + + + + Creates an instance of the class. + + Options that configure the management of the requests sent to Microsoft Entra ID, and determine which credentials are included in the authentication flow. + + + + Sequentially calls on all the included credentials in the order + , , , and + returning the first successfully obtained . Acquired tokens + are cached by the credential instance. Token lifetime and refreshing is handled automatically. Where possible, reuse credential + instances to optimize cache effectiveness. + + + Note that credentials requiring user interaction, such as the , are not included by default. + + The details of the authentication request. + A controlling the request lifetime. + The first returned by the specified sources. Any credential which raises a will be skipped. + + + + Sequentially calls on all the included credentials in the order + , , , and + returning the first successfully obtained . Acquired tokens + are cached by the credential instance. Token lifetime and refreshing is handled automatically. Where possible, reuse credential + instances to optimize cache effectiveness. + + + Note that credentials requiring user interaction, such as the , are not included by default. + + The details of the authentication request. + A controlling the request lifetime. + The first returned by the specified sources. Any credential which raises a will be skipped. + + + + Options to configure the authentication flow and requests made to Azure Identity services. + + + + + The ID of the tenant to which the credential will authenticate by default. If not specified, the credential will authenticate to any requested tenant, and will default to the tenant to which the chosen authentication method was originally authenticated. + + + + + The tenant id of the user to authenticate, in the case the authenticates through, the + . The default is null and will authenticate users to their default tenant. + The value can also be set by setting the environment variable AZURE_TENANT_ID. + + + + + Specifies the tenant id of the preferred authentication account, to be retrieved from the shared token cache for single sign on authentication with + development tools, in the case multiple accounts are found in the shared token. + + + If multiple accounts are found in the shared token cache and no value is specified, or the specified value matches no accounts in + the cache the SharedTokenCacheCredential will not be used for authentication. + + + + + The tenant id of the user to authenticate, in the case the authenticates through, the + . The default is null and will authenticate users to their default tenant. + The value can also be set by setting the environment variable AZURE_TENANT_ID. + + + + + The tenant ID of the user to authenticate, in the case the authenticates through, the + . The default is null and will authenticate users to their default tenant. + The value can also be set by setting the environment variable AZURE_TENANT_ID. + + + + + Specifies tenants in addition to the specified for which the credential may acquire tokens. + Add the wildcard value "*" to allow the credential to acquire tokens for any tenant the logged in account can access. + If no value is specified for , this option will have no effect on that authentication method, and the credential will acquire tokens for any requested tenant when using that method. + This value can also be set by setting the environment variable AZURE_ADDITIONALLY_ALLOWED_TENANTS. + + + + + Specifies the preferred authentication account to be retrieved from the shared token cache for single sign on authentication with + development tools. In the case multiple accounts are found in the shared token. + + + If multiple accounts are found in the shared token cache and no value is specified, or the specified value matches no accounts in + the cache the SharedTokenCacheCredential will not be used for authentication. + + + + + Specifies the client id of the selected credential + + + + + Specifies the client id of the application the workload identity will authenticate. + + + + + Specifies the client id of a user assigned ManagedIdentity. If this value is configured, then should not be configured. + + + + + Specifies the resource id of a user assigned ManagedIdentity. If this value is configured, then should not be configured. + + + + + Specifies timeout for credentials invoked via sub-process. e.g. Visual Studio, Azure CLI, Azure Powershell. + + + + + Specifies whether the will be excluded from the authentication flow. Setting to true disables reading + authentication details from the process' environment variables. + + + + + Specifies whether the will be excluded from the authentication flow. Setting to true disables reading + authentication details from the process' environment variables. + + + + + Specifies whether the will be excluded from the authentication flow. + Setting to true disables authenticating with managed identity endpoints. + + + + + Specifies whether the will be excluded from the authentication flow. + + + + + Specifies whether the will be excluded from the authentication flow. + Setting to true disables single sign on authentication with development tools which write to the shared token cache. + The default is true. + + + + + Specifies whether the will be excluded from the authentication flow. + Setting to true disables launching the default system browser to authenticate in development environments. + The default is true. + + + + + Specifies whether the will be excluded from the authentication flow. + + + + + Specifies whether the will be excluded from the authentication flow. + + + + + Specifies whether the will be excluded from the authentication flow. + The default is true. + + + + + Specifies whether the will be excluded from the authentication flow. + + + + + + + + A implementation which authenticates a user using the device code flow, and provides access tokens for that user account. + For more information on the device code authentication flow see https://github.com/AzureAD/microsoft-authentication-library-for-dotnet/wiki/Device-Code-Flow. + + + + + Creates a new , which will authenticate users using the device code flow. + + + + + Creates a new with the specified options, which will authenticate users using the device code flow. + + The client options for the newly created . + + + + Creates a new DeviceCodeCredential with the specified options, which will authenticate users with the specified application. + + The callback to be executed to display the device code to the user + The client id of the application to which the users will authenticate + The client options for the newly created DeviceCodeCredential + + + + Creates a new DeviceCodeCredential with the specified options, which will authenticate users with the specified application. + + The callback to be executed to display the device code to the user + The tenant id of the application to which users will authenticate. This can be null for multi-tenanted applications. + The client id of the application to which the users will authenticate + The client options for the newly created DeviceCodeCredential + + + + Interactively authenticates a user via the default browser. + + A controlling the request lifetime. + The result of the authentication request, containing the acquired , and the which can be used to silently authenticate the account. + + + + Interactively authenticates a user via the default browser. + + A controlling the request lifetime. + The which can be used to silently authenticate the account on future execution of credentials using the same persisted token cache. + + + + Interactively authenticates a user via the default browser. + + A controlling the request lifetime. + The details of the authentication request. + The of the authenticated account. + + + + Interactively authenticates a user via the default browser. + + A controlling the request lifetime. + The details of the authentication request. + The of the authenticated account. + + + + Obtains a token for a user account, authenticating them through the device code authentication flow. Acquired tokens are cached + by the credential instance. Token lifetime and refreshing is handled automatically. Where possible, reuse credential instances + to optimize cache effectiveness. + + The details of the authentication request. + A controlling the request lifetime. + An which can be used to authenticate service client calls. + + + + Obtains a token for a user account, authenticating them through the device code authentication flow. Acquired tokens are cached + by the credential instance. Token lifetime and refreshing is handled automatically. Where possible, reuse credential instances + to optimize cache effectiveness. + + The details of the authentication request. + A controlling the request lifetime. + An which can be used to authenticate service client calls. + + + + Options to configure the . + + + + + Prevents the from automatically prompting the user. If automatic authentication is disabled a AuthenticationRequiredException will be thrown from and in the case that + user interaction is necessary. The application is responsible for handling this exception, and calling or to authenticate the user interactively. + + + + + The tenant ID the user will be authenticated to. If not specified the user will be authenticated to their home tenant. + + + + + Specifies tenants in addition to the specified for which the credential may acquire tokens. + Add the wildcard value "*" to allow the credential to acquire tokens for any tenant the logged in account can access. + If no value is specified for , this option will have no effect, and the credential will acquire tokens for any requested tenant. + + + + + The client ID of the application used to authenticate the user. If not specified the user will be authenticated with an Azure development application. + + + + + Specifies the to be used by the credential. If not options are specified, the token cache will not be persisted to disk. + + + + + The captured from a previous authentication. + + + + + The callback which will be executed to display the device code login details to the user. In not specified the device code and login instructions will be printed to the console. + + + + + Gets or sets the setting which determines whether or not instance discovery is performed when attempting to authenticate. + Setting this to true will completely disable both instance discovery and authority validation. + This functionality is intended for use in scenarios where the metadata endpoint cannot be reached, such as in private clouds or Azure Stack. + The process of instance discovery entails retrieving authority metadata from https://login.microsoft.com/ to validate the authority. + By setting this to true, the validation of the authority is disabled. + As a result, it is crucial to ensure that the configured authority host is valid and trustworthy." + + + + + Enables authentication to Microsoft Entra ID using a client secret or certificate, or as a user + with a username and password. + + Configuration is attempted in this order, using these environment variables: + + + Service principal with secret: + + VariableDescription + AZURE_TENANT_IDThe Microsoft Entra tenant (directory) ID. + AZURE_CLIENT_IDThe client (application) ID of an App Registration in the tenant. + AZURE_CLIENT_SECRETA client secret that was generated for the App Registration. + + + Service principal with certificate: + + VariableDescription + AZURE_TENANT_IDThe Microsoft Entra tenant (directory) ID. + AZURE_CLIENT_IDThe client (application) ID of an App Registration in the tenant. + AZURE_CLIENT_CERTIFICATE_PATHA path to certificate and private key pair in PEM or PFX format, which can authenticate the App Registration. + AZURE_CLIENT_CERTIFICATE_PASSWORD(Optional) The password protecting the certificate file (currently only supported for PFX (PKCS12) certificates). + AZURE_CLIENT_SEND_CERTIFICATE_CHAIN(Optional) Specifies whether an authentication request will include an x5c header to support subject name / issuer based authentication. When set to `true` or `1`, authentication requests include the x5c header. + + + Username and password: + + VariableDescription + AZURE_TENANT_IDThe Microsoft Entra tenant (directory) ID. + AZURE_CLIENT_IDThe client (application) ID of an App Registration in the tenant. + AZURE_USERNAMEThe username, also known as upn, of a Microsoft Entra user account. + AZURE_PASSWORDThe password of the Microsoft Entra user account. Note this does not support accounts with MFA enabled. + + + This credential ultimately uses a , , or to + perform the authentication using these details. Please consult the + documentation of that class for more details. + + + + + Creates an instance of the EnvironmentCredential class and reads client secret details from environment variables. + If the expected environment variables are not found at this time, the GetToken method will return the default when invoked. + + + + + Creates an instance of the EnvironmentCredential class and reads client secret details from environment variables. + If the expected environment variables are not found at this time, the GetToken method will return the default when invoked. + + Options that allow to configure the management of the requests sent to Microsoft Entra ID. + + + + Creates an instance of the EnvironmentCredential class and reads client secret details from environment variables. + If the expected environment variables are not found at this time, the GetToken method will return the default when invoked. + + Options that allow to configure the management of the requests sent to Microsoft Entra ID. + + + + Obtains a token from Microsoft Entra ID, using the specified client details specified in the environment variables + AZURE_TENANT_ID, AZURE_CLIENT_ID, and AZURE_CLIENT_SECRET or AZURE_USERNAME and AZURE_PASSWORD to authenticate. + Acquired tokens are cached by the credential instance. Token lifetime and refreshing is handled automatically. Where possible, + reuse credential instances to optimize cache effectiveness. + + + If the environment variables AZURE_TENANT_ID, AZURE_CLIENT_ID, and AZURE_CLIENT_SECRET are not specified, the default + + The details of the authentication request. + A controlling the request lifetime. + An which can be used to authenticate service client calls. + + + + Obtains a token from Microsoft Entra ID, using the specified client details specified in the environment variables + AZURE_TENANT_ID, AZURE_CLIENT_ID, and AZURE_CLIENT_SECRET or AZURE_USERNAME and AZURE_PASSWORD to authenticate. + Acquired tokens are cached by the credential instance. Token lifetime and refreshing is handled automatically. Where possible, + reuse credential instances to optimize cache effectiveness. + + + If the environment variables AZURE_TENANT_ID, AZURE_CLIENT_ID, and AZURE_CLIENT_SECRET are not specified, the default + + The details of the authentication request. + A controlling the request lifetime. + An which can be used to authenticate service client calls, or a default . + + + + Options used to configure the . + + + + + The ID of the tenant to which the credential will authenticate by default. This value defaults to the value of the environment variable AZURE_TENANT_ID. + + + + + The client ID (app ID) of the service pricipal the credential will authenticate. This value defaults to the value of the environment variable AZURE_CLIENT_ID. + + + + + The client secret used to authenticate the service pricipal. This value defaults to the value of the environment variable AZURE_CLIENT_SECRET. + + + + + The path to the client certificate used to authenticate the service pricipal. This value defaults to the value of the environment variable AZURE_CLIENT_CERTIFICATE_PATH. + + + + + The password of the client certificate used to authenticate the service pricipal. This value defaults to the value of the environment variable AZURE_CLIENT_CERTIFICATE_PASSWORD. + + + + + Will include x5c header in client claims when acquiring a token to enable certificate subject name / issuer based authentication. This value defaults to the value of the environment variable AZURE_CLIENT_SEND_CERTIFICATE_CHAIN. + + + + + The username of the user account the credeential will authenticate. This value defaults to the value of the environment variable AZURE_USERNAME. + + + + + The password of used to authenticate the user. This value defaults to the value of the environment variable AZURE_PASSWORD. + + + + + MSAL client to be used for testing. + + + + + MSAL client to be used for testing. + + + + + Gets or sets the setting which determines whether or not instance discovery is performed when attempting to authenticate. + Setting this to true will completely disable both instance discovery and authority validation. + This functionality is intended for use in scenarios where the metadata endpoint cannot be reached, such as in private clouds or Azure Stack. + The process of instance discovery entails retrieving authority metadata from https://login.microsoft.com/ to validate the authority. + By setting this to true, the validation of the authority is disabled. + As a result, it is crucial to ensure that the configured authority host is valid and trustworthy." + + + + + Specifies tenants in addition to the specified for which the credential may acquire tokens. + Add the wildcard value "*" to allow the credential to acquire tokens for any tenant the logged in account can access. + If no value is specified for , this option will have no effect on that authentication method, and the credential will acquire tokens for any requested tenant when using that method. + This value defaults to the value of the environment variable AZURE_ADDITIONALLY_ALLOWED_TENANTS. + + + + + A implementation which launches the system default browser to interactively authenticate a user, and obtain an access token. + The browser will only be launched to authenticate the user once, then will silently acquire access tokens through the users refresh token as long as it's valid. + + + + + Creates a new with the specified options, which will authenticate users. + + + + + Creates a new with the specified options, which will authenticate users with the specified application. + + The client options for the newly created . + + + + Creates a new with the specified options, which will authenticate users with the specified application. + + The client id of the application to which the users will authenticate + + + + Creates a new with the specified options, which will authenticate users with the specified application. + + The tenant id of the application and the users to authenticate. Can be null in the case of multi-tenant applications. + The client id of the application to which the users will authenticate + TODO: need to link to info on how the application has to be created to authenticate users, for multiple applications + The client options for the newly created . + + + + Interactively authenticates a user via the default browser. + + A controlling the request lifetime. + The result of the authentication request, containing the acquired , and the which can be used to silently authenticate the account. + + + + Interactively authenticates a user via the default browser. The resulting will automatically be used in subsequent calls to . + + A controlling the request lifetime. + The result of the authentication request, containing the acquired , and the which can be used to silently authenticate the account. + + + + Interactively authenticates a user via the default browser. The resulting will automatically be used in subsequent calls to . + + A controlling the request lifetime. + The details of the authentication request. + The of the authenticated account. + + + + Interactively authenticates a user via the default browser. + + A controlling the request lifetime. + The details of the authentication request. + The of the authenticated account. + + + + Obtains an token for a user account silently if the user has already authenticated, otherwise the + default browser is launched to authenticate the user. Acquired tokens are cached by the credential instance. Token lifetime and + refreshing is handled automatically. Where possible, reuse credential instances to optimize cache effectiveness. + + The details of the authentication request. + A controlling the request lifetime. + An which can be used to authenticate service client calls. + + + + Obtains an token for a user account silently if the user has already authenticated, otherwise the + default browser is launched to authenticate the user. Acquired tokens are cached by the credential instance. Token lifetime and + refreshing is handled automatically. Where possible, reuse credential instances to optimize cache effectiveness. + + The details of the authentication request. + A controlling the request lifetime. + An which can be used to authenticate service client calls. + + + + Obtains an token for a user account silently if the user has already authenticated, otherwise the + default browser is launched to authenticate the user. Acquired tokens are cached by the credential instance. Token lifetime and + refreshing is handled automatically. Where possible, reuse credential instances to optimize cache effectiveness. + + The details of the authentication request. + A controlling the request lifetime. + An which can be used to authenticate service client calls. + + + + Obtains an token for a user account silently if the user has already authenticated, otherwise the + default browser is launched to authenticate the user. Acquired tokens are cached by the credential instance. Token lifetime and + refreshing is handled automatically. Where possible, reuse credential instances to optimize cache effectiveness. + + The details of the authentication request. + A controlling the request lifetime. + An which can be used to authenticate service client calls. + + + + Options to configure the . + + + + + Prevents the from automatically prompting the user. If automatic authentication is disabled a AuthenticationRequiredException will be thrown from and in the case that + user interaction is necessary. The application is responsible for handling this exception, and calling or to authenticate the user interactively. + + + + + The tenant ID the user will be authenticated to. If not specified the user will be authenticated to the home tenant. + + + + + Specifies tenants in addition to the specified for which the credential may acquire tokens. + Add the wildcard value "*" to allow the credential to acquire tokens for any tenant the logged in account can access. + If no value is specified for , this option will have no effect, and the credential will acquire tokens for any requested tenant. + + + + + The client ID of the application used to authenticate the user. If not specified the user will be authenticated with an Azure development application. + + + + + Specifies the to be used by the credential. If not options are specified, the token cache will not be persisted to disk. + + + + + Uri where the STS will call back the application with the security token. This parameter is not required if the caller is not using a custom . In + the case that the caller is using their own the value must match the redirect url specified when creating the application registration. + + + + + The captured from a previous authentication. + + + + + Avoids the account prompt and pre-populates the username of the account to login. + + + + + Gets or sets the setting which determines whether or not instance discovery is performed when attempting to authenticate. + Setting this to true will completely disable both instance discovery and authority validation. + This functionality is intended for use in scenarios where the metadata endpoint cannot be reached, such as in private clouds or Azure Stack. + The process of instance discovery entails retrieving authority metadata from https://login.microsoft.com/ to validate the authority. + By setting this to true, the validation of the authority is disabled. + As a result, it is crucial to ensure that the configured authority host is valid and trustworthy." + + + + + The options for customizing the browser for interactive authentication. + + + + + Specifies tenants in addition to the configured tenant for which the credential may acquire tokens. + Add the wildcard value "*" to allow the credential to acquire tokens for any tenant the logged in account can access. + If no specific tenant was configured this option will have no effect, and the credential will acquire tokens for any requested tenant. + + + + + Gets or sets the setting which determines whether or not instance discovery is performed when attempting to authenticate. + Setting this to true will completely disable both instance discovery and authority validation. + This functionality is intended for use in scenarios where the metadata endpoint cannot be reached, such as in private clouds or Azure Stack. + The process of instance discovery entails retrieving authority metadata from https://login.microsoft.com/ to validate the authority. + By setting this to true, the validation of the authority is disabled. + As a result, it is crucial to ensure that the configured authority host is valid and trustworthy." + + + + + Attempts authentication using a managed identity that has been assigned to the deployment environment. This authentication type works for all Azure hosted + environments that support managed identity. More information about configuring managed identities can be found at + . + + + + + Protected constructor for mocking. + + + + + Creates an instance of the ManagedIdentityCredential capable of authenticating a resource with a managed identity. + + + The client ID to authenticate for a user-assigned managed identity. More information on user-assigned managed identities can be found at + . + + Options to configure the management of the requests sent to Microsoft Entra ID. + + + + Creates an instance of the ManagedIdentityCredential capable of authenticating a resource with a managed identity. + + + The resource ID to authenticate for a user-assigned managed identity. More information on user-assigned managed identities can be found at + . + + Options to configure the management of the requests sent to Microsoft Entra ID. + + + + Obtains an from the Managed Identity service, if available. Acquired tokens are cached by the credential + instance. Token lifetime and refreshing is handled automatically. Where possible, reuse credential instances to optimize cache + effectiveness. + + The details of the authentication request. + A controlling the request lifetime. + An which can be used to authenticate service client calls, or a default if no managed identity is available. + + + + Obtains an from the Managed Identity service, if available. Acquired tokens are cached by the credential + instance. Token lifetime and refreshing is handled automatically. Where possible, reuse credential instances to optimize cache + effectiveness. + + The details of the authentication request. + A controlling the request lifetime. + An which can be used to authenticate service client calls, or a default if no managed identity is available. + + + + Enables authentication to Microsoft Entra ID using an On-Behalf-Of flow. + + + + + Protected constructor for mocking. + + + + + Creates an instance of the with the details needed to authenticate against Microsoft Entra ID with the specified certificate. + + The Microsoft Entra tenant (directory) ID of the service principal. + The client (application) ID of the service principal + The authentication X509 Certificate of the service principal + The access token that will be used by as the user assertion when requesting On-Behalf-Of tokens. + + + + Creates an instance of the with the details needed to authenticate against Microsoft Entra ID with the specified certificate. + + The Microsoft Entra tenant (directory) ID of the service principal. + The client (application) ID of the service principal + The authentication X509 Certificate of the service principal + The access token that will be used by as the user assertion when requesting On-Behalf-Of tokens. + Options that allow to configure the management of the requests sent to Microsoft Entra ID. + + + + Creates an instance of the with the details needed to authenticate with Microsoft Entra ID. + + The Microsoft Entra tenant (directory) ID of the service principal. + The client (application) ID of the service principal + A client secret that was generated for the App Registration used to authenticate the client. + The access token that will be used by as the user assertion when requesting On-Behalf-Of tokens. + + + + Creates an instance of the with the details needed to authenticate with Microsoft Entra ID. + + The Microsoft Entra tenant (directory) ID of the service principal. + The client (application) ID of the service principal + A client secret that was generated for the App Registration used to authenticate the client. + The access token that will be used by as the user assertion when requesting On-Behalf-Of tokens. + Options that allow to configure the management of the requests sent to Microsoft Entra ID. + + + + Authenticates with Microsoft Entra ID and returns an access token if successful. + Acquired tokens are cached by the credential instance. Token lifetime and refreshing is + handled automatically. Where possible, reuse credential instances to optimize cache + effectiveness. + + The details of the authentication request. + A controlling the request lifetime. + An which can be used to authenticate service client calls. + + + + Authenticates with Microsoft Entra ID and returns an access token if successful. + Acquired tokens are cached by the credential instance. Token lifetime and refreshing is + handled automatically. Where possible, reuse credential instances to optimize cache + effectiveness. + + The details of the authentication request. + A controlling the request lifetime. + An which can be used to authenticate service client calls. + + + + + + + + + The . + + + + + Will include x5c header in client claims when acquiring a token to enable subject name / issuer based authentication for the . + + + + + For multi-tenant applications, specifies additional tenants for which the credential may acquire tokens. Add the wildcard value "*" to allow the credential to acquire tokens for any tenant in which the application is installed. + + + + + Gets or sets the setting which determines whether or not instance discovery is performed when attempting to authenticate. + Setting this to true will completely disable both instance discovery and authority validation. + This functionality is intended for use in scenarios where the metadata endpoint cannot be reached, such as in private clouds or Azure Stack. + The process of instance discovery entails retrieving authority metadata from https://login.microsoft.com/ to validate the authority. + By setting this to true, the validation of the authority is disabled. + As a result, it is crucial to ensure that the configured authority host is valid and trustworthy." + + + + + Authenticates using tokens in a local cache file. This is a legacy mechanism for authenticating clients using credentials provided to Visual Studio. + This mechanism for Visual Studio authentication has been replaced by the . + + + + + Creates a new which will authenticate users signed in through developer tools supporting Azure single sign on. + + + + + Creates a new which will authenticate users signed in through developer tools supporting Azure single sign on. + + The client options for the newly created + + + + Creates a new which will authenticate users signed in through developer tools supporting Azure single sign on. + + The username of the user to authenticate + The client options for the newly created + + + + Obtains an token for a user account silently if the user has already authenticated to another Microsoft + application participating in SSO through a shared MSAL cache. Acquired tokens are cached by the credential instance. Token + lifetime and refreshing is handled automatically. Where possible, reuse credential instances to optimize cache effectiveness. + + The details of the authentication request. + A controlling the request lifetime + An which can be used to authenticate service client calls + + + + Obtains an token for a user account silently if the user has already authenticated to another Microsoft + application participating in SSO through a shared MSAL cache. Acquired tokens are cached by the credential instance. Token + lifetime and refreshing is handled automatically. Where possible, reuse credential instances to optimize cache effectiveness. + + The details of the authentication request. + A controlling the request lifetime + An which can be used to authenticate service client calls + + + + Options to configure the authentication. + + + + + The client id of the application registration used to authenticate users in the cache. + + + + + Specifies the preferred authentication account username, or UPN, to be retrieved from the shared token cache for single sign on authentication with + development tools, in the case multiple accounts are found in the shared token. + + + + + Specifies the tenant id of the preferred authentication account, to be retrieved from the shared token cache for single sign on authentication with + development tools, in the case multiple accounts are found in the shared token. + + + + + When set to true the can be used to authenticate to tenants other than the home tenant, requiring and also to be specified as well. + + + + + The captured from a previous authentication with an interactive credential, such as the or . + + + + + Specifies the to be used by the credential. Value cannot be null. + + + + + Initializes a new instance of . + + + + + Initializes a new instance of . + + The that will apply to the token cache used by this credential. + + + + Gets or sets the setting which determines whether or not instance discovery is performed when attempting to authenticate. + Setting this to true will completely disable both instance discovery and authority validation. + This functionality is intended for use in scenarios where the metadata endpoint cannot be reached, such as in private clouds or Azure Stack. + The process of instance discovery entails retrieving authority metadata from https://login.microsoft.com/ to validate the authority. + By setting this to true, the validation of the authority is disabled. + As a result, it is crucial to ensure that the configured authority host is valid and trustworthy." + + + + + Options to configure requests made to the OAUTH identity service. + + + + + Constructs a new instance. + + + + + The host of the Microsoft Entra authority. The default is https://login.microsoftonline.com/. For well known authority hosts for Azure cloud instances see . + + + + + Gets or sets value indicating if ETW logging that contains potentially sensitive content should be logged. + Setting this property to true will not disable redaction of Content. To enable logging of sensitive + the property must be set to true. + Setting this property to `true` equates to passing 'true' for the enablePiiLogging parameter to the 'WithLogging' method on the MSAL client builder. + + + + + Gets or sets whether this credential is part of a chained credential. + + + + + Gets the credential diagnostic options. + + + + + Enables authentication to Microsoft Entra ID using a user's username and password. If the user has MFA enabled this + credential will fail to get a token throwing an . Also, this credential requires a high degree of + trust and is not recommended outside of prototyping when more secure credentials can be used. + + + + + Protected constructor for mocking + + + + + Creates an instance of the with the details needed to authenticate against Microsoft Entra ID with a simple username + and password. + + The user account's username, also known as UPN. + The user account's password. + The Microsoft Entra tenant (directory) ID or name. + The client (application) ID of an App Registration in the tenant. + + + + Creates an instance of the with the details needed to authenticate against Microsoft Entra ID with a simple username + and password. + + The user account's user name, UPN. + The user account's password. + The Microsoft Entra tenant (directory) ID or name. + The client (application) ID of an App Registration in the tenant. + The client options for the newly created UsernamePasswordCredential + + + + Creates an instance of the with the details needed to authenticate against Microsoft Entra ID with a simple username + and password. + + The user account's user name, UPN. + The user account's password. + The Microsoft Entra tenant (directory) ID or name. + The client (application) ID of an App Registration in the tenant. + The client options for the newly created UsernamePasswordCredential + + + + Authenticates the user using the specified username and password. + + A controlling the request lifetime. + The of the authenticated account. + + + + Authenticates the user using the specified username and password. + + A controlling the request lifetime. + The of the authenticated account. + + + + Authenticates the user using the specified username and password. + + A controlling the request lifetime. + The details of the authentication request. + The of the authenticated account. + + + + Authenticates the user using the specified username and password. + + A controlling the request lifetime. + The details of the authentication request. + The of the authenticated account. + + + + Obtains a token for a user account, authenticating them using the given username and password. Note: This will fail with an + if the specified user account has MFA enabled. Acquired tokens are cached by the + credential instance. Token lifetime and refreshing is handled automatically. Where possible, reuse credential instances to + optimize cache effectiveness. + + The details of the authentication request. + A controlling the request lifetime. + An which can be used to authenticate service client calls. + + + + Obtains a token for a user account, authenticating them using the given username and password. Note: This will fail with an + if the specified user account has MFA enabled. Acquired tokens are cached by the + credential instance. Token lifetime and refreshing is handled automatically. Where possible, reuse credential instances to + optimize cache effectiveness. + + The details of the authentication request. + A controlling the request lifetime. + An which can be used to authenticate service client calls. + + + + Options to configure the . + + + + + Specifies the to be used by the credential. If not options are specified, the token cache will not be persisted to disk. + + + + + For multi-tenant applications, specifies additional tenants for which the credential may acquire tokens. Add the wildcard value "*" to allow the credential to acquire tokens for any tenant in which the application is installed. + + + + + Gets or sets the setting which determines whether or not instance discovery is performed when attempting to authenticate. + Setting this to true will completely disable both instance discovery and authority validation. + This functionality is intended for use in scenarios where the metadata endpoint cannot be reached, such as in private clouds or Azure Stack. + The process of instance discovery entails retrieving authority metadata from https://login.microsoft.com/ to validate the authority. + By setting this to true, the validation of the authority is disabled. + As a result, it is crucial to ensure that the configured authority host is valid and trustworthy." + + + + + Enables authentication to Microsoft Entra ID as the user signed in to Visual Studio Code via + the 'Azure Account' extension. + + It's a known issue that `VisualStudioCodeCredential` + doesn't work with Azure Account extension + versions newer than 0.9.11. A long-term fix to this problem is in progress. In the meantime, consider authenticating + with . + + + + + Creates a new instance of the . + + + + + Creates a new instance of the with the specified options. + + Options for configuring the credential. + + + + Gets an for the specified set of scopes. + The with authentication information.The to use.A valid .Caching and management of the lifespan for the is considered the responsibility of the caller: each call should request a fresh token being requested. + + + + Gets an for the specified set of scopes. + The with authentication information.The to use.A valid .Caching and management of the lifespan for the is considered the responsibility of the caller: each call should request a fresh token being requested. + + + + Options for configuring the . + + + + + The tenant ID the user will be authenticated to. If not specified, the user will be authenticated to any requested tenant, and by default to the tenant the user originally authenticated to via the Visual Studio Code Azure Account extension. + + + + + Specifies tenants in addition to the specified for which the credential may acquire tokens. + Add the wildcard value "*" to allow the credential to acquire tokens for any tenant the logged in account can access. + If no value is specified for , this option will have no effect, and the credential will acquire tokens for any requested tenant. + + + + + Enables authentication to Microsoft Entra ID using data from Visual Studio 2017 or later. See + for more information + on how to configure Visual Studio for Azure development. + + + + + Creates a new instance of the . + + + + + Creates a new instance of the with the specified options. + + Options for configuring the credential. + + + + Gets an for the specified set of scopes. + The with authentication information.The to use.A valid .Caching and management of the lifespan for the is considered the responsibility of the caller: each call should request a fresh token being requested. + + + + Gets an for the specified set of scopes. + The with authentication information.The to use.A valid .Caching and management of the lifespan for the is considered the responsibility of the caller: each call should request a fresh token being requested. + + + + Options for configuring the . + + + + + The tenant ID the credential will be authenticated to by default. If not specified, the credential will authenticate to any requested tenant, and will default to the tenant the user originally authenticated to via the Visual Studio Azure Service Account dialog. + + + + + Specifies tenants in addition to the specified for which the credential may acquire tokens. + Add the wildcard value "*" to allow the credential to acquire tokens for any tenant the logged in account can access. + If no value is specified for , this option will have no effect, and the credential will acquire tokens for any requested tenant. + + + + + The VisualStudio process timeout. + + + + + WorkloadIdentityCredential supports Microsoft Entra Workload ID authentication on Kubernetes and other hosts supporting workload identity. + Refer to Microsoft Entra Workload ID for more information. + + + + + Creates a new instance of the with the default options. + When no options are specified AZURE_TENANT_ID, AZURE_CLIENT_ID and AZURE_FEDERATED_TOKEN_FILE must be specified in the environment. + + + + + Creates a new instance of the with the specified options. + + Options that allow to configure the management of the requests sent to Microsoft Entra ID. + + + + Gets an for the specified set of scopes. + The with authentication information.The to use.A valid .Caching and management of the lifespan for the is considered the responsibility of the caller: each call should request a fresh token being requested. + + + + Gets an for the specified set of scopes. + The with authentication information.The to use.A valid .Caching and management of the lifespan for the is considered the responsibility of the caller: each call should request a fresh token being requested. + + + + Options used to configure the . + + + + + The tenant ID of the service principal. Defaults to the value of the environment variable AZURE_TENANT_ID. + + + + + The client (application) ID of the service principal. Defaults to the value of the environment variable AZURE_CLIENT_ID. + + + + + The path to a file containing the workload identity token. Defaults to the value of the environment variable AZURE_FEDERATED_TOKEN_FILE. + + + + + Gets or sets the setting which determines whether or not instance discovery is performed when attempting to authenticate. + Setting this to true will completely disable both instance discovery and authority validation. + This functionality is intended for use in scenarios where the metadata endpoint cannot be reached, such as in private clouds or Azure Stack. + The process of instance discovery entails retrieving authority metadata from https://login.microsoft.com/ to validate the authority. + By setting this to true, the validation of the authority is disabled. + As a result, it is crucial to ensure that the configured authority host is valid and trustworthy." + + + + + Specifies tenants in addition to the specified for which the credential may acquire tokens. + Add the wildcard value "*" to allow the credential to acquire tokens for any tenant the logged in account can access. + If no value is specified for , this option will have no effect, and the credential will acquire tokens for any requested tenant. + Defaults to the value of the environment variable AZURE_ADDITIONALLY_ALLOWED_TENANTS. + + + + + An exception indicating a did not attempt to authenticate and retrieve , as its prerequisite information or state was not available. + + + + + Creates a new with the specified message. + + The message describing the authentication failure. + + + + Creates a new with the specified message. + + The message describing the authentication failure. + The exception underlying the authentication failure. + + + + A constructor used for serialization. + + The . + The . + + + + + Details of the device code to present to a user to allow them to authenticate through the device code authentication flow. + + + + + User code returned by the service + + + + + Device code returned by the service + + + + + Verification URL where the user must navigate to authenticate using the device code and credentials. + + + + + Time when the device code will expire. + + + + + User friendly text response that can be used for display purpose. + + + + + Identifier of the client requesting device code. + + + + + List of the scopes that would be held by token. + + + + + This class is an HttpClient factory which creates an HttpClient which delegates it's transport to an HttpPipeline, to enable MSAL to send requests through an Azure.Core HttpPipeline. + + + + + Model factory that enables mocking for the Azure Identity library. + + + + + Initializes a new instance of the class for mocking purposes. + + Sets the . + Sets the . + Sets the . + Sets the . + Sets the . + A new instance of the for mocking purposes. + + + + Initializes a new instance of the class for mocking purposes. + + Sets the . + Sets the . + Sets the . + Sets the . + Sets the . + Sets the . + Sets the . + A new instance of the for mocking purposes. + + + + IX509Certificate2Provider provides a way to control how the X509Certificate2 object is fetched. + + + + + Default Constructor. + + + + + Creates a new instance of Microsoft.Identity.Client.Extensions.Msal.MsalCacheHelper. + To configure MSAL to use this cache persistence, call Microsoft.Identity.Client.Extensions.Msal.MsalCacheHelper.RegisterCache(Microsoft.Identity.Client.ITokenCache) + + + Passing null uses a default logger + A new instance of Microsoft.Identity.Client.Extensions.Msal.MsalCacheHelper. + + + + Performs a write -> read -> clear using the underlying persistence mechanism + and throws an Microsoft.Identity.Client.Extensions.Msal.MsalCachePersistenceException + if something goes wrong. + + + Does not overwrite the token cache. Should never fail on Windows and Mac where + the cache accessors are guaranteed to exist by the OS. + + + + + Registers a token cache to synchronize with on disk storage. + + + + + + Unregisters a token cache so it no longer synchronizes with on disk storage. + + + + + + Extracts the token cache data from the persistent store + + + This method should be used with care. The data returned is unencrypted. + + UTF-8 byte array of the unencrypted token cache + + + + Saves an unencrypted, UTF-8 encoded byte array representing an MSAL token cache. + The save operation will persist the data in a secure location, as configured + in Microsoft.Identity.Client.Extensions.Msal.StorageCreationProperties + + + + + For mocking purposes only. + + + + + For mocking purposes only. + + + + + Resolves the tenantId based on the supplied configuration values. + + The tenantId passed to the ctor of the Credential. + The . + Additional tenants the credential is configured to acquire tokens for. + The tenantId to be used for authorization. + + + + A cache for Tokens. + + + + + The internal state of the cache. + + + + + Determines whether the token cache will be associated with CAE enabled requests. + + If true, this cache services only CAE enabled requests.Otherwise, this cache services non-CAE enabled requests. + + + + Creates a new instance of with the specified options. + + Options controlling the storage of the . + Controls whether this cache will be associated with CAE requests or non-CAE requests. + + + + A delegate that is called with the cache contents when the underlying has been updated. + + + + + A delegate that will be called before the cache is accessed. The data returned will be used to set the current state of the cache. + + + + + Details related to a cache delegate. + + + + + Constructs a new instance with the specified cache bytes. + + The serialized content of the token cache. + + + + The bytes representing the state of the token cache. + + + + + Options controlling the storage of the token cache. + + + + This is an example showing how TokenCachePersistenceOptions and an AuthenticationRecord can be used together to enable silent authentication + across executions of a client application. + + + const string TOKEN_CACHE_NAME = "MyTokenCache"; + InteractiveBrowserCredential credential; + AuthenticationRecord authRecord; + + // Check if an AuthenticationRecord exists on disk. + // If it does not exist, get one and serialize it to disk. + // If it does exist, load it from disk and deserialize it. + if (!File.Exists(AUTH_RECORD_PATH)) + { + // Construct a credential with TokenCachePersistenceOptions specified to ensure that the token cache is persisted to disk. + // We can also optionally specify a name for the cache to avoid having it cleared by other applications. + credential = new InteractiveBrowserCredential( + new InteractiveBrowserCredentialOptions { TokenCachePersistenceOptions = new TokenCachePersistenceOptions { Name = TOKEN_CACHE_NAME } }); + + // Call AuthenticateAsync to fetch a new AuthenticationRecord. + authRecord = await credential.AuthenticateAsync(); + + // Serialize the AuthenticationRecord to disk so that it can be re-used across executions of this initialization code. + using var authRecordStream = new FileStream(AUTH_RECORD_PATH, FileMode.Create, FileAccess.Write); + await authRecord.SerializeAsync(authRecordStream); + } + else + { + // Load the previously serialized AuthenticationRecord from disk and deserialize it. + using var authRecordStream = new FileStream(AUTH_RECORD_PATH, FileMode.Open, FileAccess.Read); + authRecord = await AuthenticationRecord.DeserializeAsync(authRecordStream); + + // Construct a new client with our TokenCachePersistenceOptions with the addition of the AuthenticationRecord property. + // This tells the credential to use the same token cache in addition to which account to try and fetch from cache when GetToken is called. + credential = new InteractiveBrowserCredential( + new InteractiveBrowserCredentialOptions + { + TokenCachePersistenceOptions = new TokenCachePersistenceOptions { Name = TOKEN_CACHE_NAME }, + AuthenticationRecord = authRecord + }); + } + + // Construct our client with the credential which is connected to the token cache + // with the capability of silent authentication for the account specified in the AuthenticationRecord. + var client = new SecretClient(new Uri("https://myvault.vault.azure.net/"), credential); + + + + + + Name uniquely identifying the . + + + + + If set to true the token cache may be persisted as an unencrypted file if no OS level user encryption is available. When set to false the token cache + will throw a in the event no OS level user encryption is available. + + + + + Creates a copy of the . + + + + + + Args sent to TokenCache OnBefore and OnAfter events. + + + + + A suggested token cache key, which can be used with general purpose storage mechanisms that allow + storing key-value pairs and key based retrieval. Useful in applications that store one token cache per user, + the recommended pattern for web apps. + + The value is: + + + homeAccountId for AcquireTokenSilent, GetAccount(homeAccountId), RemoveAccount and when writing tokens on confidential client calls + "{clientId}__AppTokenCache" for AcquireTokenForClient + "{clientId}_{tenantId}_AppTokenCache" for AcquireTokenForClient when using a tenant specific authority + the hash of the original token for AcquireTokenOnBehalfOf + + + + + + Whether or not the cache is enabled for CAE. Note that this value should be used as an indicator for how the cache will be partitioned. + Token cache refresh events with this value set to `true` will originate from a different cache instance than those with this value set to `false`. + + + + + Data regarding an update of a token cache. + + + + + The instance which was updated. + + + + + Whether or not the cache is enabled for CAE. Note that this value should be used as an indicator for how the cache will be partitioned. + Token cache refresh events with this value set to `true` will originate from a different cache instance than those with this value set to `false`. + + + + + Exposes client options related to logging, telemetry, and distributed tracing. + + + + + If true, we try to log the account identifiers by parsing the received access token. + The account identifiers we try to log are: + + The Application or Client Identifier + User Principal Name + Tenant Identifier + Object Identifier of the authenticated user or application + + + + + + Options controlling the storage of the token cache. + + + + + The delegate to be called when the Updated event fires. + + + + + Returns the bytes used to initialize the token cache. This would most likely have come from the . + This implementation will get called by the default implementation of . + It is recommended to provide an implementation for rather than this method. + + + + + Returns the bytes used to initialize the token cache. This would most likely have come from the . + It is recommended that if this method is overriden, there is no need to provide a duplicate implementation for the parameterless . + + The containing information about the current state of the cache. + The controlling the lifetime of this operation. + + + + As tenant id is used in constructing authority endpoints and in command line invocation we validate the character set of the tenant id matches allowed characters. + + + + + PowerShell Legacy can only be used on Windows OS systems. + + + + + + + X509Certificate2FromFileProvider provides an X509Certificate2 from a file on disk. It supports both + "pfx" and "pem" encoded certificates. + + + + + X509Certificate2FromObjectProvider provides an X509Certificate2 from an existing instance. + + + + + An HttpMessageHandler which delegates SendAsync to a specified HttpPipeline. + + + + + Helper for interacting with AppConfig settings and their related Environment variable settings. + + + + + Determines if either an AppContext switch or its corresponding Environment Variable is set + + Name of the AppContext switch. + Name of the Environment variable. + If the AppContext switch has been set, returns the value of the switch. + If the AppContext switch has not been set, returns the value of the environment variable. + False if neither is set. + + + + + Argument validation. + + + This class should be shared via source using Azure.Core.props and contain only common argument validation. + It is declared partial so that you can use the same familiar class name but extend it with project-specific validation. + To extend the functionality of this class, just declare your own partial class with project-specific methods. + + + Be sure to document exceptions thrown by these methods on your public methods. + + + + + + Throws if is null. + + The value to validate. + The name of the parameter. + is null. + + + + Throws if has not been initialized. + + The value to validate. + The name of the parameter. + has not been initialized. + + + + Throws if is null or an empty collection. + + The value to validate. + The name of the parameter. + is an empty collection. + is null. + + + + Throws if is null or an empty string. + + The value to validate. + The name of the parameter. + is an empty string. + is null. + + + + Throws if is null, an empty string, or consists only of white-space characters. + + The value to validate. + The name of the parameter. + is an empty string or consists only of white-space characters. + is null. + + + + Throws if is the default value for type . + + The type of structure to validate which implements . + The value to validate. + The name of the parameter. + is the default value for type . + + + + Throws if is less than the or greater than the . + + The type of to validate which implements . + The value to validate. + The minimum value to compare. + The maximum value to compare. + The name of the parameter. + + + + Throws if is not defined for . + + The type to validate against. + The value to validate. + The name of the parameter. + is not defined for . + + + + Throws if has not been initialized; otherwise, returns . + + The value to validate. + The name of the parameter. + has not been initialized. + + + + Throws if is null or an empty string; otherwise, returns . + + The value to validate. + The name of the parameter. + is an empty string. + is null. + + + + Throws if is not null. + + The value to validate. + The name of the parameter. + The error message. + is not null. + + + + Represents a heap-based, array-backed output sink into which data can be written. + + + + + Creates an instance of an , in which data can be written to, + with the default initial capacity. + + + + + Creates an instance of an , in which data can be written to, + with an initial capacity specified. + + The minimum capacity with which to initialize the underlying buffer. + + Thrown when is not positive (i.e. less than or equal to 0). + + + + + Returns the data written to the underlying buffer so far, as a . + + + + + Returns the data written to the underlying buffer so far, as a . + + + + + Returns the amount of data written to the underlying buffer so far. + + + + + Returns the total amount of space within the underlying buffer. + + + + + Returns the amount of space available that can still be written into without forcing the underlying buffer to grow. + + + + + Clears the data written to the underlying buffer. + + + You must clear the before trying to re-use it. + + + + + Notifies that amount of data was written to the output /. + + + Thrown when is negative. + + + Thrown when attempting to advance past the end of the underlying buffer. + + + You must request a new buffer after calling Advance to continue writing more data and cannot write to a previously acquired buffer. + + + + + Returns a to write to that is at least the requested length (specified by ). + If no is provided (or it's equal to 0), some non-empty buffer is returned. + + + Thrown when is negative. + + + This will never return an empty . + + + There is no guarantee that successive calls will return the same buffer or the same-sized buffer. + + + You must request a new buffer after calling Advance to continue writing more data and cannot write to a previously acquired buffer. + + + + + Returns a to write to that is at least the requested length (specified by ). + If no is provided (or it's equal to 0), some non-empty buffer is returned. + + + Thrown when is negative. + + + This will never return an empty . + + + There is no guarantee that successive calls will return the same buffer or the same-sized buffer. + + + You must request a new buffer after calling Advance to continue writing more data and cannot write to a previously acquired buffer. + + + + + Primitive that combines async lock and value cache + + + + + + Method that either returns cached value or acquire a lock. + If one caller has acquired a lock, other callers will be waiting for the lock to be released. + If value is set, lock is released and all waiters get that value. + If value isn't set, the next waiter in the queue will get the lock. + + + + + + + + Returns true if lock contains the cached value. Otherwise false. + + + + + Returns cached value if it was set when lock has been created. Throws exception otherwise. + + Value isn't set. + + + + Set value to the cache and to all the waiters. + + + Value is set already. + + + + This attribute should be set on all client assemblies with value of one of the resource providers + from the https://docs.microsoft.com/azure/azure-resource-manager/management/azure-services-resource-providers list. + + + + Converts a Base64URL encoded string to a string. + The Base64Url encoded string containing UTF8 bytes for a string. + The string represented by the Base64URL encoded string. + + + Encode a byte array as a Base64URL encoded string. + Raw byte input buffer. + The bytes, encoded as a Base64URL string. + + + Converts a Base64URL encoded string to a string. + The Base64Url encoded string containing UTF8 bytes for a string. + The string represented by the Base64URL encoded string. + + + Encode a string as a Base64URL encoded string. + String input buffer. + The UTF8 bytes for the string, encoded as a Base64URL string. + + + + Initializes a new instance of the class. + + The customer provided client options object. + Flag controlling if + created by this for client method calls should be suppressed when called + by other Azure SDK client methods. It's recommended to set it to true for new clients; use default (null) + for backward compatibility reasons, or set it to false to explicitly disable suppression for specific cases. + The default value could change in the future, the flag should be only set to false if suppression for the client + should never be enabled. + + + + Initializes a new instance of the class. + + Namespace of the client class, such as Azure.Storage or Azure.AppConfiguration. + Azure Resource Provider namespace of the Azure service SDK is primarily used for. + The customer provided client diagnostics options. + Flag controlling if + created by this for client method calls should be suppressed when called + by other Azure SDK client methods. It's recommended to set it to true for new clients, use default (null) for old clients + for backward compatibility reasons, or set it to false to explicitly disable suppression for specific cases. + The default value could change in the future, the flag should be only set to false if suppression for the client + should never be enabled. + + + + Adds a link to the scope. This must be called before has been called for the DiagnosticScope. + + The traceparent for the link. + The tracestate for the link. + Optional attributes to associate with the link. + + + + Sets the trace context for the current scope. + + The trace parent to set for the current scope. + The trace state to set for the current scope. + + + + Marks the scope as failed. + + The exception to associate with the failed scope. + + + + Marks the scope as failed with low-cardinality error.type attribute. + + Error code to associate with the failed scope. + + + + Until Activity Source is no longer considered experimental. + + + + + Creates diagnostic scope factory. + + The namespace which is used as a prefix for all ActivitySources created by the factory and the name of DiagnosticSource (when used). + Azure resource provider namespace. + Flag indicating if distributed tracing is enabled. + Flag indicating if nested Azure SDK activities describing public API calls should be suppressed. + Whether instrumentation is considered stable. When false, experimental feature flag controls if tracing is enabled. + + + + Both and are defined as public structs so that foreach can use duck typing + to call and avoid heap memory allocation. + Please don't delete this method and don't make these types private. + + + + + + This is a very targeted PKCS#8 decoder for use when reading a PKCS# encoded RSA private key from an + DER encoded ASN.1 blob. In an ideal world, we would be able to call AsymmetricAlgorithm.ImportPkcs8PrivateKey + off an RSA object to import the private key from a byte array, which we got from the PEM file. There + are a few issues with this however: + + 1. ImportPkcs8PrivateKey does not exist in the Desktop .NET Framework as of today. + 2. ImportPkcs8PrivateKey was added to .NET Core in 3.0, and we'd love to be able to support this + on older versions of .NET Core. + + This code is able to decode RSA keys (without any attributes) from well formed PKCS#8 blobs. + + + + + Reads PEM streams to parse PEM fields or load certificates. + + + This class provides a downlevel PEM decoder since PemEncoding wasn't added until net5.0. + The PemEncoding class takes advantage of other implementation changes in net5.0 and, + based on conversations with the .NET team, runtime changes. + + + + + Loads an from PEM data. + + The PEM data to parse. + Optional public certificate data if not defined within the PEM data. + + Optional of the certificate private key. The default is to automatically detect. + Only support for is implemented by shared code. + + Whether to create an if no private key is read. + A combination of the enumeration values that control where and how to import the certificate. + An loaded from the PEM data. + A cryptographic exception occurred when trying to create the . + is null and no CERTIFICATE field is defined in PEM, or no PRIVATE KEY is defined in PEM. + The is not supported. + Creating a from PEM data is not supported on the current platform. + + + + Attempts to read the next PEM field from the given data. + + The PEM data to parse. + The PEM first complete PEM field that was found. + True if a valid PEM field was parsed; otherwise, false. + + To find subsequent fields, pass a slice of past the found . + + + + + Key type of the certificate private key. + + + + + The key type is unknown. + + + + + Attempt to detect the key type. + + + + + RSA key type. + + + + + ECDsa key type. + + + + + A PEM field including its section header and encoded data. + + + + + The offset of the section from the start of the input PEM stream. + + + + + A span of the section label from within the PEM stream. + + + + + A span of the section data from within the PEM stream. + + + + + The length of the section from the . + + + + + Decodes the base64-encoded + + + + + + Indicates that the specified method requires the ability to generate new code at runtime, + for example through . + + + This allows tools to understand which methods are unsafe to call when compiling ahead of time. + + + + + Initializes a new instance of the class + with the specified message. + + + A message that contains information about the usage of dynamic code. + + + + + Gets a message that contains information about the usage of dynamic code. + + + + + Gets or sets an optional URL that contains more information about the method, + why it requires dynamic code, and what options a consumer has to deal with it. + + + + + Indicates that the specified method requires dynamic access to code that is not referenced + statically, for example through . + + + This allows tools to understand which methods are unsafe to call when removing unreferenced + code from an application. + + + + + Initializes a new instance of the class + with the specified message. + + + A message that contains information about the usage of unreferenced code. + + + + + Gets a message that contains information about the usage of unreferenced code. + + + + + Gets or sets an optional URL that contains more information about the method, + why it requires unreferenced code, and what options a consumer has to deal with it. + + + + + Suppresses reporting of a specific rule violation, allowing multiple suppressions on a + single code artifact. + + + is different than + in that it doesn't have a + . So it is always preserved in the compiled assembly. + + + + + Initializes a new instance of the + class, specifying the category of the tool and the identifier for an analysis rule. + + The category for the attribute. + The identifier of the analysis rule the attribute applies to. + + + + Gets the category identifying the classification of the attribute. + + + The property describes the tool or tool analysis category + for which a message suppression attribute applies. + + + + + Gets the identifier of the analysis tool rule to be suppressed. + + + Concatenated together, the and + properties form a unique check identifier. + + + + + Gets or sets the scope of the code that is relevant for the attribute. + + + The Scope property is an optional argument that specifies the metadata scope for which + the attribute is relevant. + + + + + Gets or sets a fully qualified path that represents the target of the attribute. + + + The property is an optional argument identifying the analysis target + of the attribute. An example value is "System.IO.Stream.ctor():System.Void". + Because it is fully qualified, it can be long, particularly for targets such as parameters. + The analysis tool user interface should be capable of automatically formatting the parameter. + + + + + Gets or sets an optional argument expanding on exclusion criteria. + + + The property is an optional argument that specifies additional + exclusion where the literal metadata target is not sufficiently precise. For example, + the cannot be applied within a method, + and it may be desirable to suppress a violation against a statement in the method that will + give a rule violation, but not against all statements in the method. + + + + + Gets or sets the justification for suppressing the code analysis message. + + + + + States a dependency that one member has on another. + + + This can be used to inform tooling of a dependency that is otherwise not evident purely from + metadata and IL, for example a member relied on via reflection. + + + + + Initializes a new instance of the class + with the specified signature of a member on the same type as the consumer. + + The signature of the member depended on. + + + + Initializes a new instance of the class + with the specified signature of a member on a . + + The signature of the member depended on. + The containing . + + + + Initializes a new instance of the class + with the specified signature of a member on a type in an assembly. + + The signature of the member depended on. + The full name of the type containing the specified member. + The assembly name of the type containing the specified member. + + + + Initializes a new instance of the class + with the specified types of members on a . + + The types of members depended on. + The containing the specified members. + + + + Initializes a new instance of the class + with the specified types of members on a type in an assembly. + + The types of members depended on. + The full name of the type containing the specified members. + The assembly name of the type containing the specified members. + + + + Gets the signature of the member depended on. + + + Either must be a valid string or + must not equal , but not both. + + + + + Gets the which specifies the type + of members depended on. + + + Either must be a valid string or + must not equal , but not both. + + + + + Gets the containing the specified member. + + + If neither nor are specified, + the type of the consumer is assumed. + + + + + Gets the full name of the type containing the specified member. + + + If neither nor are specified, + the type of the consumer is assumed. + + + + + Gets the assembly name of the specified type. + + + is only valid when is specified. + + + + + Gets or sets the condition in which the dependency is applicable, e.g. "DEBUG". + + + + + Indicates that certain members on a specified are accessed dynamically, + for example through . + + + This allows tools to understand which members are being accessed during the execution + of a program. + + This attribute is valid on members whose type is or . + + When this attribute is applied to a location of type , the assumption is + that the string represents a fully qualified type name. + + When this attribute is applied to a class, interface, or struct, the members specified + can be accessed dynamically on instances returned from calling + on instances of that class, interface, or struct. + + If the attribute is applied to a method it's treated as a special case and it implies + the attribute should be applied to the "this" parameter of the method. As such the attribute + should only be used on instance methods of types assignable to System.Type (or string, but no methods + will use it there). + + + + + Initializes a new instance of the class + with the specified member types. + + The types of members dynamically accessed. + + + + Gets the which specifies the type + of members dynamically accessed. + + + + + Specifies the types of members that are dynamically accessed. + + This enumeration has a attribute that allows a + bitwise combination of its member values. + + + + + Specifies no members. + + + + + Specifies the default, parameterless public constructor. + + + + + Specifies all public constructors. + + + + + Specifies all non-public constructors. + + + + + Specifies all public methods. + + + + + Specifies all non-public methods. + + + + + Specifies all public fields. + + + + + Specifies all non-public fields. + + + + + Specifies all public nested types. + + + + + Specifies all non-public nested types. + + + + + Specifies all public properties. + + + + + Specifies all non-public properties. + + + + + Specifies all public events. + + + + + Specifies all non-public events. + + + + + Specifies all interfaces implemented by the type. + + + + + Specifies all members. + + + + + Gets a string containing the displayable value in UserPrincipalName (UPN) format, e.g. john.doe@contoso.com. + This can be null. + This property replaces the DisplayableId property of IUser in previous versions of MSAL.NET + + + + Gets a string containing the identity provider for this account, e.g. login.microsoftonline.com. + This property replaces the IdentityProvider property of IUser in previous versions of MSAL.NET + except that IdentityProvider was a URL with information about the tenant (in addition to the cloud environment), whereas Environment is only the + + + + AccountId of the home account for the user. This uniquely identifies the user across AAD tenants. + Can be null, for example if this account was migrated to MSAL.NET from ADAL.NET v3's token cache + + + Returns an enumerator that iterates through the collection.An enumerator that can be used to iterate through the collection. + + + Returns an enumerator that iterates through a collection.An object that can be used to iterate through the collection. + + + Gets the element in the collection at the current position of the enumerator.The element in the collection at the current position of the enumerator. + + +