# coding=utf-8
# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

import copy
import warnings
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
from .. import _utilities
from . import outputs

import types

__config__ = pulumi.Config('azure')


class _ExportableConfig(types.ModuleType):
    @property
    def auxiliary_tenant_ids(self) -> Optional[str]:
        return __config__.get('auxiliaryTenantIds')

    @property
    def client_certificate(self) -> Optional[str]:
        """
        Base64 encoded PKCS#12 certificate bundle to use when authenticating as a Service Principal using a Client Certificate
        """
        return __config__.get('clientCertificate')

    @property
    def METHOD_NAME(self) -> Optional[str]:
        """
        The password associated with the Client Certificate. For use when authenticating as a Service Principal using a Client
        Certificate
        """
        return __config__.get('clientCertificatePassword')

    @property
    def client_certificate_path(self) -> Optional[str]:
        """
        The path to the Client Certificate associated with the Service Principal for use when authenticating as a Service
        Principal using a Client Certificate.
        """
        return __config__.get('clientCertificatePath')

    @property
    def client_id(self) -> Optional[str]:
        """
        The Client ID which should be used.
        """
        return __config__.get('clientId')

    @property
    def client_id_file_path(self) -> Optional[str]:
        """
        The path to a file containing the Client ID which should be used.
        """
        return __config__.get('clientIdFilePath')

    @property
    def client_secret(self) -> Optional[str]:
        """
        The Client Secret which should be used. For use When authenticating as a Service Principal using a Client Secret.
        """
        return __config__.get('clientSecret')

    @property
    def client_secret_file_path(self) -> Optional[str]:
        """
        The path to a file containing the Client Secret which should be used. For use When authenticating as a Service Principal
        using a Client Secret.
        """
        return __config__.get('clientSecretFilePath')

    @property
    def disable_correlation_request_id(self) -> Optional[bool]:
        """
        This will disable the x-ms-correlation-request-id header.
        """
        return __config__.get_bool('disableCorrelationRequestId')

    @property
    def disable_terraform_partner_id(self) -> Optional[bool]:
        """
        This will disable the Terraform Partner ID which is used if a custom `partner_id` isn't specified.
        """
        return __config__.get_bool('disableTerraformPartnerId')

    @property
    def environment(self) -> str:
        """
        The Cloud Environment which should be used. Possible values are public, usgovernment, and china. Defaults to public.
        """
        return __config__.get('environment') or (_utilities.get_env('AZURE_ENVIRONMENT', 'ARM_ENVIRONMENT') or 'public')

    @property
    def features(self) -> Optional[str]:
        return __config__.get('features')

    @property
    def location(self) -> Optional[str]:
        return __config__.get('location') or _utilities.get_env('ARM_LOCATION')

    @property
    def metadata_host(self) -> Optional[str]:
        """
        The Hostname which should be used for the Azure Metadata Service.
        """
        return __config__.get('metadataHost') or _utilities.get_env('ARM_METADATA_HOSTNAME')

    @property
    def msi_endpoint(self) -> Optional[str]:
        """
        The path to a custom endpoint for Managed Service Identity - in most circumstances this should be detected
        automatically.
        """
        return __config__.get('msiEndpoint')

    @property
    def oidc_request_token(self) -> Optional[str]:
        """
        The bearer token for the request to the OIDC provider. For use when authenticating as a Service Principal using OpenID
        Connect.
        """
        return __config__.get('oidcRequestToken')

    @property
    def oidc_request_url(self) -> Optional[str]:
        """
        The URL for the OIDC provider from which to request an ID token. For use when authenticating as a Service Principal
        using OpenID Connect.
        """
        return __config__.get('oidcRequestUrl')

    @property
    def oidc_token(self) -> Optional[str]:
        """
        The OIDC ID token for use when authenticating as a Service Principal using OpenID Connect.
        """
        return __config__.get('oidcToken')

    @property
    def oidc_token_file_path(self) -> Optional[str]:
        """
        The path to a file containing an OIDC ID token for use when authenticating as a Service Principal using OpenID Connect.
        """
        return __config__.get('oidcTokenFilePath')

    @property
    def partner_id(self) -> Optional[str]:
        """
        A GUID/UUID that is registered with Microsoft to facilitate partner resource usage attribution.
        """
        return __config__.get('partnerId')

    @property
    def skip_provider_registration(self) -> bool:
        """
        Should the AzureRM Provider skip registering all of the Resource Providers that it supports, if they're not already
        registered?
        """
        return __config__.get_bool('skipProviderRegistration') or (_utilities.get_env_bool('ARM_SKIP_PROVIDER_REGISTRATION') or False)

    @property
    def storage_use_azuread(self) -> bool:
        """
        Should the AzureRM Provider use AzureAD to access the Storage Data Plane API's?
        """
        return __config__.get_bool('storageUseAzuread') or (_utilities.get_env_bool('ARM_STORAGE_USE_AZUREAD') or False)

    @property
    def subscription_id(self) -> str:
        """
        The Subscription ID which should be used.
        """
        return __config__.get('subscriptionId') or (_utilities.get_env('ARM_SUBSCRIPTION_ID') or '')

    @property
    def tenant_id(self) -> Optional[str]:
        """
        The Tenant ID which should be used.
        """
        return __config__.get('tenantId')

    @property
    def use_cli(self) -> Optional[bool]:
        """
        Allow Azure CLI to be used for Authentication.
        """
        return __config__.get_bool('useCli')

    @property
    def use_msi(self) -> Optional[bool]:
        """
        Allow Managed Service Identity to be used for Authentication.
        """
        return __config__.get_bool('useMsi')

    @property
    def use_oidc(self) -> Optional[bool]:
        """
        Allow OpenID Connect to be used for authentication
        """
        return __config__.get_bool('useOidc')
