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

commonMain.aws.sdk.kotlin.services.lookoutvision.model.GreengrassConfiguration.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.lookoutvision.model

import aws.smithy.kotlin.runtime.SdkDsl

/**
 * Configuration information for the AWS IoT Greengrass component created in a model packaging job. For more information, see StartModelPackagingJob.
 *
 * You can't specify a component with the same `ComponentName` and `Componentversion` as an existing component with the same component name and component version.
 */
public class GreengrassConfiguration private constructor(builder: Builder) {
    /**
     * Additional compiler options for the Greengrass component. Currently, only NVIDIA Graphics Processing Units (GPU) and CPU accelerators are supported. If you specify `TargetDevice`, don't specify `CompilerOptions`.
     *
     * For more information, see *Compiler options* in the Amazon Lookout for Vision Developer Guide.
     */
    public val compilerOptions: kotlin.String? = builder.compilerOptions
    /**
     * A description for the AWS IoT Greengrass component.
     */
    public val componentDescription: kotlin.String? = builder.componentDescription
    /**
     * A name for the AWS IoT Greengrass component.
     */
    public val componentName: kotlin.String? = builder.componentName
    /**
     * A Version for the AWS IoT Greengrass component. If you don't provide a value, a default value of ` Model Version.0.0` is used.
     */
    public val componentVersion: kotlin.String? = builder.componentVersion
    /**
     * An S3 location in which Lookout for Vision stores the component artifacts.
     */
    public val s3OutputLocation: aws.sdk.kotlin.services.lookoutvision.model.S3Location? = builder.s3OutputLocation
    /**
     * A set of tags (key-value pairs) that you want to attach to the AWS IoT Greengrass component.
     */
    public val tags: List? = builder.tags
    /**
     * The target device for the model. Currently the only supported value is `jetson_xavier`. If you specify `TargetDevice`, you can't specify `TargetPlatform`.
     */
    public val targetDevice: aws.sdk.kotlin.services.lookoutvision.model.TargetDevice? = builder.targetDevice
    /**
     * The target platform for the model. If you specify `TargetPlatform`, you can't specify `TargetDevice`.
     */
    public val targetPlatform: aws.sdk.kotlin.services.lookoutvision.model.TargetPlatform? = builder.targetPlatform

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

    override fun toString(): kotlin.String = buildString {
        append("GreengrassConfiguration(")
        append("compilerOptions=$compilerOptions,")
        append("componentDescription=$componentDescription,")
        append("componentName=$componentName,")
        append("componentVersion=$componentVersion,")
        append("s3OutputLocation=$s3OutputLocation,")
        append("tags=$tags,")
        append("targetDevice=$targetDevice,")
        append("targetPlatform=$targetPlatform")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = compilerOptions?.hashCode() ?: 0
        result = 31 * result + (componentDescription?.hashCode() ?: 0)
        result = 31 * result + (componentName?.hashCode() ?: 0)
        result = 31 * result + (componentVersion?.hashCode() ?: 0)
        result = 31 * result + (s3OutputLocation?.hashCode() ?: 0)
        result = 31 * result + (tags?.hashCode() ?: 0)
        result = 31 * result + (targetDevice?.hashCode() ?: 0)
        result = 31 * result + (targetPlatform?.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 GreengrassConfiguration

        if (compilerOptions != other.compilerOptions) return false
        if (componentDescription != other.componentDescription) return false
        if (componentName != other.componentName) return false
        if (componentVersion != other.componentVersion) return false
        if (s3OutputLocation != other.s3OutputLocation) return false
        if (tags != other.tags) return false
        if (targetDevice != other.targetDevice) return false
        if (targetPlatform != other.targetPlatform) return false

        return true
    }

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

    @SdkDsl
    public class Builder {
        /**
         * Additional compiler options for the Greengrass component. Currently, only NVIDIA Graphics Processing Units (GPU) and CPU accelerators are supported. If you specify `TargetDevice`, don't specify `CompilerOptions`.
         *
         * For more information, see *Compiler options* in the Amazon Lookout for Vision Developer Guide.
         */
        public var compilerOptions: kotlin.String? = null
        /**
         * A description for the AWS IoT Greengrass component.
         */
        public var componentDescription: kotlin.String? = null
        /**
         * A name for the AWS IoT Greengrass component.
         */
        public var componentName: kotlin.String? = null
        /**
         * A Version for the AWS IoT Greengrass component. If you don't provide a value, a default value of ` Model Version.0.0` is used.
         */
        public var componentVersion: kotlin.String? = null
        /**
         * An S3 location in which Lookout for Vision stores the component artifacts.
         */
        public var s3OutputLocation: aws.sdk.kotlin.services.lookoutvision.model.S3Location? = null
        /**
         * A set of tags (key-value pairs) that you want to attach to the AWS IoT Greengrass component.
         */
        public var tags: List? = null
        /**
         * The target device for the model. Currently the only supported value is `jetson_xavier`. If you specify `TargetDevice`, you can't specify `TargetPlatform`.
         */
        public var targetDevice: aws.sdk.kotlin.services.lookoutvision.model.TargetDevice? = null
        /**
         * The target platform for the model. If you specify `TargetPlatform`, you can't specify `TargetDevice`.
         */
        public var targetPlatform: aws.sdk.kotlin.services.lookoutvision.model.TargetPlatform? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.lookoutvision.model.GreengrassConfiguration) : this() {
            this.compilerOptions = x.compilerOptions
            this.componentDescription = x.componentDescription
            this.componentName = x.componentName
            this.componentVersion = x.componentVersion
            this.s3OutputLocation = x.s3OutputLocation
            this.tags = x.tags
            this.targetDevice = x.targetDevice
            this.targetPlatform = x.targetPlatform
        }

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

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

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

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




© 2015 - 2024 Weber Informatics LLC | Privacy Policy