
commonMain.aws.sdk.kotlin.services.emr.model.AutoScalingPolicyDescription.kt Maven / Gradle / Ivy
// Code generated by smithy-kotlin-codegen. DO NOT EDIT!
package aws.sdk.kotlin.services.emr.model
/**
* An automatic scaling policy for a core instance group or task instance group in an Amazon EMR cluster. The automatic scaling policy defines how an instance group dynamically adds and terminates EC2 instances in response to the value of a CloudWatch metric. See PutAutoScalingPolicy.
*/
public class AutoScalingPolicyDescription private constructor(builder: Builder) {
/**
* The upper and lower EC2 instance limits for an automatic scaling policy. Automatic scaling activity will not cause an instance group to grow above or below these limits.
*/
public val constraints: aws.sdk.kotlin.services.emr.model.ScalingConstraints? = builder.constraints
/**
* The scale-in and scale-out rules that comprise the automatic scaling policy.
*/
public val rules: List? = builder.rules
/**
* The status of an automatic scaling policy.
*/
public val status: aws.sdk.kotlin.services.emr.model.AutoScalingPolicyStatus? = builder.status
public companion object {
public operator fun invoke(block: Builder.() -> kotlin.Unit): aws.sdk.kotlin.services.emr.model.AutoScalingPolicyDescription = Builder().apply(block).build()
}
override fun toString(): kotlin.String = buildString {
append("AutoScalingPolicyDescription(")
append("constraints=$constraints,")
append("rules=$rules,")
append("status=$status)")
}
override fun hashCode(): kotlin.Int {
var result = constraints?.hashCode() ?: 0
result = 31 * result + (rules?.hashCode() ?: 0)
result = 31 * result + (status?.hashCode() ?: 0)
return result
}
override fun equals(other: kotlin.Any?): kotlin.Boolean {
if (this === other) return true
if (other == null || this::class != other::class) return false
other as AutoScalingPolicyDescription
if (constraints != other.constraints) return false
if (rules != other.rules) return false
if (status != other.status) return false
return true
}
public inline fun copy(block: Builder.() -> kotlin.Unit = {}): aws.sdk.kotlin.services.emr.model.AutoScalingPolicyDescription = Builder(this).apply(block).build()
public class Builder {
/**
* The upper and lower EC2 instance limits for an automatic scaling policy. Automatic scaling activity will not cause an instance group to grow above or below these limits.
*/
public var constraints: aws.sdk.kotlin.services.emr.model.ScalingConstraints? = null
/**
* The scale-in and scale-out rules that comprise the automatic scaling policy.
*/
public var rules: List? = null
/**
* The status of an automatic scaling policy.
*/
public var status: aws.sdk.kotlin.services.emr.model.AutoScalingPolicyStatus? = null
@PublishedApi
internal constructor()
@PublishedApi
internal constructor(x: aws.sdk.kotlin.services.emr.model.AutoScalingPolicyDescription) : this() {
this.constraints = x.constraints
this.rules = x.rules
this.status = x.status
}
@PublishedApi
internal fun build(): aws.sdk.kotlin.services.emr.model.AutoScalingPolicyDescription = AutoScalingPolicyDescription(this)
/**
* construct an [aws.sdk.kotlin.services.emr.model.ScalingConstraints] inside the given [block]
*/
public fun constraints(block: aws.sdk.kotlin.services.emr.model.ScalingConstraints.Builder.() -> kotlin.Unit) {
this.constraints = aws.sdk.kotlin.services.emr.model.ScalingConstraints.invoke(block)
}
/**
* construct an [aws.sdk.kotlin.services.emr.model.AutoScalingPolicyStatus] inside the given [block]
*/
public fun status(block: aws.sdk.kotlin.services.emr.model.AutoScalingPolicyStatus.Builder.() -> kotlin.Unit) {
this.status = aws.sdk.kotlin.services.emr.model.AutoScalingPolicyStatus.invoke(block)
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy