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

com.pulumi.alicloud.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: 3.62.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.alicloud.kotlin

import com.pulumi.alicloud.ProviderArgs.builder
import com.pulumi.alicloud.kotlin.inputs.ProviderAssumeRoleArgs
import com.pulumi.alicloud.kotlin.inputs.ProviderAssumeRoleArgsBuilder
import com.pulumi.alicloud.kotlin.inputs.ProviderAssumeRoleWithOidcArgs
import com.pulumi.alicloud.kotlin.inputs.ProviderAssumeRoleWithOidcArgsBuilder
import com.pulumi.alicloud.kotlin.inputs.ProviderEndpointArgs
import com.pulumi.alicloud.kotlin.inputs.ProviderEndpointArgsBuilder
import com.pulumi.alicloud.kotlin.inputs.ProviderSignVersionArgs
import com.pulumi.alicloud.kotlin.inputs.ProviderSignVersionArgsBuilder
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.Deprecated
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 alicloud 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 Management' section of the Alibaba Cloud
 * console.
 * @property accountId The account ID for some service API operations. You can retrieve this from the 'Security Settings' section of the
 * Alibaba Cloud console.
 * @property assumeRole
 * @property assumeRoleWithOidc
 * @property clientConnectTimeout The maximum timeout of the client connection server.
 * @property clientReadTimeout The maximum timeout of the client read request.
 * @property configurationSource
 * @property credentialsUri The URI of sidecar credentials service.
 * @property ecsRoleName The RAM Role Name attached on a ECS instance for API operations. You can retrieve this from the 'Access Control' section
 * of the Alibaba Cloud console.
 * @property endpoints
 * @property fc
 * @property logEndpoint
 * @property maxRetryTimeout The maximum retry timeout of the request.
 * @property mnsEndpoint
 * @property otsInstanceName
 * @property profile The profile for API operations. If not set, the default profile created with `aliyun configure` will be used.
 * @property protocol
 * @property region The region where Alibaba Cloud operations will take place. Examples are cn-beijing, cn-hangzhou, eu-central-1, etc.
 * @property secretKey The secret key for API operations. You can retrieve this from the 'Security Management' section of the Alibaba Cloud
 * console.
 * @property secureTransport The security transport for the assume role invoking.
 * @property securityToken security token. A security token is only required if you are using Security Token Service.
 * @property securityTransport
 * @property sharedCredentialsFile The path to the shared credentials file. If not set this defaults to ~/.aliyun/config.json
 * @property signVersion
 * @property skipRegionValidation Skip static validation of region ID. Used by users of alternative AlibabaCloud-like APIs or users w/ access to regions
 * that are not public (yet).
 * @property sourceIp The source ip for the assume role invoking.
 */
public data class ProviderArgs(
    public val accessKey: Output? = null,
    public val accountId: Output? = null,
    public val assumeRole: Output? = null,
    public val assumeRoleWithOidc: Output? = null,
    public val clientConnectTimeout: Output? = null,
    public val clientReadTimeout: Output? = null,
    public val configurationSource: Output? = null,
    public val credentialsUri: Output? = null,
    public val ecsRoleName: Output? = null,
    public val endpoints: Output>? = null,
    @Deprecated(
        message = """
  Field 'fc' has been deprecated from provider version 1.28.0. New field 'fc' which in nested
      endpoints instead.
  """,
    )
    public val fc: Output? = null,
    @Deprecated(
        message = """
  Field 'log_endpoint' has been deprecated from provider version 1.28.0. New field 'log' which in
      nested endpoints instead.
  """,
    )
    public val logEndpoint: Output? = null,
    public val maxRetryTimeout: Output? = null,
    @Deprecated(
        message = """
  Field 'mns_endpoint' has been deprecated from provider version 1.28.0. New field 'mns' which in
      nested endpoints instead.
  """,
    )
    public val mnsEndpoint: Output? = null,
    @Deprecated(
        message = """
  Field 'ots_instance_name' has been deprecated from provider version 1.10.0. New field
      'instance_name' of resource 'alicloud_ots_table' instead.
  """,
    )
    public val otsInstanceName: Output? = null,
    public val profile: Output? = null,
    public val protocol: Output? = null,
    public val region: Output? = null,
    public val secretKey: Output? = null,
    public val secureTransport: Output? = null,
    public val securityToken: Output? = null,
    public val securityTransport: Output? = null,
    public val sharedCredentialsFile: Output? = null,
    public val signVersion: Output? = null,
    public val skipRegionValidation: Output? = null,
    public val sourceIp: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.alicloud.ProviderArgs =
        com.pulumi.alicloud.ProviderArgs.builder()
            .accessKey(accessKey?.applyValue({ args0 -> args0 }))
            .accountId(accountId?.applyValue({ args0 -> args0 }))
            .assumeRole(assumeRole?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .assumeRoleWithOidc(
                assumeRoleWithOidc?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .clientConnectTimeout(clientConnectTimeout?.applyValue({ args0 -> args0 }))
            .clientReadTimeout(clientReadTimeout?.applyValue({ args0 -> args0 }))
            .configurationSource(configurationSource?.applyValue({ args0 -> args0 }))
            .credentialsUri(credentialsUri?.applyValue({ args0 -> args0 }))
            .ecsRoleName(ecsRoleName?.applyValue({ args0 -> args0 }))
            .endpoints(
                endpoints?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .fc(fc?.applyValue({ args0 -> args0 }))
            .logEndpoint(logEndpoint?.applyValue({ args0 -> args0 }))
            .maxRetryTimeout(maxRetryTimeout?.applyValue({ args0 -> args0 }))
            .mnsEndpoint(mnsEndpoint?.applyValue({ args0 -> args0 }))
            .otsInstanceName(otsInstanceName?.applyValue({ args0 -> args0 }))
            .profile(profile?.applyValue({ args0 -> args0 }))
            .protocol(protocol?.applyValue({ args0 -> args0 }))
            .region(region?.applyValue({ args0 -> args0 }))
            .secretKey(secretKey?.applyValue({ args0 -> args0 }))
            .secureTransport(secureTransport?.applyValue({ args0 -> args0 }))
            .securityToken(securityToken?.applyValue({ args0 -> args0 }))
            .securityTransport(securityTransport?.applyValue({ args0 -> args0 }))
            .sharedCredentialsFile(sharedCredentialsFile?.applyValue({ args0 -> args0 }))
            .signVersion(signVersion?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .skipRegionValidation(skipRegionValidation?.applyValue({ args0 -> args0 }))
            .sourceIp(sourceIp?.applyValue({ args0 -> args0 })).build()
}

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

    private var accountId: Output? = null

    private var assumeRole: Output? = null

    private var assumeRoleWithOidc: Output? = null

    private var clientConnectTimeout: Output? = null

    private var clientReadTimeout: Output? = null

    private var configurationSource: Output? = null

    private var credentialsUri: Output? = null

    private var ecsRoleName: Output? = null

    private var endpoints: Output>? = null

    private var fc: Output? = null

    private var logEndpoint: Output? = null

    private var maxRetryTimeout: Output? = null

    private var mnsEndpoint: Output? = null

    private var otsInstanceName: Output? = null

    private var profile: Output? = null

    private var protocol: Output? = null

    private var region: Output? = null

    private var secretKey: Output? = null

    private var secureTransport: Output? = null

    private var securityToken: Output? = null

    private var securityTransport: Output? = null

    private var sharedCredentialsFile: Output? = null

    private var signVersion: Output? = null

    private var skipRegionValidation: Output? = null

    private var sourceIp: Output? = null

    /**
     * @param value The access key for API operations. You can retrieve this from the 'Security Management' section of the Alibaba Cloud
     * console.
     */
    @JvmName("jvdurotcmwmsqcjh")
    public suspend fun accessKey(`value`: Output) {
        this.accessKey = value
    }

    /**
     * @param value The account ID for some service API operations. You can retrieve this from the 'Security Settings' section of the
     * Alibaba Cloud console.
     */
    @JvmName("uylcgpjysmnveolu")
    public suspend fun accountId(`value`: Output) {
        this.accountId = value
    }

    /**
     * @param value
     */
    @JvmName("pjirtdfqntrbyjyf")
    public suspend fun assumeRole(`value`: Output) {
        this.assumeRole = value
    }

    /**
     * @param value
     */
    @JvmName("sbrfvbaqfdliviyt")
    public suspend fun assumeRoleWithOidc(`value`: Output) {
        this.assumeRoleWithOidc = value
    }

    /**
     * @param value The maximum timeout of the client connection server.
     */
    @JvmName("nsehfogniavrlchs")
    public suspend fun clientConnectTimeout(`value`: Output) {
        this.clientConnectTimeout = value
    }

    /**
     * @param value The maximum timeout of the client read request.
     */
    @JvmName("vybajdsmrhlclpfd")
    public suspend fun clientReadTimeout(`value`: Output) {
        this.clientReadTimeout = value
    }

    /**
     * @param value
     */
    @JvmName("ikthcjymhcxqyaks")
    public suspend fun configurationSource(`value`: Output) {
        this.configurationSource = value
    }

    /**
     * @param value The URI of sidecar credentials service.
     */
    @JvmName("lpbxicaxadtiihkk")
    public suspend fun credentialsUri(`value`: Output) {
        this.credentialsUri = value
    }

    /**
     * @param value The RAM Role Name attached on a ECS instance for API operations. You can retrieve this from the 'Access Control' section
     * of the Alibaba Cloud console.
     */
    @JvmName("dpcrfcviovrdrsfj")
    public suspend fun ecsRoleName(`value`: Output) {
        this.ecsRoleName = value
    }

    /**
     * @param value
     */
    @JvmName("bwtgeolcwbbundpy")
    public suspend fun endpoints(`value`: Output>) {
        this.endpoints = value
    }

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

    /**
     * @param values
     */
    @JvmName("xckvgdvwixwvbqcf")
    public suspend fun endpoints(values: List>) {
        this.endpoints = Output.all(values)
    }

    /**
     * @param value
     */
    @Deprecated(
        message = """
  Field 'fc' has been deprecated from provider version 1.28.0. New field 'fc' which in nested
      endpoints instead.
  """,
    )
    @JvmName("qkfoeehfguwlcbpg")
    public suspend fun fc(`value`: Output) {
        this.fc = value
    }

    /**
     * @param value
     */
    @Deprecated(
        message = """
  Field 'log_endpoint' has been deprecated from provider version 1.28.0. New field 'log' which in
      nested endpoints instead.
  """,
    )
    @JvmName("mkpnsupuaggswsre")
    public suspend fun logEndpoint(`value`: Output) {
        this.logEndpoint = value
    }

    /**
     * @param value The maximum retry timeout of the request.
     */
    @JvmName("fjkopchdkxknpacg")
    public suspend fun maxRetryTimeout(`value`: Output) {
        this.maxRetryTimeout = value
    }

    /**
     * @param value
     */
    @Deprecated(
        message = """
  Field 'mns_endpoint' has been deprecated from provider version 1.28.0. New field 'mns' which in
      nested endpoints instead.
  """,
    )
    @JvmName("epftojsssjtyfcmi")
    public suspend fun mnsEndpoint(`value`: Output) {
        this.mnsEndpoint = value
    }

    /**
     * @param value
     */
    @Deprecated(
        message = """
  Field 'ots_instance_name' has been deprecated from provider version 1.10.0. New field
      'instance_name' of resource 'alicloud_ots_table' instead.
  """,
    )
    @JvmName("drkhpwpfaaqamacs")
    public suspend fun otsInstanceName(`value`: Output) {
        this.otsInstanceName = value
    }

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

    /**
     * @param value
     */
    @JvmName("mqomvlokklmtoamd")
    public suspend fun protocol(`value`: Output) {
        this.protocol = value
    }

    /**
     * @param value The region where Alibaba Cloud operations will take place. Examples are cn-beijing, cn-hangzhou, eu-central-1, etc.
     */
    @JvmName("ltrvbmmycytpguxy")
    public suspend fun region(`value`: Output) {
        this.region = value
    }

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

    /**
     * @param value The security transport for the assume role invoking.
     */
    @JvmName("kiqixvchexqbkugn")
    public suspend fun secureTransport(`value`: Output) {
        this.secureTransport = value
    }

    /**
     * @param value security token. A security token is only required if you are using Security Token Service.
     */
    @JvmName("vtaiwmxdweetixfi")
    public suspend fun securityToken(`value`: Output) {
        this.securityToken = value
    }

    /**
     * @param value
     */
    @JvmName("eepcfimqgsldrqkk")
    public suspend fun securityTransport(`value`: Output) {
        this.securityTransport = value
    }

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

    /**
     * @param value
     */
    @JvmName("solajnuennnmjkey")
    public suspend fun signVersion(`value`: Output) {
        this.signVersion = value
    }

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

    /**
     * @param value The source ip for the assume role invoking.
     */
    @JvmName("ddgdhuuevdulcbft")
    public suspend fun sourceIp(`value`: Output) {
        this.sourceIp = value
    }

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

    /**
     * @param value The account ID for some service API operations. You can retrieve this from the 'Security Settings' section of the
     * Alibaba Cloud console.
     */
    @JvmName("huskoiidqbfuteft")
    public suspend fun accountId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.accountId = mapped
    }

    /**
     * @param value
     */
    @JvmName("npqjhubguemqgtbf")
    public suspend fun assumeRole(`value`: ProviderAssumeRoleArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.assumeRole = mapped
    }

    /**
     * @param argument
     */
    @JvmName("dvujvvaexvtuwvnb")
    public suspend fun assumeRole(argument: suspend ProviderAssumeRoleArgsBuilder.() -> Unit) {
        val toBeMapped = ProviderAssumeRoleArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.assumeRole = mapped
    }

    /**
     * @param value
     */
    @JvmName("thjephnaenmtoqrn")
    public suspend fun assumeRoleWithOidc(`value`: ProviderAssumeRoleWithOidcArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.assumeRoleWithOidc = mapped
    }

    /**
     * @param argument
     */
    @JvmName("ijmvghdvwwxhogdx")
    public suspend fun assumeRoleWithOidc(argument: suspend ProviderAssumeRoleWithOidcArgsBuilder.() -> Unit) {
        val toBeMapped = ProviderAssumeRoleWithOidcArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.assumeRoleWithOidc = mapped
    }

    /**
     * @param value The maximum timeout of the client connection server.
     */
    @JvmName("colgjialchghbsbp")
    public suspend fun clientConnectTimeout(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.clientConnectTimeout = mapped
    }

    /**
     * @param value The maximum timeout of the client read request.
     */
    @JvmName("ppmisofcvvmjhdtf")
    public suspend fun clientReadTimeout(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.clientReadTimeout = mapped
    }

    /**
     * @param value
     */
    @JvmName("qfndeiektdhqiimu")
    public suspend fun configurationSource(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.configurationSource = mapped
    }

    /**
     * @param value The URI of sidecar credentials service.
     */
    @JvmName("entispjjbraoxdnf")
    public suspend fun credentialsUri(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.credentialsUri = mapped
    }

    /**
     * @param value The RAM Role Name attached on a ECS instance for API operations. You can retrieve this from the 'Access Control' section
     * of the Alibaba Cloud console.
     */
    @JvmName("asconqkqoapgtoch")
    public suspend fun ecsRoleName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.ecsRoleName = mapped
    }

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

    /**
     * @param argument
     */
    @JvmName("giugtoaefvriouks")
    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
     */
    @JvmName("pruwqhdptqmpmitu")
    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
     */
    @JvmName("mjsmsgmnjkudeutc")
    public suspend fun endpoints(argument: suspend ProviderEndpointArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(ProviderEndpointArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.endpoints = mapped
    }

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

    /**
     * @param value
     */
    @Deprecated(
        message = """
  Field 'fc' has been deprecated from provider version 1.28.0. New field 'fc' which in nested
      endpoints instead.
  """,
    )
    @JvmName("bjgylfbixmdfdbnw")
    public suspend fun fc(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.fc = mapped
    }

    /**
     * @param value
     */
    @Deprecated(
        message = """
  Field 'log_endpoint' has been deprecated from provider version 1.28.0. New field 'log' which in
      nested endpoints instead.
  """,
    )
    @JvmName("kffcyllifofdgdlt")
    public suspend fun logEndpoint(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.logEndpoint = mapped
    }

    /**
     * @param value The maximum retry timeout of the request.
     */
    @JvmName("hjoaxjhitwdtsdjm")
    public suspend fun maxRetryTimeout(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.maxRetryTimeout = mapped
    }

    /**
     * @param value
     */
    @Deprecated(
        message = """
  Field 'mns_endpoint' has been deprecated from provider version 1.28.0. New field 'mns' which in
      nested endpoints instead.
  """,
    )
    @JvmName("erooxputatekqfgy")
    public suspend fun mnsEndpoint(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.mnsEndpoint = mapped
    }

    /**
     * @param value
     */
    @Deprecated(
        message = """
  Field 'ots_instance_name' has been deprecated from provider version 1.10.0. New field
      'instance_name' of resource 'alicloud_ots_table' instead.
  """,
    )
    @JvmName("ucnnyvekbcptxacs")
    public suspend fun otsInstanceName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.otsInstanceName = mapped
    }

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

    /**
     * @param value
     */
    @JvmName("ogwtdlxvlhpfhsqh")
    public suspend fun protocol(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.protocol = mapped
    }

    /**
     * @param value The region where Alibaba Cloud operations will take place. Examples are cn-beijing, cn-hangzhou, eu-central-1, etc.
     */
    @JvmName("pldtcjvcpbdvjxqh")
    public suspend fun region(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.region = mapped
    }

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

    /**
     * @param value The security transport for the assume role invoking.
     */
    @JvmName("mxjpagpesmafmiho")
    public suspend fun secureTransport(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.secureTransport = mapped
    }

    /**
     * @param value security token. A security token is only required if you are using Security Token Service.
     */
    @JvmName("krawsdvqqbasubwm")
    public suspend fun securityToken(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.securityToken = mapped
    }

    /**
     * @param value
     */
    @JvmName("fujdolseheankcbx")
    public suspend fun securityTransport(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.securityTransport = mapped
    }

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

    /**
     * @param value
     */
    @JvmName("pfpftuidgsvpdvxi")
    public suspend fun signVersion(`value`: ProviderSignVersionArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.signVersion = mapped
    }

    /**
     * @param argument
     */
    @JvmName("dbupwxvhqbsgodnu")
    public suspend fun signVersion(argument: suspend ProviderSignVersionArgsBuilder.() -> Unit) {
        val toBeMapped = ProviderSignVersionArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.signVersion = mapped
    }

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

    /**
     * @param value The source ip for the assume role invoking.
     */
    @JvmName("nqrmtvpmkempbxvy")
    public suspend fun sourceIp(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.sourceIp = mapped
    }

    internal fun build(): ProviderArgs = ProviderArgs(
        accessKey = accessKey,
        accountId = accountId,
        assumeRole = assumeRole,
        assumeRoleWithOidc = assumeRoleWithOidc,
        clientConnectTimeout = clientConnectTimeout,
        clientReadTimeout = clientReadTimeout,
        configurationSource = configurationSource,
        credentialsUri = credentialsUri,
        ecsRoleName = ecsRoleName,
        endpoints = endpoints,
        fc = fc,
        logEndpoint = logEndpoint,
        maxRetryTimeout = maxRetryTimeout,
        mnsEndpoint = mnsEndpoint,
        otsInstanceName = otsInstanceName,
        profile = profile,
        protocol = protocol,
        region = region,
        secretKey = secretKey,
        secureTransport = secureTransport,
        securityToken = securityToken,
        securityTransport = securityTransport,
        sharedCredentialsFile = sharedCredentialsFile,
        signVersion = signVersion,
        skipRegionValidation = skipRegionValidation,
        sourceIp = sourceIp,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy