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

com.pulumi.azure.mobile.kotlin.inputs.NetworkServicePccRuleServiceDataFlowTemplateArgs.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: 6.14.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.azure.mobile.kotlin.inputs

import com.pulumi.azure.mobile.inputs.NetworkServicePccRuleServiceDataFlowTemplateArgs.builder
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 kotlin.String
import kotlin.Suppress
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 *
 * @property direction Specifies the direction of this flow. Possible values are `Uplink`, `Downlink` and `Bidirectional`.
 * @property name Specifies the name of the data flow template. This must be unique within the parent data flow policy rule. You must not use any of the following reserved strings - `default`, `requested` or `service`.
 * @property ports The port(s) to which UEs will connect for this flow. You can specify zero or more ports or port ranges. If you specify one or more ports or port ranges then you must specify a value other than `ip` in the `protocol` field. If it is not specified then connections will be allowed on all ports. Port ranges must be specified as -. For example: [`8080`, `8082-8085`].
 * @property protocols A list of the allowed protocol(s) for this flow. If you want this flow to be able to use any protocol within the internet protocol suite, use the value `ip`. If you only want to allow a selection of protocols, you must use the corresponding IANA Assigned Internet Protocol Number for each protocol, as described in https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml. For example, for UDP, you must use 17. If you use the value `ip` then you must leave the field `port` unspecified.
 * @property remoteIpLists Specifies the remote IP address(es) to which UEs will connect for this flow. If you want to allow connections on any IP address, use the value `any`. Otherwise, you must provide each of the remote IP addresses to which the packet core instance will connect for this flow. You must provide each IP address in CIDR notation, including the netmask (for example, `192.0.2.54/24`).
 */
public data class NetworkServicePccRuleServiceDataFlowTemplateArgs(
    public val direction: Output,
    public val name: Output,
    public val ports: Output>? = null,
    public val protocols: Output>,
    public val remoteIpLists: Output>,
) :
    ConvertibleToJava {
    override fun toJava():
        com.pulumi.azure.mobile.inputs.NetworkServicePccRuleServiceDataFlowTemplateArgs =
        com.pulumi.azure.mobile.inputs.NetworkServicePccRuleServiceDataFlowTemplateArgs.builder()
            .direction(direction.applyValue({ args0 -> args0 }))
            .name(name.applyValue({ args0 -> args0 }))
            .ports(ports?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .protocols(protocols.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .remoteIpLists(remoteIpLists.applyValue({ args0 -> args0.map({ args0 -> args0 }) })).build()
}

/**
 * Builder for [NetworkServicePccRuleServiceDataFlowTemplateArgs].
 */
@PulumiTagMarker
public class NetworkServicePccRuleServiceDataFlowTemplateArgsBuilder internal constructor() {
    private var direction: Output? = null

    private var name: Output? = null

    private var ports: Output>? = null

    private var protocols: Output>? = null

    private var remoteIpLists: Output>? = null

    /**
     * @param value Specifies the direction of this flow. Possible values are `Uplink`, `Downlink` and `Bidirectional`.
     */
    @JvmName("xohuipbnwftyryrn")
    public suspend fun direction(`value`: Output) {
        this.direction = value
    }

    /**
     * @param value Specifies the name of the data flow template. This must be unique within the parent data flow policy rule. You must not use any of the following reserved strings - `default`, `requested` or `service`.
     */
    @JvmName("wryfdaefdnmiogfi")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value The port(s) to which UEs will connect for this flow. You can specify zero or more ports or port ranges. If you specify one or more ports or port ranges then you must specify a value other than `ip` in the `protocol` field. If it is not specified then connections will be allowed on all ports. Port ranges must be specified as -. For example: [`8080`, `8082-8085`].
     */
    @JvmName("ytaudmrmxuqdqibg")
    public suspend fun ports(`value`: Output>) {
        this.ports = value
    }

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

    /**
     * @param values The port(s) to which UEs will connect for this flow. You can specify zero or more ports or port ranges. If you specify one or more ports or port ranges then you must specify a value other than `ip` in the `protocol` field. If it is not specified then connections will be allowed on all ports. Port ranges must be specified as -. For example: [`8080`, `8082-8085`].
     */
    @JvmName("mgpdlvbpfstknnwu")
    public suspend fun ports(values: List>) {
        this.ports = Output.all(values)
    }

    /**
     * @param value A list of the allowed protocol(s) for this flow. If you want this flow to be able to use any protocol within the internet protocol suite, use the value `ip`. If you only want to allow a selection of protocols, you must use the corresponding IANA Assigned Internet Protocol Number for each protocol, as described in https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml. For example, for UDP, you must use 17. If you use the value `ip` then you must leave the field `port` unspecified.
     */
    @JvmName("ukxahljjjrfrpdhc")
    public suspend fun protocols(`value`: Output>) {
        this.protocols = value
    }

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

    /**
     * @param values A list of the allowed protocol(s) for this flow. If you want this flow to be able to use any protocol within the internet protocol suite, use the value `ip`. If you only want to allow a selection of protocols, you must use the corresponding IANA Assigned Internet Protocol Number for each protocol, as described in https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml. For example, for UDP, you must use 17. If you use the value `ip` then you must leave the field `port` unspecified.
     */
    @JvmName("ccboyvvsbhyauftm")
    public suspend fun protocols(values: List>) {
        this.protocols = Output.all(values)
    }

    /**
     * @param value Specifies the remote IP address(es) to which UEs will connect for this flow. If you want to allow connections on any IP address, use the value `any`. Otherwise, you must provide each of the remote IP addresses to which the packet core instance will connect for this flow. You must provide each IP address in CIDR notation, including the netmask (for example, `192.0.2.54/24`).
     */
    @JvmName("fsjyobheifwrjimp")
    public suspend fun remoteIpLists(`value`: Output>) {
        this.remoteIpLists = value
    }

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

    /**
     * @param values Specifies the remote IP address(es) to which UEs will connect for this flow. If you want to allow connections on any IP address, use the value `any`. Otherwise, you must provide each of the remote IP addresses to which the packet core instance will connect for this flow. You must provide each IP address in CIDR notation, including the netmask (for example, `192.0.2.54/24`).
     */
    @JvmName("bhonghufhbfjsglb")
    public suspend fun remoteIpLists(values: List>) {
        this.remoteIpLists = Output.all(values)
    }

    /**
     * @param value Specifies the direction of this flow. Possible values are `Uplink`, `Downlink` and `Bidirectional`.
     */
    @JvmName("cvopgcnrdgsnvual")
    public suspend fun direction(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.direction = mapped
    }

    /**
     * @param value Specifies the name of the data flow template. This must be unique within the parent data flow policy rule. You must not use any of the following reserved strings - `default`, `requested` or `service`.
     */
    @JvmName("xbhooejappykrfam")
    public suspend fun name(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value The port(s) to which UEs will connect for this flow. You can specify zero or more ports or port ranges. If you specify one or more ports or port ranges then you must specify a value other than `ip` in the `protocol` field. If it is not specified then connections will be allowed on all ports. Port ranges must be specified as -. For example: [`8080`, `8082-8085`].
     */
    @JvmName("mvsorvnmvxjhyjnt")
    public suspend fun ports(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.ports = mapped
    }

    /**
     * @param values The port(s) to which UEs will connect for this flow. You can specify zero or more ports or port ranges. If you specify one or more ports or port ranges then you must specify a value other than `ip` in the `protocol` field. If it is not specified then connections will be allowed on all ports. Port ranges must be specified as -. For example: [`8080`, `8082-8085`].
     */
    @JvmName("grsxktbiqhnodnfm")
    public suspend fun ports(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.ports = mapped
    }

    /**
     * @param value A list of the allowed protocol(s) for this flow. If you want this flow to be able to use any protocol within the internet protocol suite, use the value `ip`. If you only want to allow a selection of protocols, you must use the corresponding IANA Assigned Internet Protocol Number for each protocol, as described in https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml. For example, for UDP, you must use 17. If you use the value `ip` then you must leave the field `port` unspecified.
     */
    @JvmName("yxshbnxxbgulewmc")
    public suspend fun protocols(`value`: List) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.protocols = mapped
    }

    /**
     * @param values A list of the allowed protocol(s) for this flow. If you want this flow to be able to use any protocol within the internet protocol suite, use the value `ip`. If you only want to allow a selection of protocols, you must use the corresponding IANA Assigned Internet Protocol Number for each protocol, as described in https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml. For example, for UDP, you must use 17. If you use the value `ip` then you must leave the field `port` unspecified.
     */
    @JvmName("bsvqerfdyeeqpvry")
    public suspend fun protocols(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.protocols = mapped
    }

    /**
     * @param value Specifies the remote IP address(es) to which UEs will connect for this flow. If you want to allow connections on any IP address, use the value `any`. Otherwise, you must provide each of the remote IP addresses to which the packet core instance will connect for this flow. You must provide each IP address in CIDR notation, including the netmask (for example, `192.0.2.54/24`).
     */
    @JvmName("kycsitjppwcgvdcj")
    public suspend fun remoteIpLists(`value`: List) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.remoteIpLists = mapped
    }

    /**
     * @param values Specifies the remote IP address(es) to which UEs will connect for this flow. If you want to allow connections on any IP address, use the value `any`. Otherwise, you must provide each of the remote IP addresses to which the packet core instance will connect for this flow. You must provide each IP address in CIDR notation, including the netmask (for example, `192.0.2.54/24`).
     */
    @JvmName("umqgqbjhyktanjeg")
    public suspend fun remoteIpLists(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.remoteIpLists = mapped
    }

    internal fun build(): NetworkServicePccRuleServiceDataFlowTemplateArgs =
        NetworkServicePccRuleServiceDataFlowTemplateArgs(
            direction = direction ?: throw PulumiNullFieldException("direction"),
            name = name ?: throw PulumiNullFieldException("name"),
            ports = ports,
            protocols = protocols ?: throw PulumiNullFieldException("protocols"),
            remoteIpLists = remoteIpLists ?: throw PulumiNullFieldException("remoteIpLists"),
        )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy