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

commonMain.aws.sdk.kotlin.services.eks.model.EksAnywhereSubscription.kt Maven / Gradle / Ivy

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

package aws.sdk.kotlin.services.eks.model

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

/**
 * An EKS Anywhere subscription authorizing the customer to support for licensed clusters and access to EKS Anywhere Curated Packages.
 */
public class EksAnywhereSubscription private constructor(builder: Builder) {
    /**
     * The Amazon Resource Name (ARN) for the subscription.
     */
    public val arn: kotlin.String? = builder.arn
    /**
     * A boolean indicating whether or not a subscription will auto renew when it expires.
     */
    public val autoRenew: kotlin.Boolean = builder.autoRenew
    /**
     * The Unix timestamp in seconds for when the subscription was created.
     */
    public val createdAt: aws.smithy.kotlin.runtime.time.Instant? = builder.createdAt
    /**
     * The Unix timestamp in seconds for when the subscription is effective.
     */
    public val effectiveDate: aws.smithy.kotlin.runtime.time.Instant? = builder.effectiveDate
    /**
     * The Unix timestamp in seconds for when the subscription will expire or auto renew, depending on the auto renew configuration of the subscription object.
     */
    public val expirationDate: aws.smithy.kotlin.runtime.time.Instant? = builder.expirationDate
    /**
     * UUID identifying a subscription.
     */
    public val id: kotlin.String? = builder.id
    /**
     * Amazon Web Services License Manager ARN associated with the subscription.
     */
    public val licenseArns: List? = builder.licenseArns
    /**
     * The number of licenses included in a subscription. Valid values are between 1 and 100.
     */
    public val licenseQuantity: kotlin.Int = builder.licenseQuantity
    /**
     * The type of licenses included in the subscription. Valid value is CLUSTER. With the CLUSTER license type, each license covers support for a single EKS Anywhere cluster.
     */
    public val licenseType: aws.sdk.kotlin.services.eks.model.EksAnywhereSubscriptionLicenseType? = builder.licenseType
    /**
     * The status of a subscription.
     */
    public val status: kotlin.String? = builder.status
    /**
     * The metadata for a subscription to assist with categorization and organization. Each tag consists of a key and an optional value. Subscription tags do not propagate to any other resources associated with the subscription.
     */
    public val tags: Map? = builder.tags
    /**
     * An EksAnywhereSubscriptionTerm object.
     */
    public val term: aws.sdk.kotlin.services.eks.model.EksAnywhereSubscriptionTerm? = builder.term

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

    override fun toString(): kotlin.String = buildString {
        append("EksAnywhereSubscription(")
        append("arn=$arn,")
        append("autoRenew=$autoRenew,")
        append("createdAt=$createdAt,")
        append("effectiveDate=$effectiveDate,")
        append("expirationDate=$expirationDate,")
        append("id=$id,")
        append("licenseArns=$licenseArns,")
        append("licenseQuantity=$licenseQuantity,")
        append("licenseType=$licenseType,")
        append("status=$status,")
        append("tags=$tags,")
        append("term=$term")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = arn?.hashCode() ?: 0
        result = 31 * result + (autoRenew.hashCode())
        result = 31 * result + (createdAt?.hashCode() ?: 0)
        result = 31 * result + (effectiveDate?.hashCode() ?: 0)
        result = 31 * result + (expirationDate?.hashCode() ?: 0)
        result = 31 * result + (id?.hashCode() ?: 0)
        result = 31 * result + (licenseArns?.hashCode() ?: 0)
        result = 31 * result + (licenseQuantity)
        result = 31 * result + (licenseType?.hashCode() ?: 0)
        result = 31 * result + (status?.hashCode() ?: 0)
        result = 31 * result + (tags?.hashCode() ?: 0)
        result = 31 * result + (term?.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 EksAnywhereSubscription

        if (arn != other.arn) return false
        if (autoRenew != other.autoRenew) return false
        if (createdAt != other.createdAt) return false
        if (effectiveDate != other.effectiveDate) return false
        if (expirationDate != other.expirationDate) return false
        if (id != other.id) return false
        if (licenseArns != other.licenseArns) return false
        if (licenseQuantity != other.licenseQuantity) return false
        if (licenseType != other.licenseType) return false
        if (status != other.status) return false
        if (tags != other.tags) return false
        if (term != other.term) return false

        return true
    }

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

    @SdkDsl
    public class Builder {
        /**
         * The Amazon Resource Name (ARN) for the subscription.
         */
        public var arn: kotlin.String? = null
        /**
         * A boolean indicating whether or not a subscription will auto renew when it expires.
         */
        public var autoRenew: kotlin.Boolean = false
        /**
         * The Unix timestamp in seconds for when the subscription was created.
         */
        public var createdAt: aws.smithy.kotlin.runtime.time.Instant? = null
        /**
         * The Unix timestamp in seconds for when the subscription is effective.
         */
        public var effectiveDate: aws.smithy.kotlin.runtime.time.Instant? = null
        /**
         * The Unix timestamp in seconds for when the subscription will expire or auto renew, depending on the auto renew configuration of the subscription object.
         */
        public var expirationDate: aws.smithy.kotlin.runtime.time.Instant? = null
        /**
         * UUID identifying a subscription.
         */
        public var id: kotlin.String? = null
        /**
         * Amazon Web Services License Manager ARN associated with the subscription.
         */
        public var licenseArns: List? = null
        /**
         * The number of licenses included in a subscription. Valid values are between 1 and 100.
         */
        public var licenseQuantity: kotlin.Int = 0
        /**
         * The type of licenses included in the subscription. Valid value is CLUSTER. With the CLUSTER license type, each license covers support for a single EKS Anywhere cluster.
         */
        public var licenseType: aws.sdk.kotlin.services.eks.model.EksAnywhereSubscriptionLicenseType? = null
        /**
         * The status of a subscription.
         */
        public var status: kotlin.String? = null
        /**
         * The metadata for a subscription to assist with categorization and organization. Each tag consists of a key and an optional value. Subscription tags do not propagate to any other resources associated with the subscription.
         */
        public var tags: Map? = null
        /**
         * An EksAnywhereSubscriptionTerm object.
         */
        public var term: aws.sdk.kotlin.services.eks.model.EksAnywhereSubscriptionTerm? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.eks.model.EksAnywhereSubscription) : this() {
            this.arn = x.arn
            this.autoRenew = x.autoRenew
            this.createdAt = x.createdAt
            this.effectiveDate = x.effectiveDate
            this.expirationDate = x.expirationDate
            this.id = x.id
            this.licenseArns = x.licenseArns
            this.licenseQuantity = x.licenseQuantity
            this.licenseType = x.licenseType
            this.status = x.status
            this.tags = x.tags
            this.term = x.term
        }

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

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

        internal fun correctErrors(): Builder {
            return this
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy