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

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

There is a newer version: 1.3.34
Show newest version
// Code generated by smithy-kotlin-codegen. DO NOT EDIT!

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

import aws.smithy.kotlin.runtime.SdkDsl

/**
 * Settings related to your Microsoft Smooth Streaming output package. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/outputs-file-ABR.html.
 */
public class MsSmoothGroupSettings private constructor(builder: Builder) {
    /**
     * By default, the service creates one .ism Microsoft Smooth Streaming manifest for each Microsoft Smooth Streaming output group in your job. This default manifest references every output in the output group. To create additional manifests that reference a subset of the outputs in the output group, specify a list of them here.
     */
    public val additionalManifests: List? = builder.additionalManifests
    /**
     * COMBINE_DUPLICATE_STREAMS combines identical audio encoding settings across a Microsoft Smooth output group into a single audio stream.
     */
    public val audioDeduplication: aws.sdk.kotlin.services.mediaconvert.model.MsSmoothAudioDeduplication? = builder.audioDeduplication
    /**
     * Use Destination to specify the S3 output location and the output filename base. Destination accepts format identifiers. If you do not specify the base filename in the URI, the service will use the filename of the input file. If your job has multiple inputs, the service uses the filename of the first input file.
     */
    public val destination: kotlin.String? = builder.destination
    /**
     * Settings associated with the destination. Will vary based on the type of destination
     */
    public val destinationSettings: aws.sdk.kotlin.services.mediaconvert.model.DestinationSettings? = builder.destinationSettings
    /**
     * If you are using DRM, set DRM System to specify the value SpekeKeyProvider.
     */
    public val encryption: aws.sdk.kotlin.services.mediaconvert.model.MsSmoothEncryptionSettings? = builder.encryption
    /**
     * Specify how you want MediaConvert to determine the fragment length. Choose Exact to have the encoder use the exact length that you specify with the setting Fragment length. This might result in extra I-frames. Choose Multiple of GOP to have the encoder round up the segment lengths to match the next GOP boundary.
     */
    public val fragmentLength: kotlin.Int? = builder.fragmentLength
    /**
     * Specify how you want MediaConvert to determine the fragment length. Choose Exact to have the encoder use the exact length that you specify with the setting Fragment length. This might result in extra I-frames. Choose Multiple of GOP to have the encoder round up the segment lengths to match the next GOP boundary.
     */
    public val fragmentLengthControl: aws.sdk.kotlin.services.mediaconvert.model.MsSmoothFragmentLengthControl? = builder.fragmentLengthControl
    /**
     * Use Manifest encoding to specify the encoding format for the server and client manifest. Valid options are utf8 and utf16.
     */
    public val manifestEncoding: aws.sdk.kotlin.services.mediaconvert.model.MsSmoothManifestEncoding? = builder.manifestEncoding

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

    override fun toString(): kotlin.String = buildString {
        append("MsSmoothGroupSettings(")
        append("additionalManifests=$additionalManifests,")
        append("audioDeduplication=$audioDeduplication,")
        append("destination=$destination,")
        append("destinationSettings=$destinationSettings,")
        append("encryption=$encryption,")
        append("fragmentLength=$fragmentLength,")
        append("fragmentLengthControl=$fragmentLengthControl,")
        append("manifestEncoding=$manifestEncoding")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = additionalManifests?.hashCode() ?: 0
        result = 31 * result + (audioDeduplication?.hashCode() ?: 0)
        result = 31 * result + (destination?.hashCode() ?: 0)
        result = 31 * result + (destinationSettings?.hashCode() ?: 0)
        result = 31 * result + (encryption?.hashCode() ?: 0)
        result = 31 * result + (fragmentLength ?: 0)
        result = 31 * result + (fragmentLengthControl?.hashCode() ?: 0)
        result = 31 * result + (manifestEncoding?.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 MsSmoothGroupSettings

        if (additionalManifests != other.additionalManifests) return false
        if (audioDeduplication != other.audioDeduplication) return false
        if (destination != other.destination) return false
        if (destinationSettings != other.destinationSettings) return false
        if (encryption != other.encryption) return false
        if (fragmentLength != other.fragmentLength) return false
        if (fragmentLengthControl != other.fragmentLengthControl) return false
        if (manifestEncoding != other.manifestEncoding) return false

        return true
    }

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

    @SdkDsl
    public class Builder {
        /**
         * By default, the service creates one .ism Microsoft Smooth Streaming manifest for each Microsoft Smooth Streaming output group in your job. This default manifest references every output in the output group. To create additional manifests that reference a subset of the outputs in the output group, specify a list of them here.
         */
        public var additionalManifests: List? = null
        /**
         * COMBINE_DUPLICATE_STREAMS combines identical audio encoding settings across a Microsoft Smooth output group into a single audio stream.
         */
        public var audioDeduplication: aws.sdk.kotlin.services.mediaconvert.model.MsSmoothAudioDeduplication? = null
        /**
         * Use Destination to specify the S3 output location and the output filename base. Destination accepts format identifiers. If you do not specify the base filename in the URI, the service will use the filename of the input file. If your job has multiple inputs, the service uses the filename of the first input file.
         */
        public var destination: kotlin.String? = null
        /**
         * Settings associated with the destination. Will vary based on the type of destination
         */
        public var destinationSettings: aws.sdk.kotlin.services.mediaconvert.model.DestinationSettings? = null
        /**
         * If you are using DRM, set DRM System to specify the value SpekeKeyProvider.
         */
        public var encryption: aws.sdk.kotlin.services.mediaconvert.model.MsSmoothEncryptionSettings? = null
        /**
         * Specify how you want MediaConvert to determine the fragment length. Choose Exact to have the encoder use the exact length that you specify with the setting Fragment length. This might result in extra I-frames. Choose Multiple of GOP to have the encoder round up the segment lengths to match the next GOP boundary.
         */
        public var fragmentLength: kotlin.Int? = null
        /**
         * Specify how you want MediaConvert to determine the fragment length. Choose Exact to have the encoder use the exact length that you specify with the setting Fragment length. This might result in extra I-frames. Choose Multiple of GOP to have the encoder round up the segment lengths to match the next GOP boundary.
         */
        public var fragmentLengthControl: aws.sdk.kotlin.services.mediaconvert.model.MsSmoothFragmentLengthControl? = null
        /**
         * Use Manifest encoding to specify the encoding format for the server and client manifest. Valid options are utf8 and utf16.
         */
        public var manifestEncoding: aws.sdk.kotlin.services.mediaconvert.model.MsSmoothManifestEncoding? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.mediaconvert.model.MsSmoothGroupSettings) : this() {
            this.additionalManifests = x.additionalManifests
            this.audioDeduplication = x.audioDeduplication
            this.destination = x.destination
            this.destinationSettings = x.destinationSettings
            this.encryption = x.encryption
            this.fragmentLength = x.fragmentLength
            this.fragmentLengthControl = x.fragmentLengthControl
            this.manifestEncoding = x.manifestEncoding
        }

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

        /**
         * construct an [aws.sdk.kotlin.services.mediaconvert.model.DestinationSettings] inside the given [block]
         */
        public fun destinationSettings(block: aws.sdk.kotlin.services.mediaconvert.model.DestinationSettings.Builder.() -> kotlin.Unit) {
            this.destinationSettings = aws.sdk.kotlin.services.mediaconvert.model.DestinationSettings.invoke(block)
        }

        /**
         * construct an [aws.sdk.kotlin.services.mediaconvert.model.MsSmoothEncryptionSettings] inside the given [block]
         */
        public fun encryption(block: aws.sdk.kotlin.services.mediaconvert.model.MsSmoothEncryptionSettings.Builder.() -> kotlin.Unit) {
            this.encryption = aws.sdk.kotlin.services.mediaconvert.model.MsSmoothEncryptionSettings.invoke(block)
        }

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




© 2015 - 2024 Weber Informatics LLC | Privacy Policy