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

com.pulumi.aws.autoscaling.kotlin.outputs.GroupInstanceRefreshPreferences.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: 6.57.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.aws.autoscaling.kotlin.outputs

import kotlin.Boolean
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.collections.List

/**
 *
 * @property alarmSpecification Alarm Specification for Instance Refresh.
 * @property autoRollback Automatically rollback if instance refresh fails. Defaults to `false`. This option may only be set to `true` when specifying a `launch_template` or `mixed_instances_policy`.
 * @property checkpointDelay Number of seconds to wait after a checkpoint. Defaults to `3600`.
 * @property checkpointPercentages List of percentages for each checkpoint. Values must be unique and in ascending order. To replace all instances, the final number must be `100`.
 * @property instanceWarmup Number of seconds until a newly launched instance is configured and ready to use. Default behavior is to use the Auto Scaling Group's health check grace period.
 * @property maxHealthyPercentage Amount of capacity in the Auto Scaling group that can be in service and healthy, or pending, to support your workload when an instance refresh is in place, as a percentage of the desired capacity of the Auto Scaling group. Values must be between `100` and `200`, defaults to `100`.
 * @property minHealthyPercentage Amount of capacity in the Auto Scaling group that must remain healthy during an instance refresh to allow the operation to continue, as a percentage of the desired capacity of the Auto Scaling group. Defaults to `90`.
 * @property scaleInProtectedInstances Behavior when encountering instances protected from scale in are found. Available behaviors are `Refresh`, `Ignore`, and `Wait`. Default is `Ignore`.
 * @property skipMatching Replace instances that already have your desired configuration. Defaults to `false`.
 * @property standbyInstances Behavior when encountering instances in the `Standby` state in are found. Available behaviors are `Terminate`, `Ignore`, and `Wait`. Default is `Ignore`.
 */
public data class GroupInstanceRefreshPreferences(
    public val alarmSpecification: GroupInstanceRefreshPreferencesAlarmSpecification? = null,
    public val autoRollback: Boolean? = null,
    public val checkpointDelay: String? = null,
    public val checkpointPercentages: List? = null,
    public val instanceWarmup: String? = null,
    public val maxHealthyPercentage: Int? = null,
    public val minHealthyPercentage: Int? = null,
    public val scaleInProtectedInstances: String? = null,
    public val skipMatching: Boolean? = null,
    public val standbyInstances: String? = null,
) {
    public companion object {
        public fun toKotlin(javaType: com.pulumi.aws.autoscaling.outputs.GroupInstanceRefreshPreferences): GroupInstanceRefreshPreferences = GroupInstanceRefreshPreferences(
            alarmSpecification = javaType.alarmSpecification().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.aws.autoscaling.kotlin.outputs.GroupInstanceRefreshPreferencesAlarmSpecification.Companion.toKotlin(args0)
                })
            }).orElse(null),
            autoRollback = javaType.autoRollback().map({ args0 -> args0 }).orElse(null),
            checkpointDelay = javaType.checkpointDelay().map({ args0 -> args0 }).orElse(null),
            checkpointPercentages = javaType.checkpointPercentages().map({ args0 -> args0 }),
            instanceWarmup = javaType.instanceWarmup().map({ args0 -> args0 }).orElse(null),
            maxHealthyPercentage = javaType.maxHealthyPercentage().map({ args0 -> args0 }).orElse(null),
            minHealthyPercentage = javaType.minHealthyPercentage().map({ args0 -> args0 }).orElse(null),
            scaleInProtectedInstances = javaType.scaleInProtectedInstances().map({ args0 ->
                args0
            }).orElse(null),
            skipMatching = javaType.skipMatching().map({ args0 -> args0 }).orElse(null),
            standbyInstances = javaType.standbyInstances().map({ args0 -> args0 }).orElse(null),
        )
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy