Please wait. This can take some minutes ...
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.
com.pulumi.googlenative.gkeonprem.v1.kotlin.VmwareClusterArgs.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.
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.googlenative.gkeonprem.v1.kotlin
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.googlenative.gkeonprem.v1.VmwareClusterArgs.builder
import com.pulumi.googlenative.gkeonprem.v1.kotlin.inputs.AuthorizationArgs
import com.pulumi.googlenative.gkeonprem.v1.kotlin.inputs.AuthorizationArgsBuilder
import com.pulumi.googlenative.gkeonprem.v1.kotlin.inputs.VmwareAAGConfigArgs
import com.pulumi.googlenative.gkeonprem.v1.kotlin.inputs.VmwareAAGConfigArgsBuilder
import com.pulumi.googlenative.gkeonprem.v1.kotlin.inputs.VmwareAutoRepairConfigArgs
import com.pulumi.googlenative.gkeonprem.v1.kotlin.inputs.VmwareAutoRepairConfigArgsBuilder
import com.pulumi.googlenative.gkeonprem.v1.kotlin.inputs.VmwareControlPlaneNodeConfigArgs
import com.pulumi.googlenative.gkeonprem.v1.kotlin.inputs.VmwareControlPlaneNodeConfigArgsBuilder
import com.pulumi.googlenative.gkeonprem.v1.kotlin.inputs.VmwareDataplaneV2ConfigArgs
import com.pulumi.googlenative.gkeonprem.v1.kotlin.inputs.VmwareDataplaneV2ConfigArgsBuilder
import com.pulumi.googlenative.gkeonprem.v1.kotlin.inputs.VmwareLoadBalancerConfigArgs
import com.pulumi.googlenative.gkeonprem.v1.kotlin.inputs.VmwareLoadBalancerConfigArgsBuilder
import com.pulumi.googlenative.gkeonprem.v1.kotlin.inputs.VmwareNetworkConfigArgs
import com.pulumi.googlenative.gkeonprem.v1.kotlin.inputs.VmwareNetworkConfigArgsBuilder
import com.pulumi.googlenative.gkeonprem.v1.kotlin.inputs.VmwareStorageConfigArgs
import com.pulumi.googlenative.gkeonprem.v1.kotlin.inputs.VmwareStorageConfigArgsBuilder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Boolean
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.Map
import kotlin.jvm.JvmName
/**
* Creates a new VMware cluster in a given project and location.
* @property adminClusterMembership The admin cluster this VMware user cluster belongs to. This is the full resource name of the admin cluster's fleet membership. In the future, references to other resource types might be allowed if admin clusters are modeled as their own resources.
* @property annotations Annotations on the VMware user cluster. This field has the same restrictions as Kubernetes annotations. The total size of all keys and values combined is limited to 256k. Key can have 2 segments: prefix (optional) and name (required), separated by a slash (/). Prefix must be a DNS subdomain. Name must be 63 characters or less, begin and end with alphanumerics, with dashes (-), underscores (_), dots (.), and alphanumerics between.
* @property antiAffinityGroups AAGConfig specifies whether to spread VMware user cluster nodes across at least three physical hosts in the datacenter.
* @property authorization RBAC policy that will be applied and managed by the Anthos On-Prem API.
* @property autoRepairConfig Configuration for auto repairing.
* @property controlPlaneNode VMware user cluster control plane nodes must have either 1 or 3 replicas.
* @property dataplaneV2 VmwareDataplaneV2Config specifies configuration for Dataplane V2.
* @property description A human readable description of this VMware user cluster.
* @property enableControlPlaneV2 Enable control plane V2. Default to false.
* @property etag This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding. Allows clients to perform consistent read-modify-writes through optimistic concurrency control.
* @property loadBalancer Load balancer configuration.
* @property location
* @property name Immutable. The VMware user cluster resource name.
* @property networkConfig The VMware user cluster network configuration.
* @property onPremVersion The Anthos clusters on the VMware version for your user cluster. Defaults to the admin cluster version.
* @property project
* @property storage Storage configuration.
* @property vmTrackingEnabled Enable VM tracking.
* @property vmwareClusterId User provided identifier that is used as part of the resource name; This value must be up to 40 characters and follow RFC-1123 (https://tools.ietf.org/html/rfc1123) format.
*/
public data class VmwareClusterArgs(
public val adminClusterMembership: Output? = null,
public val annotations: Output>? = null,
public val antiAffinityGroups: Output? = null,
public val authorization: Output? = null,
public val autoRepairConfig: Output? = null,
public val controlPlaneNode: Output? = null,
public val dataplaneV2: Output? = null,
public val description: Output? = null,
public val enableControlPlaneV2: Output? = null,
public val etag: Output? = null,
public val loadBalancer: Output? = null,
public val location: Output? = null,
public val name: Output? = null,
public val networkConfig: Output? = null,
public val onPremVersion: Output? = null,
public val project: Output? = null,
public val storage: Output? = null,
public val vmTrackingEnabled: Output? = null,
public val vmwareClusterId: Output? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.googlenative.gkeonprem.v1.VmwareClusterArgs =
com.pulumi.googlenative.gkeonprem.v1.VmwareClusterArgs.builder()
.adminClusterMembership(adminClusterMembership?.applyValue({ args0 -> args0 }))
.annotations(
annotations?.applyValue({ args0 ->
args0.map({ args0 ->
args0.key.to(args0.value)
}).toMap()
}),
)
.antiAffinityGroups(
antiAffinityGroups?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.authorization(authorization?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.autoRepairConfig(autoRepairConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.controlPlaneNode(controlPlaneNode?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.dataplaneV2(dataplaneV2?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.description(description?.applyValue({ args0 -> args0 }))
.enableControlPlaneV2(enableControlPlaneV2?.applyValue({ args0 -> args0 }))
.etag(etag?.applyValue({ args0 -> args0 }))
.loadBalancer(loadBalancer?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.location(location?.applyValue({ args0 -> args0 }))
.name(name?.applyValue({ args0 -> args0 }))
.networkConfig(networkConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.onPremVersion(onPremVersion?.applyValue({ args0 -> args0 }))
.project(project?.applyValue({ args0 -> args0 }))
.storage(storage?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.vmTrackingEnabled(vmTrackingEnabled?.applyValue({ args0 -> args0 }))
.vmwareClusterId(vmwareClusterId?.applyValue({ args0 -> args0 })).build()
}
/**
* Builder for [VmwareClusterArgs].
*/
@PulumiTagMarker
public class VmwareClusterArgsBuilder internal constructor() {
private var adminClusterMembership: Output? = null
private var annotations: Output>? = null
private var antiAffinityGroups: Output? = null
private var authorization: Output? = null
private var autoRepairConfig: Output? = null
private var controlPlaneNode: Output? = null
private var dataplaneV2: Output? = null
private var description: Output? = null
private var enableControlPlaneV2: Output? = null
private var etag: Output? = null
private var loadBalancer: Output? = null
private var location: Output? = null
private var name: Output? = null
private var networkConfig: Output? = null
private var onPremVersion: Output? = null
private var project: Output? = null
private var storage: Output? = null
private var vmTrackingEnabled: Output? = null
private var vmwareClusterId: Output? = null
/**
* @param value The admin cluster this VMware user cluster belongs to. This is the full resource name of the admin cluster's fleet membership. In the future, references to other resource types might be allowed if admin clusters are modeled as their own resources.
*/
@JvmName("maikchpwdesuekbr")
public suspend fun adminClusterMembership(`value`: Output) {
this.adminClusterMembership = value
}
/**
* @param value Annotations on the VMware user cluster. This field has the same restrictions as Kubernetes annotations. The total size of all keys and values combined is limited to 256k. Key can have 2 segments: prefix (optional) and name (required), separated by a slash (/). Prefix must be a DNS subdomain. Name must be 63 characters or less, begin and end with alphanumerics, with dashes (-), underscores (_), dots (.), and alphanumerics between.
*/
@JvmName("nvpflvntnqsugxai")
public suspend fun annotations(`value`: Output>) {
this.annotations = value
}
/**
* @param value AAGConfig specifies whether to spread VMware user cluster nodes across at least three physical hosts in the datacenter.
*/
@JvmName("trauenaldhuwebso")
public suspend fun antiAffinityGroups(`value`: Output) {
this.antiAffinityGroups = value
}
/**
* @param value RBAC policy that will be applied and managed by the Anthos On-Prem API.
*/
@JvmName("cmmmftpbjxeepfvy")
public suspend fun authorization(`value`: Output) {
this.authorization = value
}
/**
* @param value Configuration for auto repairing.
*/
@JvmName("hifuybldcmiiyfed")
public suspend fun autoRepairConfig(`value`: Output) {
this.autoRepairConfig = value
}
/**
* @param value VMware user cluster control plane nodes must have either 1 or 3 replicas.
*/
@JvmName("cxrdvmnaywvgijqd")
public suspend fun controlPlaneNode(`value`: Output) {
this.controlPlaneNode = value
}
/**
* @param value VmwareDataplaneV2Config specifies configuration for Dataplane V2.
*/
@JvmName("pjxrjlmpeplnubwc")
public suspend fun dataplaneV2(`value`: Output) {
this.dataplaneV2 = value
}
/**
* @param value A human readable description of this VMware user cluster.
*/
@JvmName("imtesxgnttsqtufw")
public suspend fun description(`value`: Output) {
this.description = value
}
/**
* @param value Enable control plane V2. Default to false.
*/
@JvmName("xhaqlvmrlmcidhun")
public suspend fun enableControlPlaneV2(`value`: Output) {
this.enableControlPlaneV2 = value
}
/**
* @param value This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding. Allows clients to perform consistent read-modify-writes through optimistic concurrency control.
*/
@JvmName("vbdvpedgruydtlvk")
public suspend fun etag(`value`: Output) {
this.etag = value
}
/**
* @param value Load balancer configuration.
*/
@JvmName("awkcmusholijkwxc")
public suspend fun loadBalancer(`value`: Output) {
this.loadBalancer = value
}
/**
* @param value
*/
@JvmName("rsywnreuqtldxcvb")
public suspend fun location(`value`: Output) {
this.location = value
}
/**
* @param value Immutable. The VMware user cluster resource name.
*/
@JvmName("qbmpmlqovamoimjc")
public suspend fun name(`value`: Output) {
this.name = value
}
/**
* @param value The VMware user cluster network configuration.
*/
@JvmName("fnmkcivekfheendw")
public suspend fun networkConfig(`value`: Output) {
this.networkConfig = value
}
/**
* @param value The Anthos clusters on the VMware version for your user cluster. Defaults to the admin cluster version.
*/
@JvmName("qjxwyhlwlmoaxeuo")
public suspend fun onPremVersion(`value`: Output) {
this.onPremVersion = value
}
/**
* @param value
*/
@JvmName("vqlenntwrvdaqyho")
public suspend fun project(`value`: Output) {
this.project = value
}
/**
* @param value Storage configuration.
*/
@JvmName("hwnsyhthotjcrotw")
public suspend fun storage(`value`: Output) {
this.storage = value
}
/**
* @param value Enable VM tracking.
*/
@JvmName("ljqitfqynovuauma")
public suspend fun vmTrackingEnabled(`value`: Output) {
this.vmTrackingEnabled = value
}
/**
* @param value User provided identifier that is used as part of the resource name; This value must be up to 40 characters and follow RFC-1123 (https://tools.ietf.org/html/rfc1123) format.
*/
@JvmName("tylslfdjschufpor")
public suspend fun vmwareClusterId(`value`: Output) {
this.vmwareClusterId = value
}
/**
* @param value The admin cluster this VMware user cluster belongs to. This is the full resource name of the admin cluster's fleet membership. In the future, references to other resource types might be allowed if admin clusters are modeled as their own resources.
*/
@JvmName("scofqvyrpbyvdllj")
public suspend fun adminClusterMembership(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.adminClusterMembership = mapped
}
/**
* @param value Annotations on the VMware user cluster. This field has the same restrictions as Kubernetes annotations. The total size of all keys and values combined is limited to 256k. Key can have 2 segments: prefix (optional) and name (required), separated by a slash (/). Prefix must be a DNS subdomain. Name must be 63 characters or less, begin and end with alphanumerics, with dashes (-), underscores (_), dots (.), and alphanumerics between.
*/
@JvmName("jjuvcdryqydoyfab")
public suspend fun annotations(`value`: Map?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.annotations = mapped
}
/**
* @param values Annotations on the VMware user cluster. This field has the same restrictions as Kubernetes annotations. The total size of all keys and values combined is limited to 256k. Key can have 2 segments: prefix (optional) and name (required), separated by a slash (/). Prefix must be a DNS subdomain. Name must be 63 characters or less, begin and end with alphanumerics, with dashes (-), underscores (_), dots (.), and alphanumerics between.
*/
@JvmName("caqigsjjrdpgkceu")
public fun annotations(vararg values: Pair) {
val toBeMapped = values.toMap()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.annotations = mapped
}
/**
* @param value AAGConfig specifies whether to spread VMware user cluster nodes across at least three physical hosts in the datacenter.
*/
@JvmName("igprwaoeaupkvxwe")
public suspend fun antiAffinityGroups(`value`: VmwareAAGConfigArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.antiAffinityGroups = mapped
}
/**
* @param argument AAGConfig specifies whether to spread VMware user cluster nodes across at least three physical hosts in the datacenter.
*/
@JvmName("tcnismywhsfrbouq")
public suspend fun antiAffinityGroups(argument: suspend VmwareAAGConfigArgsBuilder.() -> Unit) {
val toBeMapped = VmwareAAGConfigArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.antiAffinityGroups = mapped
}
/**
* @param value RBAC policy that will be applied and managed by the Anthos On-Prem API.
*/
@JvmName("kylydwhjoxwpburs")
public suspend fun authorization(`value`: AuthorizationArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.authorization = mapped
}
/**
* @param argument RBAC policy that will be applied and managed by the Anthos On-Prem API.
*/
@JvmName("uwbvfllowpoxrtlc")
public suspend fun authorization(argument: suspend AuthorizationArgsBuilder.() -> Unit) {
val toBeMapped = AuthorizationArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.authorization = mapped
}
/**
* @param value Configuration for auto repairing.
*/
@JvmName("exfrdrxmkifytwja")
public suspend fun autoRepairConfig(`value`: VmwareAutoRepairConfigArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.autoRepairConfig = mapped
}
/**
* @param argument Configuration for auto repairing.
*/
@JvmName("mgufpqsjhmnqonjy")
public suspend fun autoRepairConfig(argument: suspend VmwareAutoRepairConfigArgsBuilder.() -> Unit) {
val toBeMapped = VmwareAutoRepairConfigArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.autoRepairConfig = mapped
}
/**
* @param value VMware user cluster control plane nodes must have either 1 or 3 replicas.
*/
@JvmName("sqlhfopuasybroql")
public suspend fun controlPlaneNode(`value`: VmwareControlPlaneNodeConfigArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.controlPlaneNode = mapped
}
/**
* @param argument VMware user cluster control plane nodes must have either 1 or 3 replicas.
*/
@JvmName("ocsiyuiummyhjgsh")
public suspend fun controlPlaneNode(argument: suspend VmwareControlPlaneNodeConfigArgsBuilder.() -> Unit) {
val toBeMapped = VmwareControlPlaneNodeConfigArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.controlPlaneNode = mapped
}
/**
* @param value VmwareDataplaneV2Config specifies configuration for Dataplane V2.
*/
@JvmName("felwqeqwwpyraaxd")
public suspend fun dataplaneV2(`value`: VmwareDataplaneV2ConfigArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.dataplaneV2 = mapped
}
/**
* @param argument VmwareDataplaneV2Config specifies configuration for Dataplane V2.
*/
@JvmName("qpxljiqqvqmdqtmo")
public suspend fun dataplaneV2(argument: suspend VmwareDataplaneV2ConfigArgsBuilder.() -> Unit) {
val toBeMapped = VmwareDataplaneV2ConfigArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.dataplaneV2 = mapped
}
/**
* @param value A human readable description of this VMware user cluster.
*/
@JvmName("sedsdyvqtlaogdam")
public suspend fun description(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.description = mapped
}
/**
* @param value Enable control plane V2. Default to false.
*/
@JvmName("yuvxcptceamhlmyh")
public suspend fun enableControlPlaneV2(`value`: Boolean?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.enableControlPlaneV2 = mapped
}
/**
* @param value This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding. Allows clients to perform consistent read-modify-writes through optimistic concurrency control.
*/
@JvmName("xmbeqhohnuvtwexf")
public suspend fun etag(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.etag = mapped
}
/**
* @param value Load balancer configuration.
*/
@JvmName("dqmcohieqwqcscga")
public suspend fun loadBalancer(`value`: VmwareLoadBalancerConfigArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.loadBalancer = mapped
}
/**
* @param argument Load balancer configuration.
*/
@JvmName("fttibxkifbbldlee")
public suspend fun loadBalancer(argument: suspend VmwareLoadBalancerConfigArgsBuilder.() -> Unit) {
val toBeMapped = VmwareLoadBalancerConfigArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.loadBalancer = mapped
}
/**
* @param value
*/
@JvmName("quhlogsqlexbgiad")
public suspend fun location(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.location = mapped
}
/**
* @param value Immutable. The VMware user cluster resource name.
*/
@JvmName("abklgkopcmsddwyq")
public suspend fun name(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.name = mapped
}
/**
* @param value The VMware user cluster network configuration.
*/
@JvmName("afiqvildhtcttgor")
public suspend fun networkConfig(`value`: VmwareNetworkConfigArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.networkConfig = mapped
}
/**
* @param argument The VMware user cluster network configuration.
*/
@JvmName("dyehowxbadkxtuox")
public suspend fun networkConfig(argument: suspend VmwareNetworkConfigArgsBuilder.() -> Unit) {
val toBeMapped = VmwareNetworkConfigArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.networkConfig = mapped
}
/**
* @param value The Anthos clusters on the VMware version for your user cluster. Defaults to the admin cluster version.
*/
@JvmName("cgomkpdllauddoef")
public suspend fun onPremVersion(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.onPremVersion = mapped
}
/**
* @param value
*/
@JvmName("oxyukpmtjbruosbe")
public suspend fun project(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.project = mapped
}
/**
* @param value Storage configuration.
*/
@JvmName("aiqvmpmyerxwjdoj")
public suspend fun storage(`value`: VmwareStorageConfigArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.storage = mapped
}
/**
* @param argument Storage configuration.
*/
@JvmName("eqbadkykprtlyvua")
public suspend fun storage(argument: suspend VmwareStorageConfigArgsBuilder.() -> Unit) {
val toBeMapped = VmwareStorageConfigArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.storage = mapped
}
/**
* @param value Enable VM tracking.
*/
@JvmName("eougdjckiagdsjsg")
public suspend fun vmTrackingEnabled(`value`: Boolean?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.vmTrackingEnabled = mapped
}
/**
* @param value User provided identifier that is used as part of the resource name; This value must be up to 40 characters and follow RFC-1123 (https://tools.ietf.org/html/rfc1123) format.
*/
@JvmName("stdclaqyfiloqwqq")
public suspend fun vmwareClusterId(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.vmwareClusterId = mapped
}
internal fun build(): VmwareClusterArgs = VmwareClusterArgs(
adminClusterMembership = adminClusterMembership,
annotations = annotations,
antiAffinityGroups = antiAffinityGroups,
authorization = authorization,
autoRepairConfig = autoRepairConfig,
controlPlaneNode = controlPlaneNode,
dataplaneV2 = dataplaneV2,
description = description,
enableControlPlaneV2 = enableControlPlaneV2,
etag = etag,
loadBalancer = loadBalancer,
location = location,
name = name,
networkConfig = networkConfig,
onPremVersion = onPremVersion,
project = project,
storage = storage,
vmTrackingEnabled = vmTrackingEnabled,
vmwareClusterId = vmwareClusterId,
)
}