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

com.pulumi.azurenative.azuredatatransfer.kotlin.inputs.ConnectionPropertiesArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.azurenative.azuredatatransfer.kotlin.inputs

import com.pulumi.azurenative.azuredatatransfer.inputs.ConnectionPropertiesArgs.builder
import com.pulumi.azurenative.azuredatatransfer.kotlin.enums.Direction
import com.pulumi.azurenative.azuredatatransfer.kotlin.enums.FlowType
import com.pulumi.core.Either
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 com.pulumi.kotlin.applySuspend
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * Properties of connection
 * @property direction Direction of data movement
 * @property flowTypes The flow types being requested for this connection
 * @property justification Justification for the connection request
 * @property pin PIN to link requests together
 * @property pipeline Pipeline to use to transfer data
 * @property policies The policies for this connection
 * @property primaryContact The primary contact for this connection request
 * @property remoteSubscriptionId Subscription ID to link cloud subscriptions together
 * @property requirementId Requirement ID of the connection
 * @property schemas The schemas for this connection
 * @property secondaryContacts The secondary contacts for this connection request
 */
public data class ConnectionPropertiesArgs(
    public val direction: Output>? = null,
    public val flowTypes: Output>>? = null,
    public val justification: Output? = null,
    public val pin: Output? = null,
    public val pipeline: Output,
    public val policies: Output>? = null,
    public val primaryContact: Output? = null,
    public val remoteSubscriptionId: Output? = null,
    public val requirementId: Output? = null,
    public val schemas: Output>? = null,
    public val secondaryContacts: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azurenative.azuredatatransfer.inputs.ConnectionPropertiesArgs =
        com.pulumi.azurenative.azuredatatransfer.inputs.ConnectionPropertiesArgs.builder()
            .direction(
                direction?.applyValue({ args0 ->
                    args0.transform({ args0 -> args0 }, { args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .flowTypes(
                flowTypes?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.transform(
                            { args0 -> args0 },
                            { args0 -> args0.let({ args0 -> args0.toJava() }) },
                        )
                    })
                }),
            )
            .justification(justification?.applyValue({ args0 -> args0 }))
            .pin(pin?.applyValue({ args0 -> args0 }))
            .pipeline(pipeline.applyValue({ args0 -> args0 }))
            .policies(policies?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .primaryContact(primaryContact?.applyValue({ args0 -> args0 }))
            .remoteSubscriptionId(remoteSubscriptionId?.applyValue({ args0 -> args0 }))
            .requirementId(requirementId?.applyValue({ args0 -> args0 }))
            .schemas(
                schemas?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .secondaryContacts(secondaryContacts?.applyValue({ args0 -> args0.map({ args0 -> args0 }) })).build()
}

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

    private var flowTypes: Output>>? = null

    private var justification: Output? = null

    private var pin: Output? = null

    private var pipeline: Output? = null

    private var policies: Output>? = null

    private var primaryContact: Output? = null

    private var remoteSubscriptionId: Output? = null

    private var requirementId: Output? = null

    private var schemas: Output>? = null

    private var secondaryContacts: Output>? = null

    /**
     * @param value Direction of data movement
     */
    @JvmName("mquasvxjndsfmjrb")
    public suspend fun direction(`value`: Output>) {
        this.direction = value
    }

    /**
     * @param value The flow types being requested for this connection
     */
    @JvmName("hnpirkuswaihirjh")
    public suspend fun flowTypes(`value`: Output>>) {
        this.flowTypes = value
    }

    @JvmName("wwmmlhfxcksfiwhl")
    public suspend fun flowTypes(vararg values: Output>) {
        this.flowTypes = Output.all(values.asList())
    }

    /**
     * @param values The flow types being requested for this connection
     */
    @JvmName("omriskfjodiakjsh")
    public suspend fun flowTypes(values: List>>) {
        this.flowTypes = Output.all(values)
    }

    /**
     * @param value Justification for the connection request
     */
    @JvmName("aphppeytbbxjvoys")
    public suspend fun justification(`value`: Output) {
        this.justification = value
    }

    /**
     * @param value PIN to link requests together
     */
    @JvmName("gktykkryokyqdbtj")
    public suspend fun pin(`value`: Output) {
        this.pin = value
    }

    /**
     * @param value Pipeline to use to transfer data
     */
    @JvmName("sqynxwxpqmlsjhbk")
    public suspend fun pipeline(`value`: Output) {
        this.pipeline = value
    }

    /**
     * @param value The policies for this connection
     */
    @JvmName("gkdduxmepjjywlyc")
    public suspend fun policies(`value`: Output>) {
        this.policies = value
    }

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

    /**
     * @param values The policies for this connection
     */
    @JvmName("cxlbhxoxhnxoopxu")
    public suspend fun policies(values: List>) {
        this.policies = Output.all(values)
    }

    /**
     * @param value The primary contact for this connection request
     */
    @JvmName("ukodmrxsxlquqmko")
    public suspend fun primaryContact(`value`: Output) {
        this.primaryContact = value
    }

    /**
     * @param value Subscription ID to link cloud subscriptions together
     */
    @JvmName("qhxhqggbggjabfpk")
    public suspend fun remoteSubscriptionId(`value`: Output) {
        this.remoteSubscriptionId = value
    }

    /**
     * @param value Requirement ID of the connection
     */
    @JvmName("ujnhrwphjaiiqcyc")
    public suspend fun requirementId(`value`: Output) {
        this.requirementId = value
    }

    /**
     * @param value The schemas for this connection
     */
    @JvmName("ekjmynpvjkbrygcp")
    public suspend fun schemas(`value`: Output>) {
        this.schemas = value
    }

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

    /**
     * @param values The schemas for this connection
     */
    @JvmName("nmanignjdxrqshmj")
    public suspend fun schemas(values: List>) {
        this.schemas = Output.all(values)
    }

    /**
     * @param value The secondary contacts for this connection request
     */
    @JvmName("nhiivajdvpymruww")
    public suspend fun secondaryContacts(`value`: Output>) {
        this.secondaryContacts = value
    }

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

    /**
     * @param values The secondary contacts for this connection request
     */
    @JvmName("sxkeqyxbtfbqcgok")
    public suspend fun secondaryContacts(values: List>) {
        this.secondaryContacts = Output.all(values)
    }

    /**
     * @param value Direction of data movement
     */
    @JvmName("gmfrfrrlhcslhqct")
    public suspend fun direction(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.direction = mapped
    }

    /**
     * @param value Direction of data movement
     */
    @JvmName("xjoccnjueekknmnb")
    public fun direction(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.direction = mapped
    }

    /**
     * @param value Direction of data movement
     */
    @JvmName("jywpwfjwwitimkaj")
    public fun direction(`value`: Direction) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.direction = mapped
    }

    /**
     * @param value The flow types being requested for this connection
     */
    @JvmName("mntferrppnrkgytp")
    public suspend fun flowTypes(`value`: List>?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.flowTypes = mapped
    }

    /**
     * @param values The flow types being requested for this connection
     */
    @JvmName("xbipetxpspvsryhq")
    public suspend fun flowTypes(vararg values: Either) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.flowTypes = mapped
    }

    /**
     * @param value Justification for the connection request
     */
    @JvmName("yruttnbinjjycphw")
    public suspend fun justification(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.justification = mapped
    }

    /**
     * @param value PIN to link requests together
     */
    @JvmName("sfhnwsxfnpcntyxe")
    public suspend fun pin(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.pin = mapped
    }

    /**
     * @param value Pipeline to use to transfer data
     */
    @JvmName("bovjwcqehxdkxyfc")
    public suspend fun pipeline(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.pipeline = mapped
    }

    /**
     * @param value The policies for this connection
     */
    @JvmName("ilyhgohuatlxhluu")
    public suspend fun policies(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.policies = mapped
    }

    /**
     * @param values The policies for this connection
     */
    @JvmName("ebyysqbbftjgwprb")
    public suspend fun policies(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.policies = mapped
    }

    /**
     * @param value The primary contact for this connection request
     */
    @JvmName("xvnjiibuijunlnnm")
    public suspend fun primaryContact(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.primaryContact = mapped
    }

    /**
     * @param value Subscription ID to link cloud subscriptions together
     */
    @JvmName("qwxtmqfyxfgwuybv")
    public suspend fun remoteSubscriptionId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.remoteSubscriptionId = mapped
    }

    /**
     * @param value Requirement ID of the connection
     */
    @JvmName("wnnydipjnqtbowjq")
    public suspend fun requirementId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.requirementId = mapped
    }

    /**
     * @param value The schemas for this connection
     */
    @JvmName("qbtilgcausjxalbg")
    public suspend fun schemas(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.schemas = mapped
    }

    /**
     * @param argument The schemas for this connection
     */
    @JvmName("ynbqostqqkmjgvse")
    public suspend fun schemas(argument: List Unit>) {
        val toBeMapped = argument.toList().map { SchemaArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.schemas = mapped
    }

    /**
     * @param argument The schemas for this connection
     */
    @JvmName("vxahcxqmmkvquafh")
    public suspend fun schemas(vararg argument: suspend SchemaArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map { SchemaArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.schemas = mapped
    }

    /**
     * @param argument The schemas for this connection
     */
    @JvmName("xtvjhhpwmillpggw")
    public suspend fun schemas(argument: suspend SchemaArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(SchemaArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.schemas = mapped
    }

    /**
     * @param values The schemas for this connection
     */
    @JvmName("bpuoewtvjupwqwua")
    public suspend fun schemas(vararg values: SchemaArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.schemas = mapped
    }

    /**
     * @param value The secondary contacts for this connection request
     */
    @JvmName("jjpaugksltemubby")
    public suspend fun secondaryContacts(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.secondaryContacts = mapped
    }

    /**
     * @param values The secondary contacts for this connection request
     */
    @JvmName("yyahwubptoqruvtl")
    public suspend fun secondaryContacts(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.secondaryContacts = mapped
    }

    internal fun build(): ConnectionPropertiesArgs = ConnectionPropertiesArgs(
        direction = direction,
        flowTypes = flowTypes,
        justification = justification,
        pin = pin,
        pipeline = pipeline ?: throw PulumiNullFieldException("pipeline"),
        policies = policies,
        primaryContact = primaryContact,
        remoteSubscriptionId = remoteSubscriptionId,
        requirementId = requirementId,
        schemas = schemas,
        secondaryContacts = secondaryContacts,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy