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

commonMain.aws.sdk.kotlin.services.emrcontainers.model.SecurityConfiguration.kt Maven / Gradle / Ivy

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

package aws.sdk.kotlin.services.emrcontainers.model

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

/**
 * Inputs related to the security configuration. Security configurations in Amazon EMR on EKS are templates for different security setups. You can use security configurations to configure the Lake Formation integration setup. You can also create a security configuration to re-use a security setup each time you create a virtual cluster.
 */
public class SecurityConfiguration private constructor(builder: Builder) {
    /**
     * The ARN (Amazon Resource Name) of the security configuration.
     */
    public val arn: kotlin.String? = builder.arn
    /**
     * The date and time that the job run was created.
     */
    public val createdAt: aws.smithy.kotlin.runtime.time.Instant? = builder.createdAt
    /**
     * The user who created the job run.
     */
    public val createdBy: kotlin.String? = builder.createdBy
    /**
     * The ID of the security configuration.
     */
    public val id: kotlin.String? = builder.id
    /**
     * The name of the security configuration.
     */
    public val name: kotlin.String? = builder.name
    /**
     * Security configuration inputs for the request.
     */
    public val securityConfigurationData: aws.sdk.kotlin.services.emrcontainers.model.SecurityConfigurationData? = builder.securityConfigurationData
    /**
     * The tags to assign to the security configuration.
     */
    public val tags: Map? = builder.tags

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

    override fun toString(): kotlin.String = buildString {
        append("SecurityConfiguration(")
        append("arn=$arn,")
        append("createdAt=$createdAt,")
        append("createdBy=$createdBy,")
        append("id=$id,")
        append("name=$name,")
        append("securityConfigurationData=$securityConfigurationData,")
        append("tags=$tags")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = arn?.hashCode() ?: 0
        result = 31 * result + (createdAt?.hashCode() ?: 0)
        result = 31 * result + (createdBy?.hashCode() ?: 0)
        result = 31 * result + (id?.hashCode() ?: 0)
        result = 31 * result + (name?.hashCode() ?: 0)
        result = 31 * result + (securityConfigurationData?.hashCode() ?: 0)
        result = 31 * result + (tags?.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 SecurityConfiguration

        if (arn != other.arn) return false
        if (createdAt != other.createdAt) return false
        if (createdBy != other.createdBy) return false
        if (id != other.id) return false
        if (name != other.name) return false
        if (securityConfigurationData != other.securityConfigurationData) return false
        if (tags != other.tags) return false

        return true
    }

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

    @SdkDsl
    public class Builder {
        /**
         * The ARN (Amazon Resource Name) of the security configuration.
         */
        public var arn: kotlin.String? = null
        /**
         * The date and time that the job run was created.
         */
        public var createdAt: aws.smithy.kotlin.runtime.time.Instant? = null
        /**
         * The user who created the job run.
         */
        public var createdBy: kotlin.String? = null
        /**
         * The ID of the security configuration.
         */
        public var id: kotlin.String? = null
        /**
         * The name of the security configuration.
         */
        public var name: kotlin.String? = null
        /**
         * Security configuration inputs for the request.
         */
        public var securityConfigurationData: aws.sdk.kotlin.services.emrcontainers.model.SecurityConfigurationData? = null
        /**
         * The tags to assign to the security configuration.
         */
        public var tags: Map? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.emrcontainers.model.SecurityConfiguration) : this() {
            this.arn = x.arn
            this.createdAt = x.createdAt
            this.createdBy = x.createdBy
            this.id = x.id
            this.name = x.name
            this.securityConfigurationData = x.securityConfigurationData
            this.tags = x.tags
        }

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

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

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy