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

commonMain.aws.sdk.kotlin.services.mediaconvert.model.SpekeKeyProviderCmaf.kt Maven / Gradle / Ivy

// Code generated by smithy-kotlin-codegen. DO NOT EDIT!

package aws.sdk.kotlin.services.mediaconvert.model



/**
 * If your output group type is CMAF, use these settings when doing DRM encryption with a SPEKE-compliant key provider. If your output group type is HLS, DASH, or Microsoft Smooth, use the SpekeKeyProvider settings instead.
 */
public class SpekeKeyProviderCmaf private constructor(builder: Builder) {
    /**
     * If you want your key provider to encrypt the content keys that it provides to MediaConvert, set up a certificate with a master key using AWS Certificate Manager. Specify the certificate's Amazon Resource Name (ARN) here.
     */
    public val certificateArn: kotlin.String? = builder.certificateArn
    /**
     * Specify the DRM system IDs that you want signaled in the DASH manifest that MediaConvert creates as part of this CMAF package. The DASH manifest can currently signal up to three system IDs. For more information, see https://dashif.org/identifiers/content_protection/.
     */
    public val dashSignaledSystemIds: List? = builder.dashSignaledSystemIds
    /**
     * Specify the DRM system ID that you want signaled in the HLS manifest that MediaConvert creates as part of this CMAF package. The HLS manifest can currently signal only one system ID. For more information, see https://dashif.org/identifiers/content_protection/.
     */
    public val hlsSignaledSystemIds: List? = builder.hlsSignaledSystemIds
    /**
     * Specify the resource ID that your SPEKE-compliant key provider uses to identify this content.
     */
    public val resourceId: kotlin.String? = builder.resourceId
    /**
     * Specify the URL to the key server that your SPEKE-compliant DRM key provider uses to provide keys for encrypting your content.
     */
    public val url: kotlin.String? = builder.url

    public companion object {
        public operator fun invoke(block: Builder.() -> kotlin.Unit): aws.sdk.kotlin.services.mediaconvert.model.SpekeKeyProviderCmaf = Builder().apply(block).build()
    }

    override fun toString(): kotlin.String = buildString {
        append("SpekeKeyProviderCmaf(")
        append("certificateArn=$certificateArn,")
        append("dashSignaledSystemIds=$dashSignaledSystemIds,")
        append("hlsSignaledSystemIds=$hlsSignaledSystemIds,")
        append("resourceId=$resourceId,")
        append("url=$url")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = certificateArn?.hashCode() ?: 0
        result = 31 * result + (dashSignaledSystemIds?.hashCode() ?: 0)
        result = 31 * result + (hlsSignaledSystemIds?.hashCode() ?: 0)
        result = 31 * result + (resourceId?.hashCode() ?: 0)
        result = 31 * result + (url?.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 SpekeKeyProviderCmaf

        if (certificateArn != other.certificateArn) return false
        if (dashSignaledSystemIds != other.dashSignaledSystemIds) return false
        if (hlsSignaledSystemIds != other.hlsSignaledSystemIds) return false
        if (resourceId != other.resourceId) return false
        if (url != other.url) return false

        return true
    }

    public inline fun copy(block: Builder.() -> kotlin.Unit = {}): aws.sdk.kotlin.services.mediaconvert.model.SpekeKeyProviderCmaf = Builder(this).apply(block).build()

    public class Builder {
        /**
         * If you want your key provider to encrypt the content keys that it provides to MediaConvert, set up a certificate with a master key using AWS Certificate Manager. Specify the certificate's Amazon Resource Name (ARN) here.
         */
        public var certificateArn: kotlin.String? = null
        /**
         * Specify the DRM system IDs that you want signaled in the DASH manifest that MediaConvert creates as part of this CMAF package. The DASH manifest can currently signal up to three system IDs. For more information, see https://dashif.org/identifiers/content_protection/.
         */
        public var dashSignaledSystemIds: List? = null
        /**
         * Specify the DRM system ID that you want signaled in the HLS manifest that MediaConvert creates as part of this CMAF package. The HLS manifest can currently signal only one system ID. For more information, see https://dashif.org/identifiers/content_protection/.
         */
        public var hlsSignaledSystemIds: List? = null
        /**
         * Specify the resource ID that your SPEKE-compliant key provider uses to identify this content.
         */
        public var resourceId: kotlin.String? = null
        /**
         * Specify the URL to the key server that your SPEKE-compliant DRM key provider uses to provide keys for encrypting your content.
         */
        public var url: kotlin.String? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.mediaconvert.model.SpekeKeyProviderCmaf) : this() {
            this.certificateArn = x.certificateArn
            this.dashSignaledSystemIds = x.dashSignaledSystemIds
            this.hlsSignaledSystemIds = x.hlsSignaledSystemIds
            this.resourceId = x.resourceId
            this.url = x.url
        }

        @PublishedApi
        internal fun build(): aws.sdk.kotlin.services.mediaconvert.model.SpekeKeyProviderCmaf = SpekeKeyProviderCmaf(this)

        internal fun correctErrors(): Builder {
            return this
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy