Class Configuration

java.lang.Object
com.azure.core.util.Configuration
All Implemented Interfaces:
Cloneable

public class Configuration extends Object implements Cloneable
Contains configuration information that is used during construction of client libraries.
 Configuration configuration = new ConfigurationBuilder(new SampleSource(properties))
     .root("azure.sdk")
     .buildSection("client-name");

 ConfigurationProperty<String> proxyHostnameProperty = ConfigurationPropertyBuilder.ofString("http.proxy.hostname")
     .shared(true)
     .build();
 System.out.println(configuration.get(proxyHostnameProperty));
 
  • Field Details

    • PROPERTY_HTTP_PROXY

      public static final String PROPERTY_HTTP_PROXY
      URL of the proxy for HTTP connections.
      See Also:
    • PROPERTY_HTTPS_PROXY

      public static final String PROPERTY_HTTPS_PROXY
      URL of the proxy for HTTPS connections.
      See Also:
    • PROPERTY_IDENTITY_ENDPOINT

      public static final String PROPERTY_IDENTITY_ENDPOINT
      Endpoint to connect to when using Azure Active Directory managed service identity (MSI).
      See Also:
    • PROPERTY_IDENTITY_HEADER

      public static final String PROPERTY_IDENTITY_HEADER
      Header when connecting to Azure Active Directory using managed service identity (MSI).
      See Also:
    • PROPERTY_NO_PROXY

      public static final String PROPERTY_NO_PROXY
      A list of hosts or CIDR to not use proxy HTTP/HTTPS connections through.
      See Also:
    • PROPERTY_MSI_ENDPOINT

      public static final String PROPERTY_MSI_ENDPOINT
      Endpoint to connect to when using Azure Active Directory managed service identity (MSI).
      See Also:
    • PROPERTY_MSI_SECRET

      public static final String PROPERTY_MSI_SECRET
      Secret when connecting to Azure Active Directory using managed service identity (MSI).
      See Also:
    • PROPERTY_AZURE_SUBSCRIPTION_ID

      public static final String PROPERTY_AZURE_SUBSCRIPTION_ID
      Subscription id to use when connecting to Azure resources.
      See Also:
    • PROPERTY_AZURE_USERNAME

      public static final String PROPERTY_AZURE_USERNAME
      Username to use when performing username/password authentication with Azure.
      See Also:
    • PROPERTY_AZURE_PASSWORD

      public static final String PROPERTY_AZURE_PASSWORD
      Username to use when performing username/password authentication with Azure.
      See Also:
    • PROPERTY_AZURE_CLIENT_ID

      public static final String PROPERTY_AZURE_CLIENT_ID
      Client id to use when performing service principal authentication with Azure.
      See Also:
    • PROPERTY_AZURE_CLIENT_SECRET

      public static final String PROPERTY_AZURE_CLIENT_SECRET
      Client secret to use when performing service principal authentication with Azure.
      See Also:
    • PROPERTY_AZURE_TENANT_ID

      public static final String PROPERTY_AZURE_TENANT_ID
      Tenant id for the Azure resources.
      See Also:
    • PROPERTY_AZURE_CLIENT_CERTIFICATE_PATH

      public static final String PROPERTY_AZURE_CLIENT_CERTIFICATE_PATH
      Path of a PFX/PEM certificate file to use when performing service principal authentication with Azure.
      See Also:
    • PROPERTY_AZURE_CLIENT_CERTIFICATE_PASSWORD

      public static final String PROPERTY_AZURE_CLIENT_CERTIFICATE_PASSWORD
      Password for a PFX/PEM certificate used when performing service principal authentication with Azure.
      See Also:
    • PROPERTY_AZURE_IDENTITY_DISABLE_CP1

      public static final String PROPERTY_AZURE_IDENTITY_DISABLE_CP1
      Flag to disable the CP1 client capabilities in Azure Identity Token credentials.
      See Also:
    • PROPERTY_AZURE_POD_IDENTITY_TOKEN_URL

      public static final String PROPERTY_AZURE_POD_IDENTITY_TOKEN_URL
      URL used by Bridge To Kubernetes to redirect IMDS calls in the development environment.
      See Also:
    • PROPERTY_AZURE_REGIONAL_AUTHORITY_NAME

      public static final String PROPERTY_AZURE_REGIONAL_AUTHORITY_NAME
      Name of Azure AAD regional authority.
      See Also:
    • PROPERTY_AZURE_RESOURCE_GROUP

      public static final String PROPERTY_AZURE_RESOURCE_GROUP
      Name of the Azure resource group.
      See Also:
    • PROPERTY_AZURE_CLOUD

      public static final String PROPERTY_AZURE_CLOUD
      Name of the Azure cloud to connect to.
      See Also:
    • PROPERTY_AZURE_AUTHORITY_HOST

      public static final String PROPERTY_AZURE_AUTHORITY_HOST
      The Azure Active Directory endpoint to connect to.
      See Also:
    • PROPERTY_AZURE_TELEMETRY_DISABLED

      public static final String PROPERTY_AZURE_TELEMETRY_DISABLED
      Disables telemetry collection.
      See Also:
    • PROPERTY_AZURE_LOG_LEVEL

      public static final String PROPERTY_AZURE_LOG_LEVEL
      Enables logging by setting a log level.
      See Also:
    • PROPERTY_AZURE_HTTP_LOG_DETAIL_LEVEL

      public static final String PROPERTY_AZURE_HTTP_LOG_DETAIL_LEVEL
      Enables HTTP request/response logging by setting an HTTP log detail level.
      See Also:
    • PROPERTY_AZURE_TRACING_DISABLED

      public static final String PROPERTY_AZURE_TRACING_DISABLED
      Disables tracing.
      See Also:
    • PROPERTY_AZURE_METRICS_DISABLED

      public static final String PROPERTY_AZURE_METRICS_DISABLED
      Disables metrics.
      See Also:
    • PROPERTY_AZURE_REQUEST_RETRY_COUNT

      public static final String PROPERTY_AZURE_REQUEST_RETRY_COUNT
      Sets the default number of times a request will be retried, if it passes the conditions for retrying, before it fails.
      See Also:
    • PROPERTY_AZURE_REQUEST_CONNECT_TIMEOUT

      public static final String PROPERTY_AZURE_REQUEST_CONNECT_TIMEOUT
      Sets the default timeout, in milliseconds, for a request to connect to the remote host.

      If the configured value is equal to or less than 0 no timeout will be applied.

      See Also:
    • PROPERTY_AZURE_REQUEST_WRITE_TIMEOUT

      public static final String PROPERTY_AZURE_REQUEST_WRITE_TIMEOUT
      Sets the default timeout interval, in milliseconds, allowed between each byte written by a request.

      If the configured value is equal to or less than 0 no timeout will be applied.

      See Also:
    • PROPERTY_AZURE_REQUEST_RESPONSE_TIMEOUT

      public static final String PROPERTY_AZURE_REQUEST_RESPONSE_TIMEOUT
      Sets the default timeout, in milliseconds, for a request to receive a response from the remote host.

      If the configured value is equal to or less than 0 no timeout will be applied.

      See Also:
    • PROPERTY_AZURE_REQUEST_READ_TIMEOUT

      public static final String PROPERTY_AZURE_REQUEST_READ_TIMEOUT
      Sets the default timeout interval, in milliseconds, allowed between each byte read in a response.

      If the configured value is equal to or less than 0 no timeout will be applied.

      See Also:
    • NONE

      public static final Configuration NONE
      No-op Configuration object used to opt out of using global configurations when constructing client libraries.
  • Constructor Details

    • Configuration

      @Deprecated public Configuration()
      Deprecated.
      Use ConfigurationBuilder and ConfigurationSource that allow to provide all properties before creating configuration and keep it immutable.
      Constructs a configuration containing the known Azure properties constants.
  • Method Details

    • getGlobalConfiguration

      public static Configuration getGlobalConfiguration()
      Gets the global configuration store shared by all client libraries.
      Returns:
      The global configuration store.
    • get

      public String get(String name)
      Gets the value of system property or environment variable. Use get(ConfigurationProperty) overload to get explicit configuration or environment configuration from specific source.

      This method first checks the values previously loaded from the environment, if the configuration is found there it will be returned. Otherwise, this will attempt to load the value from the environment.

      Parameters:
      name - Name of the configuration.
      Returns:
      Value of the configuration if found, otherwise null.
    • get

      public <T> T get(String name, T defaultValue)
      Gets the value of system property or environment variable converted to given primitive T using corresponding parse method on this type. Use get(ConfigurationProperty) overload to get explicit configuration or environment configuration from specific source.

      This method first checks the values previously loaded from the environment, if the configuration is found there it will be returned. Otherwise, this will attempt to load the value from the environment.

      If no configuration is found, the defaultValue is returned.

      Following types are supported:

      Type Parameters:
      T - Type that the configuration is converted to if found.
      Parameters:
      name - Name of the configuration.
      defaultValue - Value to return if the configuration isn't found.
      Returns:
      The converted configuration if found, otherwise the default value is returned.
    • get

      public <T> T get(String name, Function<String,T> converter)
      Gets the value of system property or environment variable and converts it with the converter.

      This method first checks the values previously loaded from the environment, if the configuration is found there it will be returned. Otherwise, this will attempt to load the value from the environment.

      If no configuration is found the converter won't be called and null will be returned.

      Type Parameters:
      T - Type that the configuration is converted to if found.
      Parameters:
      name - Name of the configuration.
      converter - Converter used to map the configuration to T.
      Returns:
      The converted configuration if found, otherwise null.
    • put

      @Deprecated public Configuration put(String name, String value)
      Deprecated.
      Use ConfigurationBuilder and ConfigurationSource to provide all properties before creating configuration.
      Adds a configuration with the given value.

      This will overwrite the previous configuration value if it existed.

      Parameters:
      name - Name of the configuration.
      value - Value of the configuration.
      Returns:
      The updated Configuration object.
    • remove

      @Deprecated public String remove(String name)
      Deprecated.
      Use ConfigurationBuilder and ConfigurationSource to provide all properties before creating configuration.
      Removes the configuration.

      This returns the value of the configuration if it previously existed.

      Parameters:
      name - Name of the configuration.
      Returns:
      The configuration if it previously existed, otherwise null.
    • contains

      public boolean contains(String name)
      Determines if the system property or environment variable is defined. Use contains(ConfigurationProperty) overload to get explicit configuration or environment configuration from specific source.

      This only checks against values previously loaded into the Configuration object, this won't inspect the environment for containing the value.

      Parameters:
      name - Name of the configuration.
      Returns:
      True if the configuration exists, otherwise false.
    • clone

      @Deprecated public Configuration clone()
      Deprecated.
      Use ConfigurationBuilder and ConfigurationSource to create configuration.
      Clones this Configuration object.
      Overrides:
      clone in class Object
      Returns:
      A clone of the Configuration object.
    • contains

      public boolean contains(ConfigurationProperty<?> property)
      Checks if configuration contains the property. If property can be shared between clients, checks this Configuration and falls back to shared section. If property has aliases, system property or environment variable defined, checks them as well.

      Value is not validated.

      Parameters:
      property - instance.
      Returns:
      true if property is available, false otherwise.
    • get

      public <T> T get(ConfigurationProperty<T> property)
      Gets property value from all available sources in the following order:
      • Explicit configuration from given ConfigurationSource by property name
      • Explicit configuration by property aliases in the order they were provided in ConfigurationProperty
      • Explicit configuration by property name in the shared section (if ConfigurationProperty is shared)
      • Explicit configuration by property aliases in the shared section (if ConfigurationProperty is shared)
      • System property (if set)
      • Environment variable (if set)

      Property value is converted to specified type. If property value is missing and not required, default value is returned.

       ConfigurationProperty<String> property = ConfigurationPropertyBuilder.ofString("http.proxy.hostname")
           .shared(true)
           .logValue(true)
           .systemPropertyName("http.proxyHost")
           .build();
      
       // attempts to get local `azure.sdk.<client-name>.http.proxy.host` property and falls back to
       // shared azure.sdk.http.proxy.port
       System.out.println(configuration.get(property));
       
      Type Parameters:
      T - Type that the configuration is converted to if found.
      Parameters:
      property - instance.
      Returns:
      true if property is available, false otherwise.
      Throws:
      NullPointerException - when property instance is null.
      IllegalArgumentException - when required property is missing.
      RuntimeException - when property value conversion (and validation) throws.