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