Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.
@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