com.pulumi.googlenative.compute.alpha.kotlin.inputs.InstanceGroupManagerVersionArgs.kt Maven / Gradle / Ivy
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.googlenative.compute.alpha.kotlin.inputs
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.googlenative.compute.alpha.inputs.InstanceGroupManagerVersionArgs.builder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Deprecated
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.jvm.JvmName
/**
*
* @property instanceTemplate The URL of the instance template that is specified for this managed instance group. The group uses this template to create new instances in the managed instance group until the `targetSize` for this version is reached. The templates for existing instances in the group do not change unless you run recreateInstances, run applyUpdatesToInstances, or set the group's updatePolicy.type to PROACTIVE; in those cases, existing instances are updated until the `targetSize` for this version is reached.
* @property name Name of the version. Unique among all versions in the scope of this managed instance group.
* @property tag Tag describing the version. Used to trigger rollout of a target version even if instance_template remains unchanged. Deprecated in favor of 'name'.
* @property targetSize Specifies the intended number of instances to be created from the instanceTemplate. The final number of instances created from the template will be equal to: - If expressed as a fixed number, the minimum of either targetSize.fixed or instanceGroupManager.targetSize is used. - if expressed as a percent, the targetSize would be (targetSize.percent/100 * InstanceGroupManager.targetSize) If there is a remainder, the number is rounded. If unset, this version will update any remaining instances not updated by another version. Read Starting a canary update for more information.
*/
public data class InstanceGroupManagerVersionArgs(
public val instanceTemplate: Output? = null,
public val name: Output? = null,
@Deprecated(
message = """
Tag describing the version. Used to trigger rollout of a target version even if instance_template
remains unchanged. Deprecated in favor of 'name'.
""",
)
public val tag: Output? = null,
public val targetSize: Output? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.googlenative.compute.alpha.inputs.InstanceGroupManagerVersionArgs =
com.pulumi.googlenative.compute.alpha.inputs.InstanceGroupManagerVersionArgs.builder()
.instanceTemplate(instanceTemplate?.applyValue({ args0 -> args0 }))
.name(name?.applyValue({ args0 -> args0 }))
.tag(tag?.applyValue({ args0 -> args0 }))
.targetSize(targetSize?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) })).build()
}
/**
* Builder for [InstanceGroupManagerVersionArgs].
*/
@PulumiTagMarker
public class InstanceGroupManagerVersionArgsBuilder internal constructor() {
private var instanceTemplate: Output? = null
private var name: Output? = null
private var tag: Output? = null
private var targetSize: Output? = null
/**
* @param value The URL of the instance template that is specified for this managed instance group. The group uses this template to create new instances in the managed instance group until the `targetSize` for this version is reached. The templates for existing instances in the group do not change unless you run recreateInstances, run applyUpdatesToInstances, or set the group's updatePolicy.type to PROACTIVE; in those cases, existing instances are updated until the `targetSize` for this version is reached.
*/
@JvmName("jofiwasbogxxxshi")
public suspend fun instanceTemplate(`value`: Output) {
this.instanceTemplate = value
}
/**
* @param value Name of the version. Unique among all versions in the scope of this managed instance group.
*/
@JvmName("sxyrcajrnvauxchx")
public suspend fun name(`value`: Output) {
this.name = value
}
/**
* @param value Tag describing the version. Used to trigger rollout of a target version even if instance_template remains unchanged. Deprecated in favor of 'name'.
*/
@Deprecated(
message = """
Tag describing the version. Used to trigger rollout of a target version even if instance_template
remains unchanged. Deprecated in favor of 'name'.
""",
)
@JvmName("xcpxwxbttrjbgdmm")
public suspend fun tag(`value`: Output) {
this.tag = value
}
/**
* @param value Specifies the intended number of instances to be created from the instanceTemplate. The final number of instances created from the template will be equal to: - If expressed as a fixed number, the minimum of either targetSize.fixed or instanceGroupManager.targetSize is used. - if expressed as a percent, the targetSize would be (targetSize.percent/100 * InstanceGroupManager.targetSize) If there is a remainder, the number is rounded. If unset, this version will update any remaining instances not updated by another version. Read Starting a canary update for more information.
*/
@JvmName("husjswllonbhbjau")
public suspend fun targetSize(`value`: Output) {
this.targetSize = value
}
/**
* @param value The URL of the instance template that is specified for this managed instance group. The group uses this template to create new instances in the managed instance group until the `targetSize` for this version is reached. The templates for existing instances in the group do not change unless you run recreateInstances, run applyUpdatesToInstances, or set the group's updatePolicy.type to PROACTIVE; in those cases, existing instances are updated until the `targetSize` for this version is reached.
*/
@JvmName("tldilvthrbtofdgc")
public suspend fun instanceTemplate(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.instanceTemplate = mapped
}
/**
* @param value Name of the version. Unique among all versions in the scope of this managed instance group.
*/
@JvmName("rltjmvngsxyojnlx")
public suspend fun name(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.name = mapped
}
/**
* @param value Tag describing the version. Used to trigger rollout of a target version even if instance_template remains unchanged. Deprecated in favor of 'name'.
*/
@Deprecated(
message = """
Tag describing the version. Used to trigger rollout of a target version even if instance_template
remains unchanged. Deprecated in favor of 'name'.
""",
)
@JvmName("xxltrpijfqqcewhv")
public suspend fun tag(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.tag = mapped
}
/**
* @param value Specifies the intended number of instances to be created from the instanceTemplate. The final number of instances created from the template will be equal to: - If expressed as a fixed number, the minimum of either targetSize.fixed or instanceGroupManager.targetSize is used. - if expressed as a percent, the targetSize would be (targetSize.percent/100 * InstanceGroupManager.targetSize) If there is a remainder, the number is rounded. If unset, this version will update any remaining instances not updated by another version. Read Starting a canary update for more information.
*/
@JvmName("firbbdpcvgodybpv")
public suspend fun targetSize(`value`: FixedOrPercentArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.targetSize = mapped
}
/**
* @param argument Specifies the intended number of instances to be created from the instanceTemplate. The final number of instances created from the template will be equal to: - If expressed as a fixed number, the minimum of either targetSize.fixed or instanceGroupManager.targetSize is used. - if expressed as a percent, the targetSize would be (targetSize.percent/100 * InstanceGroupManager.targetSize) If there is a remainder, the number is rounded. If unset, this version will update any remaining instances not updated by another version. Read Starting a canary update for more information.
*/
@JvmName("ivvmmihvxpilojtj")
public suspend fun targetSize(argument: suspend FixedOrPercentArgsBuilder.() -> Unit) {
val toBeMapped = FixedOrPercentArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.targetSize = mapped
}
internal fun build(): InstanceGroupManagerVersionArgs = InstanceGroupManagerVersionArgs(
instanceTemplate = instanceTemplate,
name = name,
tag = tag,
targetSize = targetSize,
)
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy