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

com.pulumi.azurenative.workloads.kotlin.inputs.CentralServerFullResourceNamesArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.azurenative.workloads.kotlin.inputs

import com.pulumi.azurenative.workloads.inputs.CentralServerFullResourceNamesArgs.builder
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.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * The full resource names object for central server layer resources.
 * @property availabilitySetName The full name for availability set. In case name is not provided, it will be defaulted to {SID}-ASCS-AvSet.
 * @property loadBalancer The resource names object for load balancer and related resources.
 * @property virtualMachines The list of names for all ASCS virtual machines to be deployed. The number of entries in this list should be equal to the number VMs to be created for ASCS layer. At maximum, there can be two virtual machines at this layer: ASCS and ERS.
 */
public data class CentralServerFullResourceNamesArgs(
    public val availabilitySetName: Output? = null,
    public val loadBalancer: Output? = null,
    public val virtualMachines: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azurenative.workloads.inputs.CentralServerFullResourceNamesArgs = com.pulumi.azurenative.workloads.inputs.CentralServerFullResourceNamesArgs.builder()
        .availabilitySetName(availabilitySetName?.applyValue({ args0 -> args0 }))
        .loadBalancer(loadBalancer?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
        .virtualMachines(
            virtualMachines?.applyValue({ args0 ->
                args0.map({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                })
            }),
        ).build()
}

/**
 * Builder for [CentralServerFullResourceNamesArgs].
 */
@PulumiTagMarker
public class CentralServerFullResourceNamesArgsBuilder internal constructor() {
    private var availabilitySetName: Output? = null

    private var loadBalancer: Output? = null

    private var virtualMachines: Output>? = null

    /**
     * @param value The full name for availability set. In case name is not provided, it will be defaulted to {SID}-ASCS-AvSet.
     */
    @JvmName("usjcqujdkxeqqpii")
    public suspend fun availabilitySetName(`value`: Output) {
        this.availabilitySetName = value
    }

    /**
     * @param value The resource names object for load balancer and related resources.
     */
    @JvmName("fdsipujscwrqhohk")
    public suspend fun loadBalancer(`value`: Output) {
        this.loadBalancer = value
    }

    /**
     * @param value The list of names for all ASCS virtual machines to be deployed. The number of entries in this list should be equal to the number VMs to be created for ASCS layer. At maximum, there can be two virtual machines at this layer: ASCS and ERS.
     */
    @JvmName("gknrrdicgflcjvsq")
    public suspend fun virtualMachines(`value`: Output>) {
        this.virtualMachines = value
    }

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

    /**
     * @param values The list of names for all ASCS virtual machines to be deployed. The number of entries in this list should be equal to the number VMs to be created for ASCS layer. At maximum, there can be two virtual machines at this layer: ASCS and ERS.
     */
    @JvmName("eayehdwuylwmjjih")
    public suspend fun virtualMachines(values: List>) {
        this.virtualMachines = Output.all(values)
    }

    /**
     * @param value The full name for availability set. In case name is not provided, it will be defaulted to {SID}-ASCS-AvSet.
     */
    @JvmName("xasvitsivupchttd")
    public suspend fun availabilitySetName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.availabilitySetName = mapped
    }

    /**
     * @param value The resource names object for load balancer and related resources.
     */
    @JvmName("tkhswqoejmqydjvq")
    public suspend fun loadBalancer(`value`: LoadBalancerResourceNamesArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.loadBalancer = mapped
    }

    /**
     * @param argument The resource names object for load balancer and related resources.
     */
    @JvmName("odajqwqxpncyxnnc")
    public suspend fun loadBalancer(argument: suspend LoadBalancerResourceNamesArgsBuilder.() -> Unit) {
        val toBeMapped = LoadBalancerResourceNamesArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.loadBalancer = mapped
    }

    /**
     * @param value The list of names for all ASCS virtual machines to be deployed. The number of entries in this list should be equal to the number VMs to be created for ASCS layer. At maximum, there can be two virtual machines at this layer: ASCS and ERS.
     */
    @JvmName("xkcpjeherycjuibt")
    public suspend fun virtualMachines(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.virtualMachines = mapped
    }

    /**
     * @param argument The list of names for all ASCS virtual machines to be deployed. The number of entries in this list should be equal to the number VMs to be created for ASCS layer. At maximum, there can be two virtual machines at this layer: ASCS and ERS.
     */
    @JvmName("qemliamvlpohstgj")
    public suspend fun virtualMachines(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            VirtualMachineResourceNamesArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.virtualMachines = mapped
    }

    /**
     * @param argument The list of names for all ASCS virtual machines to be deployed. The number of entries in this list should be equal to the number VMs to be created for ASCS layer. At maximum, there can be two virtual machines at this layer: ASCS and ERS.
     */
    @JvmName("gqjgxgmhhjhuvrvm")
    public suspend fun virtualMachines(vararg argument: suspend VirtualMachineResourceNamesArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            VirtualMachineResourceNamesArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.virtualMachines = mapped
    }

    /**
     * @param argument The list of names for all ASCS virtual machines to be deployed. The number of entries in this list should be equal to the number VMs to be created for ASCS layer. At maximum, there can be two virtual machines at this layer: ASCS and ERS.
     */
    @JvmName("rfnfxvnkeimxbajf")
    public suspend fun virtualMachines(argument: suspend VirtualMachineResourceNamesArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            VirtualMachineResourceNamesArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.virtualMachines = mapped
    }

    /**
     * @param values The list of names for all ASCS virtual machines to be deployed. The number of entries in this list should be equal to the number VMs to be created for ASCS layer. At maximum, there can be two virtual machines at this layer: ASCS and ERS.
     */
    @JvmName("wcrrguqvwpisewqe")
    public suspend fun virtualMachines(vararg values: VirtualMachineResourceNamesArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.virtualMachines = mapped
    }

    internal fun build(): CentralServerFullResourceNamesArgs = CentralServerFullResourceNamesArgs(
        availabilitySetName = availabilitySetName,
        loadBalancer = loadBalancer,
        virtualMachines = virtualMachines,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy