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

com.pulumi.awsnative.mediapackage.kotlin.inputs.PackagingConfigurationDashPackageArgs.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.PackagingConfigurationDashPackageArgs.builder
import com.pulumi.awsnative.mediapackage.kotlin.enums.PackagingConfigurationDashPackagePeriodTriggersItem
import com.pulumi.awsnative.mediapackage.kotlin.enums.PackagingConfigurationDashPackageSegmentTemplateFormat
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiNullFieldException
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

/**
 * A Dynamic Adaptive Streaming over HTTP (DASH) packaging configuration.
 * @property dashManifests A list of DASH manifest configurations.
 * @property encryption Parameters for encrypting content.
 * @property includeEncoderConfigurationInSegments When includeEncoderConfigurationInSegments is set to true, MediaPackage places your encoder's Sequence Parameter Set (SPS), Picture Parameter Set (PPS), and Video Parameter Set (VPS) metadata in every video segment instead of in the init fragment. This lets you use different SPS/PPS/VPS settings for your assets during content playback.
 * @property includeIframeOnlyStream When enabled, an I-Frame only stream will be included in the output.
 * @property periodTriggers A list of triggers that controls when the outgoing Dynamic Adaptive Streaming over HTTP (DASH) Media Presentation Description (MPD) will be partitioned into multiple periods. If empty, the content will not be partitioned into more than one period. If the list contains "ADS", new periods will be created where the Asset contains SCTE-35 ad markers.
 * @property segmentDurationSeconds Duration (in seconds) of each fragment. Actual fragments are rounded to the nearest multiple of the source segment duration.
 * @property segmentTemplateFormat Determines the type of SegmentTemplate included in the Media Presentation Description (MPD). When set to NUMBER_WITH_TIMELINE, a full timeline is presented in each SegmentTemplate, with $Number$ media URLs. When set to TIME_WITH_TIMELINE, a full timeline is presented in each SegmentTemplate, with $Time$ media URLs. When set to NUMBER_WITH_DURATION, only a duration is included in each SegmentTemplate, with $Number$ media URLs.
 */
public data class PackagingConfigurationDashPackageArgs(
    public val dashManifests: Output>,
    public val encryption: Output? = null,
    public val includeEncoderConfigurationInSegments: Output? = null,
    public val includeIframeOnlyStream: Output? = null,
    public val periodTriggers: Output>? =
        null,
    public val segmentDurationSeconds: Output? = null,
    public val segmentTemplateFormat: Output? =
        null,
) :
    ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.mediapackage.inputs.PackagingConfigurationDashPackageArgs =
        com.pulumi.awsnative.mediapackage.inputs.PackagingConfigurationDashPackageArgs.builder()
            .dashManifests(
                dashManifests.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .encryption(encryption?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .includeEncoderConfigurationInSegments(
                includeEncoderConfigurationInSegments?.applyValue({ args0 ->
                    args0
                }),
            )
            .includeIframeOnlyStream(includeIframeOnlyStream?.applyValue({ args0 -> args0 }))
            .periodTriggers(
                periodTriggers?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .segmentDurationSeconds(segmentDurationSeconds?.applyValue({ args0 -> args0 }))
            .segmentTemplateFormat(
                segmentTemplateFormat?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            ).build()
}

/**
 * Builder for [PackagingConfigurationDashPackageArgs].
 */
@PulumiTagMarker
public class PackagingConfigurationDashPackageArgsBuilder internal constructor() {
    private var dashManifests: Output>? = null

    private var encryption: Output? = null

    private var includeEncoderConfigurationInSegments: Output? = null

    private var includeIframeOnlyStream: Output? = null

    private var periodTriggers: Output>? =
        null

    private var segmentDurationSeconds: Output? = null

    private var segmentTemplateFormat: Output? =
        null

    /**
     * @param value A list of DASH manifest configurations.
     */
    @JvmName("tdjmsbylhpppgijn")
    public suspend fun dashManifests(`value`: Output>) {
        this.dashManifests = value
    }

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

    /**
     * @param values A list of DASH manifest configurations.
     */
    @JvmName("lwndykhlmjoevclr")
    public suspend fun dashManifests(values: List>) {
        this.dashManifests = Output.all(values)
    }

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

    /**
     * @param value When includeEncoderConfigurationInSegments is set to true, MediaPackage places your encoder's Sequence Parameter Set (SPS), Picture Parameter Set (PPS), and Video Parameter Set (VPS) metadata in every video segment instead of in the init fragment. This lets you use different SPS/PPS/VPS settings for your assets during content playback.
     */
    @JvmName("phsviaxgohuoheyc")
    public suspend fun includeEncoderConfigurationInSegments(`value`: Output) {
        this.includeEncoderConfigurationInSegments = value
    }

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

    /**
     * @param value A list of triggers that controls when the outgoing Dynamic Adaptive Streaming over HTTP (DASH) Media Presentation Description (MPD) will be partitioned into multiple periods. If empty, the content will not be partitioned into more than one period. If the list contains "ADS", new periods will be created where the Asset contains SCTE-35 ad markers.
     */
    @JvmName("fannxihsjfswjjyo")
    public suspend fun periodTriggers(`value`: Output>) {
        this.periodTriggers = value
    }

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

    /**
     * @param values A list of triggers that controls when the outgoing Dynamic Adaptive Streaming over HTTP (DASH) Media Presentation Description (MPD) will be partitioned into multiple periods. If empty, the content will not be partitioned into more than one period. If the list contains "ADS", new periods will be created where the Asset contains SCTE-35 ad markers.
     */
    @JvmName("aunpchvuwfefepxr")
    public suspend fun periodTriggers(values: List>) {
        this.periodTriggers = Output.all(values)
    }

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

    /**
     * @param value Determines the type of SegmentTemplate included in the Media Presentation Description (MPD). When set to NUMBER_WITH_TIMELINE, a full timeline is presented in each SegmentTemplate, with $Number$ media URLs. When set to TIME_WITH_TIMELINE, a full timeline is presented in each SegmentTemplate, with $Time$ media URLs. When set to NUMBER_WITH_DURATION, only a duration is included in each SegmentTemplate, with $Number$ media URLs.
     */
    @JvmName("iddompliukrxamdi")
    public suspend fun segmentTemplateFormat(`value`: Output) {
        this.segmentTemplateFormat = value
    }

    /**
     * @param value A list of DASH manifest configurations.
     */
    @JvmName("ciolbiqehihbxqpd")
    public suspend fun dashManifests(`value`: List) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.dashManifests = mapped
    }

    /**
     * @param argument A list of DASH manifest configurations.
     */
    @JvmName("efsobynodscpkicp")
    public suspend fun dashManifests(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            PackagingConfigurationDashManifestArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.dashManifests = mapped
    }

    /**
     * @param argument A list of DASH manifest configurations.
     */
    @JvmName("qgqoqdibwdocxyal")
    public suspend fun dashManifests(vararg argument: suspend PackagingConfigurationDashManifestArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            PackagingConfigurationDashManifestArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.dashManifests = mapped
    }

    /**
     * @param argument A list of DASH manifest configurations.
     */
    @JvmName("slmmrafpudemjldc")
    public suspend fun dashManifests(argument: suspend PackagingConfigurationDashManifestArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            PackagingConfigurationDashManifestArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.dashManifests = mapped
    }

    /**
     * @param values A list of DASH manifest configurations.
     */
    @JvmName("bnyicigmrrydkjdj")
    public suspend fun dashManifests(vararg values: PackagingConfigurationDashManifestArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.dashManifests = mapped
    }

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

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

    /**
     * @param value When includeEncoderConfigurationInSegments is set to true, MediaPackage places your encoder's Sequence Parameter Set (SPS), Picture Parameter Set (PPS), and Video Parameter Set (VPS) metadata in every video segment instead of in the init fragment. This lets you use different SPS/PPS/VPS settings for your assets during content playback.
     */
    @JvmName("gfuupixulwuikmlo")
    public suspend fun includeEncoderConfigurationInSegments(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.includeEncoderConfigurationInSegments = mapped
    }

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

    /**
     * @param value A list of triggers that controls when the outgoing Dynamic Adaptive Streaming over HTTP (DASH) Media Presentation Description (MPD) will be partitioned into multiple periods. If empty, the content will not be partitioned into more than one period. If the list contains "ADS", new periods will be created where the Asset contains SCTE-35 ad markers.
     */
    @JvmName("rhggrrvmgjscfmjy")
    public suspend fun periodTriggers(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.periodTriggers = mapped
    }

    /**
     * @param values A list of triggers that controls when the outgoing Dynamic Adaptive Streaming over HTTP (DASH) Media Presentation Description (MPD) will be partitioned into multiple periods. If empty, the content will not be partitioned into more than one period. If the list contains "ADS", new periods will be created where the Asset contains SCTE-35 ad markers.
     */
    @JvmName("radmlfsfaolgjwxj")
    public suspend fun periodTriggers(vararg values: PackagingConfigurationDashPackagePeriodTriggersItem) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.periodTriggers = mapped
    }

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

    /**
     * @param value Determines the type of SegmentTemplate included in the Media Presentation Description (MPD). When set to NUMBER_WITH_TIMELINE, a full timeline is presented in each SegmentTemplate, with $Number$ media URLs. When set to TIME_WITH_TIMELINE, a full timeline is presented in each SegmentTemplate, with $Time$ media URLs. When set to NUMBER_WITH_DURATION, only a duration is included in each SegmentTemplate, with $Number$ media URLs.
     */
    @JvmName("pamsnbpclgidxuar")
    public suspend fun segmentTemplateFormat(`value`: PackagingConfigurationDashPackageSegmentTemplateFormat?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.segmentTemplateFormat = mapped
    }

    internal fun build(): PackagingConfigurationDashPackageArgs =
        PackagingConfigurationDashPackageArgs(
            dashManifests = dashManifests ?: throw PulumiNullFieldException("dashManifests"),
            encryption = encryption,
            includeEncoderConfigurationInSegments = includeEncoderConfigurationInSegments,
            includeIframeOnlyStream = includeIframeOnlyStream,
            periodTriggers = periodTriggers,
            segmentDurationSeconds = segmentDurationSeconds,
            segmentTemplateFormat = segmentTemplateFormat,
        )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy