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

com.pulumi.awsnative.mediaconnect.kotlin.inputs.FlowOutputMediaStreamOutputConfigurationArgs.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.mediaconnect.kotlin.inputs

import com.pulumi.awsnative.mediaconnect.inputs.FlowOutputMediaStreamOutputConfigurationArgs.builder
import com.pulumi.awsnative.mediaconnect.kotlin.enums.FlowOutputMediaStreamOutputConfigurationEncodingName
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.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * The media stream that is associated with the output, and the parameters for that association.
 * @property destinationConfigurations The media streams that you want to associate with the output.
 * @property encodingName The format that will be used to encode the data. For ancillary data streams, set the encoding name to smpte291. For audio streams, set the encoding name to pcm. For video streams on sources or outputs that use the CDI protocol, set the encoding name to raw. For video streams on sources or outputs that use the ST 2110 JPEG XS protocol, set the encoding name to jxsv.
 * @property encodingParameters A collection of parameters that determine how MediaConnect will convert the content. These fields only apply to outputs on flows that have a CDI source.
 * @property mediaStreamName A name that helps you distinguish one media stream from another.
 */
public data class FlowOutputMediaStreamOutputConfigurationArgs(
    public val destinationConfigurations: Output>? =
        null,
    public val encodingName: Output,
    public val encodingParameters: Output? = null,
    public val mediaStreamName: Output,
) :
    ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.mediaconnect.inputs.FlowOutputMediaStreamOutputConfigurationArgs =
        com.pulumi.awsnative.mediaconnect.inputs.FlowOutputMediaStreamOutputConfigurationArgs.builder()
            .destinationConfigurations(
                destinationConfigurations?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .encodingName(encodingName.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .encodingParameters(
                encodingParameters?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .mediaStreamName(mediaStreamName.applyValue({ args0 -> args0 })).build()
}

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

    private var encodingName: Output? = null

    private var encodingParameters: Output? = null

    private var mediaStreamName: Output? = null

    /**
     * @param value The media streams that you want to associate with the output.
     */
    @JvmName("jxjsfgacyvpvglpj")
    public suspend fun destinationConfigurations(`value`: Output>) {
        this.destinationConfigurations = value
    }

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

    /**
     * @param values The media streams that you want to associate with the output.
     */
    @JvmName("updpqnolodvagahc")
    public suspend fun destinationConfigurations(values: List>) {
        this.destinationConfigurations = Output.all(values)
    }

    /**
     * @param value The format that will be used to encode the data. For ancillary data streams, set the encoding name to smpte291. For audio streams, set the encoding name to pcm. For video streams on sources or outputs that use the CDI protocol, set the encoding name to raw. For video streams on sources or outputs that use the ST 2110 JPEG XS protocol, set the encoding name to jxsv.
     */
    @JvmName("dvffrtrhnxtfebyv")
    public suspend fun encodingName(`value`: Output) {
        this.encodingName = value
    }

    /**
     * @param value A collection of parameters that determine how MediaConnect will convert the content. These fields only apply to outputs on flows that have a CDI source.
     */
    @JvmName("jugdkshctuvpulfa")
    public suspend fun encodingParameters(`value`: Output) {
        this.encodingParameters = value
    }

    /**
     * @param value A name that helps you distinguish one media stream from another.
     */
    @JvmName("unpbdfjhxsdeluwx")
    public suspend fun mediaStreamName(`value`: Output) {
        this.mediaStreamName = value
    }

    /**
     * @param value The media streams that you want to associate with the output.
     */
    @JvmName("sgcvgptsfgypbwgp")
    public suspend fun destinationConfigurations(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.destinationConfigurations = mapped
    }

    /**
     * @param argument The media streams that you want to associate with the output.
     */
    @JvmName("knmnmxwsofrnsqvi")
    public suspend fun destinationConfigurations(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            FlowOutputDestinationConfigurationArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.destinationConfigurations = mapped
    }

    /**
     * @param argument The media streams that you want to associate with the output.
     */
    @JvmName("ntixwyrmmqkghfee")
    public suspend fun destinationConfigurations(vararg argument: suspend FlowOutputDestinationConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            FlowOutputDestinationConfigurationArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.destinationConfigurations = mapped
    }

    /**
     * @param argument The media streams that you want to associate with the output.
     */
    @JvmName("chjvyfdpwbhjvnyw")
    public suspend fun destinationConfigurations(argument: suspend FlowOutputDestinationConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            FlowOutputDestinationConfigurationArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.destinationConfigurations = mapped
    }

    /**
     * @param values The media streams that you want to associate with the output.
     */
    @JvmName("clwtmjplovuryhcb")
    public suspend fun destinationConfigurations(vararg values: FlowOutputDestinationConfigurationArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.destinationConfigurations = mapped
    }

    /**
     * @param value The format that will be used to encode the data. For ancillary data streams, set the encoding name to smpte291. For audio streams, set the encoding name to pcm. For video streams on sources or outputs that use the CDI protocol, set the encoding name to raw. For video streams on sources or outputs that use the ST 2110 JPEG XS protocol, set the encoding name to jxsv.
     */
    @JvmName("cjniwbofkhxvmnuf")
    public suspend fun encodingName(`value`: FlowOutputMediaStreamOutputConfigurationEncodingName) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.encodingName = mapped
    }

    /**
     * @param value A collection of parameters that determine how MediaConnect will convert the content. These fields only apply to outputs on flows that have a CDI source.
     */
    @JvmName("iikhlhkfabbronkl")
    public suspend fun encodingParameters(`value`: FlowOutputEncodingParametersArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.encodingParameters = mapped
    }

    /**
     * @param argument A collection of parameters that determine how MediaConnect will convert the content. These fields only apply to outputs on flows that have a CDI source.
     */
    @JvmName("jwxjbgdmvgpdxtss")
    public suspend fun encodingParameters(argument: suspend FlowOutputEncodingParametersArgsBuilder.() -> Unit) {
        val toBeMapped = FlowOutputEncodingParametersArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.encodingParameters = mapped
    }

    /**
     * @param value A name that helps you distinguish one media stream from another.
     */
    @JvmName("hhodfptlberhsohy")
    public suspend fun mediaStreamName(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.mediaStreamName = mapped
    }

    internal fun build(): FlowOutputMediaStreamOutputConfigurationArgs =
        FlowOutputMediaStreamOutputConfigurationArgs(
            destinationConfigurations = destinationConfigurations,
            encodingName = encodingName ?: throw PulumiNullFieldException("encodingName"),
            encodingParameters = encodingParameters,
            mediaStreamName = mediaStreamName ?: throw PulumiNullFieldException("mediaStreamName"),
        )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy