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

com.pulumi.awsnative.mediaconnect.kotlin.inputs.FlowSourceArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.mediaconnect.kotlin.inputs

import com.pulumi.awsnative.mediaconnect.inputs.FlowSourceArgs.builder
import com.pulumi.awsnative.mediaconnect.kotlin.enums.FlowSourceProtocol
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

/**
 * The settings for the source of the flow.
 * @property decryption The type of decryption that is used on the content ingested from this source.
 * @property description A description for the source. This value is not used or seen outside of the current AWS Elemental MediaConnect account.
 * @property entitlementArn The ARN of the entitlement that allows you to subscribe to content that comes from another AWS account. The entitlement is set by the content originator and the ARN is generated as part of the originator's flow.
 * @property gatewayBridgeSource The source configuration for cloud flows receiving a stream from a bridge.
 * @property ingestIp The IP address that the flow will be listening on for incoming content.
 * @property ingestPort The port that the flow will be listening on for incoming content.
 * @property maxBitrate The smoothing max bitrate for RIST, RTP, and RTP-FEC streams.
 * @property maxLatency The maximum latency in milliseconds. This parameter applies only to RIST-based and Zixi-based streams.
 * @property maxSyncBuffer The size of the buffer (in milliseconds) to use to sync incoming source data.
 * @property mediaStreamSourceConfigurations The media stream that is associated with the source, and the parameters for that association.
 * @property minLatency The minimum latency in milliseconds.
 * @property name The name of the source.
 * @property protocol The protocol that is used by the source.
 * @property senderControlPort The port that the flow uses to send outbound requests to initiate connection with the sender for fujitsu-qos protocol.
 * @property senderIpAddress The IP address that the flow communicates with to initiate connection with the sender for fujitsu-qos protocol.
 * @property sourceArn The ARN of the source.
 * @property sourceIngestPort The port that the flow will be listening on for incoming content.(ReadOnly)
 * @property sourceListenerAddress Source IP or domain name for SRT-caller protocol.
 * @property sourceListenerPort Source port for SRT-caller protocol.
 * @property streamId The stream ID that you want to use for this transport. This parameter applies only to Zixi-based streams.
 * @property vpcInterfaceName The name of the VPC Interface this Source is configured with.
 * @property whitelistCidr The range of IP addresses that should be allowed to contribute content to your source. These IP addresses should be in the form of a Classless Inter-Domain Routing (CIDR) block; for example, 10.0.0.0/16.
 */
public data class FlowSourceArgs(
    public val decryption: Output? = null,
    public val description: Output? = null,
    public val entitlementArn: Output? = null,
    public val gatewayBridgeSource: Output? = null,
    public val ingestIp: Output? = null,
    public val ingestPort: Output? = null,
    public val maxBitrate: Output? = null,
    public val maxLatency: Output? = null,
    public val maxSyncBuffer: Output? = null,
    public val mediaStreamSourceConfigurations: Output>? =
        null,
    public val minLatency: Output? = null,
    public val name: Output? = null,
    public val protocol: Output? = null,
    public val senderControlPort: Output? = null,
    public val senderIpAddress: Output? = null,
    public val sourceArn: Output? = null,
    public val sourceIngestPort: Output? = null,
    public val sourceListenerAddress: Output? = null,
    public val sourceListenerPort: Output? = null,
    public val streamId: Output? = null,
    public val vpcInterfaceName: Output? = null,
    public val whitelistCidr: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.mediaconnect.inputs.FlowSourceArgs =
        com.pulumi.awsnative.mediaconnect.inputs.FlowSourceArgs.builder()
            .decryption(decryption?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .description(description?.applyValue({ args0 -> args0 }))
            .entitlementArn(entitlementArn?.applyValue({ args0 -> args0 }))
            .gatewayBridgeSource(
                gatewayBridgeSource?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .ingestIp(ingestIp?.applyValue({ args0 -> args0 }))
            .ingestPort(ingestPort?.applyValue({ args0 -> args0 }))
            .maxBitrate(maxBitrate?.applyValue({ args0 -> args0 }))
            .maxLatency(maxLatency?.applyValue({ args0 -> args0 }))
            .maxSyncBuffer(maxSyncBuffer?.applyValue({ args0 -> args0 }))
            .mediaStreamSourceConfigurations(
                mediaStreamSourceConfigurations?.applyValue({ args0 ->
                    args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) })
                }),
            )
            .minLatency(minLatency?.applyValue({ args0 -> args0 }))
            .name(name?.applyValue({ args0 -> args0 }))
            .protocol(protocol?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .senderControlPort(senderControlPort?.applyValue({ args0 -> args0 }))
            .senderIpAddress(senderIpAddress?.applyValue({ args0 -> args0 }))
            .sourceArn(sourceArn?.applyValue({ args0 -> args0 }))
            .sourceIngestPort(sourceIngestPort?.applyValue({ args0 -> args0 }))
            .sourceListenerAddress(sourceListenerAddress?.applyValue({ args0 -> args0 }))
            .sourceListenerPort(sourceListenerPort?.applyValue({ args0 -> args0 }))
            .streamId(streamId?.applyValue({ args0 -> args0 }))
            .vpcInterfaceName(vpcInterfaceName?.applyValue({ args0 -> args0 }))
            .whitelistCidr(whitelistCidr?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [FlowSourceArgs].
 */
@PulumiTagMarker
public class FlowSourceArgsBuilder internal constructor() {
    private var decryption: Output? = null

    private var description: Output? = null

    private var entitlementArn: Output? = null

    private var gatewayBridgeSource: Output? = null

    private var ingestIp: Output? = null

    private var ingestPort: Output? = null

    private var maxBitrate: Output? = null

    private var maxLatency: Output? = null

    private var maxSyncBuffer: Output? = null

    private var mediaStreamSourceConfigurations: Output>? =
        null

    private var minLatency: Output? = null

    private var name: Output? = null

    private var protocol: Output? = null

    private var senderControlPort: Output? = null

    private var senderIpAddress: Output? = null

    private var sourceArn: Output? = null

    private var sourceIngestPort: Output? = null

    private var sourceListenerAddress: Output? = null

    private var sourceListenerPort: Output? = null

    private var streamId: Output? = null

    private var vpcInterfaceName: Output? = null

    private var whitelistCidr: Output? = null

    /**
     * @param value The type of decryption that is used on the content ingested from this source.
     */
    @JvmName("oqxpwsakhdtqmpwm")
    public suspend fun decryption(`value`: Output) {
        this.decryption = value
    }

    /**
     * @param value A description for the source. This value is not used or seen outside of the current AWS Elemental MediaConnect account.
     */
    @JvmName("rodtximvfsdkqcvi")
    public suspend fun description(`value`: Output) {
        this.description = value
    }

    /**
     * @param value The ARN of the entitlement that allows you to subscribe to content that comes from another AWS account. The entitlement is set by the content originator and the ARN is generated as part of the originator's flow.
     */
    @JvmName("cwqeecqvilpiqafr")
    public suspend fun entitlementArn(`value`: Output) {
        this.entitlementArn = value
    }

    /**
     * @param value The source configuration for cloud flows receiving a stream from a bridge.
     */
    @JvmName("mwafrjbvmbylsqfa")
    public suspend fun gatewayBridgeSource(`value`: Output) {
        this.gatewayBridgeSource = value
    }

    /**
     * @param value The IP address that the flow will be listening on for incoming content.
     */
    @JvmName("wtlmvspxjbovvpyj")
    public suspend fun ingestIp(`value`: Output) {
        this.ingestIp = value
    }

    /**
     * @param value The port that the flow will be listening on for incoming content.
     */
    @JvmName("sfaujveaurbkctxq")
    public suspend fun ingestPort(`value`: Output) {
        this.ingestPort = value
    }

    /**
     * @param value The smoothing max bitrate for RIST, RTP, and RTP-FEC streams.
     */
    @JvmName("utjsceudbwdjcawa")
    public suspend fun maxBitrate(`value`: Output) {
        this.maxBitrate = value
    }

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

    /**
     * @param value The size of the buffer (in milliseconds) to use to sync incoming source data.
     */
    @JvmName("kejvgotvastxnkuo")
    public suspend fun maxSyncBuffer(`value`: Output) {
        this.maxSyncBuffer = value
    }

    /**
     * @param value The media stream that is associated with the source, and the parameters for that association.
     */
    @JvmName("ksjqhmunmfytjoia")
    public suspend fun mediaStreamSourceConfigurations(`value`: Output>) {
        this.mediaStreamSourceConfigurations = value
    }

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

    /**
     * @param values The media stream that is associated with the source, and the parameters for that association.
     */
    @JvmName("harfhpbrpcqbcyky")
    public suspend fun mediaStreamSourceConfigurations(values: List>) {
        this.mediaStreamSourceConfigurations = Output.all(values)
    }

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

    /**
     * @param value The name of the source.
     */
    @JvmName("jkyugbpyhdctfdud")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

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

    /**
     * @param value The port that the flow uses to send outbound requests to initiate connection with the sender for fujitsu-qos protocol.
     */
    @JvmName("cdgupykphbnytmjr")
    public suspend fun senderControlPort(`value`: Output) {
        this.senderControlPort = value
    }

    /**
     * @param value The IP address that the flow communicates with to initiate connection with the sender for fujitsu-qos protocol.
     */
    @JvmName("mdjdjombudylency")
    public suspend fun senderIpAddress(`value`: Output) {
        this.senderIpAddress = value
    }

    /**
     * @param value The ARN of the source.
     */
    @JvmName("fennqblorpcvsste")
    public suspend fun sourceArn(`value`: Output) {
        this.sourceArn = value
    }

    /**
     * @param value The port that the flow will be listening on for incoming content.(ReadOnly)
     */
    @JvmName("gkxescgrajoseoig")
    public suspend fun sourceIngestPort(`value`: Output) {
        this.sourceIngestPort = value
    }

    /**
     * @param value Source IP or domain name for SRT-caller protocol.
     */
    @JvmName("fmoscrpgeurgpnaf")
    public suspend fun sourceListenerAddress(`value`: Output) {
        this.sourceListenerAddress = value
    }

    /**
     * @param value Source port for SRT-caller protocol.
     */
    @JvmName("sttatpfcamuwxalj")
    public suspend fun sourceListenerPort(`value`: Output) {
        this.sourceListenerPort = value
    }

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

    /**
     * @param value The name of the VPC Interface this Source is configured with.
     */
    @JvmName("gtjlmmwjiencjxbc")
    public suspend fun vpcInterfaceName(`value`: Output) {
        this.vpcInterfaceName = value
    }

    /**
     * @param value The range of IP addresses that should be allowed to contribute content to your source. These IP addresses should be in the form of a Classless Inter-Domain Routing (CIDR) block; for example, 10.0.0.0/16.
     */
    @JvmName("wlwfppqelrofknxy")
    public suspend fun whitelistCidr(`value`: Output) {
        this.whitelistCidr = value
    }

    /**
     * @param value The type of decryption that is used on the content ingested from this source.
     */
    @JvmName("tgtxmpdqpeypcvxa")
    public suspend fun decryption(`value`: FlowEncryptionArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.decryption = mapped
    }

    /**
     * @param argument The type of decryption that is used on the content ingested from this source.
     */
    @JvmName("asmiibofqrunsrdu")
    public suspend fun decryption(argument: suspend FlowEncryptionArgsBuilder.() -> Unit) {
        val toBeMapped = FlowEncryptionArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.decryption = mapped
    }

    /**
     * @param value A description for the source. This value is not used or seen outside of the current AWS Elemental MediaConnect account.
     */
    @JvmName("plifgjgeyodeouix")
    public suspend fun description(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.description = mapped
    }

    /**
     * @param value The ARN of the entitlement that allows you to subscribe to content that comes from another AWS account. The entitlement is set by the content originator and the ARN is generated as part of the originator's flow.
     */
    @JvmName("nslcxbbrsjihtusw")
    public suspend fun entitlementArn(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.entitlementArn = mapped
    }

    /**
     * @param value The source configuration for cloud flows receiving a stream from a bridge.
     */
    @JvmName("hatbanlsrwfljame")
    public suspend fun gatewayBridgeSource(`value`: FlowGatewayBridgeSourceArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.gatewayBridgeSource = mapped
    }

    /**
     * @param argument The source configuration for cloud flows receiving a stream from a bridge.
     */
    @JvmName("ogmsvifudukucluo")
    public suspend fun gatewayBridgeSource(argument: suspend FlowGatewayBridgeSourceArgsBuilder.() -> Unit) {
        val toBeMapped = FlowGatewayBridgeSourceArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.gatewayBridgeSource = mapped
    }

    /**
     * @param value The IP address that the flow will be listening on for incoming content.
     */
    @JvmName("upnbvhuymdigsjxw")
    public suspend fun ingestIp(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.ingestIp = mapped
    }

    /**
     * @param value The port that the flow will be listening on for incoming content.
     */
    @JvmName("fkrbdxiodponirvs")
    public suspend fun ingestPort(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.ingestPort = mapped
    }

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

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

    /**
     * @param value The size of the buffer (in milliseconds) to use to sync incoming source data.
     */
    @JvmName("rungdjgijfxobitx")
    public suspend fun maxSyncBuffer(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.maxSyncBuffer = mapped
    }

    /**
     * @param value The media stream that is associated with the source, and the parameters for that association.
     */
    @JvmName("dainjywkinuirixj")
    public suspend fun mediaStreamSourceConfigurations(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.mediaStreamSourceConfigurations = mapped
    }

    /**
     * @param argument The media stream that is associated with the source, and the parameters for that association.
     */
    @JvmName("arucxkbwjaspbbtc")
    public suspend fun mediaStreamSourceConfigurations(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            FlowMediaStreamSourceConfigurationArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.mediaStreamSourceConfigurations = mapped
    }

    /**
     * @param argument The media stream that is associated with the source, and the parameters for that association.
     */
    @JvmName("djypvaxjiiepympm")
    public suspend fun mediaStreamSourceConfigurations(vararg argument: suspend FlowMediaStreamSourceConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            FlowMediaStreamSourceConfigurationArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.mediaStreamSourceConfigurations = mapped
    }

    /**
     * @param argument The media stream that is associated with the source, and the parameters for that association.
     */
    @JvmName("vocyaiinymxfapro")
    public suspend fun mediaStreamSourceConfigurations(argument: suspend FlowMediaStreamSourceConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            FlowMediaStreamSourceConfigurationArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.mediaStreamSourceConfigurations = mapped
    }

    /**
     * @param values The media stream that is associated with the source, and the parameters for that association.
     */
    @JvmName("frsvkjxfsduuddxm")
    public suspend fun mediaStreamSourceConfigurations(vararg values: FlowMediaStreamSourceConfigurationArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.mediaStreamSourceConfigurations = mapped
    }

    /**
     * @param value The minimum latency in milliseconds.
     */
    @JvmName("rvyglwgcxivgkgqi")
    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 source.
     */
    @JvmName("dcvjsuechlfpxgrn")
    public suspend fun name(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.name = mapped
    }

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

    /**
     * @param value The port that the flow uses to send outbound requests to initiate connection with the sender for fujitsu-qos protocol.
     */
    @JvmName("jnqtnhdayrniddby")
    public suspend fun senderControlPort(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.senderControlPort = mapped
    }

    /**
     * @param value The IP address that the flow communicates with to initiate connection with the sender for fujitsu-qos protocol.
     */
    @JvmName("tmbxjixxsebjgjnd")
    public suspend fun senderIpAddress(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.senderIpAddress = mapped
    }

    /**
     * @param value The ARN of the source.
     */
    @JvmName("rukjbunlnfuylpyi")
    public suspend fun sourceArn(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.sourceArn = mapped
    }

    /**
     * @param value The port that the flow will be listening on for incoming content.(ReadOnly)
     */
    @JvmName("sljecqwqmlwtsobv")
    public suspend fun sourceIngestPort(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.sourceIngestPort = mapped
    }

    /**
     * @param value Source IP or domain name for SRT-caller protocol.
     */
    @JvmName("rkkxrgxrrqmlmxnf")
    public suspend fun sourceListenerAddress(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.sourceListenerAddress = mapped
    }

    /**
     * @param value Source port for SRT-caller protocol.
     */
    @JvmName("lbtcnxcjgnucxttg")
    public suspend fun sourceListenerPort(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.sourceListenerPort = mapped
    }

    /**
     * @param value The stream ID that you want to use for this transport. This parameter applies only to Zixi-based streams.
     */
    @JvmName("tojkdahmtyfevbri")
    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 this Source is configured with.
     */
    @JvmName("usqywswumkistrat")
    public suspend fun vpcInterfaceName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.vpcInterfaceName = mapped
    }

    /**
     * @param value The range of IP addresses that should be allowed to contribute content to your source. These IP addresses should be in the form of a Classless Inter-Domain Routing (CIDR) block; for example, 10.0.0.0/16.
     */
    @JvmName("nerrxefncuyatons")
    public suspend fun whitelistCidr(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.whitelistCidr = mapped
    }

    internal fun build(): FlowSourceArgs = FlowSourceArgs(
        decryption = decryption,
        description = description,
        entitlementArn = entitlementArn,
        gatewayBridgeSource = gatewayBridgeSource,
        ingestIp = ingestIp,
        ingestPort = ingestPort,
        maxBitrate = maxBitrate,
        maxLatency = maxLatency,
        maxSyncBuffer = maxSyncBuffer,
        mediaStreamSourceConfigurations = mediaStreamSourceConfigurations,
        minLatency = minLatency,
        name = name,
        protocol = protocol,
        senderControlPort = senderControlPort,
        senderIpAddress = senderIpAddress,
        sourceArn = sourceArn,
        sourceIngestPort = sourceIngestPort,
        sourceListenerAddress = sourceListenerAddress,
        sourceListenerPort = sourceListenerPort,
        streamId = streamId,
        vpcInterfaceName = vpcInterfaceName,
        whitelistCidr = whitelistCidr,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy