commonMain.aws.sdk.kotlin.services.chimesdkmediapipelines.model.CreateMediaCapturePipelineRequest.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of chimesdkmediapipelines-jvm Show documentation
Show all versions of chimesdkmediapipelines-jvm Show documentation
The AWS SDK for Kotlin client for Chime SDK Media Pipelines
// Code generated by smithy-kotlin-codegen. DO NOT EDIT!
package aws.sdk.kotlin.services.chimesdkmediapipelines.model
import aws.smithy.kotlin.runtime.SdkDsl
public class CreateMediaCapturePipelineRequest private constructor(builder: Builder) {
/**
* The configuration for a specified media pipeline. `SourceType` must be `ChimeSdkMeeting`.
*/
public val chimeSdkMeetingConfiguration: aws.sdk.kotlin.services.chimesdkmediapipelines.model.ChimeSdkMeetingConfiguration? = builder.chimeSdkMeetingConfiguration
/**
* The unique identifier for the client request. The token makes the API request idempotent. Use a unique token for each media pipeline request.
*/
public val clientRequestToken: kotlin.String? = builder.clientRequestToken
/**
* The ARN of the sink type.
*/
public val sinkArn: kotlin.String? = builder.sinkArn
/**
* The Amazon Resource Name (ARN) of the sink role to be used with `AwsKmsKeyId` in `SseAwsKeyManagementParams`. Can only interact with `S3Bucket` sink type. The role must belong to the caller’s account and be able to act on behalf of the caller during the API call. All minimum policy permissions requirements for the caller to perform sink-related actions are the same for `SinkIamRoleArn`.
*
* Additionally, the role must have permission to `kms:GenerateDataKey` using KMS key supplied as `AwsKmsKeyId` in `SseAwsKeyManagementParams`. If media concatenation will be required later, the role must also have permission to `kms:Decrypt` for the same KMS key.
*/
public val sinkIamRoleArn: kotlin.String? = builder.sinkIamRoleArn
/**
* Destination type to which the media artifacts are saved. You must use an S3 bucket.
*/
public val sinkType: aws.sdk.kotlin.services.chimesdkmediapipelines.model.MediaPipelineSinkType? = builder.sinkType
/**
* ARN of the source from which the media artifacts are captured.
*/
public val sourceArn: kotlin.String? = builder.sourceArn
/**
* Source type from which the media artifacts are captured. A Chime SDK Meeting is the only supported source.
*/
public val sourceType: aws.sdk.kotlin.services.chimesdkmediapipelines.model.MediaPipelineSourceType? = builder.sourceType
/**
* An object that contains server side encryption parameters to be used by media capture pipeline. The parameters can also be used by media concatenation pipeline taking media capture pipeline as a media source.
*/
public val sseAwsKeyManagementParams: aws.sdk.kotlin.services.chimesdkmediapipelines.model.SseAwsKeyManagementParams? = builder.sseAwsKeyManagementParams
/**
* The tag key-value pairs.
*/
public val tags: List? = builder.tags
public companion object {
public operator fun invoke(block: Builder.() -> kotlin.Unit): aws.sdk.kotlin.services.chimesdkmediapipelines.model.CreateMediaCapturePipelineRequest = Builder().apply(block).build()
}
override fun toString(): kotlin.String = buildString {
append("CreateMediaCapturePipelineRequest(")
append("chimeSdkMeetingConfiguration=$chimeSdkMeetingConfiguration,")
append("clientRequestToken=*** Sensitive Data Redacted ***,")
append("sinkArn=*** Sensitive Data Redacted ***,")
append("sinkIamRoleArn=*** Sensitive Data Redacted ***,")
append("sinkType=$sinkType,")
append("sourceArn=*** Sensitive Data Redacted ***,")
append("sourceType=$sourceType,")
append("sseAwsKeyManagementParams=$sseAwsKeyManagementParams,")
append("tags=$tags")
append(")")
}
override fun hashCode(): kotlin.Int {
var result = chimeSdkMeetingConfiguration?.hashCode() ?: 0
result = 31 * result + (clientRequestToken?.hashCode() ?: 0)
result = 31 * result + (sinkArn?.hashCode() ?: 0)
result = 31 * result + (sinkIamRoleArn?.hashCode() ?: 0)
result = 31 * result + (sinkType?.hashCode() ?: 0)
result = 31 * result + (sourceArn?.hashCode() ?: 0)
result = 31 * result + (sourceType?.hashCode() ?: 0)
result = 31 * result + (sseAwsKeyManagementParams?.hashCode() ?: 0)
result = 31 * result + (tags?.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 CreateMediaCapturePipelineRequest
if (chimeSdkMeetingConfiguration != other.chimeSdkMeetingConfiguration) return false
if (clientRequestToken != other.clientRequestToken) return false
if (sinkArn != other.sinkArn) return false
if (sinkIamRoleArn != other.sinkIamRoleArn) return false
if (sinkType != other.sinkType) return false
if (sourceArn != other.sourceArn) return false
if (sourceType != other.sourceType) return false
if (sseAwsKeyManagementParams != other.sseAwsKeyManagementParams) return false
if (tags != other.tags) return false
return true
}
public inline fun copy(block: Builder.() -> kotlin.Unit = {}): aws.sdk.kotlin.services.chimesdkmediapipelines.model.CreateMediaCapturePipelineRequest = Builder(this).apply(block).build()
@SdkDsl
public class Builder {
/**
* The configuration for a specified media pipeline. `SourceType` must be `ChimeSdkMeeting`.
*/
public var chimeSdkMeetingConfiguration: aws.sdk.kotlin.services.chimesdkmediapipelines.model.ChimeSdkMeetingConfiguration? = null
/**
* The unique identifier for the client request. The token makes the API request idempotent. Use a unique token for each media pipeline request.
*/
public var clientRequestToken: kotlin.String? = null
/**
* The ARN of the sink type.
*/
public var sinkArn: kotlin.String? = null
/**
* The Amazon Resource Name (ARN) of the sink role to be used with `AwsKmsKeyId` in `SseAwsKeyManagementParams`. Can only interact with `S3Bucket` sink type. The role must belong to the caller’s account and be able to act on behalf of the caller during the API call. All minimum policy permissions requirements for the caller to perform sink-related actions are the same for `SinkIamRoleArn`.
*
* Additionally, the role must have permission to `kms:GenerateDataKey` using KMS key supplied as `AwsKmsKeyId` in `SseAwsKeyManagementParams`. If media concatenation will be required later, the role must also have permission to `kms:Decrypt` for the same KMS key.
*/
public var sinkIamRoleArn: kotlin.String? = null
/**
* Destination type to which the media artifacts are saved. You must use an S3 bucket.
*/
public var sinkType: aws.sdk.kotlin.services.chimesdkmediapipelines.model.MediaPipelineSinkType? = null
/**
* ARN of the source from which the media artifacts are captured.
*/
public var sourceArn: kotlin.String? = null
/**
* Source type from which the media artifacts are captured. A Chime SDK Meeting is the only supported source.
*/
public var sourceType: aws.sdk.kotlin.services.chimesdkmediapipelines.model.MediaPipelineSourceType? = null
/**
* An object that contains server side encryption parameters to be used by media capture pipeline. The parameters can also be used by media concatenation pipeline taking media capture pipeline as a media source.
*/
public var sseAwsKeyManagementParams: aws.sdk.kotlin.services.chimesdkmediapipelines.model.SseAwsKeyManagementParams? = null
/**
* The tag key-value pairs.
*/
public var tags: List? = null
@PublishedApi
internal constructor()
@PublishedApi
internal constructor(x: aws.sdk.kotlin.services.chimesdkmediapipelines.model.CreateMediaCapturePipelineRequest) : this() {
this.chimeSdkMeetingConfiguration = x.chimeSdkMeetingConfiguration
this.clientRequestToken = x.clientRequestToken
this.sinkArn = x.sinkArn
this.sinkIamRoleArn = x.sinkIamRoleArn
this.sinkType = x.sinkType
this.sourceArn = x.sourceArn
this.sourceType = x.sourceType
this.sseAwsKeyManagementParams = x.sseAwsKeyManagementParams
this.tags = x.tags
}
@PublishedApi
internal fun build(): aws.sdk.kotlin.services.chimesdkmediapipelines.model.CreateMediaCapturePipelineRequest = CreateMediaCapturePipelineRequest(this)
/**
* construct an [aws.sdk.kotlin.services.chimesdkmediapipelines.model.ChimeSdkMeetingConfiguration] inside the given [block]
*/
public fun chimeSdkMeetingConfiguration(block: aws.sdk.kotlin.services.chimesdkmediapipelines.model.ChimeSdkMeetingConfiguration.Builder.() -> kotlin.Unit) {
this.chimeSdkMeetingConfiguration = aws.sdk.kotlin.services.chimesdkmediapipelines.model.ChimeSdkMeetingConfiguration.invoke(block)
}
/**
* construct an [aws.sdk.kotlin.services.chimesdkmediapipelines.model.SseAwsKeyManagementParams] inside the given [block]
*/
public fun sseAwsKeyManagementParams(block: aws.sdk.kotlin.services.chimesdkmediapipelines.model.SseAwsKeyManagementParams.Builder.() -> kotlin.Unit) {
this.sseAwsKeyManagementParams = aws.sdk.kotlin.services.chimesdkmediapipelines.model.SseAwsKeyManagementParams.invoke(block)
}
internal fun correctErrors(): Builder {
return this
}
}
}