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

com.pulumi.gcp.container.kotlin.outputs.NodePoolNodeConfig.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: 8.10.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.gcp.container.kotlin.outputs

import kotlin.Any
import kotlin.Boolean
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.collections.List
import kotlin.collections.Map

/**
 *
 * @property advancedMachineFeatures Specifies options for controlling advanced machine features.
 * @property bootDiskKmsKey The Customer Managed Encryption Key used to encrypt the boot disk attached to each node in the node pool.
 * @property confidentialNodes Configuration for Confidential Nodes feature. Structure is documented below.
 * @property diskSizeGb Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB.
 * @property diskType Type of the disk attached to each node. Such as pd-standard, pd-balanced or pd-ssd
 * @property effectiveTaints List of kubernetes taints applied to each node.
 * @property enableConfidentialStorage If enabled boot disks are configured with confidential mode.
 * @property ephemeralStorageConfig Parameters for the ephemeral storage filesystem. If unspecified, ephemeral storage is backed by the boot disk.
 * @property ephemeralStorageLocalSsdConfig Parameters for the ephemeral storage filesystem. If unspecified, ephemeral storage is backed by the boot disk.
 * @property fastSocket Enable or disable NCCL Fast Socket in the node pool.
 * @property gcfsConfig GCFS configuration for this node.
 * @property guestAccelerators List of the type and count of accelerator cards attached to the instance.
 * @property gvnic Enable or disable gvnic in the node pool.
 * @property hostMaintenancePolicy The maintenance policy for the hosts on which the GKE VMs run on.
 * @property imageType The image type to use for this node. Note that for a given image type, the latest version of it will be used.
 * @property kubeletConfig Node kubelet configs.
 * @property labels The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node.
 * @property linuxNodeConfig Parameters that can be configured on Linux nodes.
 * @property localNvmeSsdBlockConfig Parameters for raw-block local NVMe SSDs.
 * @property localSsdCount The number of local SSD disks to be attached to the node.
 * @property loggingVariant Type of logging agent that is used as the default value for node pools in the cluster. Valid values include DEFAULT and MAX_THROUGHPUT.
 * @property machineType The name of a Google Compute Engine machine type.
 * @property metadata The metadata key/value pairs assigned to instances in the cluster.
 * @property minCpuPlatform Minimum CPU platform to be used by this instance. The instance may be scheduled on the specified or newer CPU platform.
 * @property nodeGroup Setting this field will assign instances of this pool to run on the specified node group. This is useful for running workloads on sole tenant nodes.
 * @property oauthScopes The set of Google API scopes to be made available on all of the node VMs.
 * @property preemptible Whether the nodes are created as preemptible VM instances.
 * @property reservationAffinity The reservation affinity configuration for the node pool.
 * @property resourceLabels The GCE resource labels (a map of key/value pairs) to be applied to the node pool.
 * @property resourceManagerTags A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT & PATCH) when empty.
 * @property sandboxConfig Sandbox configuration for this node.
 * @property secondaryBootDisks Secondary boot disks for preloading data or container images.
 * @property serviceAccount The Google Cloud Platform Service Account to be used by the node VMs.
 * @property shieldedInstanceConfig Shielded Instance options.
 * @property soleTenantConfig Node affinity options for sole tenant node pools.
 * @property spot Whether the nodes are created as spot VM instances.
 * @property tags The list of instance tags applied to all nodes.
 * @property taints List of Kubernetes taints to be applied to each node.
 * @property workloadMetadataConfig The workload metadata configuration for this node.
 */
public data class NodePoolNodeConfig(
    public val advancedMachineFeatures: NodePoolNodeConfigAdvancedMachineFeatures? = null,
    public val bootDiskKmsKey: String? = null,
    public val confidentialNodes: NodePoolNodeConfigConfidentialNodes? = null,
    public val diskSizeGb: Int? = null,
    public val diskType: String? = null,
    public val effectiveTaints: List? = null,
    public val enableConfidentialStorage: Boolean? = null,
    public val ephemeralStorageConfig: NodePoolNodeConfigEphemeralStorageConfig? = null,
    public val ephemeralStorageLocalSsdConfig: NodePoolNodeConfigEphemeralStorageLocalSsdConfig? =
        null,
    public val fastSocket: NodePoolNodeConfigFastSocket? = null,
    public val gcfsConfig: NodePoolNodeConfigGcfsConfig? = null,
    public val guestAccelerators: List? = null,
    public val gvnic: NodePoolNodeConfigGvnic? = null,
    public val hostMaintenancePolicy: NodePoolNodeConfigHostMaintenancePolicy? = null,
    public val imageType: String? = null,
    public val kubeletConfig: NodePoolNodeConfigKubeletConfig? = null,
    public val labels: Map? = null,
    public val linuxNodeConfig: NodePoolNodeConfigLinuxNodeConfig? = null,
    public val localNvmeSsdBlockConfig: NodePoolNodeConfigLocalNvmeSsdBlockConfig? = null,
    public val localSsdCount: Int? = null,
    public val loggingVariant: String? = null,
    public val machineType: String? = null,
    public val metadata: Map? = null,
    public val minCpuPlatform: String? = null,
    public val nodeGroup: String? = null,
    public val oauthScopes: List? = null,
    public val preemptible: Boolean? = null,
    public val reservationAffinity: NodePoolNodeConfigReservationAffinity? = null,
    public val resourceLabels: Map? = null,
    public val resourceManagerTags: Map? = null,
    public val sandboxConfig: NodePoolNodeConfigSandboxConfig? = null,
    public val secondaryBootDisks: List? = null,
    public val serviceAccount: String? = null,
    public val shieldedInstanceConfig: NodePoolNodeConfigShieldedInstanceConfig? = null,
    public val soleTenantConfig: NodePoolNodeConfigSoleTenantConfig? = null,
    public val spot: Boolean? = null,
    public val tags: List? = null,
    public val taints: List? = null,
    public val workloadMetadataConfig: NodePoolNodeConfigWorkloadMetadataConfig? = null,
) {
    public companion object {
        public fun toKotlin(javaType: com.pulumi.gcp.container.outputs.NodePoolNodeConfig): NodePoolNodeConfig = NodePoolNodeConfig(
            advancedMachineFeatures = javaType.advancedMachineFeatures().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.container.kotlin.outputs.NodePoolNodeConfigAdvancedMachineFeatures.Companion.toKotlin(args0)
                })
            }).orElse(null),
            bootDiskKmsKey = javaType.bootDiskKmsKey().map({ args0 -> args0 }).orElse(null),
            confidentialNodes = javaType.confidentialNodes().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.container.kotlin.outputs.NodePoolNodeConfigConfidentialNodes.Companion.toKotlin(args0)
                })
            }).orElse(null),
            diskSizeGb = javaType.diskSizeGb().map({ args0 -> args0 }).orElse(null),
            diskType = javaType.diskType().map({ args0 -> args0 }).orElse(null),
            effectiveTaints = javaType.effectiveTaints().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.container.kotlin.outputs.NodePoolNodeConfigEffectiveTaint.Companion.toKotlin(args0)
                })
            }),
            enableConfidentialStorage = javaType.enableConfidentialStorage().map({ args0 ->
                args0
            }).orElse(null),
            ephemeralStorageConfig = javaType.ephemeralStorageConfig().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.container.kotlin.outputs.NodePoolNodeConfigEphemeralStorageConfig.Companion.toKotlin(args0)
                })
            }).orElse(null),
            ephemeralStorageLocalSsdConfig = javaType.ephemeralStorageLocalSsdConfig().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.container.kotlin.outputs.NodePoolNodeConfigEphemeralStorageLocalSsdConfig.Companion.toKotlin(args0)
                })
            }).orElse(null),
            fastSocket = javaType.fastSocket().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.container.kotlin.outputs.NodePoolNodeConfigFastSocket.Companion.toKotlin(args0)
                })
            }).orElse(null),
            gcfsConfig = javaType.gcfsConfig().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.container.kotlin.outputs.NodePoolNodeConfigGcfsConfig.Companion.toKotlin(args0)
                })
            }).orElse(null),
            guestAccelerators = javaType.guestAccelerators().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.container.kotlin.outputs.NodePoolNodeConfigGuestAccelerator.Companion.toKotlin(args0)
                })
            }),
            gvnic = javaType.gvnic().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.container.kotlin.outputs.NodePoolNodeConfigGvnic.Companion.toKotlin(args0)
                })
            }).orElse(null),
            hostMaintenancePolicy = javaType.hostMaintenancePolicy().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.container.kotlin.outputs.NodePoolNodeConfigHostMaintenancePolicy.Companion.toKotlin(args0)
                })
            }).orElse(null),
            imageType = javaType.imageType().map({ args0 -> args0 }).orElse(null),
            kubeletConfig = javaType.kubeletConfig().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.container.kotlin.outputs.NodePoolNodeConfigKubeletConfig.Companion.toKotlin(args0)
                })
            }).orElse(null),
            labels = javaType.labels().map({ args0 -> args0.key.to(args0.value) }).toMap(),
            linuxNodeConfig = javaType.linuxNodeConfig().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.container.kotlin.outputs.NodePoolNodeConfigLinuxNodeConfig.Companion.toKotlin(args0)
                })
            }).orElse(null),
            localNvmeSsdBlockConfig = javaType.localNvmeSsdBlockConfig().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.container.kotlin.outputs.NodePoolNodeConfigLocalNvmeSsdBlockConfig.Companion.toKotlin(args0)
                })
            }).orElse(null),
            localSsdCount = javaType.localSsdCount().map({ args0 -> args0 }).orElse(null),
            loggingVariant = javaType.loggingVariant().map({ args0 -> args0 }).orElse(null),
            machineType = javaType.machineType().map({ args0 -> args0 }).orElse(null),
            metadata = javaType.metadata().map({ args0 -> args0.key.to(args0.value) }).toMap(),
            minCpuPlatform = javaType.minCpuPlatform().map({ args0 -> args0 }).orElse(null),
            nodeGroup = javaType.nodeGroup().map({ args0 -> args0 }).orElse(null),
            oauthScopes = javaType.oauthScopes().map({ args0 -> args0 }),
            preemptible = javaType.preemptible().map({ args0 -> args0 }).orElse(null),
            reservationAffinity = javaType.reservationAffinity().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.container.kotlin.outputs.NodePoolNodeConfigReservationAffinity.Companion.toKotlin(args0)
                })
            }).orElse(null),
            resourceLabels = javaType.resourceLabels().map({ args0 -> args0.key.to(args0.value) }).toMap(),
            resourceManagerTags = javaType.resourceManagerTags().map({ args0 ->
                args0.key.to(args0.value)
            }).toMap(),
            sandboxConfig = javaType.sandboxConfig().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.container.kotlin.outputs.NodePoolNodeConfigSandboxConfig.Companion.toKotlin(args0)
                })
            }).orElse(null),
            secondaryBootDisks = javaType.secondaryBootDisks().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.container.kotlin.outputs.NodePoolNodeConfigSecondaryBootDisk.Companion.toKotlin(args0)
                })
            }),
            serviceAccount = javaType.serviceAccount().map({ args0 -> args0 }).orElse(null),
            shieldedInstanceConfig = javaType.shieldedInstanceConfig().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.container.kotlin.outputs.NodePoolNodeConfigShieldedInstanceConfig.Companion.toKotlin(args0)
                })
            }).orElse(null),
            soleTenantConfig = javaType.soleTenantConfig().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.container.kotlin.outputs.NodePoolNodeConfigSoleTenantConfig.Companion.toKotlin(args0)
                })
            }).orElse(null),
            spot = javaType.spot().map({ args0 -> args0 }).orElse(null),
            tags = javaType.tags().map({ args0 -> args0 }),
            taints = javaType.taints().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.container.kotlin.outputs.NodePoolNodeConfigTaint.Companion.toKotlin(args0)
                })
            }),
            workloadMetadataConfig = javaType.workloadMetadataConfig().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.container.kotlin.outputs.NodePoolNodeConfigWorkloadMetadataConfig.Companion.toKotlin(args0)
                })
            }).orElse(null),
        )
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy