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

com.pulumi.azurenative.recoveryservices.kotlin.inputs.CreateRecoveryPlanInputPropertiesArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.azurenative.recoveryservices.kotlin.inputs

import com.pulumi.azurenative.recoveryservices.inputs.CreateRecoveryPlanInputPropertiesArgs.builder
import com.pulumi.azurenative.recoveryservices.kotlin.enums.FailoverDeploymentModel
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

/**
 * Recovery plan creation properties.
 * @property failoverDeploymentModel The failover deployment model.
 * @property groups The recovery plan groups.
 * @property primaryFabricId The primary fabric Id.
 * @property providerSpecificInput The provider specific input.
 * @property recoveryFabricId The recovery fabric Id.
 */
public data class CreateRecoveryPlanInputPropertiesArgs(
    public val failoverDeploymentModel: Output>? = null,
    public val groups: Output>,
    public val primaryFabricId: Output,
    public val providerSpecificInput: Output>? = null,
    public val recoveryFabricId: Output,
) :
    ConvertibleToJava {
    override fun toJava(): com.pulumi.azurenative.recoveryservices.inputs.CreateRecoveryPlanInputPropertiesArgs =
        com.pulumi.azurenative.recoveryservices.inputs.CreateRecoveryPlanInputPropertiesArgs.builder()
            .failoverDeploymentModel(
                failoverDeploymentModel?.applyValue({ args0 ->
                    args0.transform({ args0 ->
                        args0
                    }, { args0 -> args0.let({ args0 -> args0.toJava() }) })
                }),
            )
            .groups(groups.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }))
            .primaryFabricId(primaryFabricId.applyValue({ args0 -> args0 }))
            .providerSpecificInput(
                providerSpecificInput?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .recoveryFabricId(recoveryFabricId.applyValue({ args0 -> args0 })).build()
}

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

    private var groups: Output>? = null

    private var primaryFabricId: Output? = null

    private var providerSpecificInput: Output>? = null

    private var recoveryFabricId: Output? = null

    /**
     * @param value The failover deployment model.
     */
    @JvmName("rcbnewgclgbeghon")
    public suspend fun failoverDeploymentModel(`value`: Output>) {
        this.failoverDeploymentModel = value
    }

    /**
     * @param value The recovery plan groups.
     */
    @JvmName("yuupfktgrooaakyj")
    public suspend fun groups(`value`: Output>) {
        this.groups = value
    }

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

    /**
     * @param values The recovery plan groups.
     */
    @JvmName("wwfrcbmueajefvfn")
    public suspend fun groups(values: List>) {
        this.groups = Output.all(values)
    }

    /**
     * @param value The primary fabric Id.
     */
    @JvmName("pixoakdmrontcwdf")
    public suspend fun primaryFabricId(`value`: Output) {
        this.primaryFabricId = value
    }

    /**
     * @param value The provider specific input.
     */
    @JvmName("wiknpyaenrwdbrlh")
    public suspend fun providerSpecificInput(`value`: Output>) {
        this.providerSpecificInput = value
    }

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

    /**
     * @param values The provider specific input.
     */
    @JvmName("bewmpjgtwawemgdf")
    public suspend fun providerSpecificInput(values: List>) {
        this.providerSpecificInput = Output.all(values)
    }

    /**
     * @param value The recovery fabric Id.
     */
    @JvmName("jwyrapytifhdrchm")
    public suspend fun recoveryFabricId(`value`: Output) {
        this.recoveryFabricId = value
    }

    /**
     * @param value The failover deployment model.
     */
    @JvmName("qltbmlbraitwnokb")
    public suspend fun failoverDeploymentModel(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.failoverDeploymentModel = mapped
    }

    /**
     * @param value The failover deployment model.
     */
    @JvmName("xeegamhnorsubcbu")
    public fun failoverDeploymentModel(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.failoverDeploymentModel = mapped
    }

    /**
     * @param value The failover deployment model.
     */
    @JvmName("knxmoxmfwrvrayhh")
    public fun failoverDeploymentModel(`value`: FailoverDeploymentModel) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.failoverDeploymentModel = mapped
    }

    /**
     * @param value The recovery plan groups.
     */
    @JvmName("nhctomwxyuvqskfq")
    public suspend fun groups(`value`: List) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.groups = mapped
    }

    /**
     * @param argument The recovery plan groups.
     */
    @JvmName("yfgjynpofterwgrj")
    public suspend fun groups(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            RecoveryPlanGroupArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.groups = mapped
    }

    /**
     * @param argument The recovery plan groups.
     */
    @JvmName("lkvcmavsysgwaxpl")
    public suspend fun groups(vararg argument: suspend RecoveryPlanGroupArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            RecoveryPlanGroupArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.groups = mapped
    }

    /**
     * @param argument The recovery plan groups.
     */
    @JvmName("njggelbinubumyup")
    public suspend fun groups(argument: suspend RecoveryPlanGroupArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(RecoveryPlanGroupArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.groups = mapped
    }

    /**
     * @param values The recovery plan groups.
     */
    @JvmName("etwmyicgheinfiia")
    public suspend fun groups(vararg values: RecoveryPlanGroupArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.groups = mapped
    }

    /**
     * @param value The primary fabric Id.
     */
    @JvmName("xsgjprfegrwtcqfy")
    public suspend fun primaryFabricId(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.primaryFabricId = mapped
    }

    /**
     * @param value The provider specific input.
     */
    @JvmName("auuyumaxubklpvyr")
    public suspend fun providerSpecificInput(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.providerSpecificInput = mapped
    }

    /**
     * @param argument The provider specific input.
     */
    @JvmName("fkxxhilyguwvuwxb")
    public suspend fun providerSpecificInput(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            RecoveryPlanA2AInputArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.providerSpecificInput = mapped
    }

    /**
     * @param argument The provider specific input.
     */
    @JvmName("yqksjxaubwekxcrq")
    public suspend fun providerSpecificInput(vararg argument: suspend RecoveryPlanA2AInputArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            RecoveryPlanA2AInputArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.providerSpecificInput = mapped
    }

    /**
     * @param argument The provider specific input.
     */
    @JvmName("qcsqcfixgvxafsky")
    public suspend fun providerSpecificInput(argument: suspend RecoveryPlanA2AInputArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(RecoveryPlanA2AInputArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.providerSpecificInput = mapped
    }

    /**
     * @param values The provider specific input.
     */
    @JvmName("iddmrxkuxfltksei")
    public suspend fun providerSpecificInput(vararg values: RecoveryPlanA2AInputArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.providerSpecificInput = mapped
    }

    /**
     * @param value The recovery fabric Id.
     */
    @JvmName("hyrdbnagrfpyimcq")
    public suspend fun recoveryFabricId(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.recoveryFabricId = mapped
    }

    internal fun build(): CreateRecoveryPlanInputPropertiesArgs =
        CreateRecoveryPlanInputPropertiesArgs(
            failoverDeploymentModel = failoverDeploymentModel,
            groups = groups ?: throw PulumiNullFieldException("groups"),
            primaryFabricId = primaryFabricId ?: throw PulumiNullFieldException("primaryFabricId"),
            providerSpecificInput = providerSpecificInput,
            recoveryFabricId = recoveryFabricId ?: throw PulumiNullFieldException("recoveryFabricId"),
        )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy