com.pulumi.kubernetes.resource.v1alpha3.kotlin.inputs.DeviceClassSpecArgs.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of pulumi-kubernetes-kotlin Show documentation
Show all versions of pulumi-kubernetes-kotlin Show documentation
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.DeviceClassSpecArgs.builder
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName
/**
* DeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it.
* @property config Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver.
* They are passed to the driver, but are not considered while allocating the claim.
* @property selectors Each selector must be satisfied by a device which is claimed via this class.
* @property suitableNodes Only nodes matching the selector will be considered by the scheduler when trying to find a Node that fits a Pod when that Pod uses a claim that has not been allocated yet *and* that claim gets allocated through a control plane controller. It is ignored when the claim does not use a control plane controller for allocation.
* Setting this field is optional. If unset, all Nodes are candidates.
* This is an alpha field and requires enabling the DRAControlPlaneController feature gate.
*/
public data class DeviceClassSpecArgs(
public val config: Output>? = null,
public val selectors: Output>? = null,
public val suitableNodes: Output? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.kubernetes.resource.v1alpha3.inputs.DeviceClassSpecArgs =
com.pulumi.kubernetes.resource.v1alpha3.inputs.DeviceClassSpecArgs.builder()
.config(config?.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }))
.selectors(
selectors?.applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
})
}),
)
.suitableNodes(suitableNodes?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) })).build()
}
/**
* Builder for [DeviceClassSpecArgs].
*/
@PulumiTagMarker
public class DeviceClassSpecArgsBuilder internal constructor() {
private var config: Output>? = null
private var selectors: Output>? = null
private var suitableNodes: Output? = null
/**
* @param value Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver.
* They are passed to the driver, but are not considered while allocating the claim.
*/
@JvmName("kndarajtkucaykbl")
public suspend fun config(`value`: Output>) {
this.config = value
}
@JvmName("tallduqypxwydxta")
public suspend fun config(vararg values: Output) {
this.config = Output.all(values.asList())
}
/**
* @param values Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver.
* They are passed to the driver, but are not considered while allocating the claim.
*/
@JvmName("fcgnqeardhgcskrv")
public suspend fun config(values: List
© 2015 - 2024 Weber Informatics LLC | Privacy Policy