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

aws.sdk.kotlin.services.transcribe.model.StartCallAnalyticsJobRequest.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.transcribe.model



class StartCallAnalyticsJobRequest private constructor(builder: Builder) {
    /**
     * The name of the call analytics job. You can't use the string "." or ".." by themselves as
     * the job name. The name must also be unique within an Amazon Web Services account. If you
     * try to create a call analytics job with the same name as a previous call analytics job, you get
     * a ConflictException error.
     */
    val callAnalyticsJobName: kotlin.String? = builder.callAnalyticsJobName
    /**
     * When you start a call analytics job, you must pass an array that maps the agent and the
     * customer to specific audio channels. The values you can assign to a channel are 0 and 1. The
     * agent and the customer must each have their own channel. You can't assign more than one
     * channel to an agent or customer.
     */
    val channelDefinitions: List? = builder.channelDefinitions
    /**
     * The Amazon Resource Name (ARN) of a role that has access to the S3 bucket that
     * contains your input files. Amazon Transcribe assumes this role to read queued audio files. If you have
     * specified an output S3 bucket for your transcription results, this role should have access to
     * the output bucket as well.
     */
    val dataAccessRoleArn: kotlin.String? = builder.dataAccessRoleArn
    /**
     * Describes the input media file in a transcription request.
     */
    val media: aws.sdk.kotlin.services.transcribe.model.Media? = builder.media
    /**
     * The Amazon Resource Name (ARN) of the Amazon Web Services Key Management Service
     * key used to encrypt the output of the call analytics job. The user calling the
     * operation must have permission to use the
     * specified KMS key.
     * You use either of the following to identify an Amazon Web Services KMS key in the current
     * account:
     *
     *
     * KMS Key ID: "1234abcd-12ab-34cd-56ef-1234567890ab"
     *
     * KMS Key Alias: "alias/ExampleAlias"
     *
     *
     * You can use either of the following to identify a KMS key in the current account or
     * another account:
     *
     *
     * Amazon Resource Name (ARN) of a KMS key in the current account or
     * another account:
     * "arn:aws:kms:region:account ID:key/1234abcd-12ab-34cd-56ef1234567890ab"
     *
     * ARN of a KMS Key Alias:
     * "arn:aws:kms:region:accountID:alias/ExampleAlias"
     *
     *
     * If you don't specify an encryption key, the output of the call analytics job is encrypted
     * with the default Amazon S3 key (SSE-S3).
     * If you specify a KMS key to encrypt your output, you must also specify an output location
     * in the OutputLocation parameter.
     */
    val outputEncryptionKmsKeyId: kotlin.String? = builder.outputEncryptionKmsKeyId
    /**
     * The Amazon S3 location where the output of the call analytics job is stored. You can
     * provide the following location types to store the output of call analytics job:
     *
     *
     * s3://DOC-EXAMPLE-BUCKET1
     * If you specify a bucket, Amazon Transcribe saves the output of the analytics job as a JSON file
     * at the root level of the bucket.
     *
     * s3://DOC-EXAMPLE-BUCKET1/folder/
     * f you specify a path, Amazon Transcribe saves the output of the analytics job as
     * s3://DOC-EXAMPLE-BUCKET1/folder/your-transcription-job-name.json.
     * If you specify a folder, you must provide a trailing slash.
     *
     * s3://DOC-EXAMPLE-BUCKET1/folder/filename.json.
     * If you provide a path that has the filename specified, Amazon Transcribe saves the output of
     * the analytics job as s3://DOC-EXAMPLEBUCKET1/folder/filename.json.
     *
     *
     * You can specify an Amazon Web Services Key Management Service (KMS) key to encrypt
     * the output of our analytics job using the OutputEncryptionKMSKeyId parameter.
     * If you don't specify a KMS key, Amazon Transcribe uses the default Amazon S3 key for server-side encryption
     * of the analytics job output that is placed in your S3 bucket.
     */
    val outputLocation: kotlin.String? = builder.outputLocation
    /**
     * A Settings object that provides optional settings for a call analytics
     * job.
     */
    val settings: aws.sdk.kotlin.services.transcribe.model.CallAnalyticsJobSettings? = builder.settings

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

    override fun toString(): kotlin.String = buildString {
        append("StartCallAnalyticsJobRequest(")
        append("callAnalyticsJobName=$callAnalyticsJobName,")
        append("channelDefinitions=$channelDefinitions,")
        append("dataAccessRoleArn=$dataAccessRoleArn,")
        append("media=$media,")
        append("outputEncryptionKmsKeyId=$outputEncryptionKmsKeyId,")
        append("outputLocation=$outputLocation,")
        append("settings=$settings)")
    }

    override fun hashCode(): kotlin.Int {
        var result = callAnalyticsJobName?.hashCode() ?: 0
        result = 31 * result + (channelDefinitions?.hashCode() ?: 0)
        result = 31 * result + (dataAccessRoleArn?.hashCode() ?: 0)
        result = 31 * result + (media?.hashCode() ?: 0)
        result = 31 * result + (outputEncryptionKmsKeyId?.hashCode() ?: 0)
        result = 31 * result + (outputLocation?.hashCode() ?: 0)
        result = 31 * result + (settings?.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 StartCallAnalyticsJobRequest

        if (callAnalyticsJobName != other.callAnalyticsJobName) return false
        if (channelDefinitions != other.channelDefinitions) return false
        if (dataAccessRoleArn != other.dataAccessRoleArn) return false
        if (media != other.media) return false
        if (outputEncryptionKmsKeyId != other.outputEncryptionKmsKeyId) return false
        if (outputLocation != other.outputLocation) return false
        if (settings != other.settings) return false

        return true
    }

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

    class Builder {
        /**
         * The name of the call analytics job. You can't use the string "." or ".." by themselves as
         * the job name. The name must also be unique within an Amazon Web Services account. If you
         * try to create a call analytics job with the same name as a previous call analytics job, you get
         * a ConflictException error.
         */
        var callAnalyticsJobName: kotlin.String? = null
        /**
         * When you start a call analytics job, you must pass an array that maps the agent and the
         * customer to specific audio channels. The values you can assign to a channel are 0 and 1. The
         * agent and the customer must each have their own channel. You can't assign more than one
         * channel to an agent or customer.
         */
        var channelDefinitions: List? = null
        /**
         * The Amazon Resource Name (ARN) of a role that has access to the S3 bucket that
         * contains your input files. Amazon Transcribe assumes this role to read queued audio files. If you have
         * specified an output S3 bucket for your transcription results, this role should have access to
         * the output bucket as well.
         */
        var dataAccessRoleArn: kotlin.String? = null
        /**
         * Describes the input media file in a transcription request.
         */
        var media: aws.sdk.kotlin.services.transcribe.model.Media? = null
        /**
         * The Amazon Resource Name (ARN) of the Amazon Web Services Key Management Service
         * key used to encrypt the output of the call analytics job. The user calling the
         * operation must have permission to use the
         * specified KMS key.
         * You use either of the following to identify an Amazon Web Services KMS key in the current
         * account:
         *
         *
         * KMS Key ID: "1234abcd-12ab-34cd-56ef-1234567890ab"
         *
         * KMS Key Alias: "alias/ExampleAlias"
         *
         *
         * You can use either of the following to identify a KMS key in the current account or
         * another account:
         *
         *
         * Amazon Resource Name (ARN) of a KMS key in the current account or
         * another account:
         * "arn:aws:kms:region:account ID:key/1234abcd-12ab-34cd-56ef1234567890ab"
         *
         * ARN of a KMS Key Alias:
         * "arn:aws:kms:region:accountID:alias/ExampleAlias"
         *
         *
         * If you don't specify an encryption key, the output of the call analytics job is encrypted
         * with the default Amazon S3 key (SSE-S3).
         * If you specify a KMS key to encrypt your output, you must also specify an output location
         * in the OutputLocation parameter.
         */
        var outputEncryptionKmsKeyId: kotlin.String? = null
        /**
         * The Amazon S3 location where the output of the call analytics job is stored. You can
         * provide the following location types to store the output of call analytics job:
         *
         *
         * s3://DOC-EXAMPLE-BUCKET1
         * If you specify a bucket, Amazon Transcribe saves the output of the analytics job as a JSON file
         * at the root level of the bucket.
         *
         * s3://DOC-EXAMPLE-BUCKET1/folder/
         * f you specify a path, Amazon Transcribe saves the output of the analytics job as
         * s3://DOC-EXAMPLE-BUCKET1/folder/your-transcription-job-name.json.
         * If you specify a folder, you must provide a trailing slash.
         *
         * s3://DOC-EXAMPLE-BUCKET1/folder/filename.json.
         * If you provide a path that has the filename specified, Amazon Transcribe saves the output of
         * the analytics job as s3://DOC-EXAMPLEBUCKET1/folder/filename.json.
         *
         *
         * You can specify an Amazon Web Services Key Management Service (KMS) key to encrypt
         * the output of our analytics job using the OutputEncryptionKMSKeyId parameter.
         * If you don't specify a KMS key, Amazon Transcribe uses the default Amazon S3 key for server-side encryption
         * of the analytics job output that is placed in your S3 bucket.
         */
        var outputLocation: kotlin.String? = null
        /**
         * A Settings object that provides optional settings for a call analytics
         * job.
         */
        var settings: aws.sdk.kotlin.services.transcribe.model.CallAnalyticsJobSettings? = null

        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.transcribe.model.StartCallAnalyticsJobRequest) : this() {
            this.callAnalyticsJobName = x.callAnalyticsJobName
            this.channelDefinitions = x.channelDefinitions
            this.dataAccessRoleArn = x.dataAccessRoleArn
            this.media = x.media
            this.outputEncryptionKmsKeyId = x.outputEncryptionKmsKeyId
            this.outputLocation = x.outputLocation
            this.settings = x.settings
        }

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

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

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy