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

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

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

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



/**
 * JobTemplateSettings contains all the transcode settings saved in the template that will be applied to jobs created from it.
 */
public class JobTemplateSettings private constructor(builder: Builder) {
    /**
     * When specified, this offset (in milliseconds) is added to the input Ad Avail PTS time.
     */
    public val adAvailOffset: kotlin.Int? = builder.adAvailOffset
    /**
     * Settings for ad avail blanking. Video can be blanked or overlaid with an image, and audio muted during SCTE-35 triggered ad avails.
     */
    public val availBlanking: aws.sdk.kotlin.services.mediaconvert.model.AvailBlanking? = builder.availBlanking
    /**
     * Use 3D LUTs to specify custom color mapping behavior when you convert from one color space into another. You can include up to 8 different 3D LUTs.
     */
    public val colorConversion3DlutSettings: List? = builder.colorConversion3DlutSettings
    /**
     * Settings for Event Signaling And Messaging (ESAM). If you don't do ad insertion, you can ignore these settings.
     */
    public val esam: aws.sdk.kotlin.services.mediaconvert.model.EsamSettings? = builder.esam
    /**
     * If your source content has EIA-608 Line 21 Data Services, enable this feature to specify what MediaConvert does with the Extended Data Services (XDS) packets. You can choose to pass through XDS packets, or remove them from the output. For more information about XDS, see EIA-608 Line Data Services, section 9.5.1.5 05h Content Advisory.
     */
    public val extendedDataServices: aws.sdk.kotlin.services.mediaconvert.model.ExtendedDataServices? = builder.extendedDataServices
    /**
     * Specify the input that MediaConvert references for your default output settings. MediaConvert uses this input's Resolution, Frame rate, and Pixel aspect ratio for all outputs that you don't manually specify different output settings for. Enabling this setting will disable "Follow source" for all other inputs. If MediaConvert cannot follow your source, for example if you specify an audio-only input, MediaConvert uses the first followable input instead. In your JSON job specification, enter an integer from 1 to 150 corresponding to the order of your inputs.
     */
    public val followSource: kotlin.Int? = builder.followSource
    /**
     * Use Inputs to define the source file used in the transcode job. There can only be one input in a job template. Using the API, you can include multiple inputs when referencing a job template.
     */
    public val inputs: List? = builder.inputs
    /**
     * Use these settings only when you use Kantar watermarking. Specify the values that MediaConvert uses to generate and place Kantar watermarks in your output audio. These settings apply to every output in your job. In addition to specifying these values, you also need to store your Kantar credentials in AWS Secrets Manager. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/kantar-watermarking.html.
     */
    public val kantarWatermark: aws.sdk.kotlin.services.mediaconvert.model.KantarWatermarkSettings? = builder.kantarWatermark
    /**
     * Overlay motion graphics on top of your video. The motion graphics that you specify here appear on all outputs in all output groups. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/motion-graphic-overlay.html.
     */
    public val motionImageInserter: aws.sdk.kotlin.services.mediaconvert.model.MotionImageInserter? = builder.motionImageInserter
    /**
     * Settings for your Nielsen configuration. If you don't do Nielsen measurement and analytics, ignore these settings. When you enable Nielsen configuration, MediaConvert enables PCM to ID3 tagging for all outputs in the job.
     */
    public val nielsenConfiguration: aws.sdk.kotlin.services.mediaconvert.model.NielsenConfiguration? = builder.nielsenConfiguration
    /**
     * Ignore these settings unless you are using Nielsen non-linear watermarking. Specify the values that MediaConvert uses to generate and place Nielsen watermarks in your output audio. In addition to specifying these values, you also need to set up your cloud TIC server. These settings apply to every output in your job. The MediaConvert implementation is currently with the following Nielsen versions: Nielsen Watermark SDK Version 5.2.1 Nielsen NLM Watermark Engine Version 1.2.7 Nielsen Watermark Authenticator [SID_TIC] Version [5.0.0]
     */
    public val nielsenNonLinearWatermark: aws.sdk.kotlin.services.mediaconvert.model.NielsenNonLinearWatermarkSettings? = builder.nielsenNonLinearWatermark
    /**
     * Contains one group of settings for each set of outputs that share a common package type. All unpackaged files (MPEG-4, MPEG-2 TS, Quicktime, MXF, and no container) are grouped in a single output group as well. Required in is a group of settings that apply to the whole group. This required object depends on the value you set for Type. Type, settings object pairs are as follows. * FILE_GROUP_SETTINGS, FileGroupSettings * HLS_GROUP_SETTINGS, HlsGroupSettings * DASH_ISO_GROUP_SETTINGS, DashIsoGroupSettings * MS_SMOOTH_GROUP_SETTINGS, MsSmoothGroupSettings * CMAF_GROUP_SETTINGS, CmafGroupSettings
     */
    public val outputGroups: List? = builder.outputGroups
    /**
     * These settings control how the service handles timecodes throughout the job. These settings don't affect input clipping.
     */
    public val timecodeConfig: aws.sdk.kotlin.services.mediaconvert.model.TimecodeConfig? = builder.timecodeConfig
    /**
     * Insert user-defined custom ID3 metadata at timecodes that you specify. In each output that you want to include this metadata, you must set ID3 metadata to Passthrough.
     */
    public val timedMetadataInsertion: aws.sdk.kotlin.services.mediaconvert.model.TimedMetadataInsertion? = builder.timedMetadataInsertion

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

    override fun toString(): kotlin.String = buildString {
        append("JobTemplateSettings(")
        append("adAvailOffset=$adAvailOffset,")
        append("availBlanking=$availBlanking,")
        append("colorConversion3DlutSettings=$colorConversion3DlutSettings,")
        append("esam=$esam,")
        append("extendedDataServices=$extendedDataServices,")
        append("followSource=$followSource,")
        append("inputs=$inputs,")
        append("kantarWatermark=$kantarWatermark,")
        append("motionImageInserter=$motionImageInserter,")
        append("nielsenConfiguration=$nielsenConfiguration,")
        append("nielsenNonLinearWatermark=$nielsenNonLinearWatermark,")
        append("outputGroups=$outputGroups,")
        append("timecodeConfig=$timecodeConfig,")
        append("timedMetadataInsertion=$timedMetadataInsertion")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = adAvailOffset ?: 0
        result = 31 * result + (availBlanking?.hashCode() ?: 0)
        result = 31 * result + (colorConversion3DlutSettings?.hashCode() ?: 0)
        result = 31 * result + (esam?.hashCode() ?: 0)
        result = 31 * result + (extendedDataServices?.hashCode() ?: 0)
        result = 31 * result + (followSource ?: 0)
        result = 31 * result + (inputs?.hashCode() ?: 0)
        result = 31 * result + (kantarWatermark?.hashCode() ?: 0)
        result = 31 * result + (motionImageInserter?.hashCode() ?: 0)
        result = 31 * result + (nielsenConfiguration?.hashCode() ?: 0)
        result = 31 * result + (nielsenNonLinearWatermark?.hashCode() ?: 0)
        result = 31 * result + (outputGroups?.hashCode() ?: 0)
        result = 31 * result + (timecodeConfig?.hashCode() ?: 0)
        result = 31 * result + (timedMetadataInsertion?.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 JobTemplateSettings

        if (adAvailOffset != other.adAvailOffset) return false
        if (availBlanking != other.availBlanking) return false
        if (colorConversion3DlutSettings != other.colorConversion3DlutSettings) return false
        if (esam != other.esam) return false
        if (extendedDataServices != other.extendedDataServices) return false
        if (followSource != other.followSource) return false
        if (inputs != other.inputs) return false
        if (kantarWatermark != other.kantarWatermark) return false
        if (motionImageInserter != other.motionImageInserter) return false
        if (nielsenConfiguration != other.nielsenConfiguration) return false
        if (nielsenNonLinearWatermark != other.nielsenNonLinearWatermark) return false
        if (outputGroups != other.outputGroups) return false
        if (timecodeConfig != other.timecodeConfig) return false
        if (timedMetadataInsertion != other.timedMetadataInsertion) return false

        return true
    }

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

    public class Builder {
        /**
         * When specified, this offset (in milliseconds) is added to the input Ad Avail PTS time.
         */
        public var adAvailOffset: kotlin.Int? = null
        /**
         * Settings for ad avail blanking. Video can be blanked or overlaid with an image, and audio muted during SCTE-35 triggered ad avails.
         */
        public var availBlanking: aws.sdk.kotlin.services.mediaconvert.model.AvailBlanking? = null
        /**
         * Use 3D LUTs to specify custom color mapping behavior when you convert from one color space into another. You can include up to 8 different 3D LUTs.
         */
        public var colorConversion3DlutSettings: List? = null
        /**
         * Settings for Event Signaling And Messaging (ESAM). If you don't do ad insertion, you can ignore these settings.
         */
        public var esam: aws.sdk.kotlin.services.mediaconvert.model.EsamSettings? = null
        /**
         * If your source content has EIA-608 Line 21 Data Services, enable this feature to specify what MediaConvert does with the Extended Data Services (XDS) packets. You can choose to pass through XDS packets, or remove them from the output. For more information about XDS, see EIA-608 Line Data Services, section 9.5.1.5 05h Content Advisory.
         */
        public var extendedDataServices: aws.sdk.kotlin.services.mediaconvert.model.ExtendedDataServices? = null
        /**
         * Specify the input that MediaConvert references for your default output settings. MediaConvert uses this input's Resolution, Frame rate, and Pixel aspect ratio for all outputs that you don't manually specify different output settings for. Enabling this setting will disable "Follow source" for all other inputs. If MediaConvert cannot follow your source, for example if you specify an audio-only input, MediaConvert uses the first followable input instead. In your JSON job specification, enter an integer from 1 to 150 corresponding to the order of your inputs.
         */
        public var followSource: kotlin.Int? = null
        /**
         * Use Inputs to define the source file used in the transcode job. There can only be one input in a job template. Using the API, you can include multiple inputs when referencing a job template.
         */
        public var inputs: List? = null
        /**
         * Use these settings only when you use Kantar watermarking. Specify the values that MediaConvert uses to generate and place Kantar watermarks in your output audio. These settings apply to every output in your job. In addition to specifying these values, you also need to store your Kantar credentials in AWS Secrets Manager. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/kantar-watermarking.html.
         */
        public var kantarWatermark: aws.sdk.kotlin.services.mediaconvert.model.KantarWatermarkSettings? = null
        /**
         * Overlay motion graphics on top of your video. The motion graphics that you specify here appear on all outputs in all output groups. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/motion-graphic-overlay.html.
         */
        public var motionImageInserter: aws.sdk.kotlin.services.mediaconvert.model.MotionImageInserter? = null
        /**
         * Settings for your Nielsen configuration. If you don't do Nielsen measurement and analytics, ignore these settings. When you enable Nielsen configuration, MediaConvert enables PCM to ID3 tagging for all outputs in the job.
         */
        public var nielsenConfiguration: aws.sdk.kotlin.services.mediaconvert.model.NielsenConfiguration? = null
        /**
         * Ignore these settings unless you are using Nielsen non-linear watermarking. Specify the values that MediaConvert uses to generate and place Nielsen watermarks in your output audio. In addition to specifying these values, you also need to set up your cloud TIC server. These settings apply to every output in your job. The MediaConvert implementation is currently with the following Nielsen versions: Nielsen Watermark SDK Version 5.2.1 Nielsen NLM Watermark Engine Version 1.2.7 Nielsen Watermark Authenticator [SID_TIC] Version [5.0.0]
         */
        public var nielsenNonLinearWatermark: aws.sdk.kotlin.services.mediaconvert.model.NielsenNonLinearWatermarkSettings? = null
        /**
         * Contains one group of settings for each set of outputs that share a common package type. All unpackaged files (MPEG-4, MPEG-2 TS, Quicktime, MXF, and no container) are grouped in a single output group as well. Required in is a group of settings that apply to the whole group. This required object depends on the value you set for Type. Type, settings object pairs are as follows. * FILE_GROUP_SETTINGS, FileGroupSettings * HLS_GROUP_SETTINGS, HlsGroupSettings * DASH_ISO_GROUP_SETTINGS, DashIsoGroupSettings * MS_SMOOTH_GROUP_SETTINGS, MsSmoothGroupSettings * CMAF_GROUP_SETTINGS, CmafGroupSettings
         */
        public var outputGroups: List? = null
        /**
         * These settings control how the service handles timecodes throughout the job. These settings don't affect input clipping.
         */
        public var timecodeConfig: aws.sdk.kotlin.services.mediaconvert.model.TimecodeConfig? = null
        /**
         * Insert user-defined custom ID3 metadata at timecodes that you specify. In each output that you want to include this metadata, you must set ID3 metadata to Passthrough.
         */
        public var timedMetadataInsertion: aws.sdk.kotlin.services.mediaconvert.model.TimedMetadataInsertion? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.mediaconvert.model.JobTemplateSettings) : this() {
            this.adAvailOffset = x.adAvailOffset
            this.availBlanking = x.availBlanking
            this.colorConversion3DlutSettings = x.colorConversion3DlutSettings
            this.esam = x.esam
            this.extendedDataServices = x.extendedDataServices
            this.followSource = x.followSource
            this.inputs = x.inputs
            this.kantarWatermark = x.kantarWatermark
            this.motionImageInserter = x.motionImageInserter
            this.nielsenConfiguration = x.nielsenConfiguration
            this.nielsenNonLinearWatermark = x.nielsenNonLinearWatermark
            this.outputGroups = x.outputGroups
            this.timecodeConfig = x.timecodeConfig
            this.timedMetadataInsertion = x.timedMetadataInsertion
        }

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

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

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

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

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

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

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

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

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

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

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy