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

commonMain.aws.sdk.kotlin.services.chimesdkmediapipelines.model.CreateMediaCapturePipelineRequest.kt Maven / Gradle / Ivy

The newest version!
// 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
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy