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

// 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:account ID: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:account ID: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