com.pulumi.gcp.redis.kotlin.inputs.ClusterCrossClusterReplicationConfigArgs.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of pulumi-gcp-kotlin Show documentation
Show all versions of pulumi-gcp-kotlin Show documentation
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.gcp.redis.kotlin.inputs
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.gcp.redis.inputs.ClusterCrossClusterReplicationConfigArgs.builder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName
/**
*
* @property clusterRole The role of the cluster in cross cluster replication. Supported values are:
* 1. `CLUSTER_ROLE_UNSPECIFIED`: This is an independent cluster that has never participated in cross cluster replication. It allows both reads and writes.
* 1. `NONE`: This is an independent cluster that previously participated in cross cluster replication(either as a `PRIMARY` or `SECONDARY` cluster). It allows both reads and writes.
* 1. `PRIMARY`: This cluster serves as the replication source for secondary clusters that are replicating from it. Any data written to it is automatically replicated to its secondary clusters. It allows both reads and writes.
* 1. `SECONDARY`: This cluster replicates data from the primary cluster. It allows only reads.
* Possible values are: `CLUSTER_ROLE_UNSPECIFIED`, `NONE`, `PRIMARY`, `SECONDARY`.
* @property memberships (Output)
* An output only view of all the member clusters participating in cross cluster replication. This field is populated for all the member clusters irrespective of their cluster role.
* Structure is documented below.
* @property primaryCluster Details of the primary cluster that is used as the replication source for this secondary cluster. This is allowed to be set only for clusters whose cluster role is of type `SECONDARY`.
* Structure is documented below.
* @property secondaryClusters List of secondary clusters that are replicating from this primary cluster. This is allowed to be set only for clusters whose cluster role is of type `PRIMARY`.
* Structure is documented below.
* @property updateTime (Output)
* The last time cross cluster replication config was updated.
*/
public data class ClusterCrossClusterReplicationConfigArgs(
public val clusterRole: Output? = null,
public val memberships: Output>? = null,
public val primaryCluster: Output? = null,
public val secondaryClusters: Output>? = null,
public val updateTime: Output? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.gcp.redis.inputs.ClusterCrossClusterReplicationConfigArgs =
com.pulumi.gcp.redis.inputs.ClusterCrossClusterReplicationConfigArgs.builder()
.clusterRole(clusterRole?.applyValue({ args0 -> args0 }))
.memberships(
memberships?.applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
})
}),
)
.primaryCluster(primaryCluster?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.secondaryClusters(
secondaryClusters?.applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
})
}),
)
.updateTime(updateTime?.applyValue({ args0 -> args0 })).build()
}
/**
* Builder for [ClusterCrossClusterReplicationConfigArgs].
*/
@PulumiTagMarker
public class ClusterCrossClusterReplicationConfigArgsBuilder internal constructor() {
private var clusterRole: Output? = null
private var memberships: Output>? = null
private var primaryCluster: Output? = null
private var secondaryClusters:
Output>? = null
private var updateTime: Output? = null
/**
* @param value The role of the cluster in cross cluster replication. Supported values are:
* 1. `CLUSTER_ROLE_UNSPECIFIED`: This is an independent cluster that has never participated in cross cluster replication. It allows both reads and writes.
* 1. `NONE`: This is an independent cluster that previously participated in cross cluster replication(either as a `PRIMARY` or `SECONDARY` cluster). It allows both reads and writes.
* 1. `PRIMARY`: This cluster serves as the replication source for secondary clusters that are replicating from it. Any data written to it is automatically replicated to its secondary clusters. It allows both reads and writes.
* 1. `SECONDARY`: This cluster replicates data from the primary cluster. It allows only reads.
* Possible values are: `CLUSTER_ROLE_UNSPECIFIED`, `NONE`, `PRIMARY`, `SECONDARY`.
*/
@JvmName("lqxdwnfvvjuvxugg")
public suspend fun clusterRole(`value`: Output) {
this.clusterRole = value
}
/**
* @param value (Output)
* An output only view of all the member clusters participating in cross cluster replication. This field is populated for all the member clusters irrespective of their cluster role.
* Structure is documented below.
*/
@JvmName("qnhstnbokfbbofrd")
public suspend fun memberships(`value`: Output>) {
this.memberships = value
}
@JvmName("onfgryebhenidkke")
public suspend fun memberships(vararg values: Output) {
this.memberships = Output.all(values.asList())
}
/**
* @param values (Output)
* An output only view of all the member clusters participating in cross cluster replication. This field is populated for all the member clusters irrespective of their cluster role.
* Structure is documented below.
*/
@JvmName("acyofaypbfiamrey")
public suspend fun memberships(values: List
© 2015 - 2025 Weber Informatics LLC | Privacy Policy