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

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

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

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

import com.pulumi.awsnative.mediapackage.inputs.PackagingConfigurationCmafPackageArgs.builder
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 CMAF packaging configuration.
 * @property encryption Parameters for encrypting content.
 * @property hlsManifests A list of HLS manifest configurations.
 * @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 segmentDurationSeconds Duration (in seconds) of each segment. Actual segments are rounded to the nearest multiple of the source fragment duration.
 */
public data class PackagingConfigurationCmafPackageArgs(
    public val encryption: Output? = null,
    public val hlsManifests: Output>,
    public val includeEncoderConfigurationInSegments: Output? = null,
    public val segmentDurationSeconds: Output? = null,
) :
    ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.mediapackage.inputs.PackagingConfigurationCmafPackageArgs =
        com.pulumi.awsnative.mediapackage.inputs.PackagingConfigurationCmafPackageArgs.builder()
            .encryption(encryption?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .hlsManifests(
                hlsManifests.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .includeEncoderConfigurationInSegments(
                includeEncoderConfigurationInSegments?.applyValue({ args0 ->
                    args0
                }),
            )
            .segmentDurationSeconds(segmentDurationSeconds?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [PackagingConfigurationCmafPackageArgs].
 */
@PulumiTagMarker
public class PackagingConfigurationCmafPackageArgsBuilder internal constructor() {
    private var encryption: Output? = null

    private var hlsManifests: Output>? = null

    private var includeEncoderConfigurationInSegments: Output? = null

    private var segmentDurationSeconds: Output? = null

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

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

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

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

    /**
     * @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("hrjupcyrjkgiuasw")
    public suspend fun includeEncoderConfigurationInSegments(`value`: Output) {
        this.includeEncoderConfigurationInSegments = value
    }

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

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

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

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

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

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

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

    /**
     * @param values A list of HLS manifest configurations.
     */
    @JvmName("cxtvbytawqhmjcmy")
    public suspend fun hlsManifests(vararg values: PackagingConfigurationHlsManifestArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.hlsManifests = 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("vkjaxtbmtpymbxps")
    public suspend fun includeEncoderConfigurationInSegments(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.includeEncoderConfigurationInSegments = mapped
    }

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

    internal fun build(): PackagingConfigurationCmafPackageArgs =
        PackagingConfigurationCmafPackageArgs(
            encryption = encryption,
            hlsManifests = hlsManifests ?: throw PulumiNullFieldException("hlsManifests"),
            includeEncoderConfigurationInSegments = includeEncoderConfigurationInSegments,
            segmentDurationSeconds = segmentDurationSeconds,
        )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy