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

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



class CreateModelQualityJobDefinitionRequest private constructor(builder: BuilderImpl) {
    /**
     * The name of the monitoring job definition.
     */
    val jobDefinitionName: String? = builder.jobDefinitionName
    /**
     * Identifies the resources to deploy for a monitoring job.
     */
    val jobResources: MonitoringResources? = builder.jobResources
    /**
     * The container that runs the monitoring job.
     */
    val modelQualityAppSpecification: ModelQualityAppSpecification? = builder.modelQualityAppSpecification
    /**
     * Specifies the constraints and baselines for the monitoring job.
     */
    val modelQualityBaselineConfig: ModelQualityBaselineConfig? = builder.modelQualityBaselineConfig
    /**
     * A list of the inputs that are monitored. Currently endpoints are supported.
     */
    val modelQualityJobInput: ModelQualityJobInput? = builder.modelQualityJobInput
    /**
     * The output configuration for monitoring jobs.
     */
    val modelQualityJobOutputConfig: MonitoringOutputConfig? = builder.modelQualityJobOutputConfig
    /**
     * Specifies the network configuration for the monitoring job.
     */
    val networkConfig: MonitoringNetworkConfig? = builder.networkConfig
    /**
     * The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to
     * perform tasks on your behalf.
     */
    val roleArn: String? = builder.roleArn
    /**
     * A time limit for how long the monitoring job is allowed to run before stopping.
     */
    val stoppingCondition: MonitoringStoppingCondition? = builder.stoppingCondition
    /**
     * (Optional) An array of key-value pairs. For more information, see Using Cost Allocation Tags in the Amazon Web Services Billing and Cost Management
     * User Guide.
     */
    val tags: List? = builder.tags

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

        internal fun builder(): DslBuilder = BuilderImpl()

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

    }

    override fun toString(): kotlin.String = buildString {
        append("CreateModelQualityJobDefinitionRequest(")
        append("jobDefinitionName=$jobDefinitionName,")
        append("jobResources=$jobResources,")
        append("modelQualityAppSpecification=$modelQualityAppSpecification,")
        append("modelQualityBaselineConfig=$modelQualityBaselineConfig,")
        append("modelQualityJobInput=$modelQualityJobInput,")
        append("modelQualityJobOutputConfig=$modelQualityJobOutputConfig,")
        append("networkConfig=$networkConfig,")
        append("roleArn=$roleArn,")
        append("stoppingCondition=$stoppingCondition,")
        append("tags=$tags)")
    }

    override fun hashCode(): kotlin.Int {
        var result = jobDefinitionName?.hashCode() ?: 0
        result = 31 * result + (jobResources?.hashCode() ?: 0)
        result = 31 * result + (modelQualityAppSpecification?.hashCode() ?: 0)
        result = 31 * result + (modelQualityBaselineConfig?.hashCode() ?: 0)
        result = 31 * result + (modelQualityJobInput?.hashCode() ?: 0)
        result = 31 * result + (modelQualityJobOutputConfig?.hashCode() ?: 0)
        result = 31 * result + (networkConfig?.hashCode() ?: 0)
        result = 31 * result + (roleArn?.hashCode() ?: 0)
        result = 31 * result + (stoppingCondition?.hashCode() ?: 0)
        result = 31 * result + (tags?.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 CreateModelQualityJobDefinitionRequest

        if (jobDefinitionName != other.jobDefinitionName) return false
        if (jobResources != other.jobResources) return false
        if (modelQualityAppSpecification != other.modelQualityAppSpecification) return false
        if (modelQualityBaselineConfig != other.modelQualityBaselineConfig) return false
        if (modelQualityJobInput != other.modelQualityJobInput) return false
        if (modelQualityJobOutputConfig != other.modelQualityJobOutputConfig) return false
        if (networkConfig != other.networkConfig) return false
        if (roleArn != other.roleArn) return false
        if (stoppingCondition != other.stoppingCondition) return false
        if (tags != other.tags) return false

        return true
    }

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

    interface FluentBuilder {
        fun build(): CreateModelQualityJobDefinitionRequest
        /**
         * The name of the monitoring job definition.
         */
        fun jobDefinitionName(jobDefinitionName: String): FluentBuilder
        /**
         * Identifies the resources to deploy for a monitoring job.
         */
        fun jobResources(jobResources: MonitoringResources): FluentBuilder
        /**
         * The container that runs the monitoring job.
         */
        fun modelQualityAppSpecification(modelQualityAppSpecification: ModelQualityAppSpecification): FluentBuilder
        /**
         * Specifies the constraints and baselines for the monitoring job.
         */
        fun modelQualityBaselineConfig(modelQualityBaselineConfig: ModelQualityBaselineConfig): FluentBuilder
        /**
         * A list of the inputs that are monitored. Currently endpoints are supported.
         */
        fun modelQualityJobInput(modelQualityJobInput: ModelQualityJobInput): FluentBuilder
        /**
         * The output configuration for monitoring jobs.
         */
        fun modelQualityJobOutputConfig(modelQualityJobOutputConfig: MonitoringOutputConfig): FluentBuilder
        /**
         * Specifies the network configuration for the monitoring job.
         */
        fun networkConfig(networkConfig: MonitoringNetworkConfig): FluentBuilder
        /**
         * The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to
         * perform tasks on your behalf.
         */
        fun roleArn(roleArn: String): FluentBuilder
        /**
         * A time limit for how long the monitoring job is allowed to run before stopping.
         */
        fun stoppingCondition(stoppingCondition: MonitoringStoppingCondition): FluentBuilder
        /**
         * (Optional) An array of key-value pairs. For more information, see Using Cost Allocation Tags in the Amazon Web Services Billing and Cost Management
         * User Guide.
         */
        fun tags(tags: List): FluentBuilder
    }

    interface DslBuilder {
        /**
         * The name of the monitoring job definition.
         */
        var jobDefinitionName: String?
        /**
         * Identifies the resources to deploy for a monitoring job.
         */
        var jobResources: MonitoringResources?
        /**
         * The container that runs the monitoring job.
         */
        var modelQualityAppSpecification: ModelQualityAppSpecification?
        /**
         * Specifies the constraints and baselines for the monitoring job.
         */
        var modelQualityBaselineConfig: ModelQualityBaselineConfig?
        /**
         * A list of the inputs that are monitored. Currently endpoints are supported.
         */
        var modelQualityJobInput: ModelQualityJobInput?
        /**
         * The output configuration for monitoring jobs.
         */
        var modelQualityJobOutputConfig: MonitoringOutputConfig?
        /**
         * Specifies the network configuration for the monitoring job.
         */
        var networkConfig: MonitoringNetworkConfig?
        /**
         * The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to
         * perform tasks on your behalf.
         */
        var roleArn: String?
        /**
         * A time limit for how long the monitoring job is allowed to run before stopping.
         */
        var stoppingCondition: MonitoringStoppingCondition?
        /**
         * (Optional) An array of key-value pairs. For more information, see Using Cost Allocation Tags in the Amazon Web Services Billing and Cost Management
         * User Guide.
         */
        var tags: List?

        fun build(): CreateModelQualityJobDefinitionRequest
        /**
         * construct an [aws.sdk.kotlin.services.sagemaker.model.MonitoringResources] inside the given [block]
         */
        fun jobResources(block: MonitoringResources.DslBuilder.() -> kotlin.Unit) {
            this.jobResources = MonitoringResources.invoke(block)
        }
        /**
         * construct an [aws.sdk.kotlin.services.sagemaker.model.ModelQualityAppSpecification] inside the given [block]
         */
        fun modelQualityAppSpecification(block: ModelQualityAppSpecification.DslBuilder.() -> kotlin.Unit) {
            this.modelQualityAppSpecification = ModelQualityAppSpecification.invoke(block)
        }
        /**
         * construct an [aws.sdk.kotlin.services.sagemaker.model.ModelQualityBaselineConfig] inside the given [block]
         */
        fun modelQualityBaselineConfig(block: ModelQualityBaselineConfig.DslBuilder.() -> kotlin.Unit) {
            this.modelQualityBaselineConfig = ModelQualityBaselineConfig.invoke(block)
        }
        /**
         * construct an [aws.sdk.kotlin.services.sagemaker.model.ModelQualityJobInput] inside the given [block]
         */
        fun modelQualityJobInput(block: ModelQualityJobInput.DslBuilder.() -> kotlin.Unit) {
            this.modelQualityJobInput = ModelQualityJobInput.invoke(block)
        }
        /**
         * construct an [aws.sdk.kotlin.services.sagemaker.model.MonitoringOutputConfig] inside the given [block]
         */
        fun modelQualityJobOutputConfig(block: MonitoringOutputConfig.DslBuilder.() -> kotlin.Unit) {
            this.modelQualityJobOutputConfig = MonitoringOutputConfig.invoke(block)
        }
        /**
         * construct an [aws.sdk.kotlin.services.sagemaker.model.MonitoringNetworkConfig] inside the given [block]
         */
        fun networkConfig(block: MonitoringNetworkConfig.DslBuilder.() -> kotlin.Unit) {
            this.networkConfig = MonitoringNetworkConfig.invoke(block)
        }
        /**
         * construct an [aws.sdk.kotlin.services.sagemaker.model.MonitoringStoppingCondition] inside the given [block]
         */
        fun stoppingCondition(block: MonitoringStoppingCondition.DslBuilder.() -> kotlin.Unit) {
            this.stoppingCondition = MonitoringStoppingCondition.invoke(block)
        }
    }

    private class BuilderImpl() : FluentBuilder, DslBuilder {
        override var jobDefinitionName: String? = null
        override var jobResources: MonitoringResources? = null
        override var modelQualityAppSpecification: ModelQualityAppSpecification? = null
        override var modelQualityBaselineConfig: ModelQualityBaselineConfig? = null
        override var modelQualityJobInput: ModelQualityJobInput? = null
        override var modelQualityJobOutputConfig: MonitoringOutputConfig? = null
        override var networkConfig: MonitoringNetworkConfig? = null
        override var roleArn: String? = null
        override var stoppingCondition: MonitoringStoppingCondition? = null
        override var tags: List? = null

        constructor(x: CreateModelQualityJobDefinitionRequest) : this() {
            this.jobDefinitionName = x.jobDefinitionName
            this.jobResources = x.jobResources
            this.modelQualityAppSpecification = x.modelQualityAppSpecification
            this.modelQualityBaselineConfig = x.modelQualityBaselineConfig
            this.modelQualityJobInput = x.modelQualityJobInput
            this.modelQualityJobOutputConfig = x.modelQualityJobOutputConfig
            this.networkConfig = x.networkConfig
            this.roleArn = x.roleArn
            this.stoppingCondition = x.stoppingCondition
            this.tags = x.tags
        }

        override fun build(): CreateModelQualityJobDefinitionRequest = CreateModelQualityJobDefinitionRequest(this)
        override fun jobDefinitionName(jobDefinitionName: String): FluentBuilder = apply { this.jobDefinitionName = jobDefinitionName }
        override fun jobResources(jobResources: MonitoringResources): FluentBuilder = apply { this.jobResources = jobResources }
        override fun modelQualityAppSpecification(modelQualityAppSpecification: ModelQualityAppSpecification): FluentBuilder = apply { this.modelQualityAppSpecification = modelQualityAppSpecification }
        override fun modelQualityBaselineConfig(modelQualityBaselineConfig: ModelQualityBaselineConfig): FluentBuilder = apply { this.modelQualityBaselineConfig = modelQualityBaselineConfig }
        override fun modelQualityJobInput(modelQualityJobInput: ModelQualityJobInput): FluentBuilder = apply { this.modelQualityJobInput = modelQualityJobInput }
        override fun modelQualityJobOutputConfig(modelQualityJobOutputConfig: MonitoringOutputConfig): FluentBuilder = apply { this.modelQualityJobOutputConfig = modelQualityJobOutputConfig }
        override fun networkConfig(networkConfig: MonitoringNetworkConfig): FluentBuilder = apply { this.networkConfig = networkConfig }
        override fun roleArn(roleArn: String): FluentBuilder = apply { this.roleArn = roleArn }
        override fun stoppingCondition(stoppingCondition: MonitoringStoppingCondition): FluentBuilder = apply { this.stoppingCondition = stoppingCondition }
        override fun tags(tags: List): FluentBuilder = apply { this.tags = tags }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy