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

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

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

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



/**
 * The summary description of the cluster.
 */
public class ClusterSummary private constructor(builder: Builder) {
    /**
     * The Amazon Resource Name of the cluster.
     */
    public val clusterArn: kotlin.String? = builder.clusterArn
    /**
     * The unique identifier for the cluster.
     */
    public val id: kotlin.String? = builder.id
    /**
     * The name of the cluster.
     */
    public val name: kotlin.String? = builder.name
    /**
     * An approximation of the cost of the cluster, represented in m1.small/hours. This value is incremented one time for every hour an m1.small instance runs. Larger instances are weighted more, so an EC2 instance that is roughly four times more expensive would result in the normalized instance hours being incremented by four. This result is only an approximation and does not reflect the actual billing rate.
     */
    public val normalizedInstanceHours: kotlin.Int? = builder.normalizedInstanceHours
    /**
     * The Amazon Resource Name (ARN) of the Outpost where the cluster is launched.
     */
    public val outpostArn: kotlin.String? = builder.outpostArn
    /**
     * The details about the current status of the cluster.
     */
    public val status: aws.sdk.kotlin.services.emr.model.ClusterStatus? = builder.status

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

    override fun toString(): kotlin.String = buildString {
        append("ClusterSummary(")
        append("clusterArn=$clusterArn,")
        append("id=$id,")
        append("name=$name,")
        append("normalizedInstanceHours=$normalizedInstanceHours,")
        append("outpostArn=$outpostArn,")
        append("status=$status)")
    }

    override fun hashCode(): kotlin.Int {
        var result = clusterArn?.hashCode() ?: 0
        result = 31 * result + (id?.hashCode() ?: 0)
        result = 31 * result + (name?.hashCode() ?: 0)
        result = 31 * result + (normalizedInstanceHours ?: 0)
        result = 31 * result + (outpostArn?.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 ClusterSummary

        if (clusterArn != other.clusterArn) return false
        if (id != other.id) return false
        if (name != other.name) return false
        if (normalizedInstanceHours != other.normalizedInstanceHours) return false
        if (outpostArn != other.outpostArn) return false
        if (status != other.status) return false

        return true
    }

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

    public class Builder {
        /**
         * The Amazon Resource Name of the cluster.
         */
        public var clusterArn: kotlin.String? = null
        /**
         * The unique identifier for the cluster.
         */
        public var id: kotlin.String? = null
        /**
         * The name of the cluster.
         */
        public var name: kotlin.String? = null
        /**
         * An approximation of the cost of the cluster, represented in m1.small/hours. This value is incremented one time for every hour an m1.small instance runs. Larger instances are weighted more, so an EC2 instance that is roughly four times more expensive would result in the normalized instance hours being incremented by four. This result is only an approximation and does not reflect the actual billing rate.
         */
        public var normalizedInstanceHours: kotlin.Int? = null
        /**
         * The Amazon Resource Name (ARN) of the Outpost where the cluster is launched.
         */
        public var outpostArn: kotlin.String? = null
        /**
         * The details about the current status of the cluster.
         */
        public var status: aws.sdk.kotlin.services.emr.model.ClusterStatus? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.emr.model.ClusterSummary) : this() {
            this.clusterArn = x.clusterArn
            this.id = x.id
            this.name = x.name
            this.normalizedInstanceHours = x.normalizedInstanceHours
            this.outpostArn = x.outpostArn
            this.status = x.status
        }

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

        /**
         * construct an [aws.sdk.kotlin.services.emr.model.ClusterStatus] inside the given [block]
         */
        public fun status(block: aws.sdk.kotlin.services.emr.model.ClusterStatus.Builder.() -> kotlin.Unit) {
            this.status = aws.sdk.kotlin.services.emr.model.ClusterStatus.invoke(block)
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy