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

com.pulumi.kubernetes.resource.v1alpha3.kotlin.outputs.DeviceClassSpecPatch.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.outputs

import com.pulumi.kubernetes.core.v1.kotlin.outputs.NodeSelectorPatch
import kotlin.Suppress
import kotlin.collections.List

/**
 * 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 DeviceClassSpecPatch(
    public val config: List? = null,
    public val selectors: List? = null,
    public val suitableNodes: NodeSelectorPatch? = null,
) {
    public companion object {
        public fun toKotlin(javaType: com.pulumi.kubernetes.resource.v1alpha3.outputs.DeviceClassSpecPatch): DeviceClassSpecPatch = DeviceClassSpecPatch(
            config = javaType.config().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.kubernetes.resource.v1alpha3.kotlin.outputs.DeviceClassConfigurationPatch.Companion.toKotlin(args0)
                })
            }),
            selectors = javaType.selectors().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.kubernetes.resource.v1alpha3.kotlin.outputs.DeviceSelectorPatch.Companion.toKotlin(args0)
                })
            }),
            suitableNodes = javaType.suitableNodes().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.kubernetes.core.v1.kotlin.outputs.NodeSelectorPatch.Companion.toKotlin(args0)
                })
            }).orElse(null),
        )
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy