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

commonMain.aws.sdk.kotlin.services.iotanalytics.model.ContainerDatasetAction.kt Maven / Gradle / Ivy

There is a newer version: 1.3.34
Show newest version
// Code generated by smithy-kotlin-codegen. DO NOT EDIT!

package aws.sdk.kotlin.services.iotanalytics.model

import aws.smithy.kotlin.runtime.SdkDsl

/**
 * Information required to run the `containerAction` to produce dataset contents.
 */
public class ContainerDatasetAction private constructor(builder: Builder) {
    /**
     * The ARN of the role that gives permission to the system to access required resources to run the `containerAction`. This includes, at minimum, permission to retrieve the dataset contents that are the input to the containerized application.
     */
    public val executionRoleArn: kotlin.String = requireNotNull(builder.executionRoleArn) { "A non-null value must be provided for executionRoleArn" }
    /**
     * The ARN of the Docker container stored in your account. The Docker container contains an application and required support libraries and is used to generate dataset contents.
     */
    public val image: kotlin.String = requireNotNull(builder.image) { "A non-null value must be provided for image" }
    /**
     * Configuration of the resource that executes the `containerAction`.
     */
    public val resourceConfiguration: aws.sdk.kotlin.services.iotanalytics.model.ResourceConfiguration? = builder.resourceConfiguration
    /**
     * The values of variables used in the context of the execution of the containerized application (basically, parameters passed to the application). Each variable must have a name and a value given by one of `stringValue`, `datasetContentVersionValue`, or `outputFileUriValue`.
     */
    public val variables: List? = builder.variables

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

    override fun toString(): kotlin.String = buildString {
        append("ContainerDatasetAction(")
        append("executionRoleArn=$executionRoleArn,")
        append("image=$image,")
        append("resourceConfiguration=$resourceConfiguration,")
        append("variables=$variables")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = executionRoleArn.hashCode()
        result = 31 * result + (image.hashCode())
        result = 31 * result + (resourceConfiguration?.hashCode() ?: 0)
        result = 31 * result + (variables?.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 ContainerDatasetAction

        if (executionRoleArn != other.executionRoleArn) return false
        if (image != other.image) return false
        if (resourceConfiguration != other.resourceConfiguration) return false
        if (variables != other.variables) return false

        return true
    }

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

    @SdkDsl
    public class Builder {
        /**
         * The ARN of the role that gives permission to the system to access required resources to run the `containerAction`. This includes, at minimum, permission to retrieve the dataset contents that are the input to the containerized application.
         */
        public var executionRoleArn: kotlin.String? = null
        /**
         * The ARN of the Docker container stored in your account. The Docker container contains an application and required support libraries and is used to generate dataset contents.
         */
        public var image: kotlin.String? = null
        /**
         * Configuration of the resource that executes the `containerAction`.
         */
        public var resourceConfiguration: aws.sdk.kotlin.services.iotanalytics.model.ResourceConfiguration? = null
        /**
         * The values of variables used in the context of the execution of the containerized application (basically, parameters passed to the application). Each variable must have a name and a value given by one of `stringValue`, `datasetContentVersionValue`, or `outputFileUriValue`.
         */
        public var variables: List? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.iotanalytics.model.ContainerDatasetAction) : this() {
            this.executionRoleArn = x.executionRoleArn
            this.image = x.image
            this.resourceConfiguration = x.resourceConfiguration
            this.variables = x.variables
        }

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

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

        internal fun correctErrors(): Builder {
            if (executionRoleArn == null) executionRoleArn = ""
            if (image == null) image = ""
            return this
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy