
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: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