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

com.pulumi.gcp.container.kotlin.outputs.ClusterClusterAutoscalingAutoProvisioningDefaults.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.Int
import kotlin.String
import kotlin.Suppress
import kotlin.collections.List

/**
 *
 * @property bootDiskKmsKey The Customer Managed Encryption Key used to encrypt the boot disk attached to each node in the node pool. This should be of the form projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cryptoKeys/[KEY_NAME]. For more information about protecting resources with Cloud KMS Keys please see: https://cloud.google.com/compute/docs/disks/customer-managed-encryption
 * @property diskSize Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB. Defaults to `100`
 * @property diskType Type of the disk attached to each node (e.g. 'pd-standard', 'pd-ssd' or 'pd-balanced'). Defaults to `pd-standard`
 * @property imageType The default image type used by NAP once a new node pool is being created. Please note that according to the [official documentation](https://cloud.google.com/kubernetes-engine/docs/how-to/node-auto-provisioning#default-image-type) the value must be one of the [COS_CONTAINERD, COS, UBUNTU_CONTAINERD, UBUNTU]. __NOTE__ : COS AND UBUNTU are deprecated as of `GKE 1.24`
 * @property management NodeManagement configuration for this NodePool. Structure is documented below.
 * @property minCpuPlatform Minimum CPU platform to be used for NAP created node pools. The instance may be scheduled on the
 * specified or newer CPU platform. Applicable values are the friendly names of CPU platforms, such
 * as "Intel Haswell" or "Intel Sandy Bridge".
 * @property oauthScopes Scopes that are used by NAP and GKE Autopilot when creating node pools. Use the "https://www.googleapis.com/auth/cloud-platform" scope to grant access to all APIs. It is recommended that you set `service_account` to a non-default service account and grant IAM roles to that service account for only the resources that it needs.
 * > `monitoring.write` is always enabled regardless of user input.  `monitoring` and `logging.write` may also be enabled depending on the values for `monitoring_service` and `logging_service`.
 * @property serviceAccount The Google Cloud Platform Service Account to be used by the node VMs created by GKE Autopilot or NAP.
 * @property shieldedInstanceConfig Shielded Instance options. Structure is documented below.
 * @property upgradeSettings Specifies the upgrade settings for NAP created node pools
 */
public data class ClusterClusterAutoscalingAutoProvisioningDefaults(
    public val bootDiskKmsKey: String? = null,
    public val diskSize: Int? = null,
    public val diskType: String? = null,
    public val imageType: String? = null,
    public val management: ClusterClusterAutoscalingAutoProvisioningDefaultsManagement? = null,
    public val minCpuPlatform: String? = null,
    public val oauthScopes: List? = null,
    public val serviceAccount: String? = null,
    public val shieldedInstanceConfig: ClusterClusterAutoscalingAutoProvisioningDefaultsShieldedInstanceConfig? = null,
    public val upgradeSettings: ClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettings? =
        null,
) {
    public companion object {
        public fun toKotlin(javaType: com.pulumi.gcp.container.outputs.ClusterClusterAutoscalingAutoProvisioningDefaults): ClusterClusterAutoscalingAutoProvisioningDefaults =
            ClusterClusterAutoscalingAutoProvisioningDefaults(
                bootDiskKmsKey = javaType.bootDiskKmsKey().map({ args0 -> args0 }).orElse(null),
                diskSize = javaType.diskSize().map({ args0 -> args0 }).orElse(null),
                diskType = javaType.diskType().map({ args0 -> args0 }).orElse(null),
                imageType = javaType.imageType().map({ args0 -> args0 }).orElse(null),
                management = javaType.management().map({ args0 ->
                    args0.let({ args0 ->
                        com.pulumi.gcp.container.kotlin.outputs.ClusterClusterAutoscalingAutoProvisioningDefaultsManagement.Companion.toKotlin(args0)
                    })
                }).orElse(null),
                minCpuPlatform = javaType.minCpuPlatform().map({ args0 -> args0 }).orElse(null),
                oauthScopes = javaType.oauthScopes().map({ args0 -> args0 }),
                serviceAccount = javaType.serviceAccount().map({ args0 -> args0 }).orElse(null),
                shieldedInstanceConfig = javaType.shieldedInstanceConfig().map({ args0 ->
                    args0.let({ args0 ->
                        com.pulumi.gcp.container.kotlin.outputs.ClusterClusterAutoscalingAutoProvisioningDefaultsShieldedInstanceConfig.Companion.toKotlin(args0)
                    })
                }).orElse(null),
                upgradeSettings = javaType.upgradeSettings().map({ args0 ->
                    args0.let({ args0 ->
                        com.pulumi.gcp.container.kotlin.outputs.ClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettings.Companion.toKotlin(args0)
                    })
                }).orElse(null),
            )
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy