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

commonMain.aws.sdk.kotlin.services.rekognition.model.DescribeStreamProcessorResponse.kt Maven / Gradle / Ivy

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

package aws.sdk.kotlin.services.rekognition.model

import aws.smithy.kotlin.runtime.SdkDsl
import aws.smithy.kotlin.runtime.time.Instant

public class DescribeStreamProcessorResponse private constructor(builder: Builder) {
    /**
     * Date and time the stream processor was created
     */
    public val creationTimestamp: aws.smithy.kotlin.runtime.time.Instant? = builder.creationTimestamp
    /**
     * Shows whether you are sharing data with Rekognition to improve model performance. You can choose this option at the account level or on a per-stream basis. Note that if you opt out at the account level this setting is ignored on individual streams.
     */
    public val dataSharingPreference: aws.sdk.kotlin.services.rekognition.model.StreamProcessorDataSharingPreference? = builder.dataSharingPreference
    /**
     * Kinesis video stream that provides the source streaming video.
     */
    public val input: aws.sdk.kotlin.services.rekognition.model.StreamProcessorInput? = builder.input
    /**
     * The identifier for your AWS Key Management Service key (AWS KMS key). This is an optional parameter for label detection stream processors.
     */
    public val kmsKeyId: kotlin.String? = builder.kmsKeyId
    /**
     * The time, in Unix format, the stream processor was last updated. For example, when the stream processor moves from a running state to a failed state, or when the user starts or stops the stream processor.
     */
    public val lastUpdateTimestamp: aws.smithy.kotlin.runtime.time.Instant? = builder.lastUpdateTimestamp
    /**
     * Name of the stream processor.
     */
    public val name: kotlin.String? = builder.name
    /**
     * The Amazon Simple Notification Service topic to which Amazon Rekognition publishes the object detection results and completion status of a video analysis operation.
     *
     * Amazon Rekognition publishes a notification the first time an object of interest or a person is detected in the video stream. For example, if Amazon Rekognition detects a person at second 2, a pet at second 4, and a person again at second 5, Amazon Rekognition sends 2 object class detected notifications, one for a person at second 2 and one for a pet at second 4.
     *
     * Amazon Rekognition also publishes an an end-of-session notification with a summary when the stream processing session is complete.
     */
    public val notificationChannel: aws.sdk.kotlin.services.rekognition.model.StreamProcessorNotificationChannel? = builder.notificationChannel
    /**
     * Kinesis data stream to which Amazon Rekognition Video puts the analysis results.
     */
    public val output: aws.sdk.kotlin.services.rekognition.model.StreamProcessorOutput? = builder.output
    /**
     * Specifies locations in the frames where Amazon Rekognition checks for objects or people. This is an optional parameter for label detection stream processors.
     */
    public val regionsOfInterest: List? = builder.regionsOfInterest
    /**
     * ARN of the IAM role that allows access to the stream processor.
     */
    public val roleArn: kotlin.String? = builder.roleArn
    /**
     * Input parameters used in a streaming video analyzed by a stream processor. You can use `FaceSearch` to recognize faces in a streaming video, or you can use `ConnectedHome` to detect labels.
     */
    public val settings: aws.sdk.kotlin.services.rekognition.model.StreamProcessorSettings? = builder.settings
    /**
     * Current status of the stream processor.
     */
    public val status: aws.sdk.kotlin.services.rekognition.model.StreamProcessorStatus? = builder.status
    /**
     * Detailed status message about the stream processor.
     */
    public val statusMessage: kotlin.String? = builder.statusMessage
    /**
     * ARN of the stream processor.
     */
    public val streamProcessorArn: kotlin.String? = builder.streamProcessorArn

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

    override fun toString(): kotlin.String = buildString {
        append("DescribeStreamProcessorResponse(")
        append("creationTimestamp=$creationTimestamp,")
        append("dataSharingPreference=$dataSharingPreference,")
        append("input=$input,")
        append("kmsKeyId=$kmsKeyId,")
        append("lastUpdateTimestamp=$lastUpdateTimestamp,")
        append("name=$name,")
        append("notificationChannel=$notificationChannel,")
        append("output=$output,")
        append("regionsOfInterest=$regionsOfInterest,")
        append("roleArn=$roleArn,")
        append("settings=$settings,")
        append("status=$status,")
        append("statusMessage=$statusMessage,")
        append("streamProcessorArn=$streamProcessorArn")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = creationTimestamp?.hashCode() ?: 0
        result = 31 * result + (dataSharingPreference?.hashCode() ?: 0)
        result = 31 * result + (input?.hashCode() ?: 0)
        result = 31 * result + (kmsKeyId?.hashCode() ?: 0)
        result = 31 * result + (lastUpdateTimestamp?.hashCode() ?: 0)
        result = 31 * result + (name?.hashCode() ?: 0)
        result = 31 * result + (notificationChannel?.hashCode() ?: 0)
        result = 31 * result + (output?.hashCode() ?: 0)
        result = 31 * result + (regionsOfInterest?.hashCode() ?: 0)
        result = 31 * result + (roleArn?.hashCode() ?: 0)
        result = 31 * result + (settings?.hashCode() ?: 0)
        result = 31 * result + (status?.hashCode() ?: 0)
        result = 31 * result + (statusMessage?.hashCode() ?: 0)
        result = 31 * result + (streamProcessorArn?.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 DescribeStreamProcessorResponse

        if (creationTimestamp != other.creationTimestamp) return false
        if (dataSharingPreference != other.dataSharingPreference) return false
        if (input != other.input) return false
        if (kmsKeyId != other.kmsKeyId) return false
        if (lastUpdateTimestamp != other.lastUpdateTimestamp) return false
        if (name != other.name) return false
        if (notificationChannel != other.notificationChannel) return false
        if (output != other.output) return false
        if (regionsOfInterest != other.regionsOfInterest) return false
        if (roleArn != other.roleArn) return false
        if (settings != other.settings) return false
        if (status != other.status) return false
        if (statusMessage != other.statusMessage) return false
        if (streamProcessorArn != other.streamProcessorArn) return false

        return true
    }

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

    @SdkDsl
    public class Builder {
        /**
         * Date and time the stream processor was created
         */
        public var creationTimestamp: aws.smithy.kotlin.runtime.time.Instant? = null
        /**
         * Shows whether you are sharing data with Rekognition to improve model performance. You can choose this option at the account level or on a per-stream basis. Note that if you opt out at the account level this setting is ignored on individual streams.
         */
        public var dataSharingPreference: aws.sdk.kotlin.services.rekognition.model.StreamProcessorDataSharingPreference? = null
        /**
         * Kinesis video stream that provides the source streaming video.
         */
        public var input: aws.sdk.kotlin.services.rekognition.model.StreamProcessorInput? = null
        /**
         * The identifier for your AWS Key Management Service key (AWS KMS key). This is an optional parameter for label detection stream processors.
         */
        public var kmsKeyId: kotlin.String? = null
        /**
         * The time, in Unix format, the stream processor was last updated. For example, when the stream processor moves from a running state to a failed state, or when the user starts or stops the stream processor.
         */
        public var lastUpdateTimestamp: aws.smithy.kotlin.runtime.time.Instant? = null
        /**
         * Name of the stream processor.
         */
        public var name: kotlin.String? = null
        /**
         * The Amazon Simple Notification Service topic to which Amazon Rekognition publishes the object detection results and completion status of a video analysis operation.
         *
         * Amazon Rekognition publishes a notification the first time an object of interest or a person is detected in the video stream. For example, if Amazon Rekognition detects a person at second 2, a pet at second 4, and a person again at second 5, Amazon Rekognition sends 2 object class detected notifications, one for a person at second 2 and one for a pet at second 4.
         *
         * Amazon Rekognition also publishes an an end-of-session notification with a summary when the stream processing session is complete.
         */
        public var notificationChannel: aws.sdk.kotlin.services.rekognition.model.StreamProcessorNotificationChannel? = null
        /**
         * Kinesis data stream to which Amazon Rekognition Video puts the analysis results.
         */
        public var output: aws.sdk.kotlin.services.rekognition.model.StreamProcessorOutput? = null
        /**
         * Specifies locations in the frames where Amazon Rekognition checks for objects or people. This is an optional parameter for label detection stream processors.
         */
        public var regionsOfInterest: List? = null
        /**
         * ARN of the IAM role that allows access to the stream processor.
         */
        public var roleArn: kotlin.String? = null
        /**
         * Input parameters used in a streaming video analyzed by a stream processor. You can use `FaceSearch` to recognize faces in a streaming video, or you can use `ConnectedHome` to detect labels.
         */
        public var settings: aws.sdk.kotlin.services.rekognition.model.StreamProcessorSettings? = null
        /**
         * Current status of the stream processor.
         */
        public var status: aws.sdk.kotlin.services.rekognition.model.StreamProcessorStatus? = null
        /**
         * Detailed status message about the stream processor.
         */
        public var statusMessage: kotlin.String? = null
        /**
         * ARN of the stream processor.
         */
        public var streamProcessorArn: kotlin.String? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.rekognition.model.DescribeStreamProcessorResponse) : this() {
            this.creationTimestamp = x.creationTimestamp
            this.dataSharingPreference = x.dataSharingPreference
            this.input = x.input
            this.kmsKeyId = x.kmsKeyId
            this.lastUpdateTimestamp = x.lastUpdateTimestamp
            this.name = x.name
            this.notificationChannel = x.notificationChannel
            this.output = x.output
            this.regionsOfInterest = x.regionsOfInterest
            this.roleArn = x.roleArn
            this.settings = x.settings
            this.status = x.status
            this.statusMessage = x.statusMessage
            this.streamProcessorArn = x.streamProcessorArn
        }

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

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

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

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

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

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

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




© 2015 - 2024 Weber Informatics LLC | Privacy Policy