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

com.pulumi.kubernetes.storage.v1.kotlin.CSINodeArgs.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.

There is a newer version: 4.18.2.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.kubernetes.storage.v1.kotlin

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.meta.v1.kotlin.inputs.ObjectMetaArgs
import com.pulumi.kubernetes.meta.v1.kotlin.inputs.ObjectMetaArgsBuilder
import com.pulumi.kubernetes.storage.v1.CSINodeArgs.builder
import com.pulumi.kubernetes.storage.v1.kotlin.inputs.CSINodeSpecArgs
import com.pulumi.kubernetes.storage.v1.kotlin.inputs.CSINodeSpecArgsBuilder
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.jvm.JvmName

/**
 * CSINode holds information about all CSI drivers installed on a node. CSI drivers do not need to create the CSINode object directly. As long as they use the node-driver-registrar sidecar container, the kubelet will automatically populate the CSINode object for the CSI driver as part of kubelet plugin registration. CSINode has the same name as a node. If the object is missing, it means either there are no CSI Drivers available on the node, or the Kubelet version is low enough that it doesn't create this object. CSINode has an OwnerReference that points to the corresponding node object.
 * @property apiVersion APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
 * @property kind Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
 * @property metadata Standard object's metadata. metadata.name must be the Kubernetes node name.
 * @property spec spec is the specification of CSINode
 */
public data class CSINodeArgs(
    public val apiVersion: Output? = null,
    public val kind: Output? = null,
    public val metadata: Output? = null,
    public val spec: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.kubernetes.storage.v1.CSINodeArgs =
        com.pulumi.kubernetes.storage.v1.CSINodeArgs.builder()
            .apiVersion(apiVersion?.applyValue({ args0 -> args0 }))
            .kind(kind?.applyValue({ args0 -> args0 }))
            .metadata(metadata?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .spec(spec?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) })).build()
}

/**
 * Builder for [CSINodeArgs].
 */
@PulumiTagMarker
public class CSINodeArgsBuilder internal constructor() {
    private var apiVersion: Output? = null

    private var kind: Output? = null

    private var metadata: Output? = null

    private var spec: Output? = null

    /**
     * @param value APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
     */
    @JvmName("fjjiejewwedbncps")
    public suspend fun apiVersion(`value`: Output) {
        this.apiVersion = value
    }

    /**
     * @param value Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
     */
    @JvmName("pxlramwincsygmrl")
    public suspend fun kind(`value`: Output) {
        this.kind = value
    }

    /**
     * @param value Standard object's metadata. metadata.name must be the Kubernetes node name.
     */
    @JvmName("nkjrrbrkdluyahss")
    public suspend fun metadata(`value`: Output) {
        this.metadata = value
    }

    /**
     * @param value spec is the specification of CSINode
     */
    @JvmName("mfkxmfgvmfkjejhj")
    public suspend fun spec(`value`: Output) {
        this.spec = value
    }

    /**
     * @param value APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
     */
    @JvmName("omdxtuhkwauwtsdu")
    public suspend fun apiVersion(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.apiVersion = mapped
    }

    /**
     * @param value Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
     */
    @JvmName("hylbkgwunhycabeq")
    public suspend fun kind(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.kind = mapped
    }

    /**
     * @param value Standard object's metadata. metadata.name must be the Kubernetes node name.
     */
    @JvmName("unlwjglaacoywrcg")
    public suspend fun metadata(`value`: ObjectMetaArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.metadata = mapped
    }

    /**
     * @param argument Standard object's metadata. metadata.name must be the Kubernetes node name.
     */
    @JvmName("fnenlcnlastlnmpa")
    public suspend fun metadata(argument: suspend ObjectMetaArgsBuilder.() -> Unit) {
        val toBeMapped = ObjectMetaArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.metadata = mapped
    }

    /**
     * @param value spec is the specification of CSINode
     */
    @JvmName("rrqevjdbmyhyepby")
    public suspend fun spec(`value`: CSINodeSpecArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.spec = mapped
    }

    /**
     * @param argument spec is the specification of CSINode
     */
    @JvmName("hccdqmfdhqiwxamc")
    public suspend fun spec(argument: suspend CSINodeSpecArgsBuilder.() -> Unit) {
        val toBeMapped = CSINodeSpecArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.spec = mapped
    }

    internal fun build(): CSINodeArgs = CSINodeArgs(
        apiVersion = apiVersion,
        kind = kind,
        metadata = metadata,
        spec = spec,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy