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

com.pulumi.awsnative.mediatailor.kotlin.PlaybackConfigurationArgs.kt Maven / Gradle / Ivy

@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.awsnative.mediatailor.kotlin

import com.pulumi.awsnative.kotlin.inputs.TagArgs
import com.pulumi.awsnative.kotlin.inputs.TagArgsBuilder
import com.pulumi.awsnative.mediatailor.PlaybackConfigurationArgs.builder
import com.pulumi.awsnative.mediatailor.kotlin.inputs.PlaybackConfigurationAvailSuppressionArgs
import com.pulumi.awsnative.mediatailor.kotlin.inputs.PlaybackConfigurationAvailSuppressionArgsBuilder
import com.pulumi.awsnative.mediatailor.kotlin.inputs.PlaybackConfigurationBumperArgs
import com.pulumi.awsnative.mediatailor.kotlin.inputs.PlaybackConfigurationBumperArgsBuilder
import com.pulumi.awsnative.mediatailor.kotlin.inputs.PlaybackConfigurationCdnConfigurationArgs
import com.pulumi.awsnative.mediatailor.kotlin.inputs.PlaybackConfigurationCdnConfigurationArgsBuilder
import com.pulumi.awsnative.mediatailor.kotlin.inputs.PlaybackConfigurationDashConfigurationArgs
import com.pulumi.awsnative.mediatailor.kotlin.inputs.PlaybackConfigurationDashConfigurationArgsBuilder
import com.pulumi.awsnative.mediatailor.kotlin.inputs.PlaybackConfigurationHlsConfigurationArgs
import com.pulumi.awsnative.mediatailor.kotlin.inputs.PlaybackConfigurationHlsConfigurationArgsBuilder
import com.pulumi.awsnative.mediatailor.kotlin.inputs.PlaybackConfigurationLivePreRollConfigurationArgs
import com.pulumi.awsnative.mediatailor.kotlin.inputs.PlaybackConfigurationLivePreRollConfigurationArgsBuilder
import com.pulumi.awsnative.mediatailor.kotlin.inputs.PlaybackConfigurationManifestProcessingRulesArgs
import com.pulumi.awsnative.mediatailor.kotlin.inputs.PlaybackConfigurationManifestProcessingRulesArgsBuilder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Any
import kotlin.Int
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 * Resource schema for AWS::MediaTailor::PlaybackConfiguration
 * @property adDecisionServerUrl The URL for the ad decision server (ADS). This includes the specification of static parameters and placeholders for dynamic parameters. AWS Elemental MediaTailor substitutes player-specific and session-specific parameters as needed when calling the ADS. Alternately, for testing you can provide a static VAST URL. The maximum length is 25,000 characters.
 * @property availSuppression The configuration for avail suppression, also known as ad suppression. For more information about ad suppression, see Ad Suppression (https://docs.aws.amazon.com/mediatailor/latest/ug/ad-behavior.html).
 * @property bumper The configuration for bumpers. Bumpers are short audio or video clips that play at the start or before the end of an ad break. To learn more about bumpers, see Bumpers (https://docs.aws.amazon.com/mediatailor/latest/ug/bumpers.html).
 * @property cdnConfiguration The configuration for using a content delivery network (CDN), like Amazon CloudFront, for content and ad segment management.
 * @property configurationAliases The player parameters and aliases used as dynamic variables during session initialization. For more information, see Domain Variables.
 * @property dashConfiguration The configuration for DASH content.
 * @property hlsConfiguration The configuration for HLS content.
 * @property livePreRollConfiguration The configuration for pre-roll ad insertion.
 * @property manifestProcessingRules The configuration for manifest processing rules. Manifest processing rules enable customization of the personalized manifests created by MediaTailor.
 * @property name The identifier for the playback configuration.
 * @property personalizationThresholdSeconds Defines the maximum duration of underfilled ad time (in seconds) allowed in an ad break. If the duration of underfilled ad time exceeds the personalization threshold, then the personalization of the ad break is abandoned and the underlying content is shown. This feature applies to ad replacement in live and VOD streams, rather than ad insertion, because it relies on an underlying content stream. For more information about ad break behavior, including ad replacement and insertion, see Ad Behavior in AWS Elemental MediaTailor (https://docs.aws.amazon.com/mediatailor/latest/ug/ad-behavior.html).
 * @property slateAdUrl The URL for a high-quality video asset to transcode and use to fill in time that's not used by ads. AWS Elemental MediaTailor shows the slate to fill in gaps in media content. Configuring the slate is optional for non-VPAID configurations. For VPAID, the slate is required because MediaTailor provides it in the slots that are designated for dynamic ad content. The slate must be a high-quality asset that contains both audio and video.
 * @property tags The tags to assign to the playback configuration.
 * @property transcodeProfileName The name that is used to associate this playback configuration with a custom transcode profile. This overrides the dynamic transcoding defaults of MediaTailor. Use this only if you have already set up custom profiles with the help of AWS Support.
 * @property videoContentSourceUrl The URL prefix for the parent manifest for the stream, minus the asset ID. The maximum length is 512 characters.
 */
public data class PlaybackConfigurationArgs(
    public val adDecisionServerUrl: Output? = null,
    public val availSuppression: Output? = null,
    public val bumper: Output? = null,
    public val cdnConfiguration: Output? = null,
    public val configurationAliases: Output>? = null,
    public val dashConfiguration: Output? = null,
    public val hlsConfiguration: Output? = null,
    public val livePreRollConfiguration: Output? =
        null,
    public val manifestProcessingRules: Output? =
        null,
    public val name: Output? = null,
    public val personalizationThresholdSeconds: Output? = null,
    public val slateAdUrl: Output? = null,
    public val tags: Output>? = null,
    public val transcodeProfileName: Output? = null,
    public val videoContentSourceUrl: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.mediatailor.PlaybackConfigurationArgs =
        com.pulumi.awsnative.mediatailor.PlaybackConfigurationArgs.builder()
            .adDecisionServerUrl(adDecisionServerUrl?.applyValue({ args0 -> args0 }))
            .availSuppression(availSuppression?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .bumper(bumper?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .cdnConfiguration(cdnConfiguration?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .configurationAliases(
                configurationAliases?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.key.to(args0.value)
                    }).toMap()
                }),
            )
            .dashConfiguration(dashConfiguration?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .hlsConfiguration(hlsConfiguration?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .livePreRollConfiguration(
                livePreRollConfiguration?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .manifestProcessingRules(
                manifestProcessingRules?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .name(name?.applyValue({ args0 -> args0 }))
            .personalizationThresholdSeconds(personalizationThresholdSeconds?.applyValue({ args0 -> args0 }))
            .slateAdUrl(slateAdUrl?.applyValue({ args0 -> args0 }))
            .tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }))
            .transcodeProfileName(transcodeProfileName?.applyValue({ args0 -> args0 }))
            .videoContentSourceUrl(videoContentSourceUrl?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [PlaybackConfigurationArgs].
 */
@PulumiTagMarker
public class PlaybackConfigurationArgsBuilder internal constructor() {
    private var adDecisionServerUrl: Output? = null

    private var availSuppression: Output? = null

    private var bumper: Output? = null

    private var cdnConfiguration: Output? = null

    private var configurationAliases: Output>? = null

    private var dashConfiguration: Output? = null

    private var hlsConfiguration: Output? = null

    private var livePreRollConfiguration: Output? =
        null

    private var manifestProcessingRules: Output? =
        null

    private var name: Output? = null

    private var personalizationThresholdSeconds: Output? = null

    private var slateAdUrl: Output? = null

    private var tags: Output>? = null

    private var transcodeProfileName: Output? = null

    private var videoContentSourceUrl: Output? = null

    /**
     * @param value The URL for the ad decision server (ADS). This includes the specification of static parameters and placeholders for dynamic parameters. AWS Elemental MediaTailor substitutes player-specific and session-specific parameters as needed when calling the ADS. Alternately, for testing you can provide a static VAST URL. The maximum length is 25,000 characters.
     */
    @JvmName("bipxqqghnfhqafak")
    public suspend fun adDecisionServerUrl(`value`: Output) {
        this.adDecisionServerUrl = value
    }

    /**
     * @param value The configuration for avail suppression, also known as ad suppression. For more information about ad suppression, see Ad Suppression (https://docs.aws.amazon.com/mediatailor/latest/ug/ad-behavior.html).
     */
    @JvmName("lfwbbguysasqljlb")
    public suspend fun availSuppression(`value`: Output) {
        this.availSuppression = value
    }

    /**
     * @param value The configuration for bumpers. Bumpers are short audio or video clips that play at the start or before the end of an ad break. To learn more about bumpers, see Bumpers (https://docs.aws.amazon.com/mediatailor/latest/ug/bumpers.html).
     */
    @JvmName("qhbmxqjjciqkqicr")
    public suspend fun bumper(`value`: Output) {
        this.bumper = value
    }

    /**
     * @param value The configuration for using a content delivery network (CDN), like Amazon CloudFront, for content and ad segment management.
     */
    @JvmName("mcmjjoriyhlpwdnf")
    public suspend fun cdnConfiguration(`value`: Output) {
        this.cdnConfiguration = value
    }

    /**
     * @param value The player parameters and aliases used as dynamic variables during session initialization. For more information, see Domain Variables.
     */
    @JvmName("umaxmbkbubfmcljx")
    public suspend fun configurationAliases(`value`: Output>) {
        this.configurationAliases = value
    }

    /**
     * @param value The configuration for DASH content.
     */
    @JvmName("klxxqxowaxxisyiq")
    public suspend fun dashConfiguration(`value`: Output) {
        this.dashConfiguration = value
    }

    /**
     * @param value The configuration for HLS content.
     */
    @JvmName("hklcmbertjxvisqm")
    public suspend fun hlsConfiguration(`value`: Output) {
        this.hlsConfiguration = value
    }

    /**
     * @param value The configuration for pre-roll ad insertion.
     */
    @JvmName("wqeovsrvvdphteew")
    public suspend fun livePreRollConfiguration(`value`: Output) {
        this.livePreRollConfiguration = value
    }

    /**
     * @param value The configuration for manifest processing rules. Manifest processing rules enable customization of the personalized manifests created by MediaTailor.
     */
    @JvmName("sbirouaexksfmkms")
    public suspend fun manifestProcessingRules(`value`: Output) {
        this.manifestProcessingRules = value
    }

    /**
     * @param value The identifier for the playback configuration.
     */
    @JvmName("qiempxjbyatlbxhn")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value Defines the maximum duration of underfilled ad time (in seconds) allowed in an ad break. If the duration of underfilled ad time exceeds the personalization threshold, then the personalization of the ad break is abandoned and the underlying content is shown. This feature applies to ad replacement in live and VOD streams, rather than ad insertion, because it relies on an underlying content stream. For more information about ad break behavior, including ad replacement and insertion, see Ad Behavior in AWS Elemental MediaTailor (https://docs.aws.amazon.com/mediatailor/latest/ug/ad-behavior.html).
     */
    @JvmName("iyruwskqarllidty")
    public suspend fun personalizationThresholdSeconds(`value`: Output) {
        this.personalizationThresholdSeconds = value
    }

    /**
     * @param value The URL for a high-quality video asset to transcode and use to fill in time that's not used by ads. AWS Elemental MediaTailor shows the slate to fill in gaps in media content. Configuring the slate is optional for non-VPAID configurations. For VPAID, the slate is required because MediaTailor provides it in the slots that are designated for dynamic ad content. The slate must be a high-quality asset that contains both audio and video.
     */
    @JvmName("lvidimkvooltwqqb")
    public suspend fun slateAdUrl(`value`: Output) {
        this.slateAdUrl = value
    }

    /**
     * @param value The tags to assign to the playback configuration.
     */
    @JvmName("srrvskbkkpjxmehr")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

    @JvmName("lhhkgilqyxceygpk")
    public suspend fun tags(vararg values: Output) {
        this.tags = Output.all(values.asList())
    }

    /**
     * @param values The tags to assign to the playback configuration.
     */
    @JvmName("lihyqhtkochrytku")
    public suspend fun tags(values: List>) {
        this.tags = Output.all(values)
    }

    /**
     * @param value The name that is used to associate this playback configuration with a custom transcode profile. This overrides the dynamic transcoding defaults of MediaTailor. Use this only if you have already set up custom profiles with the help of AWS Support.
     */
    @JvmName("wndpujqviqxunjml")
    public suspend fun transcodeProfileName(`value`: Output) {
        this.transcodeProfileName = value
    }

    /**
     * @param value The URL prefix for the parent manifest for the stream, minus the asset ID. The maximum length is 512 characters.
     */
    @JvmName("ijwovwuqyoxatxam")
    public suspend fun videoContentSourceUrl(`value`: Output) {
        this.videoContentSourceUrl = value
    }

    /**
     * @param value The URL for the ad decision server (ADS). This includes the specification of static parameters and placeholders for dynamic parameters. AWS Elemental MediaTailor substitutes player-specific and session-specific parameters as needed when calling the ADS. Alternately, for testing you can provide a static VAST URL. The maximum length is 25,000 characters.
     */
    @JvmName("qttgwgsybjaktlxt")
    public suspend fun adDecisionServerUrl(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.adDecisionServerUrl = mapped
    }

    /**
     * @param value The configuration for avail suppression, also known as ad suppression. For more information about ad suppression, see Ad Suppression (https://docs.aws.amazon.com/mediatailor/latest/ug/ad-behavior.html).
     */
    @JvmName("wdwctlkxfhnvdlpj")
    public suspend fun availSuppression(`value`: PlaybackConfigurationAvailSuppressionArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.availSuppression = mapped
    }

    /**
     * @param argument The configuration for avail suppression, also known as ad suppression. For more information about ad suppression, see Ad Suppression (https://docs.aws.amazon.com/mediatailor/latest/ug/ad-behavior.html).
     */
    @JvmName("cxxblinihpgfrulu")
    public suspend fun availSuppression(argument: suspend PlaybackConfigurationAvailSuppressionArgsBuilder.() -> Unit) {
        val toBeMapped = PlaybackConfigurationAvailSuppressionArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.availSuppression = mapped
    }

    /**
     * @param value The configuration for bumpers. Bumpers are short audio or video clips that play at the start or before the end of an ad break. To learn more about bumpers, see Bumpers (https://docs.aws.amazon.com/mediatailor/latest/ug/bumpers.html).
     */
    @JvmName("rdamwgrkuuhdmrkw")
    public suspend fun bumper(`value`: PlaybackConfigurationBumperArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.bumper = mapped
    }

    /**
     * @param argument The configuration for bumpers. Bumpers are short audio or video clips that play at the start or before the end of an ad break. To learn more about bumpers, see Bumpers (https://docs.aws.amazon.com/mediatailor/latest/ug/bumpers.html).
     */
    @JvmName("oyvhynqqcwclgeul")
    public suspend fun bumper(argument: suspend PlaybackConfigurationBumperArgsBuilder.() -> Unit) {
        val toBeMapped = PlaybackConfigurationBumperArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.bumper = mapped
    }

    /**
     * @param value The configuration for using a content delivery network (CDN), like Amazon CloudFront, for content and ad segment management.
     */
    @JvmName("xwrcrcpixisobraq")
    public suspend fun cdnConfiguration(`value`: PlaybackConfigurationCdnConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.cdnConfiguration = mapped
    }

    /**
     * @param argument The configuration for using a content delivery network (CDN), like Amazon CloudFront, for content and ad segment management.
     */
    @JvmName("ngwytnyjqltvlmsi")
    public suspend fun cdnConfiguration(argument: suspend PlaybackConfigurationCdnConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = PlaybackConfigurationCdnConfigurationArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.cdnConfiguration = mapped
    }

    /**
     * @param value The player parameters and aliases used as dynamic variables during session initialization. For more information, see Domain Variables.
     */
    @JvmName("sdqxyhfgsxkannws")
    public suspend fun configurationAliases(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.configurationAliases = mapped
    }

    /**
     * @param values The player parameters and aliases used as dynamic variables during session initialization. For more information, see Domain Variables.
     */
    @JvmName("cwnqberdqgruysfd")
    public fun configurationAliases(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.configurationAliases = mapped
    }

    /**
     * @param value The configuration for DASH content.
     */
    @JvmName("ckebqueugscgbdte")
    public suspend fun dashConfiguration(`value`: PlaybackConfigurationDashConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dashConfiguration = mapped
    }

    /**
     * @param argument The configuration for DASH content.
     */
    @JvmName("mpjwkqhlrheugyqr")
    public suspend fun dashConfiguration(argument: suspend PlaybackConfigurationDashConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = PlaybackConfigurationDashConfigurationArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.dashConfiguration = mapped
    }

    /**
     * @param value The configuration for HLS content.
     */
    @JvmName("pngnlwbycccpicvf")
    public suspend fun hlsConfiguration(`value`: PlaybackConfigurationHlsConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.hlsConfiguration = mapped
    }

    /**
     * @param argument The configuration for HLS content.
     */
    @JvmName("gsgkomeojrvgoabr")
    public suspend fun hlsConfiguration(argument: suspend PlaybackConfigurationHlsConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = PlaybackConfigurationHlsConfigurationArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.hlsConfiguration = mapped
    }

    /**
     * @param value The configuration for pre-roll ad insertion.
     */
    @JvmName("xqoairnmsdqorruc")
    public suspend fun livePreRollConfiguration(`value`: PlaybackConfigurationLivePreRollConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.livePreRollConfiguration = mapped
    }

    /**
     * @param argument The configuration for pre-roll ad insertion.
     */
    @JvmName("boqqwhgqnutgtree")
    public suspend fun livePreRollConfiguration(argument: suspend PlaybackConfigurationLivePreRollConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = PlaybackConfigurationLivePreRollConfigurationArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.livePreRollConfiguration = mapped
    }

    /**
     * @param value The configuration for manifest processing rules. Manifest processing rules enable customization of the personalized manifests created by MediaTailor.
     */
    @JvmName("gunyhljilhwqdwdl")
    public suspend fun manifestProcessingRules(`value`: PlaybackConfigurationManifestProcessingRulesArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.manifestProcessingRules = mapped
    }

    /**
     * @param argument The configuration for manifest processing rules. Manifest processing rules enable customization of the personalized manifests created by MediaTailor.
     */
    @JvmName("dvjyxiwewkonmewa")
    public suspend fun manifestProcessingRules(argument: suspend PlaybackConfigurationManifestProcessingRulesArgsBuilder.() -> Unit) {
        val toBeMapped = PlaybackConfigurationManifestProcessingRulesArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.manifestProcessingRules = mapped
    }

    /**
     * @param value The identifier for the playback configuration.
     */
    @JvmName("ngtojyhlngnkclaw")
    public suspend fun name(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value Defines the maximum duration of underfilled ad time (in seconds) allowed in an ad break. If the duration of underfilled ad time exceeds the personalization threshold, then the personalization of the ad break is abandoned and the underlying content is shown. This feature applies to ad replacement in live and VOD streams, rather than ad insertion, because it relies on an underlying content stream. For more information about ad break behavior, including ad replacement and insertion, see Ad Behavior in AWS Elemental MediaTailor (https://docs.aws.amazon.com/mediatailor/latest/ug/ad-behavior.html).
     */
    @JvmName("fxuengwltyyyhjyb")
    public suspend fun personalizationThresholdSeconds(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.personalizationThresholdSeconds = mapped
    }

    /**
     * @param value The URL for a high-quality video asset to transcode and use to fill in time that's not used by ads. AWS Elemental MediaTailor shows the slate to fill in gaps in media content. Configuring the slate is optional for non-VPAID configurations. For VPAID, the slate is required because MediaTailor provides it in the slots that are designated for dynamic ad content. The slate must be a high-quality asset that contains both audio and video.
     */
    @JvmName("gldhgmidlfmkywlx")
    public suspend fun slateAdUrl(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.slateAdUrl = mapped
    }

    /**
     * @param value The tags to assign to the playback configuration.
     */
    @JvmName("phxbbmardcmxivgl")
    public suspend fun tags(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param argument The tags to assign to the playback configuration.
     */
    @JvmName("gedbsnwamlmncxql")
    public suspend fun tags(argument: List Unit>) {
        val toBeMapped = argument.toList().map { TagArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param argument The tags to assign to the playback configuration.
     */
    @JvmName("fwtklymssglgvgrg")
    public suspend fun tags(vararg argument: suspend TagArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map { TagArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param argument The tags to assign to the playback configuration.
     */
    @JvmName("jfnnvdhnkqveqcml")
    public suspend fun tags(argument: suspend TagArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(TagArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param values The tags to assign to the playback configuration.
     */
    @JvmName("ccdnpohgvvgjrjbe")
    public suspend fun tags(vararg values: TagArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param value The name that is used to associate this playback configuration with a custom transcode profile. This overrides the dynamic transcoding defaults of MediaTailor. Use this only if you have already set up custom profiles with the help of AWS Support.
     */
    @JvmName("rhbuqsudchlbnqbk")
    public suspend fun transcodeProfileName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.transcodeProfileName = mapped
    }

    /**
     * @param value The URL prefix for the parent manifest for the stream, minus the asset ID. The maximum length is 512 characters.
     */
    @JvmName("tjehxuqhpkpugyfx")
    public suspend fun videoContentSourceUrl(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.videoContentSourceUrl = mapped
    }

    internal fun build(): PlaybackConfigurationArgs = PlaybackConfigurationArgs(
        adDecisionServerUrl = adDecisionServerUrl,
        availSuppression = availSuppression,
        bumper = bumper,
        cdnConfiguration = cdnConfiguration,
        configurationAliases = configurationAliases,
        dashConfiguration = dashConfiguration,
        hlsConfiguration = hlsConfiguration,
        livePreRollConfiguration = livePreRollConfiguration,
        manifestProcessingRules = manifestProcessingRules,
        name = name,
        personalizationThresholdSeconds = personalizationThresholdSeconds,
        slateAdUrl = slateAdUrl,
        tags = tags,
        transcodeProfileName = transcodeProfileName,
        videoContentSourceUrl = videoContentSourceUrl,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy