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

aws.sdk.kotlin.services.sagemaker.model.ResourceConfig.kt Maven / Gradle / Ivy

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

package aws.sdk.kotlin.services.sagemaker.model



/**
 * Describes the resources, including ML compute instances and ML storage volumes, to
 * use for model training.
 */
class ResourceConfig private constructor(builder: Builder) {
    /**
     * The number of ML compute instances to use. For distributed training, provide a
     * value greater than 1.
     */
    val instanceCount: kotlin.Int = builder.instanceCount
    /**
     * The ML compute instance type.
     */
    val instanceType: aws.sdk.kotlin.services.sagemaker.model.TrainingInstanceType? = builder.instanceType
    /**
     * The Amazon Web Services KMS key that Amazon SageMaker uses to encrypt data on the storage volume attached to the ML
     * compute instance(s) that run the training job.
     * Certain Nitro-based instances include local storage, dependent on the instance
     * type. Local storage volumes are encrypted using a hardware module on the instance.
     * You can't request a VolumeKmsKeyId when using an instance type with
     * local storage.
     * For a list of instance types that support local instance storage, see Instance Store Volumes.
     * For more information about local instance storage encryption, see SSD
     * Instance Store Volumes.
     * The VolumeKmsKeyId can be in any of the following formats:
     * // KMS Key ID
     * "1234abcd-12ab-34cd-56ef-1234567890ab"
     * // Amazon Resource Name (ARN) of a KMS Key
     * "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
     */
    val volumeKmsKeyId: kotlin.String? = builder.volumeKmsKeyId
    /**
     * The size of the ML storage volume that you want to provision.
     * ML storage volumes store model artifacts and incremental states. Training
     * algorithms might also use the ML storage volume for scratch space. If you want to store
     * the training data in the ML storage volume, choose File as the
     * TrainingInputMode in the algorithm specification.
     * You must specify sufficient ML storage for your scenario.
     * Amazon SageMaker supports only the General Purpose SSD (gp2) ML storage volume type.
     * Certain Nitro-based instances include local storage with a fixed total size,
     * dependent on the instance type. When using these instances for training, Amazon SageMaker mounts
     * the local instance storage instead of Amazon EBS gp2 storage. You can't request a
     * VolumeSizeInGB greater than the total size of the local instance
     * storage.
     * For a list of instance types that support local instance storage, including the
     * total size per instance type, see Instance Store Volumes.
     */
    val volumeSizeInGb: kotlin.Int = builder.volumeSizeInGb

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

    override fun toString(): kotlin.String = buildString {
        append("ResourceConfig(")
        append("instanceCount=$instanceCount,")
        append("instanceType=$instanceType,")
        append("volumeKmsKeyId=$volumeKmsKeyId,")
        append("volumeSizeInGb=$volumeSizeInGb)")
    }

    override fun hashCode(): kotlin.Int {
        var result = instanceCount
        result = 31 * result + (instanceType?.hashCode() ?: 0)
        result = 31 * result + (volumeKmsKeyId?.hashCode() ?: 0)
        result = 31 * result + (volumeSizeInGb)
        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 ResourceConfig

        if (instanceCount != other.instanceCount) return false
        if (instanceType != other.instanceType) return false
        if (volumeKmsKeyId != other.volumeKmsKeyId) return false
        if (volumeSizeInGb != other.volumeSizeInGb) return false

        return true
    }

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

    class Builder {
        /**
         * The number of ML compute instances to use. For distributed training, provide a
         * value greater than 1.
         */
        var instanceCount: kotlin.Int = 0
        /**
         * The ML compute instance type.
         */
        var instanceType: aws.sdk.kotlin.services.sagemaker.model.TrainingInstanceType? = null
        /**
         * The Amazon Web Services KMS key that Amazon SageMaker uses to encrypt data on the storage volume attached to the ML
         * compute instance(s) that run the training job.
         * Certain Nitro-based instances include local storage, dependent on the instance
         * type. Local storage volumes are encrypted using a hardware module on the instance.
         * You can't request a VolumeKmsKeyId when using an instance type with
         * local storage.
         * For a list of instance types that support local instance storage, see Instance Store Volumes.
         * For more information about local instance storage encryption, see SSD
         * Instance Store Volumes.
         * The VolumeKmsKeyId can be in any of the following formats:
         * // KMS Key ID
         * "1234abcd-12ab-34cd-56ef-1234567890ab"
         * // Amazon Resource Name (ARN) of a KMS Key
         * "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
         */
        var volumeKmsKeyId: kotlin.String? = null
        /**
         * The size of the ML storage volume that you want to provision.
         * ML storage volumes store model artifacts and incremental states. Training
         * algorithms might also use the ML storage volume for scratch space. If you want to store
         * the training data in the ML storage volume, choose File as the
         * TrainingInputMode in the algorithm specification.
         * You must specify sufficient ML storage for your scenario.
         * Amazon SageMaker supports only the General Purpose SSD (gp2) ML storage volume type.
         * Certain Nitro-based instances include local storage with a fixed total size,
         * dependent on the instance type. When using these instances for training, Amazon SageMaker mounts
         * the local instance storage instead of Amazon EBS gp2 storage. You can't request a
         * VolumeSizeInGB greater than the total size of the local instance
         * storage.
         * For a list of instance types that support local instance storage, including the
         * total size per instance type, see Instance Store Volumes.
         */
        var volumeSizeInGb: kotlin.Int = 0

        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.sagemaker.model.ResourceConfig) : this() {
            this.instanceCount = x.instanceCount
            this.instanceType = x.instanceType
            this.volumeKmsKeyId = x.volumeKmsKeyId
            this.volumeSizeInGb = x.volumeSizeInGb
        }

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy