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

aws.sdk.kotlin.services.sagemaker.model.AlgorithmValidationProfile.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



/**
 * Defines a training job and a batch transform job that Amazon SageMaker runs to validate your
 * algorithm.
 * The data provided in the validation profile is made available to your buyers on Amazon Web Services
 * Marketplace.
 */
class AlgorithmValidationProfile private constructor(builder: BuilderImpl) {
    /**
     * The name of the profile for the algorithm. The name must have 1 to 63 characters.
     * Valid characters are a-z, A-Z, 0-9, and - (hyphen).
     */
    val profileName: String? = builder.profileName
    /**
     * The TrainingJobDefinition object that describes the training job that
     * Amazon SageMaker runs to validate your algorithm.
     */
    val trainingJobDefinition: TrainingJobDefinition? = builder.trainingJobDefinition
    /**
     * The TransformJobDefinition object that describes the transform job that
     * Amazon SageMaker runs to validate your algorithm.
     */
    val transformJobDefinition: TransformJobDefinition? = builder.transformJobDefinition

    companion object {
        @JvmStatic
        fun fluentBuilder(): FluentBuilder = BuilderImpl()

        internal fun builder(): DslBuilder = BuilderImpl()

        operator fun invoke(block: DslBuilder.() -> kotlin.Unit): AlgorithmValidationProfile = BuilderImpl().apply(block).build()

    }

    override fun toString(): kotlin.String = buildString {
        append("AlgorithmValidationProfile(")
        append("profileName=$profileName,")
        append("trainingJobDefinition=$trainingJobDefinition,")
        append("transformJobDefinition=$transformJobDefinition)")
    }

    override fun hashCode(): kotlin.Int {
        var result = profileName?.hashCode() ?: 0
        result = 31 * result + (trainingJobDefinition?.hashCode() ?: 0)
        result = 31 * result + (transformJobDefinition?.hashCode() ?: 0)
        return result
    }

    override fun equals(other: kotlin.Any?): kotlin.Boolean {
        if (this === other) return true
        if (javaClass != other?.javaClass) return false

        other as AlgorithmValidationProfile

        if (profileName != other.profileName) return false
        if (trainingJobDefinition != other.trainingJobDefinition) return false
        if (transformJobDefinition != other.transformJobDefinition) return false

        return true
    }

    fun copy(block: DslBuilder.() -> kotlin.Unit = {}): AlgorithmValidationProfile = BuilderImpl(this).apply(block).build()

    interface FluentBuilder {
        fun build(): AlgorithmValidationProfile
        /**
         * The name of the profile for the algorithm. The name must have 1 to 63 characters.
         * Valid characters are a-z, A-Z, 0-9, and - (hyphen).
         */
        fun profileName(profileName: String): FluentBuilder
        /**
         * The TrainingJobDefinition object that describes the training job that
         * Amazon SageMaker runs to validate your algorithm.
         */
        fun trainingJobDefinition(trainingJobDefinition: TrainingJobDefinition): FluentBuilder
        /**
         * The TransformJobDefinition object that describes the transform job that
         * Amazon SageMaker runs to validate your algorithm.
         */
        fun transformJobDefinition(transformJobDefinition: TransformJobDefinition): FluentBuilder
    }

    interface DslBuilder {
        /**
         * The name of the profile for the algorithm. The name must have 1 to 63 characters.
         * Valid characters are a-z, A-Z, 0-9, and - (hyphen).
         */
        var profileName: String?
        /**
         * The TrainingJobDefinition object that describes the training job that
         * Amazon SageMaker runs to validate your algorithm.
         */
        var trainingJobDefinition: TrainingJobDefinition?
        /**
         * The TransformJobDefinition object that describes the transform job that
         * Amazon SageMaker runs to validate your algorithm.
         */
        var transformJobDefinition: TransformJobDefinition?

        fun build(): AlgorithmValidationProfile
        /**
         * construct an [aws.sdk.kotlin.services.sagemaker.model.TrainingJobDefinition] inside the given [block]
         */
        fun trainingJobDefinition(block: TrainingJobDefinition.DslBuilder.() -> kotlin.Unit) {
            this.trainingJobDefinition = TrainingJobDefinition.invoke(block)
        }
        /**
         * construct an [aws.sdk.kotlin.services.sagemaker.model.TransformJobDefinition] inside the given [block]
         */
        fun transformJobDefinition(block: TransformJobDefinition.DslBuilder.() -> kotlin.Unit) {
            this.transformJobDefinition = TransformJobDefinition.invoke(block)
        }
    }

    private class BuilderImpl() : FluentBuilder, DslBuilder {
        override var profileName: String? = null
        override var trainingJobDefinition: TrainingJobDefinition? = null
        override var transformJobDefinition: TransformJobDefinition? = null

        constructor(x: AlgorithmValidationProfile) : this() {
            this.profileName = x.profileName
            this.trainingJobDefinition = x.trainingJobDefinition
            this.transformJobDefinition = x.transformJobDefinition
        }

        override fun build(): AlgorithmValidationProfile = AlgorithmValidationProfile(this)
        override fun profileName(profileName: String): FluentBuilder = apply { this.profileName = profileName }
        override fun trainingJobDefinition(trainingJobDefinition: TrainingJobDefinition): FluentBuilder = apply { this.trainingJobDefinition = trainingJobDefinition }
        override fun transformJobDefinition(transformJobDefinition: TransformJobDefinition): FluentBuilder = apply { this.transformJobDefinition = transformJobDefinition }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy