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

com.pulumi.awsnative.dynamodb.kotlin.outputs.GlobalTableReplicaSpecification.kt Maven / Gradle / Ivy

@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.awsnative.dynamodb.kotlin.outputs

import kotlin.Boolean
import kotlin.String
import kotlin.Suppress
import kotlin.collections.List

/**
 *
 * @property contributorInsightsSpecification The settings used to enable or disable CloudWatch Contributor Insights for the specified replica. When not specified, defaults to contributor insights disabled for the replica.
 * @property deletionProtectionEnabled Determines if a replica is protected from deletion. When enabled, the table cannot be deleted by any user or process. This setting is disabled by default. For more information, see [Using deletion protection](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.Basics.html#WorkingWithTables.Basics.DeletionProtection) in the *Amazon DynamoDB Developer Guide* .
 * @property globalSecondaryIndexes Defines additional settings for the global secondary indexes of this replica.
 * @property kinesisStreamSpecification Defines the Kinesis Data Streams configuration for the specified replica.
 * @property pointInTimeRecoverySpecification The settings used to enable point in time recovery. When not specified, defaults to point in time recovery disabled for the replica.
 * @property readOnDemandThroughputSettings Sets read request settings for the replica table.
 * @property readProvisionedThroughputSettings Defines read capacity settings for the replica table.
 * @property region The region in which this replica exists.
 * @property replicaStreamSpecification Represents the DynamoDB Streams configuration for a global table replica.
 * @property resourcePolicy A resource-based policy document that contains permissions to add to the specified replica of a DynamoDB global table. Resource-based policies let you define access permissions by specifying who has access to each resource, and the actions they are allowed to perform on each resource.
 * In a CloudFormation template, you can provide the policy in JSON or YAML format because CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information about resource-based policies, see [Using resource-based policies for DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) .
 * @property sseSpecification Allows you to specify a customer-managed key for the replica. When using customer-managed keys for server-side encryption, this property must have a value in all replicas.
 * @property tableClass The table class of the specified table. Valid values are `STANDARD` and `STANDARD_INFREQUENT_ACCESS` .
 * @property tags An array of key-value pairs to apply to this replica.
 * For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) .
 */
public data class GlobalTableReplicaSpecification(
    public val contributorInsightsSpecification: GlobalTableContributorInsightsSpecification? = null,
    public val deletionProtectionEnabled: Boolean? = null,
    public val globalSecondaryIndexes: List? =
        null,
    public val kinesisStreamSpecification: GlobalTableKinesisStreamSpecification? = null,
    public val pointInTimeRecoverySpecification: GlobalTablePointInTimeRecoverySpecification? = null,
    public val readOnDemandThroughputSettings: GlobalTableReadOnDemandThroughputSettings? = null,
    public val readProvisionedThroughputSettings: GlobalTableReadProvisionedThroughputSettings? =
        null,
    public val region: String,
    public val replicaStreamSpecification: GlobalTableReplicaStreamSpecification? = null,
    public val resourcePolicy: GlobalTableResourcePolicy? = null,
    public val sseSpecification: GlobalTableReplicaSseSpecification? = null,
    public val tableClass: String? = null,
    public val tags: List? = null,
) {
    public companion object {
        public fun toKotlin(javaType: com.pulumi.awsnative.dynamodb.outputs.GlobalTableReplicaSpecification): GlobalTableReplicaSpecification = GlobalTableReplicaSpecification(
            contributorInsightsSpecification = javaType.contributorInsightsSpecification().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.awsnative.dynamodb.kotlin.outputs.GlobalTableContributorInsightsSpecification.Companion.toKotlin(args0)
                })
            }).orElse(null),
            deletionProtectionEnabled = javaType.deletionProtectionEnabled().map({ args0 ->
                args0
            }).orElse(null),
            globalSecondaryIndexes = javaType.globalSecondaryIndexes().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.awsnative.dynamodb.kotlin.outputs.GlobalTableReplicaGlobalSecondaryIndexSpecification.Companion.toKotlin(args0)
                })
            }),
            kinesisStreamSpecification = javaType.kinesisStreamSpecification().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.awsnative.dynamodb.kotlin.outputs.GlobalTableKinesisStreamSpecification.Companion.toKotlin(args0)
                })
            }).orElse(null),
            pointInTimeRecoverySpecification = javaType.pointInTimeRecoverySpecification().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.awsnative.dynamodb.kotlin.outputs.GlobalTablePointInTimeRecoverySpecification.Companion.toKotlin(args0)
                })
            }).orElse(null),
            readOnDemandThroughputSettings = javaType.readOnDemandThroughputSettings().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.awsnative.dynamodb.kotlin.outputs.GlobalTableReadOnDemandThroughputSettings.Companion.toKotlin(args0)
                })
            }).orElse(null),
            readProvisionedThroughputSettings = javaType.readProvisionedThroughputSettings().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.awsnative.dynamodb.kotlin.outputs.GlobalTableReadProvisionedThroughputSettings.Companion.toKotlin(args0)
                })
            }).orElse(null),
            region = javaType.region(),
            replicaStreamSpecification = javaType.replicaStreamSpecification().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.awsnative.dynamodb.kotlin.outputs.GlobalTableReplicaStreamSpecification.Companion.toKotlin(args0)
                })
            }).orElse(null),
            resourcePolicy = javaType.resourcePolicy().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.awsnative.dynamodb.kotlin.outputs.GlobalTableResourcePolicy.Companion.toKotlin(args0)
                })
            }).orElse(null),
            sseSpecification = javaType.sseSpecification().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.awsnative.dynamodb.kotlin.outputs.GlobalTableReplicaSseSpecification.Companion.toKotlin(args0)
                })
            }).orElse(null),
            tableClass = javaType.tableClass().map({ args0 -> args0 }).orElse(null),
            tags = javaType.tags().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.awsnative.dynamodb.kotlin.outputs.GlobalTableTag.Companion.toKotlin(args0)
                })
            }),
        )
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy