ExAzureCore.Config.Defaults (ex_azure_core v0.3.0)

Copy Markdown

Default configuration for Azure services.

Provides service-specific defaults including host templates, API versions, and OAuth scopes. These are the lowest priority in the configuration merging hierarchy.

Adding Custom Service Defaults

Service modules can register their own defaults at application startup:

ExAzureCore.Config.Defaults.register(:my_service, %{
  host: "myservice.azure.com",
  api_version: "2024-01-01",
  scope: "https://myservice.azure.com/.default"
})

Summary

Functions

Returns the base plugins for a service.

Returns default configuration for a service.

Registers custom defaults for a service.

Functions

base_plugins()

@spec base_plugins() :: list()

Returns the base plugins for a service.

These are the standard plugins that should be attached to most requests:

  • RequestId: Generates client request IDs
  • AzureHeaders: Adds x-ms-version and x-ms-date headers
  • Retry: Implements exponential backoff retry
  • ErrorHandler: Parses Azure error responses

get(service)

@spec get(atom()) :: map()

Returns default configuration for a service.

Examples

iex> ExAzureCore.Config.Defaults.get(:keyvault)
%{host: "{vault_name}.vault.azure.net", api_version: "7.5", ...}

iex> ExAzureCore.Config.Defaults.get(:unknown)
%{timeout: 30_000, pool_timeout: 5_000, max_retries: 3}

register(service, defaults)

@spec register(atom(), map()) :: :ok

Registers custom defaults for a service.

Use this to add defaults for services not built into ExAzureCore.

Example

ExAzureCore.Config.Defaults.register(:my_service, %{
  host: "myservice.azure.com",
  api_version: "2024-01-01"
})