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

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

The 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.String
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * Properties for defining a `CfnChannel`.
 *
 * 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.*;
 * CfnChannelProps cfnChannelProps = CfnChannelProps.builder()
 * .channelName("channelName")
 * .outputs(List.of(RequestOutputItemProperty.builder()
 * .manifestName("manifestName")
 * .sourceGroup("sourceGroup")
 * // the properties below are optional
 * .dashPlaylistSettings(DashPlaylistSettingsProperty.builder()
 * .manifestWindowSeconds(123)
 * .minBufferTimeSeconds(123)
 * .minUpdatePeriodSeconds(123)
 * .suggestedPresentationDelaySeconds(123)
 * .build())
 * .hlsPlaylistSettings(HlsPlaylistSettingsProperty.builder()
 * .adMarkupType(List.of("adMarkupType"))
 * .manifestWindowSeconds(123)
 * .build())
 * .build()))
 * .playbackMode("playbackMode")
 * // the properties below are optional
 * .audiences(List.of("audiences"))
 * .fillerSlate(SlateSourceProperty.builder()
 * .sourceLocationName("sourceLocationName")
 * .vodSourceName("vodSourceName")
 * .build())
 * .logConfiguration(LogConfigurationForChannelProperty.builder()
 * .logTypes(List.of("logTypes"))
 * .build())
 * .tags(List.of(CfnTag.builder()
 * .key("key")
 * .value("value")
 * .build()))
 * .tier("tier")
 * .timeShiftConfiguration(TimeShiftConfigurationProperty.builder()
 * .maxTimeDelaySeconds(123)
 * .build())
 * .build();
 * ```
 *
 * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-channel.html)
 */
public interface CfnChannelProps {
  /**
   * The list of audiences defined in channel.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-channel.html#cfn-mediatailor-channel-audiences)
   */
  public fun audiences(): List = unwrap(this).getAudiences() ?: emptyList()

  /**
   * The name of the channel.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-channel.html#cfn-mediatailor-channel-channelname)
   */
  public fun channelName(): String

  /**
   * The slate used to fill gaps between programs in the schedule.
   *
   * You must configure filler slate if your channel uses the `LINEAR` `PlaybackMode` . MediaTailor
   * doesn't support filler slate for channels using the `LOOP` `PlaybackMode` .
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-channel.html#cfn-mediatailor-channel-fillerslate)
   */
  public fun fillerSlate(): Any? = unwrap(this).getFillerSlate()

  /**
   * The log configuration.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-channel.html#cfn-mediatailor-channel-logconfiguration)
   */
  public fun logConfiguration(): Any? = unwrap(this).getLogConfiguration()

  /**
   * The channel's output properties.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-channel.html#cfn-mediatailor-channel-outputs)
   */
  public fun outputs(): Any

  /**
   * The type of playback mode for this channel.
   *
   * `LINEAR` - Programs play back-to-back only once.
   *
   * `LOOP` - Programs play back-to-back in an endless loop. When the last program in the schedule
   * plays, playback loops back to the first program in the schedule.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-channel.html#cfn-mediatailor-channel-playbackmode)
   */
  public fun playbackMode(): String

  /**
   * The tags to assign to the channel.
   *
   * 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-channel.html#cfn-mediatailor-channel-tags)
   */
  public fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList()

  /**
   * The tier for this channel.
   *
   * STANDARD tier channels can contain live programs.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-channel.html#cfn-mediatailor-channel-tier)
   */
  public fun tier(): String? = unwrap(this).getTier()

  /**
   * The configuration for time-shifted viewing.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-channel.html#cfn-mediatailor-channel-timeshiftconfiguration)
   */
  public fun timeShiftConfiguration(): Any? = unwrap(this).getTimeShiftConfiguration()

  /**
   * A builder for [CfnChannelProps]
   */
  @CdkDslMarker
  public interface Builder {
    /**
     * @param audiences The list of audiences defined in channel.
     */
    public fun audiences(audiences: List)

    /**
     * @param audiences The list of audiences defined in channel.
     */
    public fun audiences(vararg audiences: String)

    /**
     * @param channelName The name of the channel. 
     */
    public fun channelName(channelName: String)

    /**
     * @param fillerSlate The slate used to fill gaps between programs in the schedule.
     * You must configure filler slate if your channel uses the `LINEAR` `PlaybackMode` .
     * MediaTailor doesn't support filler slate for channels using the `LOOP` `PlaybackMode` .
     */
    public fun fillerSlate(fillerSlate: IResolvable)

    /**
     * @param fillerSlate The slate used to fill gaps between programs in the schedule.
     * You must configure filler slate if your channel uses the `LINEAR` `PlaybackMode` .
     * MediaTailor doesn't support filler slate for channels using the `LOOP` `PlaybackMode` .
     */
    public fun fillerSlate(fillerSlate: CfnChannel.SlateSourceProperty)

    /**
     * @param fillerSlate The slate used to fill gaps between programs in the schedule.
     * You must configure filler slate if your channel uses the `LINEAR` `PlaybackMode` .
     * MediaTailor doesn't support filler slate for channels using the `LOOP` `PlaybackMode` .
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("3630406ac8daf209f49224ced0626b8e477ab1f8cf49b506554fb513039556e7")
    public fun fillerSlate(fillerSlate: CfnChannel.SlateSourceProperty.Builder.() -> Unit)

    /**
     * @param logConfiguration The log configuration.
     */
    public fun logConfiguration(logConfiguration: IResolvable)

    /**
     * @param logConfiguration The log configuration.
     */
    public fun logConfiguration(logConfiguration: CfnChannel.LogConfigurationForChannelProperty)

    /**
     * @param logConfiguration The log configuration.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("912c5e8c0457d2a9c16a430b335d4ffb91b9b345b269159c812350456fd30518")
    public
        fun logConfiguration(logConfiguration: CfnChannel.LogConfigurationForChannelProperty.Builder.() -> Unit)

    /**
     * @param outputs The channel's output properties. 
     */
    public fun outputs(outputs: IResolvable)

    /**
     * @param outputs The channel's output properties. 
     */
    public fun outputs(outputs: List)

    /**
     * @param outputs The channel's output properties. 
     */
    public fun outputs(vararg outputs: Any)

    /**
     * @param playbackMode The type of playback mode for this channel. 
     * `LINEAR` - Programs play back-to-back only once.
     *
     * `LOOP` - Programs play back-to-back in an endless loop. When the last program in the schedule
     * plays, playback loops back to the first program in the schedule.
     */
    public fun playbackMode(playbackMode: String)

    /**
     * @param tags The tags to assign to the channel.
     * 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 channel.
     * 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 tier The tier for this channel.
     * STANDARD tier channels can contain live programs.
     */
    public fun tier(tier: String)

    /**
     * @param timeShiftConfiguration The configuration for time-shifted viewing.
     */
    public fun timeShiftConfiguration(timeShiftConfiguration: IResolvable)

    /**
     * @param timeShiftConfiguration The configuration for time-shifted viewing.
     */
    public
        fun timeShiftConfiguration(timeShiftConfiguration: CfnChannel.TimeShiftConfigurationProperty)

    /**
     * @param timeShiftConfiguration The configuration for time-shifted viewing.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("5f880b814fefcd9aff85728770f6112e76298f051e7c790acfefc3fdd99d296b")
    public
        fun timeShiftConfiguration(timeShiftConfiguration: CfnChannel.TimeShiftConfigurationProperty.Builder.() -> Unit)
  }

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

    /**
     * @param audiences The list of audiences defined in channel.
     */
    override fun audiences(audiences: List) {
      cdkBuilder.audiences(audiences)
    }

    /**
     * @param audiences The list of audiences defined in channel.
     */
    override fun audiences(vararg audiences: String): Unit = audiences(audiences.toList())

    /**
     * @param channelName The name of the channel. 
     */
    override fun channelName(channelName: String) {
      cdkBuilder.channelName(channelName)
    }

    /**
     * @param fillerSlate The slate used to fill gaps between programs in the schedule.
     * You must configure filler slate if your channel uses the `LINEAR` `PlaybackMode` .
     * MediaTailor doesn't support filler slate for channels using the `LOOP` `PlaybackMode` .
     */
    override fun fillerSlate(fillerSlate: IResolvable) {
      cdkBuilder.fillerSlate(fillerSlate.let(IResolvable.Companion::unwrap))
    }

    /**
     * @param fillerSlate The slate used to fill gaps between programs in the schedule.
     * You must configure filler slate if your channel uses the `LINEAR` `PlaybackMode` .
     * MediaTailor doesn't support filler slate for channels using the `LOOP` `PlaybackMode` .
     */
    override fun fillerSlate(fillerSlate: CfnChannel.SlateSourceProperty) {
      cdkBuilder.fillerSlate(fillerSlate.let(CfnChannel.SlateSourceProperty.Companion::unwrap))
    }

    /**
     * @param fillerSlate The slate used to fill gaps between programs in the schedule.
     * You must configure filler slate if your channel uses the `LINEAR` `PlaybackMode` .
     * MediaTailor doesn't support filler slate for channels using the `LOOP` `PlaybackMode` .
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("3630406ac8daf209f49224ced0626b8e477ab1f8cf49b506554fb513039556e7")
    override fun fillerSlate(fillerSlate: CfnChannel.SlateSourceProperty.Builder.() -> Unit): Unit =
        fillerSlate(CfnChannel.SlateSourceProperty(fillerSlate))

    /**
     * @param logConfiguration The log configuration.
     */
    override fun logConfiguration(logConfiguration: IResolvable) {
      cdkBuilder.logConfiguration(logConfiguration.let(IResolvable.Companion::unwrap))
    }

    /**
     * @param logConfiguration The log configuration.
     */
    override fun logConfiguration(logConfiguration: CfnChannel.LogConfigurationForChannelProperty) {
      cdkBuilder.logConfiguration(logConfiguration.let(CfnChannel.LogConfigurationForChannelProperty.Companion::unwrap))
    }

    /**
     * @param logConfiguration The log configuration.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("912c5e8c0457d2a9c16a430b335d4ffb91b9b345b269159c812350456fd30518")
    override
        fun logConfiguration(logConfiguration: CfnChannel.LogConfigurationForChannelProperty.Builder.() -> Unit):
        Unit = logConfiguration(CfnChannel.LogConfigurationForChannelProperty(logConfiguration))

    /**
     * @param outputs The channel's output properties. 
     */
    override fun outputs(outputs: IResolvable) {
      cdkBuilder.outputs(outputs.let(IResolvable.Companion::unwrap))
    }

    /**
     * @param outputs The channel's output properties. 
     */
    override fun outputs(outputs: List) {
      cdkBuilder.outputs(outputs.map{CdkObjectWrappers.unwrap(it)})
    }

    /**
     * @param outputs The channel's output properties. 
     */
    override fun outputs(vararg outputs: Any): Unit = outputs(outputs.toList())

    /**
     * @param playbackMode The type of playback mode for this channel. 
     * `LINEAR` - Programs play back-to-back only once.
     *
     * `LOOP` - Programs play back-to-back in an endless loop. When the last program in the schedule
     * plays, playback loops back to the first program in the schedule.
     */
    override fun playbackMode(playbackMode: String) {
      cdkBuilder.playbackMode(playbackMode)
    }

    /**
     * @param tags The tags to assign to the channel.
     * 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 channel.
     * 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 tier The tier for this channel.
     * STANDARD tier channels can contain live programs.
     */
    override fun tier(tier: String) {
      cdkBuilder.tier(tier)
    }

    /**
     * @param timeShiftConfiguration The configuration for time-shifted viewing.
     */
    override fun timeShiftConfiguration(timeShiftConfiguration: IResolvable) {
      cdkBuilder.timeShiftConfiguration(timeShiftConfiguration.let(IResolvable.Companion::unwrap))
    }

    /**
     * @param timeShiftConfiguration The configuration for time-shifted viewing.
     */
    override
        fun timeShiftConfiguration(timeShiftConfiguration: CfnChannel.TimeShiftConfigurationProperty) {
      cdkBuilder.timeShiftConfiguration(timeShiftConfiguration.let(CfnChannel.TimeShiftConfigurationProperty.Companion::unwrap))
    }

    /**
     * @param timeShiftConfiguration The configuration for time-shifted viewing.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("5f880b814fefcd9aff85728770f6112e76298f051e7c790acfefc3fdd99d296b")
    override
        fun timeShiftConfiguration(timeShiftConfiguration: CfnChannel.TimeShiftConfigurationProperty.Builder.() -> Unit):
        Unit =
        timeShiftConfiguration(CfnChannel.TimeShiftConfigurationProperty(timeShiftConfiguration))

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

  private class Wrapper(
    cdkObject: software.amazon.awscdk.services.mediatailor.CfnChannelProps,
  ) : CdkObject(cdkObject),
      CfnChannelProps {
    /**
     * The list of audiences defined in channel.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-channel.html#cfn-mediatailor-channel-audiences)
     */
    override fun audiences(): List = unwrap(this).getAudiences() ?: emptyList()

    /**
     * The name of the channel.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-channel.html#cfn-mediatailor-channel-channelname)
     */
    override fun channelName(): String = unwrap(this).getChannelName()

    /**
     * The slate used to fill gaps between programs in the schedule.
     *
     * You must configure filler slate if your channel uses the `LINEAR` `PlaybackMode` .
     * MediaTailor doesn't support filler slate for channels using the `LOOP` `PlaybackMode` .
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-channel.html#cfn-mediatailor-channel-fillerslate)
     */
    override fun fillerSlate(): Any? = unwrap(this).getFillerSlate()

    /**
     * The log configuration.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-channel.html#cfn-mediatailor-channel-logconfiguration)
     */
    override fun logConfiguration(): Any? = unwrap(this).getLogConfiguration()

    /**
     * The channel's output properties.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-channel.html#cfn-mediatailor-channel-outputs)
     */
    override fun outputs(): Any = unwrap(this).getOutputs()

    /**
     * The type of playback mode for this channel.
     *
     * `LINEAR` - Programs play back-to-back only once.
     *
     * `LOOP` - Programs play back-to-back in an endless loop. When the last program in the schedule
     * plays, playback loops back to the first program in the schedule.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-channel.html#cfn-mediatailor-channel-playbackmode)
     */
    override fun playbackMode(): String = unwrap(this).getPlaybackMode()

    /**
     * The tags to assign to the channel.
     *
     * 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-channel.html#cfn-mediatailor-channel-tags)
     */
    override fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList()

    /**
     * The tier for this channel.
     *
     * STANDARD tier channels can contain live programs.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-channel.html#cfn-mediatailor-channel-tier)
     */
    override fun tier(): String? = unwrap(this).getTier()

    /**
     * The configuration for time-shifted viewing.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-channel.html#cfn-mediatailor-channel-timeshiftconfiguration)
     */
    override fun timeShiftConfiguration(): Any? = unwrap(this).getTimeShiftConfiguration()
  }

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

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

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




© 2015 - 2024 Weber Informatics LLC | Privacy Policy