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

com.pulumi.awsnative.kotlin.ProviderArgs.kt Maven / Gradle / Ivy

Go to download

Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.

There is a newer version: 1.11.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.awsnative.kotlin

import com.pulumi.awsnative.ProviderArgs.builder
import com.pulumi.awsnative.kotlin.inputs.ProviderAssumeRoleArgs
import com.pulumi.awsnative.kotlin.inputs.ProviderAssumeRoleArgsBuilder
import com.pulumi.awsnative.kotlin.inputs.ProviderDefaultTagsArgs
import com.pulumi.awsnative.kotlin.inputs.ProviderDefaultTagsArgsBuilder
import com.pulumi.awsnative.kotlin.inputs.ProviderEndpointArgs
import com.pulumi.awsnative.kotlin.inputs.ProviderEndpointArgsBuilder
import com.pulumi.awsnative.kotlin.inputs.ProviderIgnoreTagsArgs
import com.pulumi.awsnative.kotlin.inputs.ProviderIgnoreTagsArgsBuilder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Boolean
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * The provider type for the AWS native package. By default, resources use package-wide configuration settings, however an explicit `Provider` instance may be created and passed during resource construction to achieve fine-grained programmatic control over provider settings. See the [documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.
 * @property accessKey The access key for API operations. You can retrieve this from the ‘Security & Credentials’ section of the AWS console.
 * @property allowedAccountIds List of allowed AWS account IDs to prevent you from mistakenly using an incorrect one. Conflicts with `forbiddenAccountIds`.
 * @property assumeRole Configuration for retrieving temporary credentials from the STS service.
 * @property defaultTags 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.
 * @property endpoints Configuration block for customizing service endpoints.
 * @property forbiddenAccountIds 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`.
 * @property ignoreTags 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.
 * @property insecure Explicitly allow the provider to perform "insecure" SSL requests. If omitted,default value is `false`.
 * @property maxRetries The maximum number of times an AWS API request is being executed. If the API request still fails, an error is thrown.
 * @property profile The profile for API operations. If not set, the default profile created with `aws configure` will be used.
 * @property region The region where AWS operations will take place. Examples are `us-east-1`, `us-west-2`, etc.
 * @property roleArn The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role for Cloud Control API to use when performing this resource operation. Note, this is a unique feature for server side security enforcement, not to be confused with assumeRole, which is used to obtain temporary client credentials. If you do not specify a role, Cloud Control API uses a temporary session created using your AWS user credentials instead.
 * @property s3ForcePathStyle 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.
 * @property secretKey The secret key for API operations. You can retrieve this from the 'Security & Credentials' section of the AWS console.
 * @property sharedCredentialsFile The path to the shared credentials file. If not set this defaults to `~/.aws/credentials`.
 * @property skipCredentialsValidation Skip the credentials validation via STS API. Used for AWS API implementations that do not have STS available/implemented.
 * @property skipGetEc2Platforms Skip getting the supported EC2 platforms. Used by users that don't have `ec2:DescribeAccountAttributes` permissions.
 * @property skipMetadataApiCheck 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.
 * @property skipRegionValidation Skip static validation of region name. Used by users of alternative AWS-like APIs or users with access to regions that are not public.
 * @property skipRequestingAccountId Skip requesting the account ID. Used for AWS API implementations that do not have IAM/STS API and/or metadata API.
 * @property token 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.
 */
public data class ProviderArgs(
    public val accessKey: Output? = null,
    public val allowedAccountIds: Output>? = null,
    public val assumeRole: Output? = null,
    public val defaultTags: Output? = null,
    public val endpoints: Output>? = null,
    public val forbiddenAccountIds: Output>? = null,
    public val ignoreTags: Output? = null,
    public val insecure: Output? = null,
    public val maxRetries: Output? = null,
    public val profile: Output? = null,
    public val region: Output? = null,
    public val roleArn: Output? = null,
    public val s3ForcePathStyle: Output? = null,
    public val secretKey: Output? = null,
    public val sharedCredentialsFile: Output? = null,
    public val skipCredentialsValidation: Output? = null,
    public val skipGetEc2Platforms: Output? = null,
    public val skipMetadataApiCheck: Output? = null,
    public val skipRegionValidation: Output? = null,
    public val skipRequestingAccountId: Output? = null,
    public val token: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.ProviderArgs =
        com.pulumi.awsnative.ProviderArgs.builder()
            .accessKey(accessKey?.applyValue({ args0 -> args0 }))
            .allowedAccountIds(allowedAccountIds?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .assumeRole(assumeRole?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .defaultTags(defaultTags?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .endpoints(
                endpoints?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .forbiddenAccountIds(forbiddenAccountIds?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .ignoreTags(ignoreTags?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .insecure(insecure?.applyValue({ args0 -> args0 }))
            .maxRetries(maxRetries?.applyValue({ args0 -> args0 }))
            .profile(profile?.applyValue({ args0 -> args0 }))
            .region(region?.applyValue({ args0 -> args0 }))
            .roleArn(roleArn?.applyValue({ args0 -> args0 }))
            .s3ForcePathStyle(s3ForcePathStyle?.applyValue({ args0 -> args0 }))
            .secretKey(secretKey?.applyValue({ args0 -> args0 }))
            .sharedCredentialsFile(sharedCredentialsFile?.applyValue({ args0 -> args0 }))
            .skipCredentialsValidation(skipCredentialsValidation?.applyValue({ args0 -> args0 }))
            .skipGetEc2Platforms(skipGetEc2Platforms?.applyValue({ args0 -> args0 }))
            .skipMetadataApiCheck(skipMetadataApiCheck?.applyValue({ args0 -> args0 }))
            .skipRegionValidation(skipRegionValidation?.applyValue({ args0 -> args0 }))
            .skipRequestingAccountId(skipRequestingAccountId?.applyValue({ args0 -> args0 }))
            .token(token?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [ProviderArgs].
 */
@PulumiTagMarker
public class ProviderArgsBuilder internal constructor() {
    private var accessKey: Output? = null

    private var allowedAccountIds: Output>? = null

    private var assumeRole: Output? = null

    private var defaultTags: Output? = null

    private var endpoints: Output>? = null

    private var forbiddenAccountIds: Output>? = null

    private var ignoreTags: Output? = null

    private var insecure: Output? = null

    private var maxRetries: Output? = null

    private var profile: Output? = null

    private var region: Output? = null

    private var roleArn: Output? = null

    private var s3ForcePathStyle: Output? = null

    private var secretKey: Output? = null

    private var sharedCredentialsFile: Output? = null

    private var skipCredentialsValidation: Output? = null

    private var skipGetEc2Platforms: Output? = null

    private var skipMetadataApiCheck: Output? = null

    private var skipRegionValidation: Output? = null

    private var skipRequestingAccountId: Output? = null

    private var token: Output? = null

    /**
     * @param value The access key for API operations. You can retrieve this from the ‘Security & Credentials’ section of the AWS console.
     */
    @JvmName("kmnjqnwalsqcstbv")
    public suspend fun accessKey(`value`: Output) {
        this.accessKey = value
    }

    /**
     * @param value List of allowed AWS account IDs to prevent you from mistakenly using an incorrect one. Conflicts with `forbiddenAccountIds`.
     */
    @JvmName("cvnmblpnkacstioh")
    public suspend fun allowedAccountIds(`value`: Output>) {
        this.allowedAccountIds = value
    }

    @JvmName("cvhcopqgumekhovu")
    public suspend fun allowedAccountIds(vararg values: Output) {
        this.allowedAccountIds = Output.all(values.asList())
    }

    /**
     * @param values List of allowed AWS account IDs to prevent you from mistakenly using an incorrect one. Conflicts with `forbiddenAccountIds`.
     */
    @JvmName("uiqndskrrmmkowmt")
    public suspend fun allowedAccountIds(values: List>) {
        this.allowedAccountIds = Output.all(values)
    }

    /**
     * @param value Configuration for retrieving temporary credentials from the STS service.
     */
    @JvmName("ejawxidcpwmxulpb")
    public suspend fun assumeRole(`value`: Output) {
        this.assumeRole = value
    }

    /**
     * @param value 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.
     */
    @JvmName("aiylpstiyhbyoaui")
    public suspend fun defaultTags(`value`: Output) {
        this.defaultTags = value
    }

    /**
     * @param value Configuration block for customizing service endpoints.
     */
    @JvmName("ceypxwduqodmvhha")
    public suspend fun endpoints(`value`: Output>) {
        this.endpoints = value
    }

    @JvmName("ulnicihuayomgtwq")
    public suspend fun endpoints(vararg values: Output) {
        this.endpoints = Output.all(values.asList())
    }

    /**
     * @param values Configuration block for customizing service endpoints.
     */
    @JvmName("avdrmqiaireetuqg")
    public suspend fun endpoints(values: List>) {
        this.endpoints = Output.all(values)
    }

    /**
     * @param value 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`.
     */
    @JvmName("mdyhlujjshbihbta")
    public suspend fun forbiddenAccountIds(`value`: Output>) {
        this.forbiddenAccountIds = value
    }

    @JvmName("uucvqmtorjcxlcwf")
    public suspend fun forbiddenAccountIds(vararg values: Output) {
        this.forbiddenAccountIds = Output.all(values.asList())
    }

    /**
     * @param values 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`.
     */
    @JvmName("bicivbswaberghxd")
    public suspend fun forbiddenAccountIds(values: List>) {
        this.forbiddenAccountIds = Output.all(values)
    }

    /**
     * @param value 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.
     */
    @JvmName("upuiwxqxdqeogrqg")
    public suspend fun ignoreTags(`value`: Output) {
        this.ignoreTags = value
    }

    /**
     * @param value Explicitly allow the provider to perform "insecure" SSL requests. If omitted,default value is `false`.
     */
    @JvmName("menxufbeqykrsgsk")
    public suspend fun insecure(`value`: Output) {
        this.insecure = value
    }

    /**
     * @param value The maximum number of times an AWS API request is being executed. If the API request still fails, an error is thrown.
     */
    @JvmName("yqogcnsrhmmupkvw")
    public suspend fun maxRetries(`value`: Output) {
        this.maxRetries = value
    }

    /**
     * @param value The profile for API operations. If not set, the default profile created with `aws configure` will be used.
     */
    @JvmName("vflaqxvasbeuopep")
    public suspend fun profile(`value`: Output) {
        this.profile = value
    }

    /**
     * @param value The region where AWS operations will take place. Examples are `us-east-1`, `us-west-2`, etc.
     */
    @JvmName("iynkqwlxlfgfiomg")
    public suspend fun region(`value`: Output) {
        this.region = value
    }

    /**
     * @param value The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role for Cloud Control API to use when performing this resource operation. Note, this is a unique feature for server side security enforcement, not to be confused with assumeRole, which is used to obtain temporary client credentials. If you do not specify a role, Cloud Control API uses a temporary session created using your AWS user credentials instead.
     */
    @JvmName("cgmwpqwojarckiha")
    public suspend fun roleArn(`value`: Output) {
        this.roleArn = value
    }

    /**
     * @param value 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.
     */
    @JvmName("ycllcmrbullxmbir")
    public suspend fun s3ForcePathStyle(`value`: Output) {
        this.s3ForcePathStyle = value
    }

    /**
     * @param value The secret key for API operations. You can retrieve this from the 'Security & Credentials' section of the AWS console.
     */
    @JvmName("rtkggqtulyrdfqja")
    public suspend fun secretKey(`value`: Output) {
        this.secretKey = value
    }

    /**
     * @param value The path to the shared credentials file. If not set this defaults to `~/.aws/credentials`.
     */
    @JvmName("wtnxmewtxieqyufv")
    public suspend fun sharedCredentialsFile(`value`: Output) {
        this.sharedCredentialsFile = value
    }

    /**
     * @param value Skip the credentials validation via STS API. Used for AWS API implementations that do not have STS available/implemented.
     */
    @JvmName("asrlynjiytjmlfck")
    public suspend fun skipCredentialsValidation(`value`: Output) {
        this.skipCredentialsValidation = value
    }

    /**
     * @param value Skip getting the supported EC2 platforms. Used by users that don't have `ec2:DescribeAccountAttributes` permissions.
     */
    @JvmName("xiahrhugtetlxmxn")
    public suspend fun skipGetEc2Platforms(`value`: Output) {
        this.skipGetEc2Platforms = value
    }

    /**
     * @param value 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.
     */
    @JvmName("aojlmfngjtvgamhc")
    public suspend fun skipMetadataApiCheck(`value`: Output) {
        this.skipMetadataApiCheck = value
    }

    /**
     * @param value Skip static validation of region name. Used by users of alternative AWS-like APIs or users with access to regions that are not public.
     */
    @JvmName("sexwwiuhdwnnitoe")
    public suspend fun skipRegionValidation(`value`: Output) {
        this.skipRegionValidation = value
    }

    /**
     * @param value Skip requesting the account ID. Used for AWS API implementations that do not have IAM/STS API and/or metadata API.
     */
    @JvmName("yiaghyikmevpvofv")
    public suspend fun skipRequestingAccountId(`value`: Output) {
        this.skipRequestingAccountId = value
    }

    /**
     * @param value 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.
     */
    @JvmName("ydvmgwxyydknpxng")
    public suspend fun token(`value`: Output) {
        this.token = value
    }

    /**
     * @param value The access key for API operations. You can retrieve this from the ‘Security & Credentials’ section of the AWS console.
     */
    @JvmName("pphkldljlvcsodja")
    public suspend fun accessKey(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.accessKey = mapped
    }

    /**
     * @param value List of allowed AWS account IDs to prevent you from mistakenly using an incorrect one. Conflicts with `forbiddenAccountIds`.
     */
    @JvmName("niipdmwysbxofavd")
    public suspend fun allowedAccountIds(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.allowedAccountIds = mapped
    }

    /**
     * @param values List of allowed AWS account IDs to prevent you from mistakenly using an incorrect one. Conflicts with `forbiddenAccountIds`.
     */
    @JvmName("nafghsbojiconjnq")
    public suspend fun allowedAccountIds(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.allowedAccountIds = mapped
    }

    /**
     * @param value Configuration for retrieving temporary credentials from the STS service.
     */
    @JvmName("yojcjedmtuofnkki")
    public suspend fun assumeRole(`value`: ProviderAssumeRoleArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.assumeRole = mapped
    }

    /**
     * @param argument Configuration for retrieving temporary credentials from the STS service.
     */
    @JvmName("xbxflcpuhkgsxsmk")
    public suspend fun assumeRole(argument: suspend ProviderAssumeRoleArgsBuilder.() -> Unit) {
        val toBeMapped = ProviderAssumeRoleArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.assumeRole = mapped
    }

    /**
     * @param value 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.
     */
    @JvmName("jbwdjqifwcwrefjv")
    public suspend fun defaultTags(`value`: ProviderDefaultTagsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.defaultTags = mapped
    }

    /**
     * @param argument 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.
     */
    @JvmName("rcwnmlxhmwnlymhg")
    public suspend fun defaultTags(argument: suspend ProviderDefaultTagsArgsBuilder.() -> Unit) {
        val toBeMapped = ProviderDefaultTagsArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.defaultTags = mapped
    }

    /**
     * @param value Configuration block for customizing service endpoints.
     */
    @JvmName("jpujyloivtaglqwb")
    public suspend fun endpoints(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.endpoints = mapped
    }

    /**
     * @param argument Configuration block for customizing service endpoints.
     */
    @JvmName("pxtkenfrnfjfadtu")
    public suspend fun endpoints(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            ProviderEndpointArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.endpoints = mapped
    }

    /**
     * @param argument Configuration block for customizing service endpoints.
     */
    @JvmName("mrqstxkgkhogbjol")
    public suspend fun endpoints(vararg argument: suspend ProviderEndpointArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            ProviderEndpointArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.endpoints = mapped
    }

    /**
     * @param argument Configuration block for customizing service endpoints.
     */
    @JvmName("hdspwuuveuhgjsxa")
    public suspend fun endpoints(argument: suspend ProviderEndpointArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(ProviderEndpointArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.endpoints = mapped
    }

    /**
     * @param values Configuration block for customizing service endpoints.
     */
    @JvmName("llekenttyoijvgdv")
    public suspend fun endpoints(vararg values: ProviderEndpointArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.endpoints = mapped
    }

    /**
     * @param value 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`.
     */
    @JvmName("dwcjxwvtvlvfmcnj")
    public suspend fun forbiddenAccountIds(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.forbiddenAccountIds = mapped
    }

    /**
     * @param values 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`.
     */
    @JvmName("bqqmhaaotgnhpbwy")
    public suspend fun forbiddenAccountIds(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.forbiddenAccountIds = mapped
    }

    /**
     * @param value 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.
     */
    @JvmName("wskntmbltrdupapm")
    public suspend fun ignoreTags(`value`: ProviderIgnoreTagsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.ignoreTags = mapped
    }

    /**
     * @param argument 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.
     */
    @JvmName("dilcmjtltuxcevgi")
    public suspend fun ignoreTags(argument: suspend ProviderIgnoreTagsArgsBuilder.() -> Unit) {
        val toBeMapped = ProviderIgnoreTagsArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.ignoreTags = mapped
    }

    /**
     * @param value Explicitly allow the provider to perform "insecure" SSL requests. If omitted,default value is `false`.
     */
    @JvmName("nhwxeqadhnfegbax")
    public suspend fun insecure(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.insecure = mapped
    }

    /**
     * @param value The maximum number of times an AWS API request is being executed. If the API request still fails, an error is thrown.
     */
    @JvmName("dsghpmuhbgqdrtwn")
    public suspend fun maxRetries(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.maxRetries = mapped
    }

    /**
     * @param value The profile for API operations. If not set, the default profile created with `aws configure` will be used.
     */
    @JvmName("hwooetqswpearenv")
    public suspend fun profile(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.profile = mapped
    }

    /**
     * @param value The region where AWS operations will take place. Examples are `us-east-1`, `us-west-2`, etc.
     */
    @JvmName("uickosvmgnevjfoi")
    public suspend fun region(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.region = mapped
    }

    /**
     * @param value The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role for Cloud Control API to use when performing this resource operation. Note, this is a unique feature for server side security enforcement, not to be confused with assumeRole, which is used to obtain temporary client credentials. If you do not specify a role, Cloud Control API uses a temporary session created using your AWS user credentials instead.
     */
    @JvmName("vnamxhuirnyfbtfc")
    public suspend fun roleArn(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.roleArn = mapped
    }

    /**
     * @param value 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.
     */
    @JvmName("lctvidlipirtgfsq")
    public suspend fun s3ForcePathStyle(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.s3ForcePathStyle = mapped
    }

    /**
     * @param value The secret key for API operations. You can retrieve this from the 'Security & Credentials' section of the AWS console.
     */
    @JvmName("fevyhejhxcespobg")
    public suspend fun secretKey(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.secretKey = mapped
    }

    /**
     * @param value The path to the shared credentials file. If not set this defaults to `~/.aws/credentials`.
     */
    @JvmName("dalsfoequntccliu")
    public suspend fun sharedCredentialsFile(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.sharedCredentialsFile = mapped
    }

    /**
     * @param value Skip the credentials validation via STS API. Used for AWS API implementations that do not have STS available/implemented.
     */
    @JvmName("cqiikyglsmyvuruy")
    public suspend fun skipCredentialsValidation(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.skipCredentialsValidation = mapped
    }

    /**
     * @param value Skip getting the supported EC2 platforms. Used by users that don't have `ec2:DescribeAccountAttributes` permissions.
     */
    @JvmName("lqdwxqyjefdovpsx")
    public suspend fun skipGetEc2Platforms(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.skipGetEc2Platforms = mapped
    }

    /**
     * @param value 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.
     */
    @JvmName("tioijfvmaxrxitun")
    public suspend fun skipMetadataApiCheck(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.skipMetadataApiCheck = mapped
    }

    /**
     * @param value Skip static validation of region name. Used by users of alternative AWS-like APIs or users with access to regions that are not public.
     */
    @JvmName("dpyfmxsbserebpgp")
    public suspend fun skipRegionValidation(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.skipRegionValidation = mapped
    }

    /**
     * @param value Skip requesting the account ID. Used for AWS API implementations that do not have IAM/STS API and/or metadata API.
     */
    @JvmName("rhvpmjpcetfrmcoj")
    public suspend fun skipRequestingAccountId(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.skipRequestingAccountId = mapped
    }

    /**
     * @param value 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.
     */
    @JvmName("ksxdjtivlwseokeu")
    public suspend fun token(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.token = mapped
    }

    internal fun build(): ProviderArgs = ProviderArgs(
        accessKey = accessKey,
        allowedAccountIds = allowedAccountIds,
        assumeRole = assumeRole,
        defaultTags = defaultTags,
        endpoints = endpoints,
        forbiddenAccountIds = forbiddenAccountIds,
        ignoreTags = ignoreTags,
        insecure = insecure,
        maxRetries = maxRetries,
        profile = profile,
        region = region,
        roleArn = roleArn,
        s3ForcePathStyle = s3ForcePathStyle,
        secretKey = secretKey,
        sharedCredentialsFile = sharedCredentialsFile,
        skipCredentialsValidation = skipCredentialsValidation,
        skipGetEc2Platforms = skipGetEc2Platforms,
        skipMetadataApiCheck = skipMetadataApiCheck,
        skipRegionValidation = skipRegionValidation,
        skipRequestingAccountId = skipRequestingAccountId,
        token = token,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy