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

commonMain.aws.sdk.kotlin.services.chimesdkmediapipelines.model.MediaInsightsPipelineConfigurationElement.kt Maven / Gradle / Ivy

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

package aws.sdk.kotlin.services.chimesdkmediapipelines.model

import aws.smithy.kotlin.runtime.SdkDsl

/**
 * An element in a media insights pipeline configuration.
 */
public class MediaInsightsPipelineConfigurationElement private constructor(builder: Builder) {
    /**
     * The analytics configuration settings for transcribing audio in a media insights pipeline configuration element.
     */
    public val amazonTranscribeCallAnalyticsProcessorConfiguration: aws.sdk.kotlin.services.chimesdkmediapipelines.model.AmazonTranscribeCallAnalyticsProcessorConfiguration? = builder.amazonTranscribeCallAnalyticsProcessorConfiguration
    /**
     * The transcription processor configuration settings in a media insights pipeline configuration element.
     */
    public val amazonTranscribeProcessorConfiguration: aws.sdk.kotlin.services.chimesdkmediapipelines.model.AmazonTranscribeProcessorConfiguration? = builder.amazonTranscribeProcessorConfiguration
    /**
     * The configuration settings for the Kinesis Data Stream Sink in a media insights pipeline configuration element.
     */
    public val kinesisDataStreamSinkConfiguration: aws.sdk.kotlin.services.chimesdkmediapipelines.model.KinesisDataStreamSinkConfiguration? = builder.kinesisDataStreamSinkConfiguration
    /**
     * The configuration settings for the Amazon Web Services Lambda sink in a media insights pipeline configuration element.
     */
    public val lambdaFunctionSinkConfiguration: aws.sdk.kotlin.services.chimesdkmediapipelines.model.LambdaFunctionSinkConfiguration? = builder.lambdaFunctionSinkConfiguration
    /**
     * The configuration settings for the Amazon S3 recording bucket in a media insights pipeline configuration element.
     */
    public val s3RecordingSinkConfiguration: aws.sdk.kotlin.services.chimesdkmediapipelines.model.S3RecordingSinkConfiguration? = builder.s3RecordingSinkConfiguration
    /**
     * The configuration settings for an SNS topic sink in a media insights pipeline configuration element.
     */
    public val snsTopicSinkConfiguration: aws.sdk.kotlin.services.chimesdkmediapipelines.model.SnsTopicSinkConfiguration? = builder.snsTopicSinkConfiguration
    /**
     * The configuration settings for an SQS queue sink in a media insights pipeline configuration element.
     */
    public val sqsQueueSinkConfiguration: aws.sdk.kotlin.services.chimesdkmediapipelines.model.SqsQueueSinkConfiguration? = builder.sqsQueueSinkConfiguration
    /**
     * The element type.
     */
    public val type: aws.sdk.kotlin.services.chimesdkmediapipelines.model.MediaInsightsPipelineConfigurationElementType = requireNotNull(builder.type) { "A non-null value must be provided for type" }
    /**
     * The voice analytics configuration settings in a media insights pipeline configuration element.
     */
    public val voiceAnalyticsProcessorConfiguration: aws.sdk.kotlin.services.chimesdkmediapipelines.model.VoiceAnalyticsProcessorConfiguration? = builder.voiceAnalyticsProcessorConfiguration
    /**
     * The configuration settings for voice enhancement sink in a media insights pipeline configuration element.
     */
    public val voiceEnhancementSinkConfiguration: aws.sdk.kotlin.services.chimesdkmediapipelines.model.VoiceEnhancementSinkConfiguration? = builder.voiceEnhancementSinkConfiguration

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

    override fun toString(): kotlin.String = buildString {
        append("MediaInsightsPipelineConfigurationElement(")
        append("amazonTranscribeCallAnalyticsProcessorConfiguration=$amazonTranscribeCallAnalyticsProcessorConfiguration,")
        append("amazonTranscribeProcessorConfiguration=$amazonTranscribeProcessorConfiguration,")
        append("kinesisDataStreamSinkConfiguration=$kinesisDataStreamSinkConfiguration,")
        append("lambdaFunctionSinkConfiguration=$lambdaFunctionSinkConfiguration,")
        append("s3RecordingSinkConfiguration=$s3RecordingSinkConfiguration,")
        append("snsTopicSinkConfiguration=$snsTopicSinkConfiguration,")
        append("sqsQueueSinkConfiguration=$sqsQueueSinkConfiguration,")
        append("type=$type,")
        append("voiceAnalyticsProcessorConfiguration=$voiceAnalyticsProcessorConfiguration,")
        append("voiceEnhancementSinkConfiguration=$voiceEnhancementSinkConfiguration")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = amazonTranscribeCallAnalyticsProcessorConfiguration?.hashCode() ?: 0
        result = 31 * result + (amazonTranscribeProcessorConfiguration?.hashCode() ?: 0)
        result = 31 * result + (kinesisDataStreamSinkConfiguration?.hashCode() ?: 0)
        result = 31 * result + (lambdaFunctionSinkConfiguration?.hashCode() ?: 0)
        result = 31 * result + (s3RecordingSinkConfiguration?.hashCode() ?: 0)
        result = 31 * result + (snsTopicSinkConfiguration?.hashCode() ?: 0)
        result = 31 * result + (sqsQueueSinkConfiguration?.hashCode() ?: 0)
        result = 31 * result + (type.hashCode())
        result = 31 * result + (voiceAnalyticsProcessorConfiguration?.hashCode() ?: 0)
        result = 31 * result + (voiceEnhancementSinkConfiguration?.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 MediaInsightsPipelineConfigurationElement

        if (amazonTranscribeCallAnalyticsProcessorConfiguration != other.amazonTranscribeCallAnalyticsProcessorConfiguration) return false
        if (amazonTranscribeProcessorConfiguration != other.amazonTranscribeProcessorConfiguration) return false
        if (kinesisDataStreamSinkConfiguration != other.kinesisDataStreamSinkConfiguration) return false
        if (lambdaFunctionSinkConfiguration != other.lambdaFunctionSinkConfiguration) return false
        if (s3RecordingSinkConfiguration != other.s3RecordingSinkConfiguration) return false
        if (snsTopicSinkConfiguration != other.snsTopicSinkConfiguration) return false
        if (sqsQueueSinkConfiguration != other.sqsQueueSinkConfiguration) return false
        if (type != other.type) return false
        if (voiceAnalyticsProcessorConfiguration != other.voiceAnalyticsProcessorConfiguration) return false
        if (voiceEnhancementSinkConfiguration != other.voiceEnhancementSinkConfiguration) return false

        return true
    }

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

    @SdkDsl
    public class Builder {
        /**
         * The analytics configuration settings for transcribing audio in a media insights pipeline configuration element.
         */
        public var amazonTranscribeCallAnalyticsProcessorConfiguration: aws.sdk.kotlin.services.chimesdkmediapipelines.model.AmazonTranscribeCallAnalyticsProcessorConfiguration? = null
        /**
         * The transcription processor configuration settings in a media insights pipeline configuration element.
         */
        public var amazonTranscribeProcessorConfiguration: aws.sdk.kotlin.services.chimesdkmediapipelines.model.AmazonTranscribeProcessorConfiguration? = null
        /**
         * The configuration settings for the Kinesis Data Stream Sink in a media insights pipeline configuration element.
         */
        public var kinesisDataStreamSinkConfiguration: aws.sdk.kotlin.services.chimesdkmediapipelines.model.KinesisDataStreamSinkConfiguration? = null
        /**
         * The configuration settings for the Amazon Web Services Lambda sink in a media insights pipeline configuration element.
         */
        public var lambdaFunctionSinkConfiguration: aws.sdk.kotlin.services.chimesdkmediapipelines.model.LambdaFunctionSinkConfiguration? = null
        /**
         * The configuration settings for the Amazon S3 recording bucket in a media insights pipeline configuration element.
         */
        public var s3RecordingSinkConfiguration: aws.sdk.kotlin.services.chimesdkmediapipelines.model.S3RecordingSinkConfiguration? = null
        /**
         * The configuration settings for an SNS topic sink in a media insights pipeline configuration element.
         */
        public var snsTopicSinkConfiguration: aws.sdk.kotlin.services.chimesdkmediapipelines.model.SnsTopicSinkConfiguration? = null
        /**
         * The configuration settings for an SQS queue sink in a media insights pipeline configuration element.
         */
        public var sqsQueueSinkConfiguration: aws.sdk.kotlin.services.chimesdkmediapipelines.model.SqsQueueSinkConfiguration? = null
        /**
         * The element type.
         */
        public var type: aws.sdk.kotlin.services.chimesdkmediapipelines.model.MediaInsightsPipelineConfigurationElementType? = null
        /**
         * The voice analytics configuration settings in a media insights pipeline configuration element.
         */
        public var voiceAnalyticsProcessorConfiguration: aws.sdk.kotlin.services.chimesdkmediapipelines.model.VoiceAnalyticsProcessorConfiguration? = null
        /**
         * The configuration settings for voice enhancement sink in a media insights pipeline configuration element.
         */
        public var voiceEnhancementSinkConfiguration: aws.sdk.kotlin.services.chimesdkmediapipelines.model.VoiceEnhancementSinkConfiguration? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.chimesdkmediapipelines.model.MediaInsightsPipelineConfigurationElement) : this() {
            this.amazonTranscribeCallAnalyticsProcessorConfiguration = x.amazonTranscribeCallAnalyticsProcessorConfiguration
            this.amazonTranscribeProcessorConfiguration = x.amazonTranscribeProcessorConfiguration
            this.kinesisDataStreamSinkConfiguration = x.kinesisDataStreamSinkConfiguration
            this.lambdaFunctionSinkConfiguration = x.lambdaFunctionSinkConfiguration
            this.s3RecordingSinkConfiguration = x.s3RecordingSinkConfiguration
            this.snsTopicSinkConfiguration = x.snsTopicSinkConfiguration
            this.sqsQueueSinkConfiguration = x.sqsQueueSinkConfiguration
            this.type = x.type
            this.voiceAnalyticsProcessorConfiguration = x.voiceAnalyticsProcessorConfiguration
            this.voiceEnhancementSinkConfiguration = x.voiceEnhancementSinkConfiguration
        }

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

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

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

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

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

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

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

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

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

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

        internal fun correctErrors(): Builder {
            if (type == null) type = MediaInsightsPipelineConfigurationElementType.SdkUnknown("no value provided")
            return this
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy