# ex_azure_core v0.3.0 - Table of Contents

> An Elixir base library for working with Microsoft Azure services.

## Pages

- [Introduction](readme.md)
- [License](license.md)

- Guides
  - [Authentication](authentication.md)

## Modules

- [ExAzureCore](ExAzureCore.md): Azure SDK for Elixir.
- [ExAzureCore.Auth](ExAzureCore.Auth.md): Authentication module for Azure services.
- [ExAzureCore.Auth.FederatedTokenProvider](ExAzureCore.Auth.FederatedTokenProvider.md): Behaviour and dispatcher for federated identity token providers.
- [ExAzureCore.Auth.FederationTokenProvider.AwsCognito](ExAzureCore.Auth.FederationTokenProvider.AwsCognito.md): AWS Cognito implementation for federated token provider.
- [ExAzureCore.Auth.ManagedIdentity.AppServiceProvider](ExAzureCore.Auth.ManagedIdentity.AppServiceProvider.md): App Service provider for Azure Managed Identity.
- [ExAzureCore.Auth.ManagedIdentity.EnvironmentDetector](ExAzureCore.Auth.ManagedIdentity.EnvironmentDetector.md): Detects the Azure environment for managed identity authentication.
- [ExAzureCore.Auth.ManagedIdentity.ImdsProvider](ExAzureCore.Auth.ManagedIdentity.ImdsProvider.md): IMDS (Instance Metadata Service) provider for Azure Managed Identity.
- [ExAzureCore.Auth.OAuth2](ExAzureCore.Auth.OAuth2.md): OAuth2 token exchange for Azure AD.

- [ExAzureCore.Auth.Registry](ExAzureCore.Auth.Registry.md): Registry for naming and storing token servers.
- [ExAzureCore.Auth.TokenServer](ExAzureCore.Auth.TokenServer.md): GenServer for managing individual credential tokens with proactive refresh.
- [ExAzureCore.Auth.TokenSource](ExAzureCore.Auth.TokenSource.md): Behavior for token sources.
- [ExAzureCore.Auth.TokenSource.ClientAssertion](ExAzureCore.Auth.TokenSource.ClientAssertion.md): Client assertion token source using Workload Identity Federation.
- [ExAzureCore.Auth.TokenSource.ManagedIdentity](ExAzureCore.Auth.TokenSource.ManagedIdentity.md): Managed Identity token source for Azure workloads.
- [ExAzureCore.Auth.TokenSource.WorkloadIdentity](ExAzureCore.Auth.TokenSource.WorkloadIdentity.md): Workload Identity token source for AKS (Azure Kubernetes Service).
- [ExAzureCore.Config](ExAzureCore.Config.md): Configuration management for ExAzureCore.
- [ExAzureCore.Config.Defaults](ExAzureCore.Config.Defaults.md): Default configuration for Azure services.
- [ExAzureCore.Credentials](ExAzureCore.Credentials.md): Azure credential types for authentication.
- [ExAzureCore.Credentials.AzureKeyCredential](ExAzureCore.Credentials.AzureKeyCredential.md): Credential type for API key authentication.
- [ExAzureCore.Credentials.AzureNamedKeyCredential](ExAzureCore.Credentials.AzureNamedKeyCredential.md): Credential type for named key authentication.
- [ExAzureCore.Credentials.AzureSasCredential](ExAzureCore.Credentials.AzureSasCredential.md): Credential type for Shared Access Signature (SAS) authentication.
- [ExAzureCore.Errors](ExAzureCore.Errors.md): Defines the error types for the Azure SDK.

- [ExAzureCore.Helpers.Constants](ExAzureCore.Helpers.Constants.md): Provides a macro for defining a module with a set of key-value pairs.

- [ExAzureCore.Http.Client](ExAzureCore.Http.Client.md): HTTP client for Azure services using Req.
- [ExAzureCore.Http.Plugins.ApiKey](ExAzureCore.Http.Plugins.ApiKey.md): Req plugin that adds API key authentication to requests.
- [ExAzureCore.Http.Plugins.AzureHeaders](ExAzureCore.Http.Plugins.AzureHeaders.md): Req plugin that adds standard Azure headers to requests.
- [ExAzureCore.Http.Plugins.BearerToken](ExAzureCore.Http.Plugins.BearerToken.md): Req plugin that adds Bearer token authentication to requests.
- [ExAzureCore.Http.Plugins.ErrorHandler](ExAzureCore.Http.Plugins.ErrorHandler.md): Req plugin that transforms HTTP error responses to Splode errors.
- [ExAzureCore.Http.Plugins.RequestId](ExAzureCore.Http.Plugins.RequestId.md): Req plugin that manages request ID tracking for Azure services.
- [ExAzureCore.Http.Plugins.Retry](ExAzureCore.Http.Plugins.Retry.md): Req plugin that implements Azure-specific retry logic.
- [ExAzureCore.Http.Plugins.SasToken](ExAzureCore.Http.Plugins.SasToken.md): Req plugin that adds Shared Access Signature (SAS) token authentication.
- [ExAzureCore.Http.Plugins.SharedKey](ExAzureCore.Http.Plugins.SharedKey.md): Req plugin that adds Azure Storage Shared Key authentication.
- [ExAzureCore.Http.Request](ExAzureCore.Http.Request.md): Represents an HTTP request for Azure services.
- [ExAzureCore.Http.Response](ExAzureCore.Http.Response.md): Represents an HTTP response from Azure services.
- [ExAzureCore.Http.Streaming.StreamHandler](ExAzureCore.Http.Streaming.StreamHandler.md): Utilities for handling streaming HTTP responses.
- [ExAzureCore.Lro](ExAzureCore.Lro.md): Drives Azure long-running operations (status-monitor pattern) to completion.
- [ExAzureCore.Operation](ExAzureCore.Operation.md): Protocol for Azure service operations.
- [ExAzureCore.Operation.REST](ExAzureCore.Operation.REST.md): REST-based operation for Azure services.
- [ExAzureCore.Paging](ExAzureCore.Paging.md): Helpers for building lazy streams over paginated Azure responses.
- [ExAzureCore.Telemetry](ExAzureCore.Telemetry.md): Telemetry events for ExAzureCore operations.

- Exceptions
  - [ExAzureCore.Auth.Errors.AzureAdStsError](ExAzureCore.Auth.Errors.AzureAdStsError.md): Azure AD Security Token Service error with specific AADSTS error code handling.

  - [ExAzureCore.Auth.Errors.ConfigurationError](ExAzureCore.Auth.Errors.ConfigurationError.md): Error for configuration validation failures.
  - [ExAzureCore.Auth.Errors.FederationError](ExAzureCore.Auth.Errors.FederationError.md): Error for federated token provider operations.
  - [ExAzureCore.Auth.Errors.InvalidTokenFormat](ExAzureCore.Auth.Errors.InvalidTokenFormat.md): Error raised when a token has an invalid or unexpected format.

  - [ExAzureCore.Auth.Errors.ManagedIdentityError](ExAzureCore.Auth.Errors.ManagedIdentityError.md): Error for managed identity and workload identity operations.
  - [ExAzureCore.Auth.Errors.TokenServerError](ExAzureCore.Auth.Errors.TokenServerError.md): Error for token server operations.
  - [ExAzureCore.Credentials.Errors.CredentialError](ExAzureCore.Credentials.Errors.CredentialError.md): Error for credential validation failures.
  - [ExAzureCore.Errors.Authentication](ExAzureCore.Errors.Authentication.md): Defines the error type related to authentication failures.

  - [ExAzureCore.Errors.External](ExAzureCore.Errors.External.md): Define an error class for external service errors.

  - [ExAzureCore.Errors.HttpError](ExAzureCore.Errors.HttpError.md): Error representing HTTP-level failures from Azure services.
  - [ExAzureCore.Errors.Internal](ExAzureCore.Errors.Internal.md): Define an error class for internal sdk errors.

  - [ExAzureCore.Errors.Invalid](ExAzureCore.Errors.Invalid.md): Defines the error type for invalid requests to Azure Services.

  - [ExAzureCore.Errors.NetworkError](ExAzureCore.Errors.NetworkError.md): Network-related error when connecting to external services fails.

  - [ExAzureCore.Errors.Unknown](ExAzureCore.Errors.Unknown.md): Defines the error type for an unknown error.

