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

com.pulumi.awsnative.mediaconnect.kotlin.FlowSourceArgs.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.11.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.awsnative.mediaconnect.kotlin

import com.pulumi.awsnative.mediaconnect.FlowSourceArgs.builder
import com.pulumi.awsnative.mediaconnect.kotlin.enums.FlowSourceProtocol
import com.pulumi.awsnative.mediaconnect.kotlin.inputs.FlowSourceEncryptionArgs
import com.pulumi.awsnative.mediaconnect.kotlin.inputs.FlowSourceEncryptionArgsBuilder
import com.pulumi.awsnative.mediaconnect.kotlin.inputs.FlowSourceGatewayBridgeSourceArgs
import com.pulumi.awsnative.mediaconnect.kotlin.inputs.FlowSourceGatewayBridgeSourceArgsBuilder
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.jvm.JvmName

/**
 * Resource schema for AWS::MediaConnect::FlowSource
 * @property decryption The type of encryption 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 flowArn The ARN of the flow.
 * @property gatewayBridgeSource The source configuration for cloud flows receiving a stream from a bridge.
 * @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 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 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 flowArn: Output? = null,
    public val gatewayBridgeSource: Output? = null,
    public val ingestPort: Output? = null,
    public val maxBitrate: Output? = null,
    public val maxLatency: 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 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.FlowSourceArgs =
        com.pulumi.awsnative.mediaconnect.FlowSourceArgs.builder()
            .decryption(decryption?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .description(description?.applyValue({ args0 -> args0 }))
            .entitlementArn(entitlementArn?.applyValue({ args0 -> args0 }))
            .flowArn(flowArn?.applyValue({ args0 -> args0 }))
            .gatewayBridgeSource(
                gatewayBridgeSource?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .ingestPort(ingestPort?.applyValue({ args0 -> args0 }))
            .maxBitrate(maxBitrate?.applyValue({ args0 -> args0 }))
            .maxLatency(maxLatency?.applyValue({ args0 -> args0 }))
            .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 }))
            .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 flowArn: Output? = null

    private var gatewayBridgeSource: Output? = null

    private var ingestPort: Output? = null

    private var maxBitrate: Output? = null

    private var maxLatency: 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 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 encryption that is used on the content ingested from this source.
     */
    @JvmName("mdjhxrsueslewobw")
    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("amkthpylhudwfvdj")
    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("yxlwodylmbrqdwyo")
    public suspend fun entitlementArn(`value`: Output) {
        this.entitlementArn = value
    }

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

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

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

    /**
     * @param value The smoothing max bitrate for RIST, RTP, and RTP-FEC streams.
     */
    @JvmName("wgunjmdmbkitnpbb")
    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("ioxydqkcxxdehvmh")
    public suspend fun maxLatency(`value`: Output) {
        this.maxLatency = value
    }

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

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

    /**
     * @param value The protocol that is used by the source.
     */
    @JvmName("mswejhipunvldgeg")
    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("aikulxtbdrgbtknh")
    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("jyngcmygplghfdjw")
    public suspend fun senderIpAddress(`value`: Output) {
        this.senderIpAddress = value
    }

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

    /**
     * @param value Source port for SRT-caller protocol.
     */
    @JvmName("nplofilkpohbtykt")
    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("womttwkoholurexn")
    public suspend fun streamId(`value`: Output) {
        this.streamId = value
    }

    /**
     * @param value The name of the VPC Interface this Source is configured with.
     */
    @JvmName("hudxigckffxbphyd")
    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("nyfjxktkwdnkerkw")
    public suspend fun whitelistCidr(`value`: Output) {
        this.whitelistCidr = value
    }

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

    /**
     * @param argument The type of encryption that is used on the content ingested from this source.
     */
    @JvmName("dkjttdyeovtbepac")
    public suspend fun decryption(argument: suspend FlowSourceEncryptionArgsBuilder.() -> Unit) {
        val toBeMapped = FlowSourceEncryptionArgsBuilder().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("thiooxrxdelbhwrs")
    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("uxaxjhtkomswjtcc")
    public suspend fun entitlementArn(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.entitlementArn = mapped
    }

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

    /**
     * @param value The source configuration for cloud flows receiving a stream from a bridge.
     */
    @JvmName("hdmsrkimvkdcmdrv")
    public suspend fun gatewayBridgeSource(`value`: FlowSourceGatewayBridgeSourceArgs?) {
        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("lusumumuererhmnj")
    public suspend fun gatewayBridgeSource(argument: suspend FlowSourceGatewayBridgeSourceArgsBuilder.() -> Unit) {
        val toBeMapped = FlowSourceGatewayBridgeSourceArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.gatewayBridgeSource = mapped
    }

    /**
     * @param value The port that the flow will be listening on for incoming content.
     */
    @JvmName("livtbrbtdwokjutr")
    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("wffvmdofwgusahsk")
    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("vcptgnptgprlsnew")
    public suspend fun maxLatency(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.maxLatency = mapped
    }

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

    /**
     * @param value Source IP or domain name for SRT-caller protocol.
     */
    @JvmName("wphsykinjhuyltrx")
    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("jibewfyamlgpdhap")
    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("cywgjjdqqwkrsqpq")
    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("nxmlbaritrcenkew")
    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("jhyfyjhktrkvcsdc")
    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,
        flowArn = flowArn,
        gatewayBridgeSource = gatewayBridgeSource,
        ingestPort = ingestPort,
        maxBitrate = maxBitrate,
        maxLatency = maxLatency,
        minLatency = minLatency,
        name = name,
        protocol = protocol,
        senderControlPort = senderControlPort,
        senderIpAddress = senderIpAddress,
        sourceListenerAddress = sourceListenerAddress,
        sourceListenerPort = sourceListenerPort,
        streamId = streamId,
        vpcInterfaceName = vpcInterfaceName,
        whitelistCidr = whitelistCidr,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy