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

com.pulumi.gcp.compute.kotlin.outputs.GetInstanceGroupManagerUpdatePolicy.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.

There is a newer version: 8.12.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.gcp.compute.kotlin.outputs

import kotlin.Int
import kotlin.String
import kotlin.Suppress

/**
 *
 * @property maxSurgeFixed The maximum number of instances that can be created above the specified targetSize during the update process. Conflicts with max_surge_percent. If neither is set, defaults to 1
 * @property maxSurgePercent The maximum number of instances(calculated as percentage) that can be created above the specified targetSize during the update process. Conflicts with max_surge_fixed.
 * @property maxUnavailableFixed The maximum number of instances that can be unavailable during the update process. Conflicts with max_unavailable_percent. If neither is set, defaults to 1.
 * @property maxUnavailablePercent The maximum number of instances(calculated as percentage) that can be unavailable during the update process. Conflicts with max_unavailable_fixed.
 * @property minReadySec Minimum number of seconds to wait for after a newly created instance becomes available. This value must be from range [0, 3600].
 * @property minimalAction Minimal action to be taken on an instance. You can specify either REFRESH to update without stopping instances, RESTART to restart existing instances or REPLACE to delete and create new instances from the target template. If you specify a REFRESH, the Updater will attempt to perform that action only. However, if the Updater determines that the minimal action you specify is not enough to perform the update, it might perform a more disruptive action.
 * @property mostDisruptiveAllowedAction Most disruptive action that is allowed to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to allow actions that do not need instance restart, RESTART to allow actions that can be applied without instance replacing or REPLACE to allow all possible actions. If the Updater determines that the minimal update action needed is more disruptive than most disruptive allowed action you specify it will not perform the update at all.
 * @property replacementMethod The instance replacement method for managed instance groups. Valid values are: "RECREATE", "SUBSTITUTE". If SUBSTITUTE (default), the group replaces VM instances with new instances that have randomly generated names. If RECREATE, instance names are preserved.  You must also set max_unavailable_fixed or max_unavailable_percent to be greater than 0.
 * @property type The type of update process. You can specify either PROACTIVE so that the instance group manager proactively executes actions in order to bring instances to their target versions or OPPORTUNISTIC so that no action is proactively executed but the update will be performed as part of other actions (for example, resizes or recreateInstances calls).
 */
public data class GetInstanceGroupManagerUpdatePolicy(
    public val maxSurgeFixed: Int,
    public val maxSurgePercent: Int,
    public val maxUnavailableFixed: Int,
    public val maxUnavailablePercent: Int,
    public val minReadySec: Int,
    public val minimalAction: String,
    public val mostDisruptiveAllowedAction: String,
    public val replacementMethod: String,
    public val type: String,
) {
    public companion object {
        public fun toKotlin(javaType: com.pulumi.gcp.compute.outputs.GetInstanceGroupManagerUpdatePolicy): GetInstanceGroupManagerUpdatePolicy = GetInstanceGroupManagerUpdatePolicy(
            maxSurgeFixed = javaType.maxSurgeFixed(),
            maxSurgePercent = javaType.maxSurgePercent(),
            maxUnavailableFixed = javaType.maxUnavailableFixed(),
            maxUnavailablePercent = javaType.maxUnavailablePercent(),
            minReadySec = javaType.minReadySec(),
            minimalAction = javaType.minimalAction(),
            mostDisruptiveAllowedAction = javaType.mostDisruptiveAllowedAction(),
            replacementMethod = javaType.replacementMethod(),
            type = javaType.type(),
        )
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy