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

com.pulumi.kubernetes.resource.v1alpha3.kotlin.inputs.AllocationResultArgs.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.

The newest version!
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.kubernetes.resource.v1alpha3.kotlin.inputs

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 com.pulumi.kubernetes.core.v1.kotlin.inputs.NodeSelectorArgs
import com.pulumi.kubernetes.core.v1.kotlin.inputs.NodeSelectorArgsBuilder
import com.pulumi.kubernetes.resource.v1alpha3.inputs.AllocationResultArgs.builder
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.jvm.JvmName

/**
 * AllocationResult contains attributes of an allocated resource.
 * @property controller Controller is the name of the DRA driver which handled the allocation. That driver is also responsible for deallocating the claim. It is empty when the claim can be deallocated without involving a driver.
 * A driver may allocate devices provided by other drivers, so this driver name here can be different from the driver names listed for the results.
 * This is an alpha field and requires enabling the DRAControlPlaneController feature gate.
 * @property devices Devices is the result of allocating devices.
 * @property nodeSelector NodeSelector defines where the allocated resources are available. If unset, they are available everywhere.
 */
public data class AllocationResultArgs(
    public val controller: Output? = null,
    public val devices: Output? = null,
    public val nodeSelector: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.kubernetes.resource.v1alpha3.inputs.AllocationResultArgs =
        com.pulumi.kubernetes.resource.v1alpha3.inputs.AllocationResultArgs.builder()
            .controller(controller?.applyValue({ args0 -> args0 }))
            .devices(devices?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .nodeSelector(nodeSelector?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) })).build()
}

/**
 * Builder for [AllocationResultArgs].
 */
@PulumiTagMarker
public class AllocationResultArgsBuilder internal constructor() {
    private var controller: Output? = null

    private var devices: Output? = null

    private var nodeSelector: Output? = null

    /**
     * @param value Controller is the name of the DRA driver which handled the allocation. That driver is also responsible for deallocating the claim. It is empty when the claim can be deallocated without involving a driver.
     * A driver may allocate devices provided by other drivers, so this driver name here can be different from the driver names listed for the results.
     * This is an alpha field and requires enabling the DRAControlPlaneController feature gate.
     */
    @JvmName("ljvfpjgmnihoueuc")
    public suspend fun controller(`value`: Output) {
        this.controller = value
    }

    /**
     * @param value Devices is the result of allocating devices.
     */
    @JvmName("qmqgtpgytjjjsodj")
    public suspend fun devices(`value`: Output) {
        this.devices = value
    }

    /**
     * @param value NodeSelector defines where the allocated resources are available. If unset, they are available everywhere.
     */
    @JvmName("pvpimxonuvyggcqy")
    public suspend fun nodeSelector(`value`: Output) {
        this.nodeSelector = value
    }

    /**
     * @param value Controller is the name of the DRA driver which handled the allocation. That driver is also responsible for deallocating the claim. It is empty when the claim can be deallocated without involving a driver.
     * A driver may allocate devices provided by other drivers, so this driver name here can be different from the driver names listed for the results.
     * This is an alpha field and requires enabling the DRAControlPlaneController feature gate.
     */
    @JvmName("swakuftogtuxnvci")
    public suspend fun controller(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.controller = mapped
    }

    /**
     * @param value Devices is the result of allocating devices.
     */
    @JvmName("kjixuhmgxsphyonc")
    public suspend fun devices(`value`: DeviceAllocationResultArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.devices = mapped
    }

    /**
     * @param argument Devices is the result of allocating devices.
     */
    @JvmName("jbvsgaplwvpuellh")
    public suspend fun devices(argument: suspend DeviceAllocationResultArgsBuilder.() -> Unit) {
        val toBeMapped = DeviceAllocationResultArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.devices = mapped
    }

    /**
     * @param value NodeSelector defines where the allocated resources are available. If unset, they are available everywhere.
     */
    @JvmName("trdnvgnusbakpbxb")
    public suspend fun nodeSelector(`value`: NodeSelectorArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.nodeSelector = mapped
    }

    /**
     * @param argument NodeSelector defines where the allocated resources are available. If unset, they are available everywhere.
     */
    @JvmName("sxxfdayspwompmlh")
    public suspend fun nodeSelector(argument: suspend NodeSelectorArgsBuilder.() -> Unit) {
        val toBeMapped = NodeSelectorArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.nodeSelector = mapped
    }

    internal fun build(): AllocationResultArgs = AllocationResultArgs(
        controller = controller,
        devices = devices,
        nodeSelector = nodeSelector,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy