All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.aws.ProviderArgs Maven / Gradle / Ivy

// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.aws;

import com.pulumi.aws.inputs.ProviderAssumeRoleArgs;
import com.pulumi.aws.inputs.ProviderAssumeRoleWithWebIdentityArgs;
import com.pulumi.aws.inputs.ProviderDefaultTagsArgs;
import com.pulumi.aws.inputs.ProviderEndpointArgs;
import com.pulumi.aws.inputs.ProviderIgnoreTagsArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.core.internal.Codegen;
import java.lang.Boolean;
import java.lang.Integer;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


public final class ProviderArgs extends com.pulumi.resources.ResourceArgs {

    public static final ProviderArgs Empty = new ProviderArgs();

    /**
     * The access key for API operations. You can retrieve this from the 'Security & Credentials' section of the AWS console.
     * 
     */
    @Import(name="accessKey")
    private @Nullable Output accessKey;

    /**
     * @return The access key for API operations. You can retrieve this from the 'Security & Credentials' section of the AWS console.
     * 
     */
    public Optional> accessKey() {
        return Optional.ofNullable(this.accessKey);
    }

    @Import(name="allowedAccountIds", json=true)
    private @Nullable Output> allowedAccountIds;

    public Optional>> allowedAccountIds() {
        return Optional.ofNullable(this.allowedAccountIds);
    }

    @Import(name="assumeRole", json=true)
    private @Nullable Output assumeRole;

    public Optional> assumeRole() {
        return Optional.ofNullable(this.assumeRole);
    }

    @Import(name="assumeRoleWithWebIdentity", json=true)
    private @Nullable Output assumeRoleWithWebIdentity;

    public Optional> assumeRoleWithWebIdentity() {
        return Optional.ofNullable(this.assumeRoleWithWebIdentity);
    }

    /**
     * File containing custom root and intermediate certificates. Can also be configured using the `AWS_CA_BUNDLE` environment
     * variable. (Setting `ca_bundle` in the shared config file is not supported.)
     * 
     */
    @Import(name="customCaBundle")
    private @Nullable Output customCaBundle;

    /**
     * @return File containing custom root and intermediate certificates. Can also be configured using the `AWS_CA_BUNDLE` environment
     * variable. (Setting `ca_bundle` in the shared config file is not supported.)
     * 
     */
    public Optional> customCaBundle() {
        return Optional.ofNullable(this.customCaBundle);
    }

    /**
     * Configuration block with settings to default resource tags across all resources.
     * 
     */
    @Import(name="defaultTags", json=true)
    private @Nullable Output defaultTags;

    /**
     * @return Configuration block with settings to default resource tags across all resources.
     * 
     */
    public Optional> defaultTags() {
        return Optional.ofNullable(this.defaultTags);
    }

    /**
     * Address of the EC2 metadata service endpoint to use. Can also be configured using the
     * `AWS_EC2_METADATA_SERVICE_ENDPOINT` environment variable.
     * 
     */
    @Import(name="ec2MetadataServiceEndpoint")
    private @Nullable Output ec2MetadataServiceEndpoint;

    /**
     * @return Address of the EC2 metadata service endpoint to use. Can also be configured using the
     * `AWS_EC2_METADATA_SERVICE_ENDPOINT` environment variable.
     * 
     */
    public Optional> ec2MetadataServiceEndpoint() {
        return Optional.ofNullable(this.ec2MetadataServiceEndpoint);
    }

    /**
     * Protocol to use with EC2 metadata service endpoint.Valid values are `IPv4` and `IPv6`. Can also be configured using the
     * `AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE` environment variable.
     * 
     */
    @Import(name="ec2MetadataServiceEndpointMode")
    private @Nullable Output ec2MetadataServiceEndpointMode;

    /**
     * @return Protocol to use with EC2 metadata service endpoint.Valid values are `IPv4` and `IPv6`. Can also be configured using the
     * `AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE` environment variable.
     * 
     */
    public Optional> ec2MetadataServiceEndpointMode() {
        return Optional.ofNullable(this.ec2MetadataServiceEndpointMode);
    }

    @Import(name="endpoints", json=true)
    private @Nullable Output> endpoints;

    public Optional>> endpoints() {
        return Optional.ofNullable(this.endpoints);
    }

    @Import(name="forbiddenAccountIds", json=true)
    private @Nullable Output> forbiddenAccountIds;

    public Optional>> forbiddenAccountIds() {
        return Optional.ofNullable(this.forbiddenAccountIds);
    }

    /**
     * URL of a proxy to use for HTTP requests when accessing the AWS API. Can also be set using the `HTTP_PROXY` or
     * `http_proxy` environment variables.
     * 
     */
    @Import(name="httpProxy")
    private @Nullable Output httpProxy;

    /**
     * @return URL of a proxy to use for HTTP requests when accessing the AWS API. Can also be set using the `HTTP_PROXY` or
     * `http_proxy` environment variables.
     * 
     */
    public Optional> httpProxy() {
        return Optional.ofNullable(this.httpProxy);
    }

    /**
     * URL of a proxy to use for HTTPS requests when accessing the AWS API. Can also be set using the `HTTPS_PROXY` or
     * `https_proxy` environment variables.
     * 
     */
    @Import(name="httpsProxy")
    private @Nullable Output httpsProxy;

    /**
     * @return URL of a proxy to use for HTTPS requests when accessing the AWS API. Can also be set using the `HTTPS_PROXY` or
     * `https_proxy` environment variables.
     * 
     */
    public Optional> httpsProxy() {
        return Optional.ofNullable(this.httpsProxy);
    }

    /**
     * Configuration block with settings to ignore resource tags across all resources.
     * 
     */
    @Import(name="ignoreTags", json=true)
    private @Nullable Output ignoreTags;

    /**
     * @return Configuration block with settings to ignore resource tags across all resources.
     * 
     */
    public Optional> ignoreTags() {
        return Optional.ofNullable(this.ignoreTags);
    }

    /**
     * Explicitly allow the provider to perform "insecure" SSL requests. If omitted, default value is `false`
     * 
     */
    @Import(name="insecure", json=true)
    private @Nullable Output insecure;

    /**
     * @return Explicitly allow the provider to perform "insecure" SSL requests. If omitted, default value is `false`
     * 
     */
    public Optional> insecure() {
        return Optional.ofNullable(this.insecure);
    }

    /**
     * The maximum number of times an AWS API request is being executed. If the API request still fails, an error is thrown.
     * 
     */
    @Import(name="maxRetries", json=true)
    private @Nullable Output maxRetries;

    /**
     * @return The maximum number of times an AWS API request is being executed. If the API request still fails, an error is thrown.
     * 
     */
    public Optional> maxRetries() {
        return Optional.ofNullable(this.maxRetries);
    }

    /**
     * Comma-separated list of hosts that should not use HTTP or HTTPS proxies. Can also be set using the `NO_PROXY` or
     * `no_proxy` environment variables.
     * 
     */
    @Import(name="noProxy")
    private @Nullable Output noProxy;

    /**
     * @return Comma-separated list of hosts that should not use HTTP or HTTPS proxies. Can also be set using the `NO_PROXY` or
     * `no_proxy` environment variables.
     * 
     */
    public Optional> noProxy() {
        return Optional.ofNullable(this.noProxy);
    }

    /**
     * The profile for API operations. If not set, the default profile created with `aws configure` will be used.
     * 
     */
    @Import(name="profile")
    private @Nullable Output profile;

    /**
     * @return The profile for API operations. If not set, the default profile created with `aws configure` will be used.
     * 
     */
    public Optional> profile() {
        return Optional.ofNullable(this.profile);
    }

    /**
     * The region where AWS operations will take place. Examples are us-east-1, us-west-2, etc.
     * 
     */
    @Import(name="region")
    private @Nullable Output region;

    /**
     * @return The region where AWS operations will take place. Examples are us-east-1, us-west-2, etc.
     * 
     */
    public Optional> region() {
        return Optional.ofNullable(this.region);
    }

    /**
     * Specifies how retries are attempted. Valid values are `standard` and `adaptive`. Can also be configured using the
     * `AWS_RETRY_MODE` environment variable.
     * 
     */
    @Import(name="retryMode")
    private @Nullable Output retryMode;

    /**
     * @return Specifies how retries are attempted. Valid values are `standard` and `adaptive`. Can also be configured using the
     * `AWS_RETRY_MODE` environment variable.
     * 
     */
    public Optional> retryMode() {
        return Optional.ofNullable(this.retryMode);
    }

    /**
     * Specifies whether S3 API calls in the `us-east-1` region use the legacy global endpoint or a regional endpoint. Valid
     * values are `legacy` or `regional`. Can also be configured using the `AWS_S3_US_EAST_1_REGIONAL_ENDPOINT` environment
     * variable or the `s3_us_east_1_regional_endpoint` shared config file parameter
     * 
     */
    @Import(name="s3UsEast1RegionalEndpoint")
    private @Nullable Output s3UsEast1RegionalEndpoint;

    /**
     * @return Specifies whether S3 API calls in the `us-east-1` region use the legacy global endpoint or a regional endpoint. Valid
     * values are `legacy` or `regional`. Can also be configured using the `AWS_S3_US_EAST_1_REGIONAL_ENDPOINT` environment
     * variable or the `s3_us_east_1_regional_endpoint` shared config file parameter
     * 
     */
    public Optional> s3UsEast1RegionalEndpoint() {
        return Optional.ofNullable(this.s3UsEast1RegionalEndpoint);
    }

    /**
     * Set this to true to enable the request to use path-style addressing, i.e., https://s3.amazonaws.com/BUCKET/KEY. By
     * default, the S3 client will use virtual hosted bucket addressing when possible (https://BUCKET.s3.amazonaws.com/KEY).
     * Specific to the Amazon S3 service.
     * 
     */
    @Import(name="s3UsePathStyle", json=true)
    private @Nullable Output s3UsePathStyle;

    /**
     * @return Set this to true to enable the request to use path-style addressing, i.e., https://s3.amazonaws.com/BUCKET/KEY. By
     * default, the S3 client will use virtual hosted bucket addressing when possible (https://BUCKET.s3.amazonaws.com/KEY).
     * Specific to the Amazon S3 service.
     * 
     */
    public Optional> s3UsePathStyle() {
        return Optional.ofNullable(this.s3UsePathStyle);
    }

    /**
     * The secret key for API operations. You can retrieve this from the 'Security & Credentials' section of the AWS console.
     * 
     */
    @Import(name="secretKey")
    private @Nullable Output secretKey;

    /**
     * @return The secret key for API operations. You can retrieve this from the 'Security & Credentials' section of the AWS console.
     * 
     */
    public Optional> secretKey() {
        return Optional.ofNullable(this.secretKey);
    }

    /**
     * List of paths to shared config files. If not set, defaults to [~/.aws/config].
     * 
     */
    @Import(name="sharedConfigFiles", json=true)
    private @Nullable Output> sharedConfigFiles;

    /**
     * @return List of paths to shared config files. If not set, defaults to [~/.aws/config].
     * 
     */
    public Optional>> sharedConfigFiles() {
        return Optional.ofNullable(this.sharedConfigFiles);
    }

    /**
     * List of paths to shared credentials files. If not set, defaults to [~/.aws/credentials].
     * 
     */
    @Import(name="sharedCredentialsFiles", json=true)
    private @Nullable Output> sharedCredentialsFiles;

    /**
     * @return List of paths to shared credentials files. If not set, defaults to [~/.aws/credentials].
     * 
     */
    public Optional>> sharedCredentialsFiles() {
        return Optional.ofNullable(this.sharedCredentialsFiles);
    }

    /**
     * Skip the credentials validation via STS API. Used for AWS API implementations that do not have STS
     * available/implemented.
     * 
     */
    @Import(name="skipCredentialsValidation", json=true)
    private @Nullable Output skipCredentialsValidation;

    /**
     * @return Skip the credentials validation via STS API. Used for AWS API implementations that do not have STS
     * available/implemented.
     * 
     */
    public Optional> skipCredentialsValidation() {
        return Optional.ofNullable(this.skipCredentialsValidation);
    }

    /**
     * Skip the AWS Metadata API check. Used for AWS API implementations that do not have a metadata api endpoint.
     * 
     */
    @Import(name="skipMetadataApiCheck", json=true)
    private @Nullable Output skipMetadataApiCheck;

    /**
     * @return Skip the AWS Metadata API check. Used for AWS API implementations that do not have a metadata api endpoint.
     * 
     */
    public Optional> skipMetadataApiCheck() {
        return Optional.ofNullable(this.skipMetadataApiCheck);
    }

    /**
     * Skip static validation of region name. Used by users of alternative AWS-like APIs or users w/ access to regions that are
     * not public (yet).
     * 
     */
    @Import(name="skipRegionValidation", json=true)
    private @Nullable Output skipRegionValidation;

    /**
     * @return Skip static validation of region name. Used by users of alternative AWS-like APIs or users w/ access to regions that are
     * not public (yet).
     * 
     */
    public Optional> skipRegionValidation() {
        return Optional.ofNullable(this.skipRegionValidation);
    }

    /**
     * Skip requesting the account ID. Used for AWS API implementations that do not have IAM/STS API and/or metadata API.
     * 
     */
    @Import(name="skipRequestingAccountId", json=true)
    private @Nullable Output skipRequestingAccountId;

    /**
     * @return Skip requesting the account ID. Used for AWS API implementations that do not have IAM/STS API and/or metadata API.
     * 
     */
    public Optional> skipRequestingAccountId() {
        return Optional.ofNullable(this.skipRequestingAccountId);
    }

    /**
     * The region where AWS STS operations will take place. Examples are us-east-1 and us-west-2.
     * 
     */
    @Import(name="stsRegion")
    private @Nullable Output stsRegion;

    /**
     * @return The region where AWS STS operations will take place. Examples are us-east-1 and us-west-2.
     * 
     */
    public Optional> stsRegion() {
        return Optional.ofNullable(this.stsRegion);
    }

    /**
     * session token. A session token is only required if you are using temporary security credentials.
     * 
     */
    @Import(name="token")
    private @Nullable Output token;

    /**
     * @return session token. A session token is only required if you are using temporary security credentials.
     * 
     */
    public Optional> token() {
        return Optional.ofNullable(this.token);
    }

    /**
     * The capacity of the AWS SDK's token bucket rate limiter.
     * 
     */
    @Import(name="tokenBucketRateLimiterCapacity", json=true)
    private @Nullable Output tokenBucketRateLimiterCapacity;

    /**
     * @return The capacity of the AWS SDK's token bucket rate limiter.
     * 
     */
    public Optional> tokenBucketRateLimiterCapacity() {
        return Optional.ofNullable(this.tokenBucketRateLimiterCapacity);
    }

    /**
     * Resolve an endpoint with DualStack capability
     * 
     */
    @Import(name="useDualstackEndpoint", json=true)
    private @Nullable Output useDualstackEndpoint;

    /**
     * @return Resolve an endpoint with DualStack capability
     * 
     */
    public Optional> useDualstackEndpoint() {
        return Optional.ofNullable(this.useDualstackEndpoint);
    }

    /**
     * Resolve an endpoint with FIPS capability
     * 
     */
    @Import(name="useFipsEndpoint", json=true)
    private @Nullable Output useFipsEndpoint;

    /**
     * @return Resolve an endpoint with FIPS capability
     * 
     */
    public Optional> useFipsEndpoint() {
        return Optional.ofNullable(this.useFipsEndpoint);
    }

    private ProviderArgs() {}

    private ProviderArgs(ProviderArgs $) {
        this.accessKey = $.accessKey;
        this.allowedAccountIds = $.allowedAccountIds;
        this.assumeRole = $.assumeRole;
        this.assumeRoleWithWebIdentity = $.assumeRoleWithWebIdentity;
        this.customCaBundle = $.customCaBundle;
        this.defaultTags = $.defaultTags;
        this.ec2MetadataServiceEndpoint = $.ec2MetadataServiceEndpoint;
        this.ec2MetadataServiceEndpointMode = $.ec2MetadataServiceEndpointMode;
        this.endpoints = $.endpoints;
        this.forbiddenAccountIds = $.forbiddenAccountIds;
        this.httpProxy = $.httpProxy;
        this.httpsProxy = $.httpsProxy;
        this.ignoreTags = $.ignoreTags;
        this.insecure = $.insecure;
        this.maxRetries = $.maxRetries;
        this.noProxy = $.noProxy;
        this.profile = $.profile;
        this.region = $.region;
        this.retryMode = $.retryMode;
        this.s3UsEast1RegionalEndpoint = $.s3UsEast1RegionalEndpoint;
        this.s3UsePathStyle = $.s3UsePathStyle;
        this.secretKey = $.secretKey;
        this.sharedConfigFiles = $.sharedConfigFiles;
        this.sharedCredentialsFiles = $.sharedCredentialsFiles;
        this.skipCredentialsValidation = $.skipCredentialsValidation;
        this.skipMetadataApiCheck = $.skipMetadataApiCheck;
        this.skipRegionValidation = $.skipRegionValidation;
        this.skipRequestingAccountId = $.skipRequestingAccountId;
        this.stsRegion = $.stsRegion;
        this.token = $.token;
        this.tokenBucketRateLimiterCapacity = $.tokenBucketRateLimiterCapacity;
        this.useDualstackEndpoint = $.useDualstackEndpoint;
        this.useFipsEndpoint = $.useFipsEndpoint;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(ProviderArgs defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private ProviderArgs $;

        public Builder() {
            $ = new ProviderArgs();
        }

        public Builder(ProviderArgs defaults) {
            $ = new ProviderArgs(Objects.requireNonNull(defaults));
        }

        /**
         * @param accessKey The access key for API operations. You can retrieve this from the 'Security & Credentials' section of the AWS console.
         * 
         * @return builder
         * 
         */
        public Builder accessKey(@Nullable Output accessKey) {
            $.accessKey = accessKey;
            return this;
        }

        /**
         * @param accessKey The access key for API operations. You can retrieve this from the 'Security & Credentials' section of the AWS console.
         * 
         * @return builder
         * 
         */
        public Builder accessKey(String accessKey) {
            return accessKey(Output.of(accessKey));
        }

        public Builder allowedAccountIds(@Nullable Output> allowedAccountIds) {
            $.allowedAccountIds = allowedAccountIds;
            return this;
        }

        public Builder allowedAccountIds(List allowedAccountIds) {
            return allowedAccountIds(Output.of(allowedAccountIds));
        }

        public Builder allowedAccountIds(String... allowedAccountIds) {
            return allowedAccountIds(List.of(allowedAccountIds));
        }

        public Builder assumeRole(@Nullable Output assumeRole) {
            $.assumeRole = assumeRole;
            return this;
        }

        public Builder assumeRole(ProviderAssumeRoleArgs assumeRole) {
            return assumeRole(Output.of(assumeRole));
        }

        public Builder assumeRoleWithWebIdentity(@Nullable Output assumeRoleWithWebIdentity) {
            $.assumeRoleWithWebIdentity = assumeRoleWithWebIdentity;
            return this;
        }

        public Builder assumeRoleWithWebIdentity(ProviderAssumeRoleWithWebIdentityArgs assumeRoleWithWebIdentity) {
            return assumeRoleWithWebIdentity(Output.of(assumeRoleWithWebIdentity));
        }

        /**
         * @param customCaBundle File containing custom root and intermediate certificates. Can also be configured using the `AWS_CA_BUNDLE` environment
         * variable. (Setting `ca_bundle` in the shared config file is not supported.)
         * 
         * @return builder
         * 
         */
        public Builder customCaBundle(@Nullable Output customCaBundle) {
            $.customCaBundle = customCaBundle;
            return this;
        }

        /**
         * @param customCaBundle File containing custom root and intermediate certificates. Can also be configured using the `AWS_CA_BUNDLE` environment
         * variable. (Setting `ca_bundle` in the shared config file is not supported.)
         * 
         * @return builder
         * 
         */
        public Builder customCaBundle(String customCaBundle) {
            return customCaBundle(Output.of(customCaBundle));
        }

        /**
         * @param defaultTags Configuration block with settings to default resource tags across all resources.
         * 
         * @return builder
         * 
         */
        public Builder defaultTags(@Nullable Output defaultTags) {
            $.defaultTags = defaultTags;
            return this;
        }

        /**
         * @param defaultTags Configuration block with settings to default resource tags across all resources.
         * 
         * @return builder
         * 
         */
        public Builder defaultTags(ProviderDefaultTagsArgs defaultTags) {
            return defaultTags(Output.of(defaultTags));
        }

        /**
         * @param ec2MetadataServiceEndpoint Address of the EC2 metadata service endpoint to use. Can also be configured using the
         * `AWS_EC2_METADATA_SERVICE_ENDPOINT` environment variable.
         * 
         * @return builder
         * 
         */
        public Builder ec2MetadataServiceEndpoint(@Nullable Output ec2MetadataServiceEndpoint) {
            $.ec2MetadataServiceEndpoint = ec2MetadataServiceEndpoint;
            return this;
        }

        /**
         * @param ec2MetadataServiceEndpoint Address of the EC2 metadata service endpoint to use. Can also be configured using the
         * `AWS_EC2_METADATA_SERVICE_ENDPOINT` environment variable.
         * 
         * @return builder
         * 
         */
        public Builder ec2MetadataServiceEndpoint(String ec2MetadataServiceEndpoint) {
            return ec2MetadataServiceEndpoint(Output.of(ec2MetadataServiceEndpoint));
        }

        /**
         * @param ec2MetadataServiceEndpointMode Protocol to use with EC2 metadata service endpoint.Valid values are `IPv4` and `IPv6`. Can also be configured using the
         * `AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE` environment variable.
         * 
         * @return builder
         * 
         */
        public Builder ec2MetadataServiceEndpointMode(@Nullable Output ec2MetadataServiceEndpointMode) {
            $.ec2MetadataServiceEndpointMode = ec2MetadataServiceEndpointMode;
            return this;
        }

        /**
         * @param ec2MetadataServiceEndpointMode Protocol to use with EC2 metadata service endpoint.Valid values are `IPv4` and `IPv6`. Can also be configured using the
         * `AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE` environment variable.
         * 
         * @return builder
         * 
         */
        public Builder ec2MetadataServiceEndpointMode(String ec2MetadataServiceEndpointMode) {
            return ec2MetadataServiceEndpointMode(Output.of(ec2MetadataServiceEndpointMode));
        }

        public Builder endpoints(@Nullable Output> endpoints) {
            $.endpoints = endpoints;
            return this;
        }

        public Builder endpoints(List endpoints) {
            return endpoints(Output.of(endpoints));
        }

        public Builder endpoints(ProviderEndpointArgs... endpoints) {
            return endpoints(List.of(endpoints));
        }

        public Builder forbiddenAccountIds(@Nullable Output> forbiddenAccountIds) {
            $.forbiddenAccountIds = forbiddenAccountIds;
            return this;
        }

        public Builder forbiddenAccountIds(List forbiddenAccountIds) {
            return forbiddenAccountIds(Output.of(forbiddenAccountIds));
        }

        public Builder forbiddenAccountIds(String... forbiddenAccountIds) {
            return forbiddenAccountIds(List.of(forbiddenAccountIds));
        }

        /**
         * @param httpProxy URL of a proxy to use for HTTP requests when accessing the AWS API. Can also be set using the `HTTP_PROXY` or
         * `http_proxy` environment variables.
         * 
         * @return builder
         * 
         */
        public Builder httpProxy(@Nullable Output httpProxy) {
            $.httpProxy = httpProxy;
            return this;
        }

        /**
         * @param httpProxy URL of a proxy to use for HTTP requests when accessing the AWS API. Can also be set using the `HTTP_PROXY` or
         * `http_proxy` environment variables.
         * 
         * @return builder
         * 
         */
        public Builder httpProxy(String httpProxy) {
            return httpProxy(Output.of(httpProxy));
        }

        /**
         * @param httpsProxy URL of a proxy to use for HTTPS requests when accessing the AWS API. Can also be set using the `HTTPS_PROXY` or
         * `https_proxy` environment variables.
         * 
         * @return builder
         * 
         */
        public Builder httpsProxy(@Nullable Output httpsProxy) {
            $.httpsProxy = httpsProxy;
            return this;
        }

        /**
         * @param httpsProxy URL of a proxy to use for HTTPS requests when accessing the AWS API. Can also be set using the `HTTPS_PROXY` or
         * `https_proxy` environment variables.
         * 
         * @return builder
         * 
         */
        public Builder httpsProxy(String httpsProxy) {
            return httpsProxy(Output.of(httpsProxy));
        }

        /**
         * @param ignoreTags Configuration block with settings to ignore resource tags across all resources.
         * 
         * @return builder
         * 
         */
        public Builder ignoreTags(@Nullable Output ignoreTags) {
            $.ignoreTags = ignoreTags;
            return this;
        }

        /**
         * @param ignoreTags Configuration block with settings to ignore resource tags across all resources.
         * 
         * @return builder
         * 
         */
        public Builder ignoreTags(ProviderIgnoreTagsArgs ignoreTags) {
            return ignoreTags(Output.of(ignoreTags));
        }

        /**
         * @param insecure Explicitly allow the provider to perform "insecure" SSL requests. If omitted, default value is `false`
         * 
         * @return builder
         * 
         */
        public Builder insecure(@Nullable Output insecure) {
            $.insecure = insecure;
            return this;
        }

        /**
         * @param insecure Explicitly allow the provider to perform "insecure" SSL requests. If omitted, default value is `false`
         * 
         * @return builder
         * 
         */
        public Builder insecure(Boolean insecure) {
            return insecure(Output.of(insecure));
        }

        /**
         * @param maxRetries The maximum number of times an AWS API request is being executed. If the API request still fails, an error is thrown.
         * 
         * @return builder
         * 
         */
        public Builder maxRetries(@Nullable Output maxRetries) {
            $.maxRetries = maxRetries;
            return this;
        }

        /**
         * @param maxRetries The maximum number of times an AWS API request is being executed. If the API request still fails, an error is thrown.
         * 
         * @return builder
         * 
         */
        public Builder maxRetries(Integer maxRetries) {
            return maxRetries(Output.of(maxRetries));
        }

        /**
         * @param noProxy Comma-separated list of hosts that should not use HTTP or HTTPS proxies. Can also be set using the `NO_PROXY` or
         * `no_proxy` environment variables.
         * 
         * @return builder
         * 
         */
        public Builder noProxy(@Nullable Output noProxy) {
            $.noProxy = noProxy;
            return this;
        }

        /**
         * @param noProxy Comma-separated list of hosts that should not use HTTP or HTTPS proxies. Can also be set using the `NO_PROXY` or
         * `no_proxy` environment variables.
         * 
         * @return builder
         * 
         */
        public Builder noProxy(String noProxy) {
            return noProxy(Output.of(noProxy));
        }

        /**
         * @param profile The profile for API operations. If not set, the default profile created with `aws configure` will be used.
         * 
         * @return builder
         * 
         */
        public Builder profile(@Nullable Output profile) {
            $.profile = profile;
            return this;
        }

        /**
         * @param profile The profile for API operations. If not set, the default profile created with `aws configure` will be used.
         * 
         * @return builder
         * 
         */
        public Builder profile(String profile) {
            return profile(Output.of(profile));
        }

        /**
         * @param region The region where AWS operations will take place. Examples are us-east-1, us-west-2, etc.
         * 
         * @return builder
         * 
         */
        public Builder region(@Nullable Output region) {
            $.region = region;
            return this;
        }

        /**
         * @param region The region where AWS operations will take place. Examples are us-east-1, us-west-2, etc.
         * 
         * @return builder
         * 
         */
        public Builder region(String region) {
            return region(Output.of(region));
        }

        /**
         * @param retryMode Specifies how retries are attempted. Valid values are `standard` and `adaptive`. Can also be configured using the
         * `AWS_RETRY_MODE` environment variable.
         * 
         * @return builder
         * 
         */
        public Builder retryMode(@Nullable Output retryMode) {
            $.retryMode = retryMode;
            return this;
        }

        /**
         * @param retryMode Specifies how retries are attempted. Valid values are `standard` and `adaptive`. Can also be configured using the
         * `AWS_RETRY_MODE` environment variable.
         * 
         * @return builder
         * 
         */
        public Builder retryMode(String retryMode) {
            return retryMode(Output.of(retryMode));
        }

        /**
         * @param s3UsEast1RegionalEndpoint Specifies whether S3 API calls in the `us-east-1` region use the legacy global endpoint or a regional endpoint. Valid
         * values are `legacy` or `regional`. Can also be configured using the `AWS_S3_US_EAST_1_REGIONAL_ENDPOINT` environment
         * variable or the `s3_us_east_1_regional_endpoint` shared config file parameter
         * 
         * @return builder
         * 
         */
        public Builder s3UsEast1RegionalEndpoint(@Nullable Output s3UsEast1RegionalEndpoint) {
            $.s3UsEast1RegionalEndpoint = s3UsEast1RegionalEndpoint;
            return this;
        }

        /**
         * @param s3UsEast1RegionalEndpoint Specifies whether S3 API calls in the `us-east-1` region use the legacy global endpoint or a regional endpoint. Valid
         * values are `legacy` or `regional`. Can also be configured using the `AWS_S3_US_EAST_1_REGIONAL_ENDPOINT` environment
         * variable or the `s3_us_east_1_regional_endpoint` shared config file parameter
         * 
         * @return builder
         * 
         */
        public Builder s3UsEast1RegionalEndpoint(String s3UsEast1RegionalEndpoint) {
            return s3UsEast1RegionalEndpoint(Output.of(s3UsEast1RegionalEndpoint));
        }

        /**
         * @param s3UsePathStyle Set this to true to enable the request to use path-style addressing, i.e., https://s3.amazonaws.com/BUCKET/KEY. By
         * default, the S3 client will use virtual hosted bucket addressing when possible (https://BUCKET.s3.amazonaws.com/KEY).
         * Specific to the Amazon S3 service.
         * 
         * @return builder
         * 
         */
        public Builder s3UsePathStyle(@Nullable Output s3UsePathStyle) {
            $.s3UsePathStyle = s3UsePathStyle;
            return this;
        }

        /**
         * @param s3UsePathStyle Set this to true to enable the request to use path-style addressing, i.e., https://s3.amazonaws.com/BUCKET/KEY. By
         * default, the S3 client will use virtual hosted bucket addressing when possible (https://BUCKET.s3.amazonaws.com/KEY).
         * Specific to the Amazon S3 service.
         * 
         * @return builder
         * 
         */
        public Builder s3UsePathStyle(Boolean s3UsePathStyle) {
            return s3UsePathStyle(Output.of(s3UsePathStyle));
        }

        /**
         * @param secretKey The secret key for API operations. You can retrieve this from the 'Security & Credentials' section of the AWS console.
         * 
         * @return builder
         * 
         */
        public Builder secretKey(@Nullable Output secretKey) {
            $.secretKey = secretKey;
            return this;
        }

        /**
         * @param secretKey The secret key for API operations. You can retrieve this from the 'Security & Credentials' section of the AWS console.
         * 
         * @return builder
         * 
         */
        public Builder secretKey(String secretKey) {
            return secretKey(Output.of(secretKey));
        }

        /**
         * @param sharedConfigFiles List of paths to shared config files. If not set, defaults to [~/.aws/config].
         * 
         * @return builder
         * 
         */
        public Builder sharedConfigFiles(@Nullable Output> sharedConfigFiles) {
            $.sharedConfigFiles = sharedConfigFiles;
            return this;
        }

        /**
         * @param sharedConfigFiles List of paths to shared config files. If not set, defaults to [~/.aws/config].
         * 
         * @return builder
         * 
         */
        public Builder sharedConfigFiles(List sharedConfigFiles) {
            return sharedConfigFiles(Output.of(sharedConfigFiles));
        }

        /**
         * @param sharedConfigFiles List of paths to shared config files. If not set, defaults to [~/.aws/config].
         * 
         * @return builder
         * 
         */
        public Builder sharedConfigFiles(String... sharedConfigFiles) {
            return sharedConfigFiles(List.of(sharedConfigFiles));
        }

        /**
         * @param sharedCredentialsFiles List of paths to shared credentials files. If not set, defaults to [~/.aws/credentials].
         * 
         * @return builder
         * 
         */
        public Builder sharedCredentialsFiles(@Nullable Output> sharedCredentialsFiles) {
            $.sharedCredentialsFiles = sharedCredentialsFiles;
            return this;
        }

        /**
         * @param sharedCredentialsFiles List of paths to shared credentials files. If not set, defaults to [~/.aws/credentials].
         * 
         * @return builder
         * 
         */
        public Builder sharedCredentialsFiles(List sharedCredentialsFiles) {
            return sharedCredentialsFiles(Output.of(sharedCredentialsFiles));
        }

        /**
         * @param sharedCredentialsFiles List of paths to shared credentials files. If not set, defaults to [~/.aws/credentials].
         * 
         * @return builder
         * 
         */
        public Builder sharedCredentialsFiles(String... sharedCredentialsFiles) {
            return sharedCredentialsFiles(List.of(sharedCredentialsFiles));
        }

        /**
         * @param skipCredentialsValidation Skip the credentials validation via STS API. Used for AWS API implementations that do not have STS
         * available/implemented.
         * 
         * @return builder
         * 
         */
        public Builder skipCredentialsValidation(@Nullable Output skipCredentialsValidation) {
            $.skipCredentialsValidation = skipCredentialsValidation;
            return this;
        }

        /**
         * @param skipCredentialsValidation Skip the credentials validation via STS API. Used for AWS API implementations that do not have STS
         * available/implemented.
         * 
         * @return builder
         * 
         */
        public Builder skipCredentialsValidation(Boolean skipCredentialsValidation) {
            return skipCredentialsValidation(Output.of(skipCredentialsValidation));
        }

        /**
         * @param skipMetadataApiCheck Skip the AWS Metadata API check. Used for AWS API implementations that do not have a metadata api endpoint.
         * 
         * @return builder
         * 
         */
        public Builder skipMetadataApiCheck(@Nullable Output skipMetadataApiCheck) {
            $.skipMetadataApiCheck = skipMetadataApiCheck;
            return this;
        }

        /**
         * @param skipMetadataApiCheck Skip the AWS Metadata API check. Used for AWS API implementations that do not have a metadata api endpoint.
         * 
         * @return builder
         * 
         */
        public Builder skipMetadataApiCheck(Boolean skipMetadataApiCheck) {
            return skipMetadataApiCheck(Output.of(skipMetadataApiCheck));
        }

        /**
         * @param skipRegionValidation Skip static validation of region name. Used by users of alternative AWS-like APIs or users w/ access to regions that are
         * not public (yet).
         * 
         * @return builder
         * 
         */
        public Builder skipRegionValidation(@Nullable Output skipRegionValidation) {
            $.skipRegionValidation = skipRegionValidation;
            return this;
        }

        /**
         * @param skipRegionValidation Skip static validation of region name. Used by users of alternative AWS-like APIs or users w/ access to regions that are
         * not public (yet).
         * 
         * @return builder
         * 
         */
        public Builder skipRegionValidation(Boolean skipRegionValidation) {
            return skipRegionValidation(Output.of(skipRegionValidation));
        }

        /**
         * @param skipRequestingAccountId Skip requesting the account ID. Used for AWS API implementations that do not have IAM/STS API and/or metadata API.
         * 
         * @return builder
         * 
         */
        public Builder skipRequestingAccountId(@Nullable Output skipRequestingAccountId) {
            $.skipRequestingAccountId = skipRequestingAccountId;
            return this;
        }

        /**
         * @param skipRequestingAccountId Skip requesting the account ID. Used for AWS API implementations that do not have IAM/STS API and/or metadata API.
         * 
         * @return builder
         * 
         */
        public Builder skipRequestingAccountId(Boolean skipRequestingAccountId) {
            return skipRequestingAccountId(Output.of(skipRequestingAccountId));
        }

        /**
         * @param stsRegion The region where AWS STS operations will take place. Examples are us-east-1 and us-west-2.
         * 
         * @return builder
         * 
         */
        public Builder stsRegion(@Nullable Output stsRegion) {
            $.stsRegion = stsRegion;
            return this;
        }

        /**
         * @param stsRegion The region where AWS STS operations will take place. Examples are us-east-1 and us-west-2.
         * 
         * @return builder
         * 
         */
        public Builder stsRegion(String stsRegion) {
            return stsRegion(Output.of(stsRegion));
        }

        /**
         * @param token session token. A session token is only required if you are using temporary security credentials.
         * 
         * @return builder
         * 
         */
        public Builder token(@Nullable Output token) {
            $.token = token;
            return this;
        }

        /**
         * @param token session token. A session token is only required if you are using temporary security credentials.
         * 
         * @return builder
         * 
         */
        public Builder token(String token) {
            return token(Output.of(token));
        }

        /**
         * @param tokenBucketRateLimiterCapacity The capacity of the AWS SDK's token bucket rate limiter.
         * 
         * @return builder
         * 
         */
        public Builder tokenBucketRateLimiterCapacity(@Nullable Output tokenBucketRateLimiterCapacity) {
            $.tokenBucketRateLimiterCapacity = tokenBucketRateLimiterCapacity;
            return this;
        }

        /**
         * @param tokenBucketRateLimiterCapacity The capacity of the AWS SDK's token bucket rate limiter.
         * 
         * @return builder
         * 
         */
        public Builder tokenBucketRateLimiterCapacity(Integer tokenBucketRateLimiterCapacity) {
            return tokenBucketRateLimiterCapacity(Output.of(tokenBucketRateLimiterCapacity));
        }

        /**
         * @param useDualstackEndpoint Resolve an endpoint with DualStack capability
         * 
         * @return builder
         * 
         */
        public Builder useDualstackEndpoint(@Nullable Output useDualstackEndpoint) {
            $.useDualstackEndpoint = useDualstackEndpoint;
            return this;
        }

        /**
         * @param useDualstackEndpoint Resolve an endpoint with DualStack capability
         * 
         * @return builder
         * 
         */
        public Builder useDualstackEndpoint(Boolean useDualstackEndpoint) {
            return useDualstackEndpoint(Output.of(useDualstackEndpoint));
        }

        /**
         * @param useFipsEndpoint Resolve an endpoint with FIPS capability
         * 
         * @return builder
         * 
         */
        public Builder useFipsEndpoint(@Nullable Output useFipsEndpoint) {
            $.useFipsEndpoint = useFipsEndpoint;
            return this;
        }

        /**
         * @param useFipsEndpoint Resolve an endpoint with FIPS capability
         * 
         * @return builder
         * 
         */
        public Builder useFipsEndpoint(Boolean useFipsEndpoint) {
            return useFipsEndpoint(Output.of(useFipsEndpoint));
        }

        public ProviderArgs build() {
            $.region = Codegen.stringProp("region").output().arg($.region).env("AWS_REGION", "AWS_DEFAULT_REGION").getNullable();
            $.skipCredentialsValidation = Codegen.booleanProp("skipCredentialsValidation").output().arg($.skipCredentialsValidation).def(false).getNullable();
            $.skipRegionValidation = Codegen.booleanProp("skipRegionValidation").output().arg($.skipRegionValidation).def(true).getNullable();
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy