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

commonMain.aws.sdk.kotlin.services.lookoutequipment.model.CreateInferenceSchedulerRequest.kt Maven / Gradle / Ivy

// Code generated by smithy-kotlin-codegen. DO NOT EDIT!

package aws.sdk.kotlin.services.lookoutequipment.model

import aws.smithy.kotlin.runtime.SdkDsl

public class CreateInferenceSchedulerRequest private constructor(builder: Builder) {
    /**
     * A unique identifier for the request. If you do not set the client request token, Amazon Lookout for Equipment generates one.
     */
    public val clientToken: kotlin.String? = builder.clientToken
    /**
     * The interval (in minutes) of planned delay at the start of each inference segment. For example, if inference is set to run every ten minutes, the delay is set to five minutes and the time is 09:08. The inference scheduler will wake up at the configured interval (which, without a delay configured, would be 09:10) plus the additional five minute delay time (so 09:15) to check your Amazon S3 bucket. The delay provides a buffer for you to upload data at the same frequency, so that you don't have to stop and restart the scheduler when uploading new data.
     *
     * For more information, see [Understanding the inference process](https://docs.aws.amazon.com/lookout-for-equipment/latest/ug/understanding-inference-process.html).
     */
    public val dataDelayOffsetInMinutes: kotlin.Long? = builder.dataDelayOffsetInMinutes
    /**
     * Specifies configuration information for the input data for the inference scheduler, including delimiter, format, and dataset location.
     */
    public val dataInputConfiguration: aws.sdk.kotlin.services.lookoutequipment.model.InferenceInputConfiguration? = builder.dataInputConfiguration
    /**
     * Specifies configuration information for the output results for the inference scheduler, including the S3 location for the output.
     */
    public val dataOutputConfiguration: aws.sdk.kotlin.services.lookoutequipment.model.InferenceOutputConfiguration? = builder.dataOutputConfiguration
    /**
     * How often data is uploaded to the source Amazon S3 bucket for the input data. The value chosen is the length of time between data uploads. For instance, if you select 5 minutes, Amazon Lookout for Equipment will upload the real-time data to the source bucket once every 5 minutes. This frequency also determines how often Amazon Lookout for Equipment runs inference on your data.
     *
     * For more information, see [Understanding the inference process](https://docs.aws.amazon.com/lookout-for-equipment/latest/ug/understanding-inference-process.html).
     */
    public val dataUploadFrequency: aws.sdk.kotlin.services.lookoutequipment.model.DataUploadFrequency? = builder.dataUploadFrequency
    /**
     * The name of the inference scheduler being created.
     */
    public val inferenceSchedulerName: kotlin.String? = builder.inferenceSchedulerName
    /**
     * The name of the previously trained machine learning model being used to create the inference scheduler.
     */
    public val modelName: kotlin.String? = builder.modelName
    /**
     * The Amazon Resource Name (ARN) of a role with permission to access the data source being used for the inference.
     */
    public val roleArn: kotlin.String? = builder.roleArn
    /**
     * Provides the identifier of the KMS key used to encrypt inference scheduler data by Amazon Lookout for Equipment.
     */
    public val serverSideKmsKeyId: kotlin.String? = builder.serverSideKmsKeyId
    /**
     * Any tags associated with the inference scheduler.
     */
    public val tags: List? = builder.tags

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

    override fun toString(): kotlin.String = buildString {
        append("CreateInferenceSchedulerRequest(")
        append("clientToken=$clientToken,")
        append("dataDelayOffsetInMinutes=$dataDelayOffsetInMinutes,")
        append("dataInputConfiguration=$dataInputConfiguration,")
        append("dataOutputConfiguration=$dataOutputConfiguration,")
        append("dataUploadFrequency=$dataUploadFrequency,")
        append("inferenceSchedulerName=$inferenceSchedulerName,")
        append("modelName=$modelName,")
        append("roleArn=$roleArn,")
        append("serverSideKmsKeyId=$serverSideKmsKeyId,")
        append("tags=$tags")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = clientToken?.hashCode() ?: 0
        result = 31 * result + (dataDelayOffsetInMinutes?.hashCode() ?: 0)
        result = 31 * result + (dataInputConfiguration?.hashCode() ?: 0)
        result = 31 * result + (dataOutputConfiguration?.hashCode() ?: 0)
        result = 31 * result + (dataUploadFrequency?.hashCode() ?: 0)
        result = 31 * result + (inferenceSchedulerName?.hashCode() ?: 0)
        result = 31 * result + (modelName?.hashCode() ?: 0)
        result = 31 * result + (roleArn?.hashCode() ?: 0)
        result = 31 * result + (serverSideKmsKeyId?.hashCode() ?: 0)
        result = 31 * result + (tags?.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 CreateInferenceSchedulerRequest

        if (clientToken != other.clientToken) return false
        if (dataDelayOffsetInMinutes != other.dataDelayOffsetInMinutes) return false
        if (dataInputConfiguration != other.dataInputConfiguration) return false
        if (dataOutputConfiguration != other.dataOutputConfiguration) return false
        if (dataUploadFrequency != other.dataUploadFrequency) return false
        if (inferenceSchedulerName != other.inferenceSchedulerName) return false
        if (modelName != other.modelName) return false
        if (roleArn != other.roleArn) return false
        if (serverSideKmsKeyId != other.serverSideKmsKeyId) return false
        if (tags != other.tags) return false

        return true
    }

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

    @SdkDsl
    public class Builder {
        /**
         * A unique identifier for the request. If you do not set the client request token, Amazon Lookout for Equipment generates one.
         */
        public var clientToken: kotlin.String? = null
        /**
         * The interval (in minutes) of planned delay at the start of each inference segment. For example, if inference is set to run every ten minutes, the delay is set to five minutes and the time is 09:08. The inference scheduler will wake up at the configured interval (which, without a delay configured, would be 09:10) plus the additional five minute delay time (so 09:15) to check your Amazon S3 bucket. The delay provides a buffer for you to upload data at the same frequency, so that you don't have to stop and restart the scheduler when uploading new data.
         *
         * For more information, see [Understanding the inference process](https://docs.aws.amazon.com/lookout-for-equipment/latest/ug/understanding-inference-process.html).
         */
        public var dataDelayOffsetInMinutes: kotlin.Long? = null
        /**
         * Specifies configuration information for the input data for the inference scheduler, including delimiter, format, and dataset location.
         */
        public var dataInputConfiguration: aws.sdk.kotlin.services.lookoutequipment.model.InferenceInputConfiguration? = null
        /**
         * Specifies configuration information for the output results for the inference scheduler, including the S3 location for the output.
         */
        public var dataOutputConfiguration: aws.sdk.kotlin.services.lookoutequipment.model.InferenceOutputConfiguration? = null
        /**
         * How often data is uploaded to the source Amazon S3 bucket for the input data. The value chosen is the length of time between data uploads. For instance, if you select 5 minutes, Amazon Lookout for Equipment will upload the real-time data to the source bucket once every 5 minutes. This frequency also determines how often Amazon Lookout for Equipment runs inference on your data.
         *
         * For more information, see [Understanding the inference process](https://docs.aws.amazon.com/lookout-for-equipment/latest/ug/understanding-inference-process.html).
         */
        public var dataUploadFrequency: aws.sdk.kotlin.services.lookoutequipment.model.DataUploadFrequency? = null
        /**
         * The name of the inference scheduler being created.
         */
        public var inferenceSchedulerName: kotlin.String? = null
        /**
         * The name of the previously trained machine learning model being used to create the inference scheduler.
         */
        public var modelName: kotlin.String? = null
        /**
         * The Amazon Resource Name (ARN) of a role with permission to access the data source being used for the inference.
         */
        public var roleArn: kotlin.String? = null
        /**
         * Provides the identifier of the KMS key used to encrypt inference scheduler data by Amazon Lookout for Equipment.
         */
        public var serverSideKmsKeyId: kotlin.String? = null
        /**
         * Any tags associated with the inference scheduler.
         */
        public var tags: List? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.lookoutequipment.model.CreateInferenceSchedulerRequest) : this() {
            this.clientToken = x.clientToken
            this.dataDelayOffsetInMinutes = x.dataDelayOffsetInMinutes
            this.dataInputConfiguration = x.dataInputConfiguration
            this.dataOutputConfiguration = x.dataOutputConfiguration
            this.dataUploadFrequency = x.dataUploadFrequency
            this.inferenceSchedulerName = x.inferenceSchedulerName
            this.modelName = x.modelName
            this.roleArn = x.roleArn
            this.serverSideKmsKeyId = x.serverSideKmsKeyId
            this.tags = x.tags
        }

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

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

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

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




© 2015 - 2024 Weber Informatics LLC | Privacy Policy