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

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

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

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



/**
 * With Amazon EMR release version 4.0 and later, the only accepted parameter is the application name. To pass arguments to applications, you use configuration classifications specified using configuration JSON objects. For more information, see [Configuring Applications](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps.html).
 *
 * With earlier Amazon EMR releases, the application is any Amazon or third-party software that you can add to the cluster. This structure contains a list of strings that indicates the software to use with the cluster and accepts a user argument list. Amazon EMR accepts and forwards the argument list to the corresponding installation script as bootstrap action argument.
 */
public class Application private constructor(builder: Builder) {
    /**
     * This option is for advanced users only. This is meta information about third-party applications that third-party vendors use for testing purposes.
     */
    public val additionalInfo: Map? = builder.additionalInfo
    /**
     * Arguments for Amazon EMR to pass to the application.
     */
    public val args: List? = builder.args
    /**
     * The name of the application.
     */
    public val name: kotlin.String? = builder.name
    /**
     * The version of the application.
     */
    public val version: kotlin.String? = builder.version

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

    override fun toString(): kotlin.String = buildString {
        append("Application(")
        append("additionalInfo=$additionalInfo,")
        append("args=$args,")
        append("name=$name,")
        append("version=$version)")
    }

    override fun hashCode(): kotlin.Int {
        var result = additionalInfo?.hashCode() ?: 0
        result = 31 * result + (args?.hashCode() ?: 0)
        result = 31 * result + (name?.hashCode() ?: 0)
        result = 31 * result + (version?.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 Application

        if (additionalInfo != other.additionalInfo) return false
        if (args != other.args) return false
        if (name != other.name) return false
        if (version != other.version) return false

        return true
    }

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

    public class Builder {
        /**
         * This option is for advanced users only. This is meta information about third-party applications that third-party vendors use for testing purposes.
         */
        public var additionalInfo: Map? = null
        /**
         * Arguments for Amazon EMR to pass to the application.
         */
        public var args: List? = null
        /**
         * The name of the application.
         */
        public var name: kotlin.String? = null
        /**
         * The version of the application.
         */
        public var version: kotlin.String? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.emr.model.Application) : this() {
            this.additionalInfo = x.additionalInfo
            this.args = x.args
            this.name = x.name
            this.version = x.version
        }

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy