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

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

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

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



/**
 * Container specific settings.
 */
public class ContainerSettings private constructor(builder: Builder) {
    /**
     * These settings relate to the fragmented MP4 container for the segments in your CMAF outputs.
     */
    public val cmfcSettings: aws.sdk.kotlin.services.mediaconvert.model.CmfcSettings? = builder.cmfcSettings
    /**
     * Container for this output. Some containers require a container settings object. If not specified, the default object will be created.
     */
    public val container: aws.sdk.kotlin.services.mediaconvert.model.ContainerType? = builder.container
    /**
     * Settings for F4v container
     */
    public val f4vSettings: aws.sdk.kotlin.services.mediaconvert.model.F4vSettings? = builder.f4vSettings
    /**
     * MPEG-2 TS container settings. These apply to outputs in a File output group when the output's container is MPEG-2 Transport Stream (M2TS). In these assets, data is organized by the program map table (PMT). Each transport stream program contains subsets of data, including audio, video, and metadata. Each of these subsets of data has a numerical label called a packet identifier (PID). Each transport stream program corresponds to one MediaConvert output. The PMT lists the types of data in a program along with their PID. Downstream systems and players use the program map table to look up the PID for each type of data it accesses and then uses the PIDs to locate specific data within the asset.
     */
    public val m2tsSettings: aws.sdk.kotlin.services.mediaconvert.model.M2tsSettings? = builder.m2tsSettings
    /**
     * These settings relate to the MPEG-2 transport stream (MPEG2-TS) container for the MPEG2-TS segments in your HLS outputs.
     */
    public val m3u8Settings: aws.sdk.kotlin.services.mediaconvert.model.M3u8Settings? = builder.m3u8Settings
    /**
     * These settings relate to your QuickTime MOV output container.
     */
    public val movSettings: aws.sdk.kotlin.services.mediaconvert.model.MovSettings? = builder.movSettings
    /**
     * These settings relate to your MP4 output container. You can create audio only outputs with this container. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/supported-codecs-containers-audio-only.html#output-codecs-and-containers-supported-for-audio-only.
     */
    public val mp4Settings: aws.sdk.kotlin.services.mediaconvert.model.Mp4Settings? = builder.mp4Settings
    /**
     * These settings relate to the fragmented MP4 container for the segments in your DASH outputs.
     */
    public val mpdSettings: aws.sdk.kotlin.services.mediaconvert.model.MpdSettings? = builder.mpdSettings
    /**
     * These settings relate to your MXF output container.
     */
    public val mxfSettings: aws.sdk.kotlin.services.mediaconvert.model.MxfSettings? = builder.mxfSettings

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

    override fun toString(): kotlin.String = buildString {
        append("ContainerSettings(")
        append("cmfcSettings=$cmfcSettings,")
        append("container=$container,")
        append("f4vSettings=$f4vSettings,")
        append("m2tsSettings=$m2tsSettings,")
        append("m3u8Settings=$m3u8Settings,")
        append("movSettings=$movSettings,")
        append("mp4Settings=$mp4Settings,")
        append("mpdSettings=$mpdSettings,")
        append("mxfSettings=$mxfSettings")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = cmfcSettings?.hashCode() ?: 0
        result = 31 * result + (container?.hashCode() ?: 0)
        result = 31 * result + (f4vSettings?.hashCode() ?: 0)
        result = 31 * result + (m2tsSettings?.hashCode() ?: 0)
        result = 31 * result + (m3u8Settings?.hashCode() ?: 0)
        result = 31 * result + (movSettings?.hashCode() ?: 0)
        result = 31 * result + (mp4Settings?.hashCode() ?: 0)
        result = 31 * result + (mpdSettings?.hashCode() ?: 0)
        result = 31 * result + (mxfSettings?.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 ContainerSettings

        if (cmfcSettings != other.cmfcSettings) return false
        if (container != other.container) return false
        if (f4vSettings != other.f4vSettings) return false
        if (m2tsSettings != other.m2tsSettings) return false
        if (m3u8Settings != other.m3u8Settings) return false
        if (movSettings != other.movSettings) return false
        if (mp4Settings != other.mp4Settings) return false
        if (mpdSettings != other.mpdSettings) return false
        if (mxfSettings != other.mxfSettings) return false

        return true
    }

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

    public class Builder {
        /**
         * These settings relate to the fragmented MP4 container for the segments in your CMAF outputs.
         */
        public var cmfcSettings: aws.sdk.kotlin.services.mediaconvert.model.CmfcSettings? = null
        /**
         * Container for this output. Some containers require a container settings object. If not specified, the default object will be created.
         */
        public var container: aws.sdk.kotlin.services.mediaconvert.model.ContainerType? = null
        /**
         * Settings for F4v container
         */
        public var f4vSettings: aws.sdk.kotlin.services.mediaconvert.model.F4vSettings? = null
        /**
         * MPEG-2 TS container settings. These apply to outputs in a File output group when the output's container is MPEG-2 Transport Stream (M2TS). In these assets, data is organized by the program map table (PMT). Each transport stream program contains subsets of data, including audio, video, and metadata. Each of these subsets of data has a numerical label called a packet identifier (PID). Each transport stream program corresponds to one MediaConvert output. The PMT lists the types of data in a program along with their PID. Downstream systems and players use the program map table to look up the PID for each type of data it accesses and then uses the PIDs to locate specific data within the asset.
         */
        public var m2tsSettings: aws.sdk.kotlin.services.mediaconvert.model.M2tsSettings? = null
        /**
         * These settings relate to the MPEG-2 transport stream (MPEG2-TS) container for the MPEG2-TS segments in your HLS outputs.
         */
        public var m3u8Settings: aws.sdk.kotlin.services.mediaconvert.model.M3u8Settings? = null
        /**
         * These settings relate to your QuickTime MOV output container.
         */
        public var movSettings: aws.sdk.kotlin.services.mediaconvert.model.MovSettings? = null
        /**
         * These settings relate to your MP4 output container. You can create audio only outputs with this container. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/supported-codecs-containers-audio-only.html#output-codecs-and-containers-supported-for-audio-only.
         */
        public var mp4Settings: aws.sdk.kotlin.services.mediaconvert.model.Mp4Settings? = null
        /**
         * These settings relate to the fragmented MP4 container for the segments in your DASH outputs.
         */
        public var mpdSettings: aws.sdk.kotlin.services.mediaconvert.model.MpdSettings? = null
        /**
         * These settings relate to your MXF output container.
         */
        public var mxfSettings: aws.sdk.kotlin.services.mediaconvert.model.MxfSettings? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.mediaconvert.model.ContainerSettings) : this() {
            this.cmfcSettings = x.cmfcSettings
            this.container = x.container
            this.f4vSettings = x.f4vSettings
            this.m2tsSettings = x.m2tsSettings
            this.m3u8Settings = x.m3u8Settings
            this.movSettings = x.movSettings
            this.mp4Settings = x.mp4Settings
            this.mpdSettings = x.mpdSettings
            this.mxfSettings = x.mxfSettings
        }

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

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

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

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

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

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

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

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

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

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy