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.
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.awsnative.memorydb.kotlin
import com.pulumi.awsnative.kotlin.inputs.TagArgs
import com.pulumi.awsnative.kotlin.inputs.TagArgsBuilder
import com.pulumi.awsnative.memorydb.ClusterArgs.builder
import com.pulumi.awsnative.memorydb.kotlin.enums.ClusterDataTieringStatus
import com.pulumi.awsnative.memorydb.kotlin.inputs.ClusterEndpointArgs
import com.pulumi.awsnative.memorydb.kotlin.inputs.ClusterEndpointArgsBuilder
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 AWS::MemoryDB::Cluster resource creates an Amazon MemoryDB Cluster.
* @property aclName The name of the Access Control List to associate with the cluster.
* @property autoMinorVersionUpgrade A flag that enables automatic minor version upgrade when set to true.
* You cannot modify the value of AutoMinorVersionUpgrade after the cluster is created. To enable AutoMinorVersionUpgrade on a cluster you must set AutoMinorVersionUpgrade to true when you create a cluster.
* @property clusterEndpoint The cluster endpoint.
* @property clusterName The name of the cluster. This value must be unique as it also serves as the cluster identifier.
* @property dataTiering Enables data tiering. Data tiering is only supported for clusters using the r6gd node type. This parameter must be set when using r6gd nodes.
* @property description An optional description of the cluster.
* @property engineVersion The Redis engine version used by the cluster.
* @property finalSnapshotName The user-supplied name of a final cluster snapshot. This is the unique name that identifies the snapshot. MemoryDB creates the snapshot, and then deletes the cluster immediately afterward.
* @property kmsKeyId The ID of the KMS key used to encrypt the cluster.
* @property maintenanceWindow Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period.
* @property nodeType The compute and memory capacity of the nodes in the cluster.
* @property numReplicasPerShard The number of replicas to apply to each shard. The limit is 5.
* @property numShards The number of shards the cluster will contain.
* @property parameterGroupName The name of the parameter group associated with the cluster.
* @property port The port number on which each member of the cluster accepts connections.
* @property securityGroupIds One or more Amazon VPC security groups associated with this cluster.
* @property snapshotArns A list of Amazon Resource Names (ARN) that uniquely identify the RDB snapshot files stored in Amazon S3. The snapshot files are used to populate the new cluster. The Amazon S3 object name in the ARN cannot contain any commas.
* @property snapshotName The name of a snapshot from which to restore data into the new cluster. The snapshot status changes to restoring while the new cluster is being created.
* @property snapshotRetentionLimit The number of days for which MemoryDB retains automatic snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, a snapshot that was taken today is retained for 5 days before being deleted.
* @property snapshotWindow The daily time range (in UTC) during which MemoryDB begins taking a daily snapshot of your cluster.
* @property snsTopicArn The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) topic to which notifications are sent.
* @property snsTopicStatus The status of the Amazon SNS notification topic. Notifications are sent only if the status is enabled.
* @property subnetGroupName The name of the subnet group to be used for the cluster.
* @property tags An array of key-value pairs to apply to this cluster.
* @property tlsEnabled A flag that enables in-transit encryption when set to true.
* You cannot modify the value of TransitEncryptionEnabled after the cluster is created. To enable in-transit encryption on a cluster you must set TransitEncryptionEnabled to true when you create a cluster.
*/
public data class ClusterArgs(
public val aclName: Output? = null,
public val autoMinorVersionUpgrade: Output? = null,
public val clusterEndpoint: Output? = null,
public val clusterName: Output? = null,
public val dataTiering: Output? = null,
public val description: Output? = null,
public val engineVersion: Output? = null,
public val finalSnapshotName: Output? = null,
public val kmsKeyId: Output? = null,
public val maintenanceWindow: Output? = null,
public val nodeType: Output? = null,
public val numReplicasPerShard: Output? = null,
public val numShards: Output? = null,
public val parameterGroupName: Output? = null,
public val port: Output? = null,
public val securityGroupIds: Output>? = null,
public val snapshotArns: Output>? = null,
public val snapshotName: Output? = null,
public val snapshotRetentionLimit: Output? = null,
public val snapshotWindow: Output? = null,
public val snsTopicArn: Output? = null,
public val snsTopicStatus: Output? = null,
public val subnetGroupName: Output? = null,
public val tags: Output>? = null,
public val tlsEnabled: Output? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.awsnative.memorydb.ClusterArgs =
com.pulumi.awsnative.memorydb.ClusterArgs.builder()
.aclName(aclName?.applyValue({ args0 -> args0 }))
.autoMinorVersionUpgrade(autoMinorVersionUpgrade?.applyValue({ args0 -> args0 }))
.clusterEndpoint(clusterEndpoint?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.clusterName(clusterName?.applyValue({ args0 -> args0 }))
.dataTiering(dataTiering?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.description(description?.applyValue({ args0 -> args0 }))
.engineVersion(engineVersion?.applyValue({ args0 -> args0 }))
.finalSnapshotName(finalSnapshotName?.applyValue({ args0 -> args0 }))
.kmsKeyId(kmsKeyId?.applyValue({ args0 -> args0 }))
.maintenanceWindow(maintenanceWindow?.applyValue({ args0 -> args0 }))
.nodeType(nodeType?.applyValue({ args0 -> args0 }))
.numReplicasPerShard(numReplicasPerShard?.applyValue({ args0 -> args0 }))
.numShards(numShards?.applyValue({ args0 -> args0 }))
.parameterGroupName(parameterGroupName?.applyValue({ args0 -> args0 }))
.port(port?.applyValue({ args0 -> args0 }))
.securityGroupIds(securityGroupIds?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
.snapshotArns(snapshotArns?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
.snapshotName(snapshotName?.applyValue({ args0 -> args0 }))
.snapshotRetentionLimit(snapshotRetentionLimit?.applyValue({ args0 -> args0 }))
.snapshotWindow(snapshotWindow?.applyValue({ args0 -> args0 }))
.snsTopicArn(snsTopicArn?.applyValue({ args0 -> args0 }))
.snsTopicStatus(snsTopicStatus?.applyValue({ args0 -> args0 }))
.subnetGroupName(subnetGroupName?.applyValue({ args0 -> args0 }))
.tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }))
.tlsEnabled(tlsEnabled?.applyValue({ args0 -> args0 })).build()
}
/**
* Builder for [ClusterArgs].
*/
@PulumiTagMarker
public class ClusterArgsBuilder internal constructor() {
private var aclName: Output? = null
private var autoMinorVersionUpgrade: Output? = null
private var clusterEndpoint: Output? = null
private var clusterName: Output? = null
private var dataTiering: Output? = null
private var description: Output? = null
private var engineVersion: Output? = null
private var finalSnapshotName: Output? = null
private var kmsKeyId: Output? = null
private var maintenanceWindow: Output? = null
private var nodeType: Output? = null
private var numReplicasPerShard: Output? = null
private var numShards: Output? = null
private var parameterGroupName: Output? = null
private var port: Output? = null
private var securityGroupIds: Output>? = null
private var snapshotArns: Output>? = null
private var snapshotName: Output? = null
private var snapshotRetentionLimit: Output? = null
private var snapshotWindow: Output? = null
private var snsTopicArn: Output? = null
private var snsTopicStatus: Output? = null
private var subnetGroupName: Output? = null
private var tags: Output>? = null
private var tlsEnabled: Output? = null
/**
* @param value The name of the Access Control List to associate with the cluster.
*/
@JvmName("xwxqupywdhaypisg")
public suspend fun aclName(`value`: Output) {
this.aclName = value
}
/**
* @param value A flag that enables automatic minor version upgrade when set to true.
* You cannot modify the value of AutoMinorVersionUpgrade after the cluster is created. To enable AutoMinorVersionUpgrade on a cluster you must set AutoMinorVersionUpgrade to true when you create a cluster.
*/
@JvmName("gbbrceairrianuco")
public suspend fun autoMinorVersionUpgrade(`value`: Output) {
this.autoMinorVersionUpgrade = value
}
/**
* @param value The cluster endpoint.
*/
@JvmName("cixfyqiiyjfryqev")
public suspend fun clusterEndpoint(`value`: Output) {
this.clusterEndpoint = value
}
/**
* @param value The name of the cluster. This value must be unique as it also serves as the cluster identifier.
*/
@JvmName("hblmwwcgrbpwjarx")
public suspend fun clusterName(`value`: Output) {
this.clusterName = value
}
/**
* @param value Enables data tiering. Data tiering is only supported for clusters using the r6gd node type. This parameter must be set when using r6gd nodes.
*/
@JvmName("wmwrxmsbcatpixpo")
public suspend fun dataTiering(`value`: Output) {
this.dataTiering = value
}
/**
* @param value An optional description of the cluster.
*/
@JvmName("owqekugxcmdebdym")
public suspend fun description(`value`: Output) {
this.description = value
}
/**
* @param value The Redis engine version used by the cluster.
*/
@JvmName("wuqbbbocomhlrvnt")
public suspend fun engineVersion(`value`: Output) {
this.engineVersion = value
}
/**
* @param value The user-supplied name of a final cluster snapshot. This is the unique name that identifies the snapshot. MemoryDB creates the snapshot, and then deletes the cluster immediately afterward.
*/
@JvmName("nmhdpylteukxwkue")
public suspend fun finalSnapshotName(`value`: Output) {
this.finalSnapshotName = value
}
/**
* @param value The ID of the KMS key used to encrypt the cluster.
*/
@JvmName("puorlkfadhbdnuau")
public suspend fun kmsKeyId(`value`: Output) {
this.kmsKeyId = value
}
/**
* @param value Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period.
*/
@JvmName("ofvtfhkvuwqcihkn")
public suspend fun maintenanceWindow(`value`: Output) {
this.maintenanceWindow = value
}
/**
* @param value The compute and memory capacity of the nodes in the cluster.
*/
@JvmName("fiagnqtweoicqkcu")
public suspend fun nodeType(`value`: Output) {
this.nodeType = value
}
/**
* @param value The number of replicas to apply to each shard. The limit is 5.
*/
@JvmName("tlgeleecyujcdskg")
public suspend fun numReplicasPerShard(`value`: Output) {
this.numReplicasPerShard = value
}
/**
* @param value The number of shards the cluster will contain.
*/
@JvmName("nisqruppgqkhqqbr")
public suspend fun numShards(`value`: Output) {
this.numShards = value
}
/**
* @param value The name of the parameter group associated with the cluster.
*/
@JvmName("dpoikcfdnbcheiri")
public suspend fun parameterGroupName(`value`: Output) {
this.parameterGroupName = value
}
/**
* @param value The port number on which each member of the cluster accepts connections.
*/
@JvmName("mjhqxqmwfqwyvvub")
public suspend fun port(`value`: Output) {
this.port = value
}
/**
* @param value One or more Amazon VPC security groups associated with this cluster.
*/
@JvmName("xrecwgyyebmasghp")
public suspend fun securityGroupIds(`value`: Output>) {
this.securityGroupIds = value
}
@JvmName("lhlcewqmekbacbcf")
public suspend fun securityGroupIds(vararg values: Output) {
this.securityGroupIds = Output.all(values.asList())
}
/**
* @param values One or more Amazon VPC security groups associated with this cluster.
*/
@JvmName("yyltjwrjokggbuxl")
public suspend fun securityGroupIds(values: List