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

com.pulumi.awsnative.redshiftserverless.kotlin.NamespaceArgs.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.24.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.awsnative.redshiftserverless.kotlin

import com.pulumi.awsnative.kotlin.inputs.CreateOnlyTagArgs
import com.pulumi.awsnative.kotlin.inputs.CreateOnlyTagArgsBuilder
import com.pulumi.awsnative.redshiftserverless.NamespaceArgs.builder
import com.pulumi.awsnative.redshiftserverless.kotlin.enums.NamespaceLogExport
import com.pulumi.awsnative.redshiftserverless.kotlin.inputs.NamespaceSnapshotCopyConfigurationArgs
import com.pulumi.awsnative.redshiftserverless.kotlin.inputs.NamespaceSnapshotCopyConfigurationArgsBuilder
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.Any
import kotlin.Boolean
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * Definition of AWS::RedshiftServerless::Namespace Resource Type
 * @property adminPasswordSecretKmsKeyId The ID of the AWS Key Management Service (KMS) key used to encrypt and store the namespace's admin credentials secret. You can only use this parameter if manageAdminPassword is true.
 * @property adminUserPassword The password associated with the admin user for the namespace that is being created. Password must be at least 8 characters in length, should be any printable ASCII character. Must contain at least one lowercase letter, one uppercase letter and one decimal digit. You can't use adminUserPassword if manageAdminPassword is true.
 * @property adminUsername The user name associated with the admin user for the namespace that is being created. Only alphanumeric characters and underscores are allowed. It should start with an alphabet.
 * @property dbName The database name associated for the namespace that is being created. Only alphanumeric characters and underscores are allowed. It should start with an alphabet.
 * @property defaultIamRoleArn The default IAM role ARN for the namespace that is being created.
 * @property finalSnapshotName The name of the namespace the source snapshot was created from. Please specify the name if needed before deleting namespace
 * @property finalSnapshotRetentionPeriod The number of days to retain automated snapshot in the destination region after they are copied from the source region. If the value is -1, the manual snapshot is retained indefinitely. The value must be either -1 or an integer between 1 and 3,653.
 * @property iamRoles A list of AWS Identity and Access Management (IAM) roles that can be used by the namespace to access other AWS services. You must supply the IAM roles in their Amazon Resource Name (ARN) format. The Default role limit for each request is 10.
 * @property kmsKeyId The AWS Key Management Service (KMS) key ID of the encryption key that you want to use to encrypt data in the namespace.
 * @property logExports The collection of log types to be exported provided by the customer. Should only be one of the three supported log types: userlog, useractivitylog and connectionlog
 * @property manageAdminPassword If true, Amazon Redshift uses AWS Secrets Manager to manage the namespace's admin credentials. You can't use adminUserPassword if manageAdminPassword is true. If manageAdminPassword is false or not set, Amazon Redshift uses adminUserPassword for the admin user account's password.
 * @property namespaceName A unique identifier for the namespace. You use this identifier to refer to the namespace for any subsequent namespace operations such as deleting or modifying. All alphabetical characters must be lower case. Namespace name should be unique for all namespaces within an AWS account.
 * @property namespaceResourcePolicy The resource policy document that will be attached to the namespace.
 * Search the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::RedshiftServerless::Namespace` for more information about the expected schema for this property.
 * @property redshiftIdcApplicationArn The ARN for the Redshift application that integrates with IAM Identity Center.
 * @property snapshotCopyConfigurations The snapshot copy configurations for the namespace.
 * @property tags The list of tags for the namespace.
 */
public data class NamespaceArgs(
    public val adminPasswordSecretKmsKeyId: Output? = null,
    public val adminUserPassword: Output? = null,
    public val adminUsername: Output? = null,
    public val dbName: Output? = null,
    public val defaultIamRoleArn: Output? = null,
    public val finalSnapshotName: Output? = null,
    public val finalSnapshotRetentionPeriod: Output? = null,
    public val iamRoles: Output>? = null,
    public val kmsKeyId: Output? = null,
    public val logExports: Output>? = null,
    public val manageAdminPassword: Output? = null,
    public val namespaceName: Output? = null,
    public val namespaceResourcePolicy: Output? = null,
    public val redshiftIdcApplicationArn: Output? = null,
    public val snapshotCopyConfigurations: Output>? =
        null,
    public val tags: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.redshiftserverless.NamespaceArgs =
        com.pulumi.awsnative.redshiftserverless.NamespaceArgs.builder()
            .adminPasswordSecretKmsKeyId(adminPasswordSecretKmsKeyId?.applyValue({ args0 -> args0 }))
            .adminUserPassword(adminUserPassword?.applyValue({ args0 -> args0 }))
            .adminUsername(adminUsername?.applyValue({ args0 -> args0 }))
            .dbName(dbName?.applyValue({ args0 -> args0 }))
            .defaultIamRoleArn(defaultIamRoleArn?.applyValue({ args0 -> args0 }))
            .finalSnapshotName(finalSnapshotName?.applyValue({ args0 -> args0 }))
            .finalSnapshotRetentionPeriod(finalSnapshotRetentionPeriod?.applyValue({ args0 -> args0 }))
            .iamRoles(iamRoles?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .kmsKeyId(kmsKeyId?.applyValue({ args0 -> args0 }))
            .logExports(
                logExports?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .manageAdminPassword(manageAdminPassword?.applyValue({ args0 -> args0 }))
            .namespaceName(namespaceName?.applyValue({ args0 -> args0 }))
            .namespaceResourcePolicy(namespaceResourcePolicy?.applyValue({ args0 -> args0 }))
            .redshiftIdcApplicationArn(redshiftIdcApplicationArn?.applyValue({ args0 -> args0 }))
            .snapshotCopyConfigurations(
                snapshotCopyConfigurations?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .tags(
                tags?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            ).build()
}

/**
 * Builder for [NamespaceArgs].
 */
@PulumiTagMarker
public class NamespaceArgsBuilder internal constructor() {
    private var adminPasswordSecretKmsKeyId: Output? = null

    private var adminUserPassword: Output? = null

    private var adminUsername: Output? = null

    private var dbName: Output? = null

    private var defaultIamRoleArn: Output? = null

    private var finalSnapshotName: Output? = null

    private var finalSnapshotRetentionPeriod: Output? = null

    private var iamRoles: Output>? = null

    private var kmsKeyId: Output? = null

    private var logExports: Output>? = null

    private var manageAdminPassword: Output? = null

    private var namespaceName: Output? = null

    private var namespaceResourcePolicy: Output? = null

    private var redshiftIdcApplicationArn: Output? = null

    private var snapshotCopyConfigurations: Output>? =
        null

    private var tags: Output>? = null

    /**
     * @param value The ID of the AWS Key Management Service (KMS) key used to encrypt and store the namespace's admin credentials secret. You can only use this parameter if manageAdminPassword is true.
     */
    @JvmName("kxrcdrheecsleltl")
    public suspend fun adminPasswordSecretKmsKeyId(`value`: Output) {
        this.adminPasswordSecretKmsKeyId = value
    }

    /**
     * @param value The password associated with the admin user for the namespace that is being created. Password must be at least 8 characters in length, should be any printable ASCII character. Must contain at least one lowercase letter, one uppercase letter and one decimal digit. You can't use adminUserPassword if manageAdminPassword is true.
     */
    @JvmName("wtploxgigsvuxefo")
    public suspend fun adminUserPassword(`value`: Output) {
        this.adminUserPassword = value
    }

    /**
     * @param value The user name associated with the admin user for the namespace that is being created. Only alphanumeric characters and underscores are allowed. It should start with an alphabet.
     */
    @JvmName("ebixluskqiarepni")
    public suspend fun adminUsername(`value`: Output) {
        this.adminUsername = value
    }

    /**
     * @param value The database name associated for the namespace that is being created. Only alphanumeric characters and underscores are allowed. It should start with an alphabet.
     */
    @JvmName("ecnyotucvcpwsnkw")
    public suspend fun dbName(`value`: Output) {
        this.dbName = value
    }

    /**
     * @param value The default IAM role ARN for the namespace that is being created.
     */
    @JvmName("lbsvyuojmbnwhxcc")
    public suspend fun defaultIamRoleArn(`value`: Output) {
        this.defaultIamRoleArn = value
    }

    /**
     * @param value The name of the namespace the source snapshot was created from. Please specify the name if needed before deleting namespace
     */
    @JvmName("wfylerqdnayntdjr")
    public suspend fun finalSnapshotName(`value`: Output) {
        this.finalSnapshotName = value
    }

    /**
     * @param value The number of days to retain automated snapshot in the destination region after they are copied from the source region. If the value is -1, the manual snapshot is retained indefinitely. The value must be either -1 or an integer between 1 and 3,653.
     */
    @JvmName("mmtcfiaiwupyxamj")
    public suspend fun finalSnapshotRetentionPeriod(`value`: Output) {
        this.finalSnapshotRetentionPeriod = value
    }

    /**
     * @param value A list of AWS Identity and Access Management (IAM) roles that can be used by the namespace to access other AWS services. You must supply the IAM roles in their Amazon Resource Name (ARN) format. The Default role limit for each request is 10.
     */
    @JvmName("keuxmgmwqpkeiwgu")
    public suspend fun iamRoles(`value`: Output>) {
        this.iamRoles = value
    }

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

    /**
     * @param values A list of AWS Identity and Access Management (IAM) roles that can be used by the namespace to access other AWS services. You must supply the IAM roles in their Amazon Resource Name (ARN) format. The Default role limit for each request is 10.
     */
    @JvmName("tpgcgsvgxltlftbd")
    public suspend fun iamRoles(values: List>) {
        this.iamRoles = Output.all(values)
    }

    /**
     * @param value The AWS Key Management Service (KMS) key ID of the encryption key that you want to use to encrypt data in the namespace.
     */
    @JvmName("wtlgcsclkyuhtgwh")
    public suspend fun kmsKeyId(`value`: Output) {
        this.kmsKeyId = value
    }

    /**
     * @param value The collection of log types to be exported provided by the customer. Should only be one of the three supported log types: userlog, useractivitylog and connectionlog
     */
    @JvmName("cddwufubvjkfreoe")
    public suspend fun logExports(`value`: Output>) {
        this.logExports = value
    }

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

    /**
     * @param values The collection of log types to be exported provided by the customer. Should only be one of the three supported log types: userlog, useractivitylog and connectionlog
     */
    @JvmName("jyphjeqkijubxfuq")
    public suspend fun logExports(values: List>) {
        this.logExports = Output.all(values)
    }

    /**
     * @param value If true, Amazon Redshift uses AWS Secrets Manager to manage the namespace's admin credentials. You can't use adminUserPassword if manageAdminPassword is true. If manageAdminPassword is false or not set, Amazon Redshift uses adminUserPassword for the admin user account's password.
     */
    @JvmName("cijsqyvmparckhvf")
    public suspend fun manageAdminPassword(`value`: Output) {
        this.manageAdminPassword = value
    }

    /**
     * @param value A unique identifier for the namespace. You use this identifier to refer to the namespace for any subsequent namespace operations such as deleting or modifying. All alphabetical characters must be lower case. Namespace name should be unique for all namespaces within an AWS account.
     */
    @JvmName("ohkdtuwqdrojxuts")
    public suspend fun namespaceName(`value`: Output) {
        this.namespaceName = value
    }

    /**
     * @param value The resource policy document that will be attached to the namespace.
     * Search the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::RedshiftServerless::Namespace` for more information about the expected schema for this property.
     */
    @JvmName("ukxqdelcusthhijw")
    public suspend fun namespaceResourcePolicy(`value`: Output) {
        this.namespaceResourcePolicy = value
    }

    /**
     * @param value The ARN for the Redshift application that integrates with IAM Identity Center.
     */
    @JvmName("cfujtrbfcdhmhwqm")
    public suspend fun redshiftIdcApplicationArn(`value`: Output) {
        this.redshiftIdcApplicationArn = value
    }

    /**
     * @param value The snapshot copy configurations for the namespace.
     */
    @JvmName("esksckooucqwikwn")
    public suspend fun snapshotCopyConfigurations(`value`: Output>) {
        this.snapshotCopyConfigurations = value
    }

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

    /**
     * @param values The snapshot copy configurations for the namespace.
     */
    @JvmName("wnvueqnbudekgyfq")
    public suspend fun snapshotCopyConfigurations(values: List>) {
        this.snapshotCopyConfigurations = Output.all(values)
    }

    /**
     * @param value The list of tags for the namespace.
     */
    @JvmName("qbwucaiyljbtqtsf")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

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

    /**
     * @param values The list of tags for the namespace.
     */
    @JvmName("ydyikkorectspofu")
    public suspend fun tags(values: List>) {
        this.tags = Output.all(values)
    }

    /**
     * @param value The ID of the AWS Key Management Service (KMS) key used to encrypt and store the namespace's admin credentials secret. You can only use this parameter if manageAdminPassword is true.
     */
    @JvmName("kidwiwyvsdllapwm")
    public suspend fun adminPasswordSecretKmsKeyId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.adminPasswordSecretKmsKeyId = mapped
    }

    /**
     * @param value The password associated with the admin user for the namespace that is being created. Password must be at least 8 characters in length, should be any printable ASCII character. Must contain at least one lowercase letter, one uppercase letter and one decimal digit. You can't use adminUserPassword if manageAdminPassword is true.
     */
    @JvmName("qjkrqcgensbkepee")
    public suspend fun adminUserPassword(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.adminUserPassword = mapped
    }

    /**
     * @param value The user name associated with the admin user for the namespace that is being created. Only alphanumeric characters and underscores are allowed. It should start with an alphabet.
     */
    @JvmName("vmecxginijownoqk")
    public suspend fun adminUsername(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.adminUsername = mapped
    }

    /**
     * @param value The database name associated for the namespace that is being created. Only alphanumeric characters and underscores are allowed. It should start with an alphabet.
     */
    @JvmName("srosbkdqaokwbfyq")
    public suspend fun dbName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dbName = mapped
    }

    /**
     * @param value The default IAM role ARN for the namespace that is being created.
     */
    @JvmName("nayohangqlcaoxwf")
    public suspend fun defaultIamRoleArn(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.defaultIamRoleArn = mapped
    }

    /**
     * @param value The name of the namespace the source snapshot was created from. Please specify the name if needed before deleting namespace
     */
    @JvmName("efmjnqhqbceybsqs")
    public suspend fun finalSnapshotName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.finalSnapshotName = mapped
    }

    /**
     * @param value The number of days to retain automated snapshot in the destination region after they are copied from the source region. If the value is -1, the manual snapshot is retained indefinitely. The value must be either -1 or an integer between 1 and 3,653.
     */
    @JvmName("wqacfqaflevpvsuf")
    public suspend fun finalSnapshotRetentionPeriod(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.finalSnapshotRetentionPeriod = mapped
    }

    /**
     * @param value A list of AWS Identity and Access Management (IAM) roles that can be used by the namespace to access other AWS services. You must supply the IAM roles in their Amazon Resource Name (ARN) format. The Default role limit for each request is 10.
     */
    @JvmName("lsjariqglgvmtqmx")
    public suspend fun iamRoles(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.iamRoles = mapped
    }

    /**
     * @param values A list of AWS Identity and Access Management (IAM) roles that can be used by the namespace to access other AWS services. You must supply the IAM roles in their Amazon Resource Name (ARN) format. The Default role limit for each request is 10.
     */
    @JvmName("mnmmriguwwtplvxb")
    public suspend fun iamRoles(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.iamRoles = mapped
    }

    /**
     * @param value The AWS Key Management Service (KMS) key ID of the encryption key that you want to use to encrypt data in the namespace.
     */
    @JvmName("asqixpljgpunjyon")
    public suspend fun kmsKeyId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.kmsKeyId = mapped
    }

    /**
     * @param value The collection of log types to be exported provided by the customer. Should only be one of the three supported log types: userlog, useractivitylog and connectionlog
     */
    @JvmName("xmeqlgrkufeewarr")
    public suspend fun logExports(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.logExports = mapped
    }

    /**
     * @param values The collection of log types to be exported provided by the customer. Should only be one of the three supported log types: userlog, useractivitylog and connectionlog
     */
    @JvmName("bchekpyyhpwhqmre")
    public suspend fun logExports(vararg values: NamespaceLogExport) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.logExports = mapped
    }

    /**
     * @param value If true, Amazon Redshift uses AWS Secrets Manager to manage the namespace's admin credentials. You can't use adminUserPassword if manageAdminPassword is true. If manageAdminPassword is false or not set, Amazon Redshift uses adminUserPassword for the admin user account's password.
     */
    @JvmName("iwlkxuavawpguufd")
    public suspend fun manageAdminPassword(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.manageAdminPassword = mapped
    }

    /**
     * @param value A unique identifier for the namespace. You use this identifier to refer to the namespace for any subsequent namespace operations such as deleting or modifying. All alphabetical characters must be lower case. Namespace name should be unique for all namespaces within an AWS account.
     */
    @JvmName("vmekhriyybxhjwdl")
    public suspend fun namespaceName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.namespaceName = mapped
    }

    /**
     * @param value The resource policy document that will be attached to the namespace.
     * Search the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::RedshiftServerless::Namespace` for more information about the expected schema for this property.
     */
    @JvmName("gbfjpspjwpdygosg")
    public suspend fun namespaceResourcePolicy(`value`: Any?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.namespaceResourcePolicy = mapped
    }

    /**
     * @param value The ARN for the Redshift application that integrates with IAM Identity Center.
     */
    @JvmName("wcoeavqunljlfynp")
    public suspend fun redshiftIdcApplicationArn(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.redshiftIdcApplicationArn = mapped
    }

    /**
     * @param value The snapshot copy configurations for the namespace.
     */
    @JvmName("gsaskjrqxyapefvn")
    public suspend fun snapshotCopyConfigurations(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.snapshotCopyConfigurations = mapped
    }

    /**
     * @param argument The snapshot copy configurations for the namespace.
     */
    @JvmName("twcxidplfgfordlv")
    public suspend fun snapshotCopyConfigurations(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            NamespaceSnapshotCopyConfigurationArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.snapshotCopyConfigurations = mapped
    }

    /**
     * @param argument The snapshot copy configurations for the namespace.
     */
    @JvmName("scwcwqqcnycpsnlo")
    public suspend fun snapshotCopyConfigurations(vararg argument: suspend NamespaceSnapshotCopyConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            NamespaceSnapshotCopyConfigurationArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.snapshotCopyConfigurations = mapped
    }

    /**
     * @param argument The snapshot copy configurations for the namespace.
     */
    @JvmName("ccnrkcnwkvhgkcxw")
    public suspend fun snapshotCopyConfigurations(argument: suspend NamespaceSnapshotCopyConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            NamespaceSnapshotCopyConfigurationArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.snapshotCopyConfigurations = mapped
    }

    /**
     * @param values The snapshot copy configurations for the namespace.
     */
    @JvmName("cekqpcypxtymbfqv")
    public suspend fun snapshotCopyConfigurations(vararg values: NamespaceSnapshotCopyConfigurationArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.snapshotCopyConfigurations = mapped
    }

    /**
     * @param value The list of tags for the namespace.
     */
    @JvmName("vaowxqssblytggug")
    public suspend fun tags(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param argument The list of tags for the namespace.
     */
    @JvmName("kflrijkipllyqpeb")
    public suspend fun tags(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            CreateOnlyTagArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param argument The list of tags for the namespace.
     */
    @JvmName("waipuikshbeaggmk")
    public suspend fun tags(vararg argument: suspend CreateOnlyTagArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            CreateOnlyTagArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param argument The list of tags for the namespace.
     */
    @JvmName("wkhgbadviqioqimf")
    public suspend fun tags(argument: suspend CreateOnlyTagArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(CreateOnlyTagArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param values The list of tags for the namespace.
     */
    @JvmName("tgpwvfpblvyrwdwu")
    public suspend fun tags(vararg values: CreateOnlyTagArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    internal fun build(): NamespaceArgs = NamespaceArgs(
        adminPasswordSecretKmsKeyId = adminPasswordSecretKmsKeyId,
        adminUserPassword = adminUserPassword,
        adminUsername = adminUsername,
        dbName = dbName,
        defaultIamRoleArn = defaultIamRoleArn,
        finalSnapshotName = finalSnapshotName,
        finalSnapshotRetentionPeriod = finalSnapshotRetentionPeriod,
        iamRoles = iamRoles,
        kmsKeyId = kmsKeyId,
        logExports = logExports,
        manageAdminPassword = manageAdminPassword,
        namespaceName = namespaceName,
        namespaceResourcePolicy = namespaceResourcePolicy,
        redshiftIdcApplicationArn = redshiftIdcApplicationArn,
        snapshotCopyConfigurations = snapshotCopyConfigurations,
        tags = tags,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy