com.pulumi.awsnative.mediaconnect.kotlin.FlowSourceArgs.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of pulumi-aws-native-kotlin Show documentation
Show all versions of pulumi-aws-native-kotlin Show documentation
Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.
@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,
)
}