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

io.cloudshiftdev.awscdk.services.mediatailor.CfnPlaybackConfigurationProps.kt Maven / Gradle / Ivy

There is a newer version: 0.10.0
Show newest version
@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION")

package io.cloudshiftdev.awscdk.services.mediatailor

import io.cloudshiftdev.awscdk.CfnTag
import io.cloudshiftdev.awscdk.IResolvable
import io.cloudshiftdev.awscdk.common.CdkDslMarker
import io.cloudshiftdev.awscdk.common.CdkObject
import io.cloudshiftdev.awscdk.common.CdkObjectWrappers
import kotlin.Any
import kotlin.Number
import kotlin.String
import kotlin.Unit
import kotlin.collections.List
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 * Properties for defining a `CfnPlaybackConfiguration`.
 *
 * Example:
 *
 * ```
 * // The code below shows an example of how to instantiate this type.
 * // The values are placeholders you should change.
 * import io.cloudshiftdev.awscdk.services.mediatailor.*;
 * Object configurationAliases;
 * CfnPlaybackConfigurationProps cfnPlaybackConfigurationProps =
 * CfnPlaybackConfigurationProps.builder()
 * .adDecisionServerUrl("adDecisionServerUrl")
 * .name("name")
 * .videoContentSourceUrl("videoContentSourceUrl")
 * // the properties below are optional
 * .availSuppression(AvailSuppressionProperty.builder()
 * .fillPolicy("fillPolicy")
 * .mode("mode")
 * .value("value")
 * .build())
 * .bumper(BumperProperty.builder()
 * .endUrl("endUrl")
 * .startUrl("startUrl")
 * .build())
 * .cdnConfiguration(CdnConfigurationProperty.builder()
 * .adSegmentUrlPrefix("adSegmentUrlPrefix")
 * .contentSegmentUrlPrefix("contentSegmentUrlPrefix")
 * .build())
 * .configurationAliases(Map.of(
 * "configurationAliasesKey", configurationAliases))
 * .dashConfiguration(DashConfigurationProperty.builder()
 * .manifestEndpointPrefix("manifestEndpointPrefix")
 * .mpdLocation("mpdLocation")
 * .originManifestType("originManifestType")
 * .build())
 * .hlsConfiguration(HlsConfigurationProperty.builder()
 * .manifestEndpointPrefix("manifestEndpointPrefix")
 * .build())
 * .livePreRollConfiguration(LivePreRollConfigurationProperty.builder()
 * .adDecisionServerUrl("adDecisionServerUrl")
 * .maxDurationSeconds(123)
 * .build())
 * .manifestProcessingRules(ManifestProcessingRulesProperty.builder()
 * .adMarkerPassthrough(AdMarkerPassthroughProperty.builder()
 * .enabled(false)
 * .build())
 * .build())
 * .personalizationThresholdSeconds(123)
 * .slateAdUrl("slateAdUrl")
 * .tags(List.of(CfnTag.builder()
 * .key("key")
 * .value("value")
 * .build()))
 * .transcodeProfileName("transcodeProfileName")
 * .build();
 * ```
 *
 * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-playbackconfiguration.html)
 */
public interface CfnPlaybackConfigurationProps {
  /**
   * 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.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-playbackconfiguration.html#cfn-mediatailor-playbackconfiguration-addecisionserverurl)
   */
  public fun adDecisionServerUrl(): String

  /**
   * 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) .
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-playbackconfiguration.html#cfn-mediatailor-playbackconfiguration-availsuppression)
   */
  public fun availSuppression(): Any? = unwrap(this).getAvailSuppression()

  /**
   * 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) .
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-playbackconfiguration.html#cfn-mediatailor-playbackconfiguration-bumper)
   */
  public fun bumper(): Any? = unwrap(this).getBumper()

  /**
   * The configuration for using a content delivery network (CDN), like Amazon CloudFront, for
   * content and ad segment management.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-playbackconfiguration.html#cfn-mediatailor-playbackconfiguration-cdnconfiguration)
   */
  public fun cdnConfiguration(): Any? = unwrap(this).getCdnConfiguration()

  /**
   * The player parameters and aliases used as dynamic variables during session initialization.
   *
   * For more information, see [Domain
   * Variables](https://docs.aws.amazon.com/mediatailor/latest/ug/variables-domain.html) .
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-playbackconfiguration.html#cfn-mediatailor-playbackconfiguration-configurationaliases)
   */
  public fun configurationAliases(): Any? = unwrap(this).getConfigurationAliases()

  /**
   * The configuration for a DASH source.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-playbackconfiguration.html#cfn-mediatailor-playbackconfiguration-dashconfiguration)
   */
  public fun dashConfiguration(): Any? = unwrap(this).getDashConfiguration()

  /**
   * The configuration for HLS content.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-playbackconfiguration.html#cfn-mediatailor-playbackconfiguration-hlsconfiguration)
   */
  public fun hlsConfiguration(): Any? = unwrap(this).getHlsConfiguration()

  /**
   * The configuration for pre-roll ad insertion.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-playbackconfiguration.html#cfn-mediatailor-playbackconfiguration-liveprerollconfiguration)
   */
  public fun livePreRollConfiguration(): Any? = unwrap(this).getLivePreRollConfiguration()

  /**
   * The configuration for manifest processing rules.
   *
   * Manifest processing rules enable customization of the personalized manifests created by
   * MediaTailor.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-playbackconfiguration.html#cfn-mediatailor-playbackconfiguration-manifestprocessingrules)
   */
  public fun manifestProcessingRules(): Any? = unwrap(this).getManifestProcessingRules()

  /**
   * The identifier for the playback configuration.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-playbackconfiguration.html#cfn-mediatailor-playbackconfiguration-name)
   */
  public fun name(): String

  /**
   * 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) .
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-playbackconfiguration.html#cfn-mediatailor-playbackconfiguration-personalizationthresholdseconds)
   */
  public fun personalizationThresholdSeconds(): Number? =
      unwrap(this).getPersonalizationThresholdSeconds()

  /**
   * The URL for a 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 playback configurations. For VPAID, the slate is required because
   * MediaTailor provides it in the slots designated for dynamic ad content. The slate must be a
   * high-quality asset that contains both audio and video.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-playbackconfiguration.html#cfn-mediatailor-playbackconfiguration-slateadurl)
   */
  public fun slateAdUrl(): String? = unwrap(this).getSlateAdUrl()

  /**
   * The tags to assign to the playback configuration.
   *
   * Tags are key-value pairs that you can associate with Amazon resources to help with
   * organization, access control, and cost tracking. For more information, see [Tagging AWS Elemental
   * MediaTailor Resources](https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html) .
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-playbackconfiguration.html#cfn-mediatailor-playbackconfiguration-tags)
   */
  public fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList()

  /**
   * 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.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-playbackconfiguration.html#cfn-mediatailor-playbackconfiguration-transcodeprofilename)
   */
  public fun transcodeProfileName(): String? = unwrap(this).getTranscodeProfileName()

  /**
   * The URL prefix for the parent manifest for the stream, minus the asset ID.
   *
   * The maximum length is 512 characters.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-playbackconfiguration.html#cfn-mediatailor-playbackconfiguration-videocontentsourceurl)
   */
  public fun videoContentSourceUrl(): String

  /**
   * A builder for [CfnPlaybackConfigurationProps]
   */
  @CdkDslMarker
  public interface Builder {
    /**
     * @param 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.
     */
    public fun adDecisionServerUrl(adDecisionServerUrl: String)

    /**
     * @param 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) .
     */
    public fun availSuppression(availSuppression: IResolvable)

    /**
     * @param 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) .
     */
    public fun availSuppression(availSuppression: CfnPlaybackConfiguration.AvailSuppressionProperty)

    /**
     * @param 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) .
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("8026ba3922b4645fac3a368a451a35217382f8e0d2c964d176a220dfa0260c95")
    public
        fun availSuppression(availSuppression: CfnPlaybackConfiguration.AvailSuppressionProperty.Builder.() -> Unit)

    /**
     * @param 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) .
     */
    public fun bumper(bumper: IResolvable)

    /**
     * @param 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) .
     */
    public fun bumper(bumper: CfnPlaybackConfiguration.BumperProperty)

    /**
     * @param 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) .
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("77c571caa44879d74f4e957d8ecd927e94d804de9735a7afe3a651a86955d6ed")
    public fun bumper(bumper: CfnPlaybackConfiguration.BumperProperty.Builder.() -> Unit)

    /**
     * @param cdnConfiguration The configuration for using a content delivery network (CDN), like
     * Amazon CloudFront, for content and ad segment management.
     */
    public fun cdnConfiguration(cdnConfiguration: IResolvable)

    /**
     * @param cdnConfiguration The configuration for using a content delivery network (CDN), like
     * Amazon CloudFront, for content and ad segment management.
     */
    public fun cdnConfiguration(cdnConfiguration: CfnPlaybackConfiguration.CdnConfigurationProperty)

    /**
     * @param cdnConfiguration The configuration for using a content delivery network (CDN), like
     * Amazon CloudFront, for content and ad segment management.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("d72bd252ba0e72440ff25cd81da98020c3baf3822790d3a75479d98eafe026de")
    public
        fun cdnConfiguration(cdnConfiguration: CfnPlaybackConfiguration.CdnConfigurationProperty.Builder.() -> Unit)

    /**
     * @param configurationAliases The player parameters and aliases used as dynamic variables
     * during session initialization.
     * For more information, see [Domain
     * Variables](https://docs.aws.amazon.com/mediatailor/latest/ug/variables-domain.html) .
     */
    public fun configurationAliases(configurationAliases: IResolvable)

    /**
     * @param configurationAliases The player parameters and aliases used as dynamic variables
     * during session initialization.
     * For more information, see [Domain
     * Variables](https://docs.aws.amazon.com/mediatailor/latest/ug/variables-domain.html) .
     */
    public fun configurationAliases(configurationAliases: Map)

    /**
     * @param dashConfiguration The configuration for a DASH source.
     */
    public fun dashConfiguration(dashConfiguration: IResolvable)

    /**
     * @param dashConfiguration The configuration for a DASH source.
     */
    public
        fun dashConfiguration(dashConfiguration: CfnPlaybackConfiguration.DashConfigurationProperty)

    /**
     * @param dashConfiguration The configuration for a DASH source.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("ab9a6790602423c0b91c25ed17f298b2ee9723fd955db2420e3786c66b4612bf")
    public
        fun dashConfiguration(dashConfiguration: CfnPlaybackConfiguration.DashConfigurationProperty.Builder.() -> Unit)

    /**
     * @param hlsConfiguration The configuration for HLS content.
     */
    public fun hlsConfiguration(hlsConfiguration: IResolvable)

    /**
     * @param hlsConfiguration The configuration for HLS content.
     */
    public fun hlsConfiguration(hlsConfiguration: CfnPlaybackConfiguration.HlsConfigurationProperty)

    /**
     * @param hlsConfiguration The configuration for HLS content.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("ff87bacd09a477cc16ba0960b3b96e444632543798fcab3539fde920ef4596ce")
    public
        fun hlsConfiguration(hlsConfiguration: CfnPlaybackConfiguration.HlsConfigurationProperty.Builder.() -> Unit)

    /**
     * @param livePreRollConfiguration The configuration for pre-roll ad insertion.
     */
    public fun livePreRollConfiguration(livePreRollConfiguration: IResolvable)

    /**
     * @param livePreRollConfiguration The configuration for pre-roll ad insertion.
     */
    public
        fun livePreRollConfiguration(livePreRollConfiguration: CfnPlaybackConfiguration.LivePreRollConfigurationProperty)

    /**
     * @param livePreRollConfiguration The configuration for pre-roll ad insertion.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("540b8a134d0608705410d3d40ab82f8883e15c1ecacfefe7c63c550ac5e4f6c5")
    public
        fun livePreRollConfiguration(livePreRollConfiguration: CfnPlaybackConfiguration.LivePreRollConfigurationProperty.Builder.() -> Unit)

    /**
     * @param manifestProcessingRules The configuration for manifest processing rules.
     * Manifest processing rules enable customization of the personalized manifests created by
     * MediaTailor.
     */
    public fun manifestProcessingRules(manifestProcessingRules: IResolvable)

    /**
     * @param manifestProcessingRules The configuration for manifest processing rules.
     * Manifest processing rules enable customization of the personalized manifests created by
     * MediaTailor.
     */
    public
        fun manifestProcessingRules(manifestProcessingRules: CfnPlaybackConfiguration.ManifestProcessingRulesProperty)

    /**
     * @param manifestProcessingRules The configuration for manifest processing rules.
     * Manifest processing rules enable customization of the personalized manifests created by
     * MediaTailor.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("669e7cb5e56087622f66455eb08ae0454596ea24e3c5a18c6f72b0cb18c5b406")
    public
        fun manifestProcessingRules(manifestProcessingRules: CfnPlaybackConfiguration.ManifestProcessingRulesProperty.Builder.() -> Unit)

    /**
     * @param name The identifier for the playback configuration. 
     */
    public fun name(name: String)

    /**
     * @param 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) .
     */
    public fun personalizationThresholdSeconds(personalizationThresholdSeconds: Number)

    /**
     * @param slateAdUrl The URL for a 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 playback configurations. For VPAID, the slate is required
     * because MediaTailor provides it in the slots designated for dynamic ad content. The slate must
     * be a high-quality asset that contains both audio and video.
     */
    public fun slateAdUrl(slateAdUrl: String)

    /**
     * @param tags The tags to assign to the playback configuration.
     * Tags are key-value pairs that you can associate with Amazon resources to help with
     * organization, access control, and cost tracking. For more information, see [Tagging AWS
     * Elemental MediaTailor Resources](https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html)
     * .
     */
    public fun tags(tags: List)

    /**
     * @param tags The tags to assign to the playback configuration.
     * Tags are key-value pairs that you can associate with Amazon resources to help with
     * organization, access control, and cost tracking. For more information, see [Tagging AWS
     * Elemental MediaTailor Resources](https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html)
     * .
     */
    public fun tags(vararg tags: CfnTag)

    /**
     * @param 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.
     */
    public fun transcodeProfileName(transcodeProfileName: String)

    /**
     * @param videoContentSourceUrl The URL prefix for the parent manifest for the stream, minus the
     * asset ID. 
     * The maximum length is 512 characters.
     */
    public fun videoContentSourceUrl(videoContentSourceUrl: String)
  }

  private class BuilderImpl : Builder {
    private val cdkBuilder:
        software.amazon.awscdk.services.mediatailor.CfnPlaybackConfigurationProps.Builder =
        software.amazon.awscdk.services.mediatailor.CfnPlaybackConfigurationProps.builder()

    /**
     * @param 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.
     */
    override fun adDecisionServerUrl(adDecisionServerUrl: String) {
      cdkBuilder.adDecisionServerUrl(adDecisionServerUrl)
    }

    /**
     * @param 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) .
     */
    override fun availSuppression(availSuppression: IResolvable) {
      cdkBuilder.availSuppression(availSuppression.let(IResolvable.Companion::unwrap))
    }

    /**
     * @param 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) .
     */
    override
        fun availSuppression(availSuppression: CfnPlaybackConfiguration.AvailSuppressionProperty) {
      cdkBuilder.availSuppression(availSuppression.let(CfnPlaybackConfiguration.AvailSuppressionProperty.Companion::unwrap))
    }

    /**
     * @param 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) .
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("8026ba3922b4645fac3a368a451a35217382f8e0d2c964d176a220dfa0260c95")
    override
        fun availSuppression(availSuppression: CfnPlaybackConfiguration.AvailSuppressionProperty.Builder.() -> Unit):
        Unit = availSuppression(CfnPlaybackConfiguration.AvailSuppressionProperty(availSuppression))

    /**
     * @param 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) .
     */
    override fun bumper(bumper: IResolvable) {
      cdkBuilder.bumper(bumper.let(IResolvable.Companion::unwrap))
    }

    /**
     * @param 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) .
     */
    override fun bumper(bumper: CfnPlaybackConfiguration.BumperProperty) {
      cdkBuilder.bumper(bumper.let(CfnPlaybackConfiguration.BumperProperty.Companion::unwrap))
    }

    /**
     * @param 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) .
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("77c571caa44879d74f4e957d8ecd927e94d804de9735a7afe3a651a86955d6ed")
    override fun bumper(bumper: CfnPlaybackConfiguration.BumperProperty.Builder.() -> Unit): Unit =
        bumper(CfnPlaybackConfiguration.BumperProperty(bumper))

    /**
     * @param cdnConfiguration The configuration for using a content delivery network (CDN), like
     * Amazon CloudFront, for content and ad segment management.
     */
    override fun cdnConfiguration(cdnConfiguration: IResolvable) {
      cdkBuilder.cdnConfiguration(cdnConfiguration.let(IResolvable.Companion::unwrap))
    }

    /**
     * @param cdnConfiguration The configuration for using a content delivery network (CDN), like
     * Amazon CloudFront, for content and ad segment management.
     */
    override
        fun cdnConfiguration(cdnConfiguration: CfnPlaybackConfiguration.CdnConfigurationProperty) {
      cdkBuilder.cdnConfiguration(cdnConfiguration.let(CfnPlaybackConfiguration.CdnConfigurationProperty.Companion::unwrap))
    }

    /**
     * @param cdnConfiguration The configuration for using a content delivery network (CDN), like
     * Amazon CloudFront, for content and ad segment management.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("d72bd252ba0e72440ff25cd81da98020c3baf3822790d3a75479d98eafe026de")
    override
        fun cdnConfiguration(cdnConfiguration: CfnPlaybackConfiguration.CdnConfigurationProperty.Builder.() -> Unit):
        Unit = cdnConfiguration(CfnPlaybackConfiguration.CdnConfigurationProperty(cdnConfiguration))

    /**
     * @param configurationAliases The player parameters and aliases used as dynamic variables
     * during session initialization.
     * For more information, see [Domain
     * Variables](https://docs.aws.amazon.com/mediatailor/latest/ug/variables-domain.html) .
     */
    override fun configurationAliases(configurationAliases: IResolvable) {
      cdkBuilder.configurationAliases(configurationAliases.let(IResolvable.Companion::unwrap))
    }

    /**
     * @param configurationAliases The player parameters and aliases used as dynamic variables
     * during session initialization.
     * For more information, see [Domain
     * Variables](https://docs.aws.amazon.com/mediatailor/latest/ug/variables-domain.html) .
     */
    override fun configurationAliases(configurationAliases: Map) {
      cdkBuilder.configurationAliases(configurationAliases.mapValues{CdkObjectWrappers.unwrap(it.value)})
    }

    /**
     * @param dashConfiguration The configuration for a DASH source.
     */
    override fun dashConfiguration(dashConfiguration: IResolvable) {
      cdkBuilder.dashConfiguration(dashConfiguration.let(IResolvable.Companion::unwrap))
    }

    /**
     * @param dashConfiguration The configuration for a DASH source.
     */
    override
        fun dashConfiguration(dashConfiguration: CfnPlaybackConfiguration.DashConfigurationProperty) {
      cdkBuilder.dashConfiguration(dashConfiguration.let(CfnPlaybackConfiguration.DashConfigurationProperty.Companion::unwrap))
    }

    /**
     * @param dashConfiguration The configuration for a DASH source.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("ab9a6790602423c0b91c25ed17f298b2ee9723fd955db2420e3786c66b4612bf")
    override
        fun dashConfiguration(dashConfiguration: CfnPlaybackConfiguration.DashConfigurationProperty.Builder.() -> Unit):
        Unit =
        dashConfiguration(CfnPlaybackConfiguration.DashConfigurationProperty(dashConfiguration))

    /**
     * @param hlsConfiguration The configuration for HLS content.
     */
    override fun hlsConfiguration(hlsConfiguration: IResolvable) {
      cdkBuilder.hlsConfiguration(hlsConfiguration.let(IResolvable.Companion::unwrap))
    }

    /**
     * @param hlsConfiguration The configuration for HLS content.
     */
    override
        fun hlsConfiguration(hlsConfiguration: CfnPlaybackConfiguration.HlsConfigurationProperty) {
      cdkBuilder.hlsConfiguration(hlsConfiguration.let(CfnPlaybackConfiguration.HlsConfigurationProperty.Companion::unwrap))
    }

    /**
     * @param hlsConfiguration The configuration for HLS content.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("ff87bacd09a477cc16ba0960b3b96e444632543798fcab3539fde920ef4596ce")
    override
        fun hlsConfiguration(hlsConfiguration: CfnPlaybackConfiguration.HlsConfigurationProperty.Builder.() -> Unit):
        Unit = hlsConfiguration(CfnPlaybackConfiguration.HlsConfigurationProperty(hlsConfiguration))

    /**
     * @param livePreRollConfiguration The configuration for pre-roll ad insertion.
     */
    override fun livePreRollConfiguration(livePreRollConfiguration: IResolvable) {
      cdkBuilder.livePreRollConfiguration(livePreRollConfiguration.let(IResolvable.Companion::unwrap))
    }

    /**
     * @param livePreRollConfiguration The configuration for pre-roll ad insertion.
     */
    override
        fun livePreRollConfiguration(livePreRollConfiguration: CfnPlaybackConfiguration.LivePreRollConfigurationProperty) {
      cdkBuilder.livePreRollConfiguration(livePreRollConfiguration.let(CfnPlaybackConfiguration.LivePreRollConfigurationProperty.Companion::unwrap))
    }

    /**
     * @param livePreRollConfiguration The configuration for pre-roll ad insertion.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("540b8a134d0608705410d3d40ab82f8883e15c1ecacfefe7c63c550ac5e4f6c5")
    override
        fun livePreRollConfiguration(livePreRollConfiguration: CfnPlaybackConfiguration.LivePreRollConfigurationProperty.Builder.() -> Unit):
        Unit =
        livePreRollConfiguration(CfnPlaybackConfiguration.LivePreRollConfigurationProperty(livePreRollConfiguration))

    /**
     * @param manifestProcessingRules The configuration for manifest processing rules.
     * Manifest processing rules enable customization of the personalized manifests created by
     * MediaTailor.
     */
    override fun manifestProcessingRules(manifestProcessingRules: IResolvable) {
      cdkBuilder.manifestProcessingRules(manifestProcessingRules.let(IResolvable.Companion::unwrap))
    }

    /**
     * @param manifestProcessingRules The configuration for manifest processing rules.
     * Manifest processing rules enable customization of the personalized manifests created by
     * MediaTailor.
     */
    override
        fun manifestProcessingRules(manifestProcessingRules: CfnPlaybackConfiguration.ManifestProcessingRulesProperty) {
      cdkBuilder.manifestProcessingRules(manifestProcessingRules.let(CfnPlaybackConfiguration.ManifestProcessingRulesProperty.Companion::unwrap))
    }

    /**
     * @param manifestProcessingRules The configuration for manifest processing rules.
     * Manifest processing rules enable customization of the personalized manifests created by
     * MediaTailor.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("669e7cb5e56087622f66455eb08ae0454596ea24e3c5a18c6f72b0cb18c5b406")
    override
        fun manifestProcessingRules(manifestProcessingRules: CfnPlaybackConfiguration.ManifestProcessingRulesProperty.Builder.() -> Unit):
        Unit =
        manifestProcessingRules(CfnPlaybackConfiguration.ManifestProcessingRulesProperty(manifestProcessingRules))

    /**
     * @param name The identifier for the playback configuration. 
     */
    override fun name(name: String) {
      cdkBuilder.name(name)
    }

    /**
     * @param 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) .
     */
    override fun personalizationThresholdSeconds(personalizationThresholdSeconds: Number) {
      cdkBuilder.personalizationThresholdSeconds(personalizationThresholdSeconds)
    }

    /**
     * @param slateAdUrl The URL for a 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 playback configurations. For VPAID, the slate is required
     * because MediaTailor provides it in the slots designated for dynamic ad content. The slate must
     * be a high-quality asset that contains both audio and video.
     */
    override fun slateAdUrl(slateAdUrl: String) {
      cdkBuilder.slateAdUrl(slateAdUrl)
    }

    /**
     * @param tags The tags to assign to the playback configuration.
     * Tags are key-value pairs that you can associate with Amazon resources to help with
     * organization, access control, and cost tracking. For more information, see [Tagging AWS
     * Elemental MediaTailor Resources](https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html)
     * .
     */
    override fun tags(tags: List) {
      cdkBuilder.tags(tags.map(CfnTag.Companion::unwrap))
    }

    /**
     * @param tags The tags to assign to the playback configuration.
     * Tags are key-value pairs that you can associate with Amazon resources to help with
     * organization, access control, and cost tracking. For more information, see [Tagging AWS
     * Elemental MediaTailor Resources](https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html)
     * .
     */
    override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList())

    /**
     * @param 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.
     */
    override fun transcodeProfileName(transcodeProfileName: String) {
      cdkBuilder.transcodeProfileName(transcodeProfileName)
    }

    /**
     * @param videoContentSourceUrl The URL prefix for the parent manifest for the stream, minus the
     * asset ID. 
     * The maximum length is 512 characters.
     */
    override fun videoContentSourceUrl(videoContentSourceUrl: String) {
      cdkBuilder.videoContentSourceUrl(videoContentSourceUrl)
    }

    public fun build(): software.amazon.awscdk.services.mediatailor.CfnPlaybackConfigurationProps =
        cdkBuilder.build()
  }

  private class Wrapper(
    cdkObject: software.amazon.awscdk.services.mediatailor.CfnPlaybackConfigurationProps,
  ) : CdkObject(cdkObject),
      CfnPlaybackConfigurationProps {
    /**
     * 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.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-playbackconfiguration.html#cfn-mediatailor-playbackconfiguration-addecisionserverurl)
     */
    override fun adDecisionServerUrl(): String = unwrap(this).getAdDecisionServerUrl()

    /**
     * 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) .
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-playbackconfiguration.html#cfn-mediatailor-playbackconfiguration-availsuppression)
     */
    override fun availSuppression(): Any? = unwrap(this).getAvailSuppression()

    /**
     * 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) .
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-playbackconfiguration.html#cfn-mediatailor-playbackconfiguration-bumper)
     */
    override fun bumper(): Any? = unwrap(this).getBumper()

    /**
     * The configuration for using a content delivery network (CDN), like Amazon CloudFront, for
     * content and ad segment management.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-playbackconfiguration.html#cfn-mediatailor-playbackconfiguration-cdnconfiguration)
     */
    override fun cdnConfiguration(): Any? = unwrap(this).getCdnConfiguration()

    /**
     * The player parameters and aliases used as dynamic variables during session initialization.
     *
     * For more information, see [Domain
     * Variables](https://docs.aws.amazon.com/mediatailor/latest/ug/variables-domain.html) .
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-playbackconfiguration.html#cfn-mediatailor-playbackconfiguration-configurationaliases)
     */
    override fun configurationAliases(): Any? = unwrap(this).getConfigurationAliases()

    /**
     * The configuration for a DASH source.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-playbackconfiguration.html#cfn-mediatailor-playbackconfiguration-dashconfiguration)
     */
    override fun dashConfiguration(): Any? = unwrap(this).getDashConfiguration()

    /**
     * The configuration for HLS content.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-playbackconfiguration.html#cfn-mediatailor-playbackconfiguration-hlsconfiguration)
     */
    override fun hlsConfiguration(): Any? = unwrap(this).getHlsConfiguration()

    /**
     * The configuration for pre-roll ad insertion.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-playbackconfiguration.html#cfn-mediatailor-playbackconfiguration-liveprerollconfiguration)
     */
    override fun livePreRollConfiguration(): Any? = unwrap(this).getLivePreRollConfiguration()

    /**
     * The configuration for manifest processing rules.
     *
     * Manifest processing rules enable customization of the personalized manifests created by
     * MediaTailor.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-playbackconfiguration.html#cfn-mediatailor-playbackconfiguration-manifestprocessingrules)
     */
    override fun manifestProcessingRules(): Any? = unwrap(this).getManifestProcessingRules()

    /**
     * The identifier for the playback configuration.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-playbackconfiguration.html#cfn-mediatailor-playbackconfiguration-name)
     */
    override fun name(): String = unwrap(this).getName()

    /**
     * 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) .
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-playbackconfiguration.html#cfn-mediatailor-playbackconfiguration-personalizationthresholdseconds)
     */
    override fun personalizationThresholdSeconds(): Number? =
        unwrap(this).getPersonalizationThresholdSeconds()

    /**
     * The URL for a 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 playback configurations. For VPAID, the slate is required
     * because MediaTailor provides it in the slots designated for dynamic ad content. The slate must
     * be a high-quality asset that contains both audio and video.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-playbackconfiguration.html#cfn-mediatailor-playbackconfiguration-slateadurl)
     */
    override fun slateAdUrl(): String? = unwrap(this).getSlateAdUrl()

    /**
     * The tags to assign to the playback configuration.
     *
     * Tags are key-value pairs that you can associate with Amazon resources to help with
     * organization, access control, and cost tracking. For more information, see [Tagging AWS
     * Elemental MediaTailor Resources](https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html)
     * .
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-playbackconfiguration.html#cfn-mediatailor-playbackconfiguration-tags)
     */
    override fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList()

    /**
     * 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.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-playbackconfiguration.html#cfn-mediatailor-playbackconfiguration-transcodeprofilename)
     */
    override fun transcodeProfileName(): String? = unwrap(this).getTranscodeProfileName()

    /**
     * The URL prefix for the parent manifest for the stream, minus the asset ID.
     *
     * The maximum length is 512 characters.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-playbackconfiguration.html#cfn-mediatailor-playbackconfiguration-videocontentsourceurl)
     */
    override fun videoContentSourceUrl(): String = unwrap(this).getVideoContentSourceUrl()
  }

  public companion object {
    public operator fun invoke(block: Builder.() -> Unit = {}): CfnPlaybackConfigurationProps {
      val builderImpl = BuilderImpl()
      return Wrapper(builderImpl.apply(block).build())
    }

    internal
        fun wrap(cdkObject: software.amazon.awscdk.services.mediatailor.CfnPlaybackConfigurationProps):
        CfnPlaybackConfigurationProps = CdkObjectWrappers.wrap(cdkObject) as?
        CfnPlaybackConfigurationProps ?: Wrapper(cdkObject)

    internal fun unwrap(wrapped: CfnPlaybackConfigurationProps):
        software.amazon.awscdk.services.mediatailor.CfnPlaybackConfigurationProps = (wrapped as
        CdkObject).cdkObject as
        software.amazon.awscdk.services.mediatailor.CfnPlaybackConfigurationProps
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy