# coding=utf-8
# *** WARNING: this file was generated by the Pulumi SDK Generator. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

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('aws-native')


class _ExportableConfig(types.ModuleType):
    @property
    def access_key(self) -> Optional[str]:
        """
        The access key for API operations. You can retrieve this from the ‘Security & Credentials’ section of the AWS console.
        """
        return __config__.get('accessKey')

    @property
    def allowed_account_ids(self) -> Optional[str]:
        """
        List of allowed AWS account IDs to prevent you from mistakenly using an incorrect one. Conflicts with `forbiddenAccountIds`.
        """
        return __config__.get('allowedAccountIds')

    @property
    def assume_role(self) -> Optional[str]:
        """
        Configuration for retrieving temporary credentials from the STS service.
        """
        return __config__.get('assumeRole')

    @property
    def default_tags(self) -> Optional[str]:
        """
        Configuration block with resource tag settings to apply across all resources handled by this provider. This is designed to replace redundant per-resource `tags` configurations. Provider tags can be overridden with new values, but not excluded from specific resources. To override provider tag values, use the `tags` argument within a resource to configure new tag values for matching keys.
        """
        return __config__.get('defaultTags')

    @property
    def endpoints(self) -> Optional[str]:
        """
        Configuration block for customizing service endpoints.
        """
        return __config__.get('endpoints')

    @property
    def forbidden_account_ids(self) -> Optional[str]:
        """
        List of forbidden AWS account IDs to prevent you from mistakenly using the wrong one (and potentially end up destroying a live environment). Conflicts with `allowedAccountIds`.
        """
        return __config__.get('forbiddenAccountIds')

    @property
    def ignore_tags(self) -> Optional[str]:
        """
        Configuration block with resource tag settings to ignore across all resources handled by this provider (except any individual service tag resources such as `ec2.Tag`) for situations where external systems are managing certain resource tags.
        """
        return __config__.get('ignoreTags')

    @property
    def insecure(self) -> Optional[bool]:
        """
        Explicitly allow the provider to perform "insecure" SSL requests. If omitted,default value is `false`.
        """
        return __config__.get_bool('insecure')

    @property
    def max_retries(self) -> Optional[int]:
        """
        The maximum number of times an AWS API request is being executed. If the API request still fails, an error is thrown.
        """
        return __config__.get_int('maxRetries')

    @property
    def profile(self) -> Optional[str]:
        """
        The profile for API operations. If not set, the default profile created with `aws configure` will be used.
        """
        return __config__.get('profile')

    @property
    def region(self) -> Optional[str]:
        """
        The region where AWS operations will take place. Examples are `us-east-1`, `us-west-2`, etc.
        """
        return __config__.get('region')

    @property
    def s3_force_path_style(self) -> Optional[bool]:
        """
        Set this to true to force the request to use path-style addressing, i.e., `http://s3.amazonaws.com/BUCKET/KEY`. By default, the S3 client will use virtual hosted bucket addressing when possible (`http://BUCKET.s3.amazonaws.com/KEY`). Specific to the Amazon S3 service.
        """
        return __config__.get_bool('s3ForcePathStyle')

    @property
    def secret_key(self) -> Optional[str]:
        """
        The secret key for API operations. You can retrieve this from the 'Security & Credentials' section of the AWS console.
        """
        return __config__.get('secretKey')

    @property
    def shared_credentials_file(self) -> Optional[str]:
        """
        The path to the shared credentials file. If not set this defaults to `~/.aws/credentials`.
        """
        return __config__.get('sharedCredentialsFile')

    @property
    def skip_credentials_validation(self) -> bool:
        """
        Skip the credentials validation via STS API. Used for AWS API implementations that do not have STS available/implemented.
        """
        return __config__.get_bool('skipCredentialsValidation') or True

    @property
    def skip_get_ec2_platforms(self) -> bool:
        """
        Skip getting the supported EC2 platforms. Used by users that don't have `ec2:DescribeAccountAttributes` permissions.
        """
        return __config__.get_bool('skipGetEc2Platforms') or True

    @property
    def skip_metadata_api_check(self) -> bool:
        """
        Skip the AWS Metadata API check. Useful for AWS API implementations that do not have a metadata API endpoint. Setting to true prevents Pulumi from authenticating via the Metadata API. You may need to use other authentication methods like static credentials, configuration variables, or environment variables.
        """
        return __config__.get_bool('skipMetadataApiCheck') or True

    @property
    def skip_region_validation(self) -> bool:
        """
        Skip static validation of region name. Used by users of alternative AWS-like APIs or users with access to regions that are not public.
        """
        return __config__.get_bool('skipRegionValidation') or True

    @property
    def skip_requesting_account_id(self) -> Optional[bool]:
        """
        Skip requesting the account ID. Used for AWS API implementations that do not have IAM/STS API and/or metadata API.
        """
        return __config__.get_bool('skipRequestingAccountId')

    @property
    def token(self) -> Optional[str]:
        """
        Session token for validating temporary credentials. Typically provided after successful identity federation or Multi-Factor Authentication (MFA) login. With MFA login, this is the session token provided afterward, not the 6 digit MFA code used to get temporary credentials.
        """
        return __config__.get('token')

