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

com.pulumi.awsnative.mediapackage.kotlin.inputs.OriginEndpointHlsPackageArgs.kt Maven / Gradle / Ivy

Go to download

Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.

There is a newer version: 1.24.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.awsnative.mediapackage.kotlin.inputs

import com.pulumi.awsnative.mediapackage.inputs.OriginEndpointHlsPackageArgs.builder
import com.pulumi.awsnative.mediapackage.kotlin.enums.OriginEndpointAdsOnDeliveryRestrictions
import com.pulumi.awsnative.mediapackage.kotlin.enums.OriginEndpointHlsPackageAdMarkers
import com.pulumi.awsnative.mediapackage.kotlin.enums.OriginEndpointHlsPackageAdTriggersItem
import com.pulumi.awsnative.mediapackage.kotlin.enums.OriginEndpointHlsPackagePlaylistType
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.Boolean
import kotlin.Int
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * An HTTP Live Streaming (HLS) packaging configuration.
 * @property adMarkers This setting controls how ad markers are included in the packaged OriginEndpoint. "NONE" will omit all SCTE-35 ad markers from the output. "PASSTHROUGH" causes the manifest to contain a copy of the SCTE-35 ad markers (comments) taken directly from the input HTTP Live Streaming (HLS) manifest. "SCTE35_ENHANCED" generates ad markers and blackout tags based on SCTE-35 messages in the input source. "DATERANGE" inserts EXT-X-DATERANGE tags to signal ad and program transition events in HLS and CMAF manifests. For this option, you must set a programDateTimeIntervalSeconds value that is greater than 0.
 * @property adTriggers A list of SCTE-35 message types that are treated as ad markers in the output.  If empty, no ad markers are output.  Specify multiple items to create ad markers for all of the included message types.
 * @property adsOnDeliveryRestrictions The flags on SCTE-35 segmentation descriptors that have to be present for AWS Elemental MediaPackage to insert ad markers in the output manifest. For information about SCTE-35 in AWS Elemental MediaPackage , see [SCTE-35 Message Options in AWS Elemental MediaPackage](https://docs.aws.amazon.com/mediapackage/latest/ug/scte.html) .
 * @property encryption Parameters for encrypting content.
 * @property includeDvbSubtitles When enabled, MediaPackage passes through digital video broadcasting (DVB) subtitles into the output.
 * @property includeIframeOnlyStream When enabled, an I-Frame only stream will be included in the output.
 * @property playlistType The HTTP Live Streaming (HLS) playlist type. When either "EVENT" or "VOD" is specified, a corresponding EXT-X-PLAYLIST-TYPE entry will be included in the media playlist.
 * @property playlistWindowSeconds Time window (in seconds) contained in each parent manifest.
 * @property programDateTimeIntervalSeconds The interval (in seconds) between each EXT-X-PROGRAM-DATE-TIME tag inserted into manifests. Additionally, when an interval is specified ID3Timed Metadata messages will be generated every 5 seconds using the ingest time of the content. If the interval is not specified, or set to 0, then no EXT-X-PROGRAM-DATE-TIME tags will be inserted into manifests and no ID3Timed Metadata messages will be generated. Note that irrespective of this parameter, if any ID3 Timed Metadata is found in HTTP Live Streaming (HLS) input, it will be passed through to HLS output.
 * @property segmentDurationSeconds Duration (in seconds) of each fragment. Actual fragments will be rounded to the nearest multiple of the source fragment duration.
 * @property streamSelection Limitations for outputs from the endpoint, based on the video bitrate.
 * @property useAudioRenditionGroup When enabled, audio streams will be placed in rendition groups in the output.
 */
public data class OriginEndpointHlsPackageArgs(
    public val adMarkers: Output? = null,
    public val adTriggers: Output>? = null,
    public val adsOnDeliveryRestrictions: Output? = null,
    public val encryption: Output? = null,
    public val includeDvbSubtitles: Output? = null,
    public val includeIframeOnlyStream: Output? = null,
    public val playlistType: Output? = null,
    public val playlistWindowSeconds: Output? = null,
    public val programDateTimeIntervalSeconds: Output? = null,
    public val segmentDurationSeconds: Output? = null,
    public val streamSelection: Output? = null,
    public val useAudioRenditionGroup: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.mediapackage.inputs.OriginEndpointHlsPackageArgs =
        com.pulumi.awsnative.mediapackage.inputs.OriginEndpointHlsPackageArgs.builder()
            .adMarkers(adMarkers?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .adTriggers(
                adTriggers?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .adsOnDeliveryRestrictions(
                adsOnDeliveryRestrictions?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .encryption(encryption?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .includeDvbSubtitles(includeDvbSubtitles?.applyValue({ args0 -> args0 }))
            .includeIframeOnlyStream(includeIframeOnlyStream?.applyValue({ args0 -> args0 }))
            .playlistType(playlistType?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .playlistWindowSeconds(playlistWindowSeconds?.applyValue({ args0 -> args0 }))
            .programDateTimeIntervalSeconds(programDateTimeIntervalSeconds?.applyValue({ args0 -> args0 }))
            .segmentDurationSeconds(segmentDurationSeconds?.applyValue({ args0 -> args0 }))
            .streamSelection(streamSelection?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .useAudioRenditionGroup(useAudioRenditionGroup?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [OriginEndpointHlsPackageArgs].
 */
@PulumiTagMarker
public class OriginEndpointHlsPackageArgsBuilder internal constructor() {
    private var adMarkers: Output? = null

    private var adTriggers: Output>? = null

    private var adsOnDeliveryRestrictions: Output? = null

    private var encryption: Output? = null

    private var includeDvbSubtitles: Output? = null

    private var includeIframeOnlyStream: Output? = null

    private var playlistType: Output? = null

    private var playlistWindowSeconds: Output? = null

    private var programDateTimeIntervalSeconds: Output? = null

    private var segmentDurationSeconds: Output? = null

    private var streamSelection: Output? = null

    private var useAudioRenditionGroup: Output? = null

    /**
     * @param value This setting controls how ad markers are included in the packaged OriginEndpoint. "NONE" will omit all SCTE-35 ad markers from the output. "PASSTHROUGH" causes the manifest to contain a copy of the SCTE-35 ad markers (comments) taken directly from the input HTTP Live Streaming (HLS) manifest. "SCTE35_ENHANCED" generates ad markers and blackout tags based on SCTE-35 messages in the input source. "DATERANGE" inserts EXT-X-DATERANGE tags to signal ad and program transition events in HLS and CMAF manifests. For this option, you must set a programDateTimeIntervalSeconds value that is greater than 0.
     */
    @JvmName("btvnpombuqqfphdw")
    public suspend fun adMarkers(`value`: Output) {
        this.adMarkers = value
    }

    /**
     * @param value A list of SCTE-35 message types that are treated as ad markers in the output.  If empty, no ad markers are output.  Specify multiple items to create ad markers for all of the included message types.
     */
    @JvmName("ogodfoqbbtmefvpo")
    public suspend fun adTriggers(`value`: Output>) {
        this.adTriggers = value
    }

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

    /**
     * @param values A list of SCTE-35 message types that are treated as ad markers in the output.  If empty, no ad markers are output.  Specify multiple items to create ad markers for all of the included message types.
     */
    @JvmName("ylamrvynpwyqvvaj")
    public suspend fun adTriggers(values: List>) {
        this.adTriggers = Output.all(values)
    }

    /**
     * @param value The flags on SCTE-35 segmentation descriptors that have to be present for AWS Elemental MediaPackage to insert ad markers in the output manifest. For information about SCTE-35 in AWS Elemental MediaPackage , see [SCTE-35 Message Options in AWS Elemental MediaPackage](https://docs.aws.amazon.com/mediapackage/latest/ug/scte.html) .
     */
    @JvmName("fskseeflhtrfkbso")
    public suspend fun adsOnDeliveryRestrictions(`value`: Output) {
        this.adsOnDeliveryRestrictions = value
    }

    /**
     * @param value Parameters for encrypting content.
     */
    @JvmName("omshaivwckokxsxo")
    public suspend fun encryption(`value`: Output) {
        this.encryption = value
    }

    /**
     * @param value When enabled, MediaPackage passes through digital video broadcasting (DVB) subtitles into the output.
     */
    @JvmName("neggbafpeufddjgt")
    public suspend fun includeDvbSubtitles(`value`: Output) {
        this.includeDvbSubtitles = value
    }

    /**
     * @param value When enabled, an I-Frame only stream will be included in the output.
     */
    @JvmName("blllujisnkoqlyca")
    public suspend fun includeIframeOnlyStream(`value`: Output) {
        this.includeIframeOnlyStream = value
    }

    /**
     * @param value The HTTP Live Streaming (HLS) playlist type. When either "EVENT" or "VOD" is specified, a corresponding EXT-X-PLAYLIST-TYPE entry will be included in the media playlist.
     */
    @JvmName("ugkblafhmvlmqrgk")
    public suspend fun playlistType(`value`: Output) {
        this.playlistType = value
    }

    /**
     * @param value Time window (in seconds) contained in each parent manifest.
     */
    @JvmName("rxcbksxobboaucju")
    public suspend fun playlistWindowSeconds(`value`: Output) {
        this.playlistWindowSeconds = value
    }

    /**
     * @param value The interval (in seconds) between each EXT-X-PROGRAM-DATE-TIME tag inserted into manifests. Additionally, when an interval is specified ID3Timed Metadata messages will be generated every 5 seconds using the ingest time of the content. If the interval is not specified, or set to 0, then no EXT-X-PROGRAM-DATE-TIME tags will be inserted into manifests and no ID3Timed Metadata messages will be generated. Note that irrespective of this parameter, if any ID3 Timed Metadata is found in HTTP Live Streaming (HLS) input, it will be passed through to HLS output.
     */
    @JvmName("rkgebaqqiaxijiff")
    public suspend fun programDateTimeIntervalSeconds(`value`: Output) {
        this.programDateTimeIntervalSeconds = value
    }

    /**
     * @param value Duration (in seconds) of each fragment. Actual fragments will be rounded to the nearest multiple of the source fragment duration.
     */
    @JvmName("ygnmsxckjcslocwe")
    public suspend fun segmentDurationSeconds(`value`: Output) {
        this.segmentDurationSeconds = value
    }

    /**
     * @param value Limitations for outputs from the endpoint, based on the video bitrate.
     */
    @JvmName("ujpyhspwsqoigcee")
    public suspend fun streamSelection(`value`: Output) {
        this.streamSelection = value
    }

    /**
     * @param value When enabled, audio streams will be placed in rendition groups in the output.
     */
    @JvmName("porlfiqxkxcjlbck")
    public suspend fun useAudioRenditionGroup(`value`: Output) {
        this.useAudioRenditionGroup = value
    }

    /**
     * @param value This setting controls how ad markers are included in the packaged OriginEndpoint. "NONE" will omit all SCTE-35 ad markers from the output. "PASSTHROUGH" causes the manifest to contain a copy of the SCTE-35 ad markers (comments) taken directly from the input HTTP Live Streaming (HLS) manifest. "SCTE35_ENHANCED" generates ad markers and blackout tags based on SCTE-35 messages in the input source. "DATERANGE" inserts EXT-X-DATERANGE tags to signal ad and program transition events in HLS and CMAF manifests. For this option, you must set a programDateTimeIntervalSeconds value that is greater than 0.
     */
    @JvmName("vnhkvrolxovkfiwf")
    public suspend fun adMarkers(`value`: OriginEndpointHlsPackageAdMarkers?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.adMarkers = mapped
    }

    /**
     * @param value A list of SCTE-35 message types that are treated as ad markers in the output.  If empty, no ad markers are output.  Specify multiple items to create ad markers for all of the included message types.
     */
    @JvmName("krsucdljcyhaxgbe")
    public suspend fun adTriggers(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.adTriggers = mapped
    }

    /**
     * @param values A list of SCTE-35 message types that are treated as ad markers in the output.  If empty, no ad markers are output.  Specify multiple items to create ad markers for all of the included message types.
     */
    @JvmName("whbmnjhohrxqrvrq")
    public suspend fun adTriggers(vararg values: OriginEndpointHlsPackageAdTriggersItem) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.adTriggers = mapped
    }

    /**
     * @param value The flags on SCTE-35 segmentation descriptors that have to be present for AWS Elemental MediaPackage to insert ad markers in the output manifest. For information about SCTE-35 in AWS Elemental MediaPackage , see [SCTE-35 Message Options in AWS Elemental MediaPackage](https://docs.aws.amazon.com/mediapackage/latest/ug/scte.html) .
     */
    @JvmName("wtuenxewritlcqfl")
    public suspend fun adsOnDeliveryRestrictions(`value`: OriginEndpointAdsOnDeliveryRestrictions?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.adsOnDeliveryRestrictions = mapped
    }

    /**
     * @param value Parameters for encrypting content.
     */
    @JvmName("woiwfdltjhvivrkg")
    public suspend fun encryption(`value`: OriginEndpointHlsEncryptionArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.encryption = mapped
    }

    /**
     * @param argument Parameters for encrypting content.
     */
    @JvmName("kirnrukdchldwqej")
    public suspend fun encryption(argument: suspend OriginEndpointHlsEncryptionArgsBuilder.() -> Unit) {
        val toBeMapped = OriginEndpointHlsEncryptionArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.encryption = mapped
    }

    /**
     * @param value When enabled, MediaPackage passes through digital video broadcasting (DVB) subtitles into the output.
     */
    @JvmName("dctgbylxkyuxqvuc")
    public suspend fun includeDvbSubtitles(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.includeDvbSubtitles = mapped
    }

    /**
     * @param value When enabled, an I-Frame only stream will be included in the output.
     */
    @JvmName("lbqfvcqagxlwqhys")
    public suspend fun includeIframeOnlyStream(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.includeIframeOnlyStream = mapped
    }

    /**
     * @param value The HTTP Live Streaming (HLS) playlist type. When either "EVENT" or "VOD" is specified, a corresponding EXT-X-PLAYLIST-TYPE entry will be included in the media playlist.
     */
    @JvmName("bcqinuoibgegrvjc")
    public suspend fun playlistType(`value`: OriginEndpointHlsPackagePlaylistType?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.playlistType = mapped
    }

    /**
     * @param value Time window (in seconds) contained in each parent manifest.
     */
    @JvmName("wsvpibdbwbeoyuuk")
    public suspend fun playlistWindowSeconds(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.playlistWindowSeconds = mapped
    }

    /**
     * @param value The interval (in seconds) between each EXT-X-PROGRAM-DATE-TIME tag inserted into manifests. Additionally, when an interval is specified ID3Timed Metadata messages will be generated every 5 seconds using the ingest time of the content. If the interval is not specified, or set to 0, then no EXT-X-PROGRAM-DATE-TIME tags will be inserted into manifests and no ID3Timed Metadata messages will be generated. Note that irrespective of this parameter, if any ID3 Timed Metadata is found in HTTP Live Streaming (HLS) input, it will be passed through to HLS output.
     */
    @JvmName("qwolbhpaleejwnxa")
    public suspend fun programDateTimeIntervalSeconds(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.programDateTimeIntervalSeconds = mapped
    }

    /**
     * @param value Duration (in seconds) of each fragment. Actual fragments will be rounded to the nearest multiple of the source fragment duration.
     */
    @JvmName("flgdqgtsowclured")
    public suspend fun segmentDurationSeconds(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.segmentDurationSeconds = mapped
    }

    /**
     * @param value Limitations for outputs from the endpoint, based on the video bitrate.
     */
    @JvmName("kouicdlvnrlskpnc")
    public suspend fun streamSelection(`value`: OriginEndpointStreamSelectionArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.streamSelection = mapped
    }

    /**
     * @param argument Limitations for outputs from the endpoint, based on the video bitrate.
     */
    @JvmName("lpfmtludomkkcwny")
    public suspend fun streamSelection(argument: suspend OriginEndpointStreamSelectionArgsBuilder.() -> Unit) {
        val toBeMapped = OriginEndpointStreamSelectionArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.streamSelection = mapped
    }

    /**
     * @param value When enabled, audio streams will be placed in rendition groups in the output.
     */
    @JvmName("decwayigchghaiga")
    public suspend fun useAudioRenditionGroup(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.useAudioRenditionGroup = mapped
    }

    internal fun build(): OriginEndpointHlsPackageArgs = OriginEndpointHlsPackageArgs(
        adMarkers = adMarkers,
        adTriggers = adTriggers,
        adsOnDeliveryRestrictions = adsOnDeliveryRestrictions,
        encryption = encryption,
        includeDvbSubtitles = includeDvbSubtitles,
        includeIframeOnlyStream = includeIframeOnlyStream,
        playlistType = playlistType,
        playlistWindowSeconds = playlistWindowSeconds,
        programDateTimeIntervalSeconds = programDateTimeIntervalSeconds,
        segmentDurationSeconds = segmentDurationSeconds,
        streamSelection = streamSelection,
        useAudioRenditionGroup = useAudioRenditionGroup,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy