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

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

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

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

import aws.smithy.kotlin.runtime.time.Instant

/**
 * Detailed information about an instance group.
 */
public class InstanceGroupDetail private constructor(builder: Builder) {
    /**
     * If specified, indicates that the instance group uses Spot Instances. This is the maximum price you are willing to pay for Spot Instances. Specify `OnDemandPrice` to set the amount equal to the On-Demand price, or specify an amount in USD.
     */
    public val bidPrice: kotlin.String? = builder.bidPrice
    /**
     * The date/time the instance group was created.
     */
    public val creationDateTime: aws.smithy.kotlin.runtime.time.Instant? = builder.creationDateTime
    /**
     * The custom AMI ID to use for the provisioned instance group.
     */
    public val customAmiId: kotlin.String? = builder.customAmiId
    /**
     * The date/time the instance group was terminated.
     */
    public val endDateTime: aws.smithy.kotlin.runtime.time.Instant? = builder.endDateTime
    /**
     * Unique identifier for the instance group.
     */
    public val instanceGroupId: kotlin.String? = builder.instanceGroupId
    /**
     * Target number of instances to run in the instance group.
     */
    public val instanceRequestCount: kotlin.Int? = builder.instanceRequestCount
    /**
     * Instance group role in the cluster
     */
    public val instanceRole: aws.sdk.kotlin.services.emr.model.InstanceRoleType? = builder.instanceRole
    /**
     * Actual count of running instances.
     */
    public val instanceRunningCount: kotlin.Int? = builder.instanceRunningCount
    /**
     * EC2 instance type.
     */
    public val instanceType: kotlin.String? = builder.instanceType
    /**
     * Details regarding the state of the instance group.
     */
    public val lastStateChangeReason: kotlin.String? = builder.lastStateChangeReason
    /**
     * Market type of the EC2 instances used to create a cluster node.
     */
    public val market: aws.sdk.kotlin.services.emr.model.MarketType? = builder.market
    /**
     * Friendly name for the instance group.
     */
    public val name: kotlin.String? = builder.name
    /**
     * The date/time the instance group was available to the cluster.
     */
    public val readyDateTime: aws.smithy.kotlin.runtime.time.Instant? = builder.readyDateTime
    /**
     * The date/time the instance group was started.
     */
    public val startDateTime: aws.smithy.kotlin.runtime.time.Instant? = builder.startDateTime
    /**
     * State of instance group. The following values are no longer supported: STARTING, TERMINATED, and FAILED.
     */
    public val state: aws.sdk.kotlin.services.emr.model.InstanceGroupState? = builder.state

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

    override fun toString(): kotlin.String = buildString {
        append("InstanceGroupDetail(")
        append("bidPrice=$bidPrice,")
        append("creationDateTime=$creationDateTime,")
        append("customAmiId=$customAmiId,")
        append("endDateTime=$endDateTime,")
        append("instanceGroupId=$instanceGroupId,")
        append("instanceRequestCount=$instanceRequestCount,")
        append("instanceRole=$instanceRole,")
        append("instanceRunningCount=$instanceRunningCount,")
        append("instanceType=$instanceType,")
        append("lastStateChangeReason=$lastStateChangeReason,")
        append("market=$market,")
        append("name=$name,")
        append("readyDateTime=$readyDateTime,")
        append("startDateTime=$startDateTime,")
        append("state=$state)")
    }

    override fun hashCode(): kotlin.Int {
        var result = bidPrice?.hashCode() ?: 0
        result = 31 * result + (creationDateTime?.hashCode() ?: 0)
        result = 31 * result + (customAmiId?.hashCode() ?: 0)
        result = 31 * result + (endDateTime?.hashCode() ?: 0)
        result = 31 * result + (instanceGroupId?.hashCode() ?: 0)
        result = 31 * result + (instanceRequestCount ?: 0)
        result = 31 * result + (instanceRole?.hashCode() ?: 0)
        result = 31 * result + (instanceRunningCount ?: 0)
        result = 31 * result + (instanceType?.hashCode() ?: 0)
        result = 31 * result + (lastStateChangeReason?.hashCode() ?: 0)
        result = 31 * result + (market?.hashCode() ?: 0)
        result = 31 * result + (name?.hashCode() ?: 0)
        result = 31 * result + (readyDateTime?.hashCode() ?: 0)
        result = 31 * result + (startDateTime?.hashCode() ?: 0)
        result = 31 * result + (state?.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 InstanceGroupDetail

        if (bidPrice != other.bidPrice) return false
        if (creationDateTime != other.creationDateTime) return false
        if (customAmiId != other.customAmiId) return false
        if (endDateTime != other.endDateTime) return false
        if (instanceGroupId != other.instanceGroupId) return false
        if (instanceRequestCount != other.instanceRequestCount) return false
        if (instanceRole != other.instanceRole) return false
        if (instanceRunningCount != other.instanceRunningCount) return false
        if (instanceType != other.instanceType) return false
        if (lastStateChangeReason != other.lastStateChangeReason) return false
        if (market != other.market) return false
        if (name != other.name) return false
        if (readyDateTime != other.readyDateTime) return false
        if (startDateTime != other.startDateTime) return false
        if (state != other.state) return false

        return true
    }

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

    public class Builder {
        /**
         * If specified, indicates that the instance group uses Spot Instances. This is the maximum price you are willing to pay for Spot Instances. Specify `OnDemandPrice` to set the amount equal to the On-Demand price, or specify an amount in USD.
         */
        public var bidPrice: kotlin.String? = null
        /**
         * The date/time the instance group was created.
         */
        public var creationDateTime: aws.smithy.kotlin.runtime.time.Instant? = null
        /**
         * The custom AMI ID to use for the provisioned instance group.
         */
        public var customAmiId: kotlin.String? = null
        /**
         * The date/time the instance group was terminated.
         */
        public var endDateTime: aws.smithy.kotlin.runtime.time.Instant? = null
        /**
         * Unique identifier for the instance group.
         */
        public var instanceGroupId: kotlin.String? = null
        /**
         * Target number of instances to run in the instance group.
         */
        public var instanceRequestCount: kotlin.Int? = null
        /**
         * Instance group role in the cluster
         */
        public var instanceRole: aws.sdk.kotlin.services.emr.model.InstanceRoleType? = null
        /**
         * Actual count of running instances.
         */
        public var instanceRunningCount: kotlin.Int? = null
        /**
         * EC2 instance type.
         */
        public var instanceType: kotlin.String? = null
        /**
         * Details regarding the state of the instance group.
         */
        public var lastStateChangeReason: kotlin.String? = null
        /**
         * Market type of the EC2 instances used to create a cluster node.
         */
        public var market: aws.sdk.kotlin.services.emr.model.MarketType? = null
        /**
         * Friendly name for the instance group.
         */
        public var name: kotlin.String? = null
        /**
         * The date/time the instance group was available to the cluster.
         */
        public var readyDateTime: aws.smithy.kotlin.runtime.time.Instant? = null
        /**
         * The date/time the instance group was started.
         */
        public var startDateTime: aws.smithy.kotlin.runtime.time.Instant? = null
        /**
         * State of instance group. The following values are no longer supported: STARTING, TERMINATED, and FAILED.
         */
        public var state: aws.sdk.kotlin.services.emr.model.InstanceGroupState? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.emr.model.InstanceGroupDetail) : this() {
            this.bidPrice = x.bidPrice
            this.creationDateTime = x.creationDateTime
            this.customAmiId = x.customAmiId
            this.endDateTime = x.endDateTime
            this.instanceGroupId = x.instanceGroupId
            this.instanceRequestCount = x.instanceRequestCount
            this.instanceRole = x.instanceRole
            this.instanceRunningCount = x.instanceRunningCount
            this.instanceType = x.instanceType
            this.lastStateChangeReason = x.lastStateChangeReason
            this.market = x.market
            this.name = x.name
            this.readyDateTime = x.readyDateTime
            this.startDateTime = x.startDateTime
            this.state = x.state
        }

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy