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

commonMain.aws.sdk.kotlin.services.mediapackagevod.model.DashManifest.kt Maven / Gradle / Ivy

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

package aws.sdk.kotlin.services.mediapackagevod.model



/**
 * A DASH manifest configuration.
 */
public class DashManifest private constructor(builder: Builder) {
    /**
     * Determines the position of some tags in the Media Presentation Description (MPD). When set to FULL, elements like SegmentTemplate and ContentProtection are included in each Representation. When set to COMPACT, duplicate elements are combined and presented at the AdaptationSet level.
     */
    public val manifestLayout: aws.sdk.kotlin.services.mediapackagevod.model.ManifestLayout? = builder.manifestLayout
    /**
     * An optional string to include in the name of the manifest.
     */
    public val manifestName: kotlin.String? = builder.manifestName
    /**
     * Minimum duration (in seconds) that a player will buffer media before starting the presentation.
     */
    public val minBufferTimeSeconds: kotlin.Int? = builder.minBufferTimeSeconds
    /**
     * The Dynamic Adaptive Streaming over HTTP (DASH) profile type. When set to "HBBTV_1_5", HbbTV 1.5 compliant output is enabled.
     */
    public val profile: aws.sdk.kotlin.services.mediapackagevod.model.Profile? = builder.profile
    /**
     * The source of scte markers used. When set to SEGMENTS, the scte markers are sourced from the segments of the ingested content. When set to MANIFEST, the scte markers are sourced from the manifest of the ingested content.
     */
    public val scteMarkersSource: aws.sdk.kotlin.services.mediapackagevod.model.ScteMarkersSource? = builder.scteMarkersSource
    /**
     * A StreamSelection configuration.
     */
    public val streamSelection: aws.sdk.kotlin.services.mediapackagevod.model.StreamSelection? = builder.streamSelection

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

    override fun toString(): kotlin.String = buildString {
        append("DashManifest(")
        append("manifestLayout=$manifestLayout,")
        append("manifestName=$manifestName,")
        append("minBufferTimeSeconds=$minBufferTimeSeconds,")
        append("profile=$profile,")
        append("scteMarkersSource=$scteMarkersSource,")
        append("streamSelection=$streamSelection")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = manifestLayout?.hashCode() ?: 0
        result = 31 * result + (manifestName?.hashCode() ?: 0)
        result = 31 * result + (minBufferTimeSeconds ?: 0)
        result = 31 * result + (profile?.hashCode() ?: 0)
        result = 31 * result + (scteMarkersSource?.hashCode() ?: 0)
        result = 31 * result + (streamSelection?.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 DashManifest

        if (manifestLayout != other.manifestLayout) return false
        if (manifestName != other.manifestName) return false
        if (minBufferTimeSeconds != other.minBufferTimeSeconds) return false
        if (profile != other.profile) return false
        if (scteMarkersSource != other.scteMarkersSource) return false
        if (streamSelection != other.streamSelection) return false

        return true
    }

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

    public class Builder {
        /**
         * Determines the position of some tags in the Media Presentation Description (MPD). When set to FULL, elements like SegmentTemplate and ContentProtection are included in each Representation. When set to COMPACT, duplicate elements are combined and presented at the AdaptationSet level.
         */
        public var manifestLayout: aws.sdk.kotlin.services.mediapackagevod.model.ManifestLayout? = null
        /**
         * An optional string to include in the name of the manifest.
         */
        public var manifestName: kotlin.String? = null
        /**
         * Minimum duration (in seconds) that a player will buffer media before starting the presentation.
         */
        public var minBufferTimeSeconds: kotlin.Int? = null
        /**
         * The Dynamic Adaptive Streaming over HTTP (DASH) profile type. When set to "HBBTV_1_5", HbbTV 1.5 compliant output is enabled.
         */
        public var profile: aws.sdk.kotlin.services.mediapackagevod.model.Profile? = null
        /**
         * The source of scte markers used. When set to SEGMENTS, the scte markers are sourced from the segments of the ingested content. When set to MANIFEST, the scte markers are sourced from the manifest of the ingested content.
         */
        public var scteMarkersSource: aws.sdk.kotlin.services.mediapackagevod.model.ScteMarkersSource? = null
        /**
         * A StreamSelection configuration.
         */
        public var streamSelection: aws.sdk.kotlin.services.mediapackagevod.model.StreamSelection? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.mediapackagevod.model.DashManifest) : this() {
            this.manifestLayout = x.manifestLayout
            this.manifestName = x.manifestName
            this.minBufferTimeSeconds = x.minBufferTimeSeconds
            this.profile = x.profile
            this.scteMarkersSource = x.scteMarkersSource
            this.streamSelection = x.streamSelection
        }

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

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

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy