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

com.pulumi.awsnative.mediaconnect.kotlin.FlowOutputArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.mediaconnect.kotlin

import com.pulumi.awsnative.mediaconnect.FlowOutputArgs.builder
import com.pulumi.awsnative.mediaconnect.kotlin.enums.FlowOutputOutputStatus
import com.pulumi.awsnative.mediaconnect.kotlin.enums.FlowOutputProtocol
import com.pulumi.awsnative.mediaconnect.kotlin.inputs.FlowOutputEncryptionArgs
import com.pulumi.awsnative.mediaconnect.kotlin.inputs.FlowOutputEncryptionArgsBuilder
import com.pulumi.awsnative.mediaconnect.kotlin.inputs.FlowOutputMediaStreamOutputConfigurationArgs
import com.pulumi.awsnative.mediaconnect.kotlin.inputs.FlowOutputMediaStreamOutputConfigurationArgsBuilder
import com.pulumi.awsnative.mediaconnect.kotlin.inputs.FlowOutputVpcInterfaceAttachmentArgs
import com.pulumi.awsnative.mediaconnect.kotlin.inputs.FlowOutputVpcInterfaceAttachmentArgsBuilder
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.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * Resource schema for AWS::MediaConnect::FlowOutput
 * @property cidrAllowList The range of IP addresses that should be allowed to initiate output requests to this flow. These IP addresses should be in the form of a Classless Inter-Domain Routing (CIDR) block; for example, 10.0.0.0/16.
 * @property description A description of the output.
 * @property destination The address where you want to send the output.
 * @property encryption The type of key used for the encryption. If no keyType is provided, the service will use the default setting (static-key).
 * @property flowArn The Amazon Resource Name (ARN), a unique identifier for any AWS resource, of the flow.
 * @property maxLatency The maximum latency in milliseconds. This parameter applies only to RIST-based and Zixi-based streams.
 * @property mediaStreamOutputConfigurations The definition for each media stream that is associated with the output.
 * @property minLatency The minimum latency in milliseconds.
 * @property name The name of the output. This value must be unique within the current flow.
 * @property outputStatus An indication of whether the output should transmit data or not.
 * @property port The port to use when content is distributed to this output.
 * @property protocol The protocol that is used by the source or output.
 * @property remoteId The remote ID for the Zixi-pull stream.
 * @property smoothingLatency The smoothing latency in milliseconds for RIST, RTP, and RTP-FEC streams.
 * @property streamId The stream ID that you want to use for this transport. This parameter applies only to Zixi-based streams.
 * @property vpcInterfaceAttachment The name of the VPC interface attachment to use for this output.
 */
public data class FlowOutputArgs(
    public val cidrAllowList: Output>? = null,
    public val description: Output? = null,
    public val destination: Output? = null,
    public val encryption: Output? = null,
    public val flowArn: Output? = null,
    public val maxLatency: Output? = null,
    public val mediaStreamOutputConfigurations: Output>? = null,
    public val minLatency: Output? = null,
    public val name: Output? = null,
    public val outputStatus: Output? = null,
    public val port: Output? = null,
    public val protocol: Output? = null,
    public val remoteId: Output? = null,
    public val smoothingLatency: Output? = null,
    public val streamId: Output? = null,
    public val vpcInterfaceAttachment: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.mediaconnect.FlowOutputArgs =
        com.pulumi.awsnative.mediaconnect.FlowOutputArgs.builder()
            .cidrAllowList(cidrAllowList?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .description(description?.applyValue({ args0 -> args0 }))
            .destination(destination?.applyValue({ args0 -> args0 }))
            .encryption(encryption?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .flowArn(flowArn?.applyValue({ args0 -> args0 }))
            .maxLatency(maxLatency?.applyValue({ args0 -> args0 }))
            .mediaStreamOutputConfigurations(
                mediaStreamOutputConfigurations?.applyValue({ args0 ->
                    args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) })
                }),
            )
            .minLatency(minLatency?.applyValue({ args0 -> args0 }))
            .name(name?.applyValue({ args0 -> args0 }))
            .outputStatus(outputStatus?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .port(port?.applyValue({ args0 -> args0 }))
            .protocol(protocol?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .remoteId(remoteId?.applyValue({ args0 -> args0 }))
            .smoothingLatency(smoothingLatency?.applyValue({ args0 -> args0 }))
            .streamId(streamId?.applyValue({ args0 -> args0 }))
            .vpcInterfaceAttachment(
                vpcInterfaceAttachment?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            ).build()
}

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

    private var description: Output? = null

    private var destination: Output? = null

    private var encryption: Output? = null

    private var flowArn: Output? = null

    private var maxLatency: Output? = null

    private var mediaStreamOutputConfigurations:
        Output>? = null

    private var minLatency: Output? = null

    private var name: Output? = null

    private var outputStatus: Output? = null

    private var port: Output? = null

    private var protocol: Output? = null

    private var remoteId: Output? = null

    private var smoothingLatency: Output? = null

    private var streamId: Output? = null

    private var vpcInterfaceAttachment: Output? = null

    /**
     * @param value The range of IP addresses that should be allowed to initiate output requests to this flow. These IP addresses should be in the form of a Classless Inter-Domain Routing (CIDR) block; for example, 10.0.0.0/16.
     */
    @JvmName("xgscjlmkefupplse")
    public suspend fun cidrAllowList(`value`: Output>) {
        this.cidrAllowList = value
    }

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

    /**
     * @param values The range of IP addresses that should be allowed to initiate output requests to this flow. These IP addresses should be in the form of a Classless Inter-Domain Routing (CIDR) block; for example, 10.0.0.0/16.
     */
    @JvmName("sjhdwowffqwpesui")
    public suspend fun cidrAllowList(values: List>) {
        this.cidrAllowList = Output.all(values)
    }

    /**
     * @param value A description of the output.
     */
    @JvmName("tvkivvrqrqnprdqu")
    public suspend fun description(`value`: Output) {
        this.description = value
    }

    /**
     * @param value The address where you want to send the output.
     */
    @JvmName("lrxpcbbvrysofxla")
    public suspend fun destination(`value`: Output) {
        this.destination = value
    }

    /**
     * @param value The type of key used for the encryption. If no keyType is provided, the service will use the default setting (static-key).
     */
    @JvmName("ufitsphsvvomaikq")
    public suspend fun encryption(`value`: Output) {
        this.encryption = value
    }

    /**
     * @param value The Amazon Resource Name (ARN), a unique identifier for any AWS resource, of the flow.
     */
    @JvmName("asequyurrcxpsptt")
    public suspend fun flowArn(`value`: Output) {
        this.flowArn = value
    }

    /**
     * @param value The maximum latency in milliseconds. This parameter applies only to RIST-based and Zixi-based streams.
     */
    @JvmName("irnmqknppqdbfapo")
    public suspend fun maxLatency(`value`: Output) {
        this.maxLatency = value
    }

    /**
     * @param value The definition for each media stream that is associated with the output.
     */
    @JvmName("gufybiawbthmvate")
    public suspend fun mediaStreamOutputConfigurations(`value`: Output>) {
        this.mediaStreamOutputConfigurations = value
    }

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

    /**
     * @param values The definition for each media stream that is associated with the output.
     */
    @JvmName("oqfrshqljgcxdohq")
    public suspend fun mediaStreamOutputConfigurations(values: List>) {
        this.mediaStreamOutputConfigurations = Output.all(values)
    }

    /**
     * @param value The minimum latency in milliseconds.
     */
    @JvmName("kfafidddrslnjehc")
    public suspend fun minLatency(`value`: Output) {
        this.minLatency = value
    }

    /**
     * @param value The name of the output. This value must be unique within the current flow.
     */
    @JvmName("fljutkvmihiyayha")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value An indication of whether the output should transmit data or not.
     */
    @JvmName("nhiuhsyoyxagifmm")
    public suspend fun outputStatus(`value`: Output) {
        this.outputStatus = value
    }

    /**
     * @param value The port to use when content is distributed to this output.
     */
    @JvmName("gocnqwhwvneylsuo")
    public suspend fun port(`value`: Output) {
        this.port = value
    }

    /**
     * @param value The protocol that is used by the source or output.
     */
    @JvmName("warfasjiawnsemmo")
    public suspend fun protocol(`value`: Output) {
        this.protocol = value
    }

    /**
     * @param value The remote ID for the Zixi-pull stream.
     */
    @JvmName("ayforepcexvdhysc")
    public suspend fun remoteId(`value`: Output) {
        this.remoteId = value
    }

    /**
     * @param value The smoothing latency in milliseconds for RIST, RTP, and RTP-FEC streams.
     */
    @JvmName("osgujhqrwvbybxgc")
    public suspend fun smoothingLatency(`value`: Output) {
        this.smoothingLatency = value
    }

    /**
     * @param value The stream ID that you want to use for this transport. This parameter applies only to Zixi-based streams.
     */
    @JvmName("qdoyoycnpaxiyerw")
    public suspend fun streamId(`value`: Output) {
        this.streamId = value
    }

    /**
     * @param value The name of the VPC interface attachment to use for this output.
     */
    @JvmName("onyxcqjyqayhnbgu")
    public suspend fun vpcInterfaceAttachment(`value`: Output) {
        this.vpcInterfaceAttachment = value
    }

    /**
     * @param value The range of IP addresses that should be allowed to initiate output requests to this flow. These IP addresses should be in the form of a Classless Inter-Domain Routing (CIDR) block; for example, 10.0.0.0/16.
     */
    @JvmName("ielhdwhyvfhlmiat")
    public suspend fun cidrAllowList(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.cidrAllowList = mapped
    }

    /**
     * @param values The range of IP addresses that should be allowed to initiate output requests to this flow. These IP addresses should be in the form of a Classless Inter-Domain Routing (CIDR) block; for example, 10.0.0.0/16.
     */
    @JvmName("rmdadwtfhfbqkmte")
    public suspend fun cidrAllowList(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.cidrAllowList = mapped
    }

    /**
     * @param value A description of the output.
     */
    @JvmName("dbhqiycqrtjidfwd")
    public suspend fun description(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.description = mapped
    }

    /**
     * @param value The address where you want to send the output.
     */
    @JvmName("cyiqhkvwwqhhaxsa")
    public suspend fun destination(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.destination = mapped
    }

    /**
     * @param value The type of key used for the encryption. If no keyType is provided, the service will use the default setting (static-key).
     */
    @JvmName("yoasdfkwseuhhbum")
    public suspend fun encryption(`value`: FlowOutputEncryptionArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.encryption = mapped
    }

    /**
     * @param argument The type of key used for the encryption. If no keyType is provided, the service will use the default setting (static-key).
     */
    @JvmName("hudjbsnsdtyukdyc")
    public suspend fun encryption(argument: suspend FlowOutputEncryptionArgsBuilder.() -> Unit) {
        val toBeMapped = FlowOutputEncryptionArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.encryption = mapped
    }

    /**
     * @param value The Amazon Resource Name (ARN), a unique identifier for any AWS resource, of the flow.
     */
    @JvmName("kcirygxqrvxgfura")
    public suspend fun flowArn(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.flowArn = mapped
    }

    /**
     * @param value The maximum latency in milliseconds. This parameter applies only to RIST-based and Zixi-based streams.
     */
    @JvmName("nxmuyunmsnqgtrju")
    public suspend fun maxLatency(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.maxLatency = mapped
    }

    /**
     * @param value The definition for each media stream that is associated with the output.
     */
    @JvmName("ijmtqhmgqsjxiqao")
    public suspend fun mediaStreamOutputConfigurations(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.mediaStreamOutputConfigurations = mapped
    }

    /**
     * @param argument The definition for each media stream that is associated with the output.
     */
    @JvmName("qsapxovgqpqlnuwg")
    public suspend fun mediaStreamOutputConfigurations(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            FlowOutputMediaStreamOutputConfigurationArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.mediaStreamOutputConfigurations = mapped
    }

    /**
     * @param argument The definition for each media stream that is associated with the output.
     */
    @JvmName("vrkewaiajkmitogk")
    public suspend fun mediaStreamOutputConfigurations(vararg argument: suspend FlowOutputMediaStreamOutputConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            FlowOutputMediaStreamOutputConfigurationArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.mediaStreamOutputConfigurations = mapped
    }

    /**
     * @param argument The definition for each media stream that is associated with the output.
     */
    @JvmName("varknnchujayaxjt")
    public suspend fun mediaStreamOutputConfigurations(argument: suspend FlowOutputMediaStreamOutputConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            FlowOutputMediaStreamOutputConfigurationArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.mediaStreamOutputConfigurations = mapped
    }

    /**
     * @param values The definition for each media stream that is associated with the output.
     */
    @JvmName("scojhewjjmiwplma")
    public suspend fun mediaStreamOutputConfigurations(vararg values: FlowOutputMediaStreamOutputConfigurationArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.mediaStreamOutputConfigurations = mapped
    }

    /**
     * @param value The minimum latency in milliseconds.
     */
    @JvmName("lugeuynguytatwga")
    public suspend fun minLatency(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.minLatency = mapped
    }

    /**
     * @param value The name of the output. This value must be unique within the current flow.
     */
    @JvmName("thumoqaxbgvxbyjg")
    public suspend fun name(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value An indication of whether the output should transmit data or not.
     */
    @JvmName("feygeotlaiebkaps")
    public suspend fun outputStatus(`value`: FlowOutputOutputStatus?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.outputStatus = mapped
    }

    /**
     * @param value The port to use when content is distributed to this output.
     */
    @JvmName("hciouftqkskdxklx")
    public suspend fun port(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.port = mapped
    }

    /**
     * @param value The protocol that is used by the source or output.
     */
    @JvmName("cosmyfxuetldcuhm")
    public suspend fun protocol(`value`: FlowOutputProtocol?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.protocol = mapped
    }

    /**
     * @param value The remote ID for the Zixi-pull stream.
     */
    @JvmName("pcfmskqciljowsqa")
    public suspend fun remoteId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.remoteId = mapped
    }

    /**
     * @param value The smoothing latency in milliseconds for RIST, RTP, and RTP-FEC streams.
     */
    @JvmName("ocbmwxiahcrcytua")
    public suspend fun smoothingLatency(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.smoothingLatency = mapped
    }

    /**
     * @param value The stream ID that you want to use for this transport. This parameter applies only to Zixi-based streams.
     */
    @JvmName("lsbiynbwkswgxwnj")
    public suspend fun streamId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.streamId = mapped
    }

    /**
     * @param value The name of the VPC interface attachment to use for this output.
     */
    @JvmName("npotbvouwisbghrr")
    public suspend fun vpcInterfaceAttachment(`value`: FlowOutputVpcInterfaceAttachmentArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.vpcInterfaceAttachment = mapped
    }

    /**
     * @param argument The name of the VPC interface attachment to use for this output.
     */
    @JvmName("vvrcaxmsynntrkcp")
    public suspend fun vpcInterfaceAttachment(argument: suspend FlowOutputVpcInterfaceAttachmentArgsBuilder.() -> Unit) {
        val toBeMapped = FlowOutputVpcInterfaceAttachmentArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.vpcInterfaceAttachment = mapped
    }

    internal fun build(): FlowOutputArgs = FlowOutputArgs(
        cidrAllowList = cidrAllowList,
        description = description,
        destination = destination,
        encryption = encryption,
        flowArn = flowArn,
        maxLatency = maxLatency,
        mediaStreamOutputConfigurations = mediaStreamOutputConfigurations,
        minLatency = minLatency,
        name = name,
        outputStatus = outputStatus,
        port = port,
        protocol = protocol,
        remoteId = remoteId,
        smoothingLatency = smoothingLatency,
        streamId = streamId,
        vpcInterfaceAttachment = vpcInterfaceAttachment,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy