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

commonMain.aws.sdk.kotlin.services.emr.model.ComputeLimits.kt Maven / Gradle / Ivy

// Code generated by smithy-kotlin-codegen. DO NOT EDIT!

package aws.sdk.kotlin.services.emr.model



/**
 * The EC2 unit limits for a managed scaling policy. The managed scaling activity of a cluster can not be above or below these limits. The limit only applies to the core and task nodes. The master node cannot be scaled after initial configuration.
 */
public class ComputeLimits private constructor(builder: Builder) {
    /**
     * The upper boundary of EC2 units. It is measured through vCPU cores or instances for instance groups and measured through units for instance fleets. Managed scaling activities are not allowed beyond this boundary. The limit only applies to the core and task nodes. The master node cannot be scaled after initial configuration.
     */
    public val maximumCapacityUnits: kotlin.Int? = builder.maximumCapacityUnits
    /**
     * The upper boundary of EC2 units for core node type in a cluster. It is measured through vCPU cores or instances for instance groups and measured through units for instance fleets. The core units are not allowed to scale beyond this boundary. The parameter is used to split capacity allocation between core and task nodes.
     */
    public val maximumCoreCapacityUnits: kotlin.Int? = builder.maximumCoreCapacityUnits
    /**
     * The upper boundary of On-Demand EC2 units. It is measured through vCPU cores or instances for instance groups and measured through units for instance fleets. The On-Demand units are not allowed to scale beyond this boundary. The parameter is used to split capacity allocation between On-Demand and Spot Instances.
     */
    public val maximumOnDemandCapacityUnits: kotlin.Int? = builder.maximumOnDemandCapacityUnits
    /**
     * The lower boundary of EC2 units. It is measured through vCPU cores or instances for instance groups and measured through units for instance fleets. Managed scaling activities are not allowed beyond this boundary. The limit only applies to the core and task nodes. The master node cannot be scaled after initial configuration.
     */
    public val minimumCapacityUnits: kotlin.Int? = builder.minimumCapacityUnits
    /**
     * The unit type used for specifying a managed scaling policy.
     */
    public val unitType: aws.sdk.kotlin.services.emr.model.ComputeLimitsUnitType? = builder.unitType

    public companion object {
        public operator fun invoke(block: Builder.() -> kotlin.Unit): aws.sdk.kotlin.services.emr.model.ComputeLimits = Builder().apply(block).build()
    }

    override fun toString(): kotlin.String = buildString {
        append("ComputeLimits(")
        append("maximumCapacityUnits=$maximumCapacityUnits,")
        append("maximumCoreCapacityUnits=$maximumCoreCapacityUnits,")
        append("maximumOnDemandCapacityUnits=$maximumOnDemandCapacityUnits,")
        append("minimumCapacityUnits=$minimumCapacityUnits,")
        append("unitType=$unitType)")
    }

    override fun hashCode(): kotlin.Int {
        var result = maximumCapacityUnits ?: 0
        result = 31 * result + (maximumCoreCapacityUnits ?: 0)
        result = 31 * result + (maximumOnDemandCapacityUnits ?: 0)
        result = 31 * result + (minimumCapacityUnits ?: 0)
        result = 31 * result + (unitType?.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 ComputeLimits

        if (maximumCapacityUnits != other.maximumCapacityUnits) return false
        if (maximumCoreCapacityUnits != other.maximumCoreCapacityUnits) return false
        if (maximumOnDemandCapacityUnits != other.maximumOnDemandCapacityUnits) return false
        if (minimumCapacityUnits != other.minimumCapacityUnits) return false
        if (unitType != other.unitType) return false

        return true
    }

    public inline fun copy(block: Builder.() -> kotlin.Unit = {}): aws.sdk.kotlin.services.emr.model.ComputeLimits = Builder(this).apply(block).build()

    public class Builder {
        /**
         * The upper boundary of EC2 units. It is measured through vCPU cores or instances for instance groups and measured through units for instance fleets. Managed scaling activities are not allowed beyond this boundary. The limit only applies to the core and task nodes. The master node cannot be scaled after initial configuration.
         */
        public var maximumCapacityUnits: kotlin.Int? = null
        /**
         * The upper boundary of EC2 units for core node type in a cluster. It is measured through vCPU cores or instances for instance groups and measured through units for instance fleets. The core units are not allowed to scale beyond this boundary. The parameter is used to split capacity allocation between core and task nodes.
         */
        public var maximumCoreCapacityUnits: kotlin.Int? = null
        /**
         * The upper boundary of On-Demand EC2 units. It is measured through vCPU cores or instances for instance groups and measured through units for instance fleets. The On-Demand units are not allowed to scale beyond this boundary. The parameter is used to split capacity allocation between On-Demand and Spot Instances.
         */
        public var maximumOnDemandCapacityUnits: kotlin.Int? = null
        /**
         * The lower boundary of EC2 units. It is measured through vCPU cores or instances for instance groups and measured through units for instance fleets. Managed scaling activities are not allowed beyond this boundary. The limit only applies to the core and task nodes. The master node cannot be scaled after initial configuration.
         */
        public var minimumCapacityUnits: kotlin.Int? = null
        /**
         * The unit type used for specifying a managed scaling policy.
         */
        public var unitType: aws.sdk.kotlin.services.emr.model.ComputeLimitsUnitType? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.emr.model.ComputeLimits) : this() {
            this.maximumCapacityUnits = x.maximumCapacityUnits
            this.maximumCoreCapacityUnits = x.maximumCoreCapacityUnits
            this.maximumOnDemandCapacityUnits = x.maximumOnDemandCapacityUnits
            this.minimumCapacityUnits = x.minimumCapacityUnits
            this.unitType = x.unitType
        }

        @PublishedApi
        internal fun build(): aws.sdk.kotlin.services.emr.model.ComputeLimits = ComputeLimits(this)
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy