
commonMain.aws.sdk.kotlin.services.emr.model.InstanceGroupModifyConfig.kt Maven / Gradle / Ivy
// Code generated by smithy-kotlin-codegen. DO NOT EDIT!
package aws.sdk.kotlin.services.emr.model
/**
* Modify the size or configurations of an instance group.
*/
public class InstanceGroupModifyConfig private constructor(builder: Builder) {
/**
* A list of new or modified configurations to apply for an instance group.
*/
public val configurations: List? = builder.configurations
/**
* The EC2 InstanceIds to terminate. After you terminate the instances, the instance group will not return to its original requested size.
*/
public val ec2InstanceIdsToTerminate: List? = builder.ec2InstanceIdsToTerminate
/**
* Target size for the instance group.
*/
public val instanceCount: kotlin.Int? = builder.instanceCount
/**
* Unique ID of the instance group to modify.
*/
public val instanceGroupId: kotlin.String? = builder.instanceGroupId
/**
* Type of reconfiguration requested. Valid values are MERGE and OVERWRITE.
*/
public val reconfigurationType: aws.sdk.kotlin.services.emr.model.ReconfigurationType? = builder.reconfigurationType
/**
* Policy for customizing shrink operations.
*/
public val shrinkPolicy: aws.sdk.kotlin.services.emr.model.ShrinkPolicy? = builder.shrinkPolicy
public companion object {
public operator fun invoke(block: Builder.() -> kotlin.Unit): aws.sdk.kotlin.services.emr.model.InstanceGroupModifyConfig = Builder().apply(block).build()
}
override fun toString(): kotlin.String = buildString {
append("InstanceGroupModifyConfig(")
append("configurations=$configurations,")
append("ec2InstanceIdsToTerminate=$ec2InstanceIdsToTerminate,")
append("instanceCount=$instanceCount,")
append("instanceGroupId=$instanceGroupId,")
append("reconfigurationType=$reconfigurationType,")
append("shrinkPolicy=$shrinkPolicy)")
}
override fun hashCode(): kotlin.Int {
var result = configurations?.hashCode() ?: 0
result = 31 * result + (ec2InstanceIdsToTerminate?.hashCode() ?: 0)
result = 31 * result + (instanceCount ?: 0)
result = 31 * result + (instanceGroupId?.hashCode() ?: 0)
result = 31 * result + (reconfigurationType?.hashCode() ?: 0)
result = 31 * result + (shrinkPolicy?.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 InstanceGroupModifyConfig
if (configurations != other.configurations) return false
if (ec2InstanceIdsToTerminate != other.ec2InstanceIdsToTerminate) return false
if (instanceCount != other.instanceCount) return false
if (instanceGroupId != other.instanceGroupId) return false
if (reconfigurationType != other.reconfigurationType) return false
if (shrinkPolicy != other.shrinkPolicy) return false
return true
}
public inline fun copy(block: Builder.() -> kotlin.Unit = {}): aws.sdk.kotlin.services.emr.model.InstanceGroupModifyConfig = Builder(this).apply(block).build()
public class Builder {
/**
* A list of new or modified configurations to apply for an instance group.
*/
public var configurations: List? = null
/**
* The EC2 InstanceIds to terminate. After you terminate the instances, the instance group will not return to its original requested size.
*/
public var ec2InstanceIdsToTerminate: List? = null
/**
* Target size for the instance group.
*/
public var instanceCount: kotlin.Int? = null
/**
* Unique ID of the instance group to modify.
*/
public var instanceGroupId: kotlin.String? = null
/**
* Type of reconfiguration requested. Valid values are MERGE and OVERWRITE.
*/
public var reconfigurationType: aws.sdk.kotlin.services.emr.model.ReconfigurationType? = null
/**
* Policy for customizing shrink operations.
*/
public var shrinkPolicy: aws.sdk.kotlin.services.emr.model.ShrinkPolicy? = null
@PublishedApi
internal constructor()
@PublishedApi
internal constructor(x: aws.sdk.kotlin.services.emr.model.InstanceGroupModifyConfig) : this() {
this.configurations = x.configurations
this.ec2InstanceIdsToTerminate = x.ec2InstanceIdsToTerminate
this.instanceCount = x.instanceCount
this.instanceGroupId = x.instanceGroupId
this.reconfigurationType = x.reconfigurationType
this.shrinkPolicy = x.shrinkPolicy
}
@PublishedApi
internal fun build(): aws.sdk.kotlin.services.emr.model.InstanceGroupModifyConfig = InstanceGroupModifyConfig(this)
/**
* construct an [aws.sdk.kotlin.services.emr.model.ShrinkPolicy] inside the given [block]
*/
public fun shrinkPolicy(block: aws.sdk.kotlin.services.emr.model.ShrinkPolicy.Builder.() -> kotlin.Unit) {
this.shrinkPolicy = aws.sdk.kotlin.services.emr.model.ShrinkPolicy.invoke(block)
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy