Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.pulumi.googlenative.container.v1.kotlin.ClusterArgs.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.
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.googlenative.container.v1.kotlin
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.googlenative.container.v1.ClusterArgs.builder
import com.pulumi.googlenative.container.v1.kotlin.inputs.AddonsConfigArgs
import com.pulumi.googlenative.container.v1.kotlin.inputs.AddonsConfigArgsBuilder
import com.pulumi.googlenative.container.v1.kotlin.inputs.AuthenticatorGroupsConfigArgs
import com.pulumi.googlenative.container.v1.kotlin.inputs.AuthenticatorGroupsConfigArgsBuilder
import com.pulumi.googlenative.container.v1.kotlin.inputs.AutopilotArgs
import com.pulumi.googlenative.container.v1.kotlin.inputs.AutopilotArgsBuilder
import com.pulumi.googlenative.container.v1.kotlin.inputs.BinaryAuthorizationArgs
import com.pulumi.googlenative.container.v1.kotlin.inputs.BinaryAuthorizationArgsBuilder
import com.pulumi.googlenative.container.v1.kotlin.inputs.ClusterAutoscalingArgs
import com.pulumi.googlenative.container.v1.kotlin.inputs.ClusterAutoscalingArgsBuilder
import com.pulumi.googlenative.container.v1.kotlin.inputs.ConfidentialNodesArgs
import com.pulumi.googlenative.container.v1.kotlin.inputs.ConfidentialNodesArgsBuilder
import com.pulumi.googlenative.container.v1.kotlin.inputs.CostManagementConfigArgs
import com.pulumi.googlenative.container.v1.kotlin.inputs.CostManagementConfigArgsBuilder
import com.pulumi.googlenative.container.v1.kotlin.inputs.DatabaseEncryptionArgs
import com.pulumi.googlenative.container.v1.kotlin.inputs.DatabaseEncryptionArgsBuilder
import com.pulumi.googlenative.container.v1.kotlin.inputs.FleetArgs
import com.pulumi.googlenative.container.v1.kotlin.inputs.FleetArgsBuilder
import com.pulumi.googlenative.container.v1.kotlin.inputs.IPAllocationPolicyArgs
import com.pulumi.googlenative.container.v1.kotlin.inputs.IPAllocationPolicyArgsBuilder
import com.pulumi.googlenative.container.v1.kotlin.inputs.IdentityServiceConfigArgs
import com.pulumi.googlenative.container.v1.kotlin.inputs.IdentityServiceConfigArgsBuilder
import com.pulumi.googlenative.container.v1.kotlin.inputs.LegacyAbacArgs
import com.pulumi.googlenative.container.v1.kotlin.inputs.LegacyAbacArgsBuilder
import com.pulumi.googlenative.container.v1.kotlin.inputs.LoggingConfigArgs
import com.pulumi.googlenative.container.v1.kotlin.inputs.LoggingConfigArgsBuilder
import com.pulumi.googlenative.container.v1.kotlin.inputs.MaintenancePolicyArgs
import com.pulumi.googlenative.container.v1.kotlin.inputs.MaintenancePolicyArgsBuilder
import com.pulumi.googlenative.container.v1.kotlin.inputs.MasterAuthArgs
import com.pulumi.googlenative.container.v1.kotlin.inputs.MasterAuthArgsBuilder
import com.pulumi.googlenative.container.v1.kotlin.inputs.MasterAuthorizedNetworksConfigArgs
import com.pulumi.googlenative.container.v1.kotlin.inputs.MasterAuthorizedNetworksConfigArgsBuilder
import com.pulumi.googlenative.container.v1.kotlin.inputs.MaxPodsConstraintArgs
import com.pulumi.googlenative.container.v1.kotlin.inputs.MaxPodsConstraintArgsBuilder
import com.pulumi.googlenative.container.v1.kotlin.inputs.MeshCertificatesArgs
import com.pulumi.googlenative.container.v1.kotlin.inputs.MeshCertificatesArgsBuilder
import com.pulumi.googlenative.container.v1.kotlin.inputs.MonitoringConfigArgs
import com.pulumi.googlenative.container.v1.kotlin.inputs.MonitoringConfigArgsBuilder
import com.pulumi.googlenative.container.v1.kotlin.inputs.NetworkConfigArgs
import com.pulumi.googlenative.container.v1.kotlin.inputs.NetworkConfigArgsBuilder
import com.pulumi.googlenative.container.v1.kotlin.inputs.NetworkPolicyArgs
import com.pulumi.googlenative.container.v1.kotlin.inputs.NetworkPolicyArgsBuilder
import com.pulumi.googlenative.container.v1.kotlin.inputs.NodeConfigArgs
import com.pulumi.googlenative.container.v1.kotlin.inputs.NodeConfigArgsBuilder
import com.pulumi.googlenative.container.v1.kotlin.inputs.NodePoolArgs
import com.pulumi.googlenative.container.v1.kotlin.inputs.NodePoolArgsBuilder
import com.pulumi.googlenative.container.v1.kotlin.inputs.NodePoolAutoConfigArgs
import com.pulumi.googlenative.container.v1.kotlin.inputs.NodePoolAutoConfigArgsBuilder
import com.pulumi.googlenative.container.v1.kotlin.inputs.NodePoolDefaultsArgs
import com.pulumi.googlenative.container.v1.kotlin.inputs.NodePoolDefaultsArgsBuilder
import com.pulumi.googlenative.container.v1.kotlin.inputs.NotificationConfigArgs
import com.pulumi.googlenative.container.v1.kotlin.inputs.NotificationConfigArgsBuilder
import com.pulumi.googlenative.container.v1.kotlin.inputs.PrivateClusterConfigArgs
import com.pulumi.googlenative.container.v1.kotlin.inputs.PrivateClusterConfigArgsBuilder
import com.pulumi.googlenative.container.v1.kotlin.inputs.ReleaseChannelArgs
import com.pulumi.googlenative.container.v1.kotlin.inputs.ReleaseChannelArgsBuilder
import com.pulumi.googlenative.container.v1.kotlin.inputs.ResourceUsageExportConfigArgs
import com.pulumi.googlenative.container.v1.kotlin.inputs.ResourceUsageExportConfigArgsBuilder
import com.pulumi.googlenative.container.v1.kotlin.inputs.ShieldedNodesArgs
import com.pulumi.googlenative.container.v1.kotlin.inputs.ShieldedNodesArgsBuilder
import com.pulumi.googlenative.container.v1.kotlin.inputs.StatusConditionArgs
import com.pulumi.googlenative.container.v1.kotlin.inputs.StatusConditionArgsBuilder
import com.pulumi.googlenative.container.v1.kotlin.inputs.VerticalPodAutoscalingArgs
import com.pulumi.googlenative.container.v1.kotlin.inputs.VerticalPodAutoscalingArgsBuilder
import com.pulumi.googlenative.container.v1.kotlin.inputs.WorkloadIdentityConfigArgs
import com.pulumi.googlenative.container.v1.kotlin.inputs.WorkloadIdentityConfigArgsBuilder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Boolean
import kotlin.Deprecated
import kotlin.Int
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.collections.Map
import kotlin.jvm.JvmName
/**
* Creates a cluster, consisting of the specified number and type of Google Compute Engine instances. By default, the cluster is created in the project's [default network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks). One firewall is added for the cluster. After cluster creation, the Kubelet creates routes for each node to allow the containers on that node to communicate with all other instances in the cluster. Finally, an entry is added to the project's global metadata indicating which CIDR range the cluster is using.
* @property addonsConfig Configurations for the various addons available to run in the cluster.
* @property authenticatorGroupsConfig Configuration controlling RBAC group membership information.
* @property autopilot Autopilot configuration for the cluster.
* @property autoscaling Cluster-level autoscaling configuration.
* @property binaryAuthorization Configuration for Binary Authorization.
* @property clusterIpv4Cidr The IP address range of the container pods in this cluster, in [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`). Leave blank to have one automatically chosen or specify a `/14` block in `10.0.0.0/8`.
* @property conditions Which conditions caused the current cluster state.
* @property confidentialNodes Configuration of Confidential Nodes. All the nodes in the cluster will be Confidential VM once enabled.
* @property costManagementConfig Configuration for the fine-grained cost management feature.
* @property databaseEncryption Configuration of etcd encryption.
* @property defaultMaxPodsConstraint The default constraint on the maximum number of pods that can be run simultaneously on a node in the node pool of this cluster. Only honored if cluster created with IP Alias support.
* @property description An optional description of this cluster.
* @property enableKubernetesAlpha Kubernetes alpha features are enabled on this cluster. This includes alpha API groups (e.g. v1alpha1) and features that may not be production ready in the kubernetes version of the master and nodes. The cluster has no SLA for uptime and master/node upgrades are disabled. Alpha enabled clusters are automatically deleted thirty days after creation.
* @property enableTpu Enable the ability to use Cloud TPUs in this cluster.
* @property etag This checksum is computed by the server based on the value of cluster fields, and may be sent on update requests to ensure the client has an up-to-date value before proceeding.
* @property fleet Fleet information for the cluster.
* @property identityServiceConfig Configuration for Identity Service component.
* @property initialClusterVersion The initial Kubernetes version for this cluster. Valid versions are those found in validMasterVersions returned by getServerConfig. The version can be upgraded over time; such upgrades are reflected in currentMasterVersion and currentNodeVersion. Users may specify either explicit versions offered by Kubernetes Engine or version aliases, which have the following behavior: - "latest": picks the highest valid Kubernetes version - "1.X": picks the highest valid patch+gke.N patch in the 1.X version - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version - "1.X.Y-gke.N": picks an explicit Kubernetes version - "","-": picks the default Kubernetes version
* @property initialNodeCount The number of nodes to create in this cluster. You must ensure that your Compute Engine [resource quota](https://cloud.google.com/compute/quotas) is sufficient for this number of instances. You must also have available firewall and routes quota. For requests, this field should only be used in lieu of a "node_pool" object, since this configuration (along with the "node_config") will be used to create a "NodePool" object with an auto-generated name. Do not use this and a node_pool at the same time. This field is deprecated, use node_pool.initial_node_count instead.
* @property instanceGroupUrls Deprecated. Use node_pools.instance_group_urls.
* @property ipAllocationPolicy Configuration for cluster IP allocation.
* @property legacyAbac Configuration for the legacy ABAC authorization mode.
* @property location
* @property locations The list of Google Compute Engine [zones](https://cloud.google.com/compute/docs/zones#available) in which the cluster's nodes should be located. This field provides a default value if [NodePool.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools#NodePool.FIELDS.locations) are not specified during node pool creation. Warning: changing cluster locations will update the [NodePool.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools#NodePool.FIELDS.locations) of all node pools and will result in nodes being added and/or removed.
* @property loggingConfig Logging configuration for the cluster.
* @property loggingService The logging service the cluster should use to write logs. Currently available options: * `logging.googleapis.com/kubernetes` - The Cloud Logging service with a Kubernetes-native resource model * `logging.googleapis.com` - The legacy Cloud Logging service (no longer available as of GKE 1.15). * `none` - no logs will be exported from the cluster. If left as an empty string,`logging.googleapis.com/kubernetes` will be used for GKE 1.14+ or `logging.googleapis.com` for earlier versions.
* @property maintenancePolicy Configure the maintenance policy for this cluster.
* @property masterAuth The authentication information for accessing the master endpoint. If unspecified, the defaults are used: For clusters before v1.12, if master_auth is unspecified, `username` will be set to "admin", a random password will be generated, and a client certificate will be issued.
* @property masterAuthorizedNetworksConfig The configuration options for master authorized networks feature.
* @property meshCertificates Configuration for issuance of mTLS keys and certificates to Kubernetes pods.
* @property monitoringConfig Monitoring configuration for the cluster.
* @property monitoringService The monitoring service the cluster should use to write metrics. Currently available options: * "monitoring.googleapis.com/kubernetes" - The Cloud Monitoring service with a Kubernetes-native resource model * `monitoring.googleapis.com` - The legacy Cloud Monitoring service (no longer available as of GKE 1.15). * `none` - No metrics will be exported from the cluster. If left as an empty string,`monitoring.googleapis.com/kubernetes` will be used for GKE 1.14+ or `monitoring.googleapis.com` for earlier versions.
* @property name The name of this cluster. The name must be unique within this project and location (e.g. zone or region), and can be up to 40 characters with the following restrictions: * Lowercase letters, numbers, and hyphens only. * Must start with a letter. * Must end with a number or a letter.
* @property network The name of the Google Compute Engine [network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks) to which the cluster is connected. If left unspecified, the `default` network will be used.
* @property networkConfig Configuration for cluster networking.
* @property networkPolicy Configuration options for the NetworkPolicy feature.
* @property nodeConfig Parameters used in creating the cluster's nodes. For requests, this field should only be used in lieu of a "node_pool" object, since this configuration (along with the "initial_node_count") will be used to create a "NodePool" object with an auto-generated name. Do not use this and a node_pool at the same time. For responses, this field will be populated with the node configuration of the first node pool. (For configuration of each node pool, see `node_pool.config`) If unspecified, the defaults are used. This field is deprecated, use node_pool.config instead.
* @property nodePoolAutoConfig Node pool configs that apply to all auto-provisioned node pools in autopilot clusters and node auto-provisioning enabled clusters.
* @property nodePoolDefaults Default NodePool settings for the entire cluster. These settings are overridden if specified on the specific NodePool object.
* @property nodePools The node pools associated with this cluster. This field should not be set if "node_config" or "initial_node_count" are specified.
* @property notificationConfig Notification configuration of the cluster.
* @property parent The parent (project and location) where the cluster will be created. Specified in the format `projects/*/locations/*`.
* @property privateClusterConfig Configuration for private cluster.
* @property project Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the parent field.
* @property releaseChannel Release channel configuration. If left unspecified on cluster creation and a version is specified, the cluster is enrolled in the most mature release channel where the version is available (first checking STABLE, then REGULAR, and finally RAPID). Otherwise, if no release channel configuration and no version is specified, the cluster is enrolled in the REGULAR channel with its default version.
* @property resourceLabels The resource labels for the cluster to use to annotate any related Google Compute Engine resources.
* @property resourceUsageExportConfig Configuration for exporting resource usages. Resource usage export is disabled when this config is unspecified.
* @property shieldedNodes Shielded Nodes configuration.
* @property subnetwork The name of the Google Compute Engine [subnetwork](https://cloud.google.com/compute/docs/subnetworks) to which the cluster is connected.
* @property verticalPodAutoscaling Cluster-level Vertical Pod Autoscaling configuration.
* @property workloadIdentityConfig Configuration for the use of Kubernetes Service Accounts in GCP IAM policies.
* @property zone Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the parent field.
* */*/
*/
public data class ClusterArgs(
public val addonsConfig: Output? = null,
public val authenticatorGroupsConfig: Output? = null,
public val autopilot: Output? = null,
public val autoscaling: Output? = null,
public val binaryAuthorization: Output? = null,
public val clusterIpv4Cidr: Output? = null,
public val conditions: Output>? = null,
public val confidentialNodes: Output? = null,
public val costManagementConfig: Output? = null,
public val databaseEncryption: Output? = null,
public val defaultMaxPodsConstraint: Output? = null,
public val description: Output? = null,
public val enableKubernetesAlpha: Output? = null,
public val enableTpu: Output? = null,
public val etag: Output? = null,
public val fleet: Output? = null,
public val identityServiceConfig: Output? = null,
public val initialClusterVersion: Output? = null,
@Deprecated(
message = """
The number of nodes to create in this cluster. You must ensure that your Compute Engine [resource
quota](https://cloud.google.com/compute/quotas) is sufficient for this number of instances.
You must also have available firewall and routes quota. For requests, this field should only
be used in lieu of a "node_pool" object, since this configuration (along with the
"node_config") will be used to create a "NodePool" object with an auto-generated name. Do not
use this and a node_pool at the same time. This field is deprecated, use
node_pool.initial_node_count instead.
""",
)
public val initialNodeCount: Output? = null,
@Deprecated(
message = """
Deprecated. Use node_pools.instance_group_urls.
""",
)
public val instanceGroupUrls: Output>? = null,
public val ipAllocationPolicy: Output? = null,
public val legacyAbac: Output? = null,
public val location: Output? = null,
public val locations: Output>? = null,
public val loggingConfig: Output? = null,
public val loggingService: Output? = null,
public val maintenancePolicy: Output? = null,
public val masterAuth: Output? = null,
public val masterAuthorizedNetworksConfig: Output? = null,
public val meshCertificates: Output? = null,
public val monitoringConfig: Output? = null,
public val monitoringService: Output? = null,
public val name: Output? = null,
public val network: Output? = null,
public val networkConfig: Output? = null,
public val networkPolicy: Output? = null,
@Deprecated(
message = """
Parameters used in creating the cluster's nodes. For requests, this field should only be used in
lieu of a "node_pool" object, since this configuration (along with the "initial_node_count")
will be used to create a "NodePool" object with an auto-generated name. Do not use this and a
node_pool at the same time. For responses, this field will be populated with the node
configuration of the first node pool. (For configuration of each node pool, see
`node_pool.config`) If unspecified, the defaults are used. This field is deprecated, use
node_pool.config instead.
""",
)
public val nodeConfig: Output? = null,
public val nodePoolAutoConfig: Output? = null,
public val nodePoolDefaults: Output? = null,
public val nodePools: Output>? = null,
public val notificationConfig: Output? = null,
public val parent: Output? = null,
public val privateClusterConfig: Output? = null,
@Deprecated(
message = """
Deprecated. The Google Developers Console [project ID or project
number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field
has been deprecated and replaced by the parent field.
""",
)
public val project: Output? = null,
public val releaseChannel: Output? = null,
public val resourceLabels: Output>? = null,
public val resourceUsageExportConfig: Output? = null,
public val shieldedNodes: Output? = null,
public val subnetwork: Output? = null,
public val verticalPodAutoscaling: Output? = null,
public val workloadIdentityConfig: Output? = null,
@Deprecated(
message = """
Deprecated. The name of the Google Compute Engine
[zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides.
This field has been deprecated and replaced by the parent field.
""",
)
public val zone: Output? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.googlenative.container.v1.ClusterArgs =
com.pulumi.googlenative.container.v1.ClusterArgs.builder()
.addonsConfig(addonsConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.authenticatorGroupsConfig(
authenticatorGroupsConfig?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.autopilot(autopilot?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.autoscaling(autoscaling?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.binaryAuthorization(
binaryAuthorization?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.clusterIpv4Cidr(clusterIpv4Cidr?.applyValue({ args0 -> args0 }))
.conditions(
conditions?.applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
})
}),
)
.confidentialNodes(confidentialNodes?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.costManagementConfig(
costManagementConfig?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.databaseEncryption(
databaseEncryption?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.defaultMaxPodsConstraint(
defaultMaxPodsConstraint?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.description(description?.applyValue({ args0 -> args0 }))
.enableKubernetesAlpha(enableKubernetesAlpha?.applyValue({ args0 -> args0 }))
.enableTpu(enableTpu?.applyValue({ args0 -> args0 }))
.etag(etag?.applyValue({ args0 -> args0 }))
.fleet(fleet?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.identityServiceConfig(
identityServiceConfig?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.initialClusterVersion(initialClusterVersion?.applyValue({ args0 -> args0 }))
.initialNodeCount(initialNodeCount?.applyValue({ args0 -> args0 }))
.instanceGroupUrls(instanceGroupUrls?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
.ipAllocationPolicy(
ipAllocationPolicy?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.legacyAbac(legacyAbac?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.location(location?.applyValue({ args0 -> args0 }))
.locations(locations?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
.loggingConfig(loggingConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.loggingService(loggingService?.applyValue({ args0 -> args0 }))
.maintenancePolicy(maintenancePolicy?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.masterAuth(masterAuth?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.masterAuthorizedNetworksConfig(
masterAuthorizedNetworksConfig?.applyValue({ args0 ->
args0.let({ args0 -> args0.toJava() })
}),
)
.meshCertificates(meshCertificates?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.monitoringConfig(monitoringConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.monitoringService(monitoringService?.applyValue({ args0 -> args0 }))
.name(name?.applyValue({ args0 -> args0 }))
.network(network?.applyValue({ args0 -> args0 }))
.networkConfig(networkConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.networkPolicy(networkPolicy?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.nodeConfig(nodeConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.nodePoolAutoConfig(
nodePoolAutoConfig?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.nodePoolDefaults(nodePoolDefaults?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.nodePools(
nodePools?.applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
})
}),
)
.notificationConfig(
notificationConfig?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.parent(parent?.applyValue({ args0 -> args0 }))
.privateClusterConfig(
privateClusterConfig?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.project(project?.applyValue({ args0 -> args0 }))
.releaseChannel(releaseChannel?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.resourceLabels(
resourceLabels?.applyValue({ args0 ->
args0.map({ args0 ->
args0.key.to(args0.value)
}).toMap()
}),
)
.resourceUsageExportConfig(
resourceUsageExportConfig?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.shieldedNodes(shieldedNodes?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.subnetwork(subnetwork?.applyValue({ args0 -> args0 }))
.verticalPodAutoscaling(
verticalPodAutoscaling?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.workloadIdentityConfig(
workloadIdentityConfig?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.zone(zone?.applyValue({ args0 -> args0 })).build()
}
/**
* Builder for [ClusterArgs].
*/
@PulumiTagMarker
public class ClusterArgsBuilder internal constructor() {
private var addonsConfig: Output? = null
private var authenticatorGroupsConfig: Output? = null
private var autopilot: Output? = null
private var autoscaling: Output? = null
private var binaryAuthorization: Output? = null
private var clusterIpv4Cidr: Output? = null
private var conditions: Output>? = null
private var confidentialNodes: Output? = null
private var costManagementConfig: Output? = null
private var databaseEncryption: Output? = null
private var defaultMaxPodsConstraint: Output? = null
private var description: Output? = null
private var enableKubernetesAlpha: Output? = null
private var enableTpu: Output? = null
private var etag: Output? = null
private var fleet: Output? = null
private var identityServiceConfig: Output? = null
private var initialClusterVersion: Output? = null
private var initialNodeCount: Output? = null
private var instanceGroupUrls: Output>? = null
private var ipAllocationPolicy: Output? = null
private var legacyAbac: Output? = null
private var location: Output? = null
private var locations: Output>? = null
private var loggingConfig: Output? = null
private var loggingService: Output? = null
private var maintenancePolicy: Output? = null
private var masterAuth: Output? = null
private var masterAuthorizedNetworksConfig: Output? = null
private var meshCertificates: Output? = null
private var monitoringConfig: Output? = null
private var monitoringService: Output? = null
private var name: Output? = null
private var network: Output? = null
private var networkConfig: Output? = null
private var networkPolicy: Output? = null
private var nodeConfig: Output? = null
private var nodePoolAutoConfig: Output? = null
private var nodePoolDefaults: Output? = null
private var nodePools: Output>? = null
private var notificationConfig: Output? = null
private var parent: Output? = null
private var privateClusterConfig: Output? = null
private var project: Output? = null
private var releaseChannel: Output? = null
private var resourceLabels: Output>? = null
private var resourceUsageExportConfig: Output? = null
private var shieldedNodes: Output? = null
private var subnetwork: Output? = null
private var verticalPodAutoscaling: Output? = null
private var workloadIdentityConfig: Output? = null
private var zone: Output? = null
/**
* @param value Configurations for the various addons available to run in the cluster.
*/
@JvmName("kiwxuxxsnnvuessx")
public suspend fun addonsConfig(`value`: Output) {
this.addonsConfig = value
}
/**
* @param value Configuration controlling RBAC group membership information.
*/
@JvmName("gnjkikagwrlvooqa")
public suspend fun authenticatorGroupsConfig(`value`: Output) {
this.authenticatorGroupsConfig = value
}
/**
* @param value Autopilot configuration for the cluster.
*/
@JvmName("ummfpdbfkovkeymw")
public suspend fun autopilot(`value`: Output) {
this.autopilot = value
}
/**
* @param value Cluster-level autoscaling configuration.
*/
@JvmName("hptgvfkamfkntqrx")
public suspend fun autoscaling(`value`: Output) {
this.autoscaling = value
}
/**
* @param value Configuration for Binary Authorization.
*/
@JvmName("rcelkledooqgjnbd")
public suspend fun binaryAuthorization(`value`: Output) {
this.binaryAuthorization = value
}
/**
* @param value The IP address range of the container pods in this cluster, in [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`). Leave blank to have one automatically chosen or specify a `/14` block in `10.0.0.0/8`.
*/
@JvmName("mndblhladyvuyopl")
public suspend fun clusterIpv4Cidr(`value`: Output) {
this.clusterIpv4Cidr = value
}
/**
* @param value Which conditions caused the current cluster state.
*/
@JvmName("pxpkcocggsmjadpa")
public suspend fun conditions(`value`: Output>) {
this.conditions = value
}
@JvmName("gwtnwgggvbqrlgpv")
public suspend fun conditions(vararg values: Output) {
this.conditions = Output.all(values.asList())
}
/**
* @param values Which conditions caused the current cluster state.
*/
@JvmName("ugyqufpjeaxwjmyp")
public suspend fun conditions(values: List>) {
this.conditions = Output.all(values)
}
/**
* @param value Configuration of Confidential Nodes. All the nodes in the cluster will be Confidential VM once enabled.
*/
@JvmName("keyejsdhkoqsflbp")
public suspend fun confidentialNodes(`value`: Output) {
this.confidentialNodes = value
}
/**
* @param value Configuration for the fine-grained cost management feature.
*/
@JvmName("jixevuqsorgwhgcp")
public suspend fun costManagementConfig(`value`: Output) {
this.costManagementConfig = value
}
/**
* @param value Configuration of etcd encryption.
*/
@JvmName("cnuackxpfdfxjbhp")
public suspend fun databaseEncryption(`value`: Output) {
this.databaseEncryption = value
}
/**
* @param value The default constraint on the maximum number of pods that can be run simultaneously on a node in the node pool of this cluster. Only honored if cluster created with IP Alias support.
*/
@JvmName("buihkgwlysarqngb")
public suspend fun defaultMaxPodsConstraint(`value`: Output) {
this.defaultMaxPodsConstraint = value
}
/**
* @param value An optional description of this cluster.
*/
@JvmName("ovouacutesywrrmv")
public suspend fun description(`value`: Output) {
this.description = value
}
/**
* @param value Kubernetes alpha features are enabled on this cluster. This includes alpha API groups (e.g. v1alpha1) and features that may not be production ready in the kubernetes version of the master and nodes. The cluster has no SLA for uptime and master/node upgrades are disabled. Alpha enabled clusters are automatically deleted thirty days after creation.
*/
@JvmName("rdmfoupitidgudmj")
public suspend fun enableKubernetesAlpha(`value`: Output) {
this.enableKubernetesAlpha = value
}
/**
* @param value Enable the ability to use Cloud TPUs in this cluster.
*/
@JvmName("fmgklnjepkugxmnp")
public suspend fun enableTpu(`value`: Output) {
this.enableTpu = value
}
/**
* @param value This checksum is computed by the server based on the value of cluster fields, and may be sent on update requests to ensure the client has an up-to-date value before proceeding.
*/
@JvmName("vvfrmlkptdgyccva")
public suspend fun etag(`value`: Output) {
this.etag = value
}
/**
* @param value Fleet information for the cluster.
*/
@JvmName("xewdggfrwmmoqqyk")
public suspend fun fleet(`value`: Output) {
this.fleet = value
}
/**
* @param value Configuration for Identity Service component.
*/
@JvmName("tvcpbpethtrqmhta")
public suspend fun identityServiceConfig(`value`: Output) {
this.identityServiceConfig = value
}
/**
* @param value The initial Kubernetes version for this cluster. Valid versions are those found in validMasterVersions returned by getServerConfig. The version can be upgraded over time; such upgrades are reflected in currentMasterVersion and currentNodeVersion. Users may specify either explicit versions offered by Kubernetes Engine or version aliases, which have the following behavior: - "latest": picks the highest valid Kubernetes version - "1.X": picks the highest valid patch+gke.N patch in the 1.X version - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version - "1.X.Y-gke.N": picks an explicit Kubernetes version - "","-": picks the default Kubernetes version
*/
@JvmName("tilklvmxdyeubtdv")
public suspend fun initialClusterVersion(`value`: Output) {
this.initialClusterVersion = value
}
/**
* @param value The number of nodes to create in this cluster. You must ensure that your Compute Engine [resource quota](https://cloud.google.com/compute/quotas) is sufficient for this number of instances. You must also have available firewall and routes quota. For requests, this field should only be used in lieu of a "node_pool" object, since this configuration (along with the "node_config") will be used to create a "NodePool" object with an auto-generated name. Do not use this and a node_pool at the same time. This field is deprecated, use node_pool.initial_node_count instead.
*/
@Deprecated(
message = """
The number of nodes to create in this cluster. You must ensure that your Compute Engine [resource
quota](https://cloud.google.com/compute/quotas) is sufficient for this number of instances.
You must also have available firewall and routes quota. For requests, this field should only
be used in lieu of a "node_pool" object, since this configuration (along with the
"node_config") will be used to create a "NodePool" object with an auto-generated name. Do not
use this and a node_pool at the same time. This field is deprecated, use
node_pool.initial_node_count instead.
""",
)
@JvmName("rnyfmlvfyujykeby")
public suspend fun initialNodeCount(`value`: Output) {
this.initialNodeCount = value
}
/**
* @param value Deprecated. Use node_pools.instance_group_urls.
*/
@Deprecated(
message = """
Deprecated. Use node_pools.instance_group_urls.
""",
)
@JvmName("utdvubnymrewsxwt")
public suspend fun instanceGroupUrls(`value`: Output>) {
this.instanceGroupUrls = value
}
@JvmName("dlgremxkfwfghfsd")
public suspend fun instanceGroupUrls(vararg values: Output) {
this.instanceGroupUrls = Output.all(values.asList())
}
/**
* @param values Deprecated. Use node_pools.instance_group_urls.
*/
@Deprecated(
message = """
Deprecated. Use node_pools.instance_group_urls.
""",
)
@JvmName("prceautunonconnl")
public suspend fun instanceGroupUrls(values: List>) {
this.instanceGroupUrls = Output.all(values)
}
/**
* @param value Configuration for cluster IP allocation.
*/
@JvmName("vjumlhdwaxoqnujf")
public suspend fun ipAllocationPolicy(`value`: Output) {
this.ipAllocationPolicy = value
}
/**
* @param value Configuration for the legacy ABAC authorization mode.
*/
@JvmName("wdysvscbthnrgtyh")
public suspend fun legacyAbac(`value`: Output) {
this.legacyAbac = value
}
/**
* @param value
*/
@JvmName("hafmkpmtfukwtles")
public suspend fun location(`value`: Output) {
this.location = value
}
/**
* @param value The list of Google Compute Engine [zones](https://cloud.google.com/compute/docs/zones#available) in which the cluster's nodes should be located. This field provides a default value if [NodePool.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools#NodePool.FIELDS.locations) are not specified during node pool creation. Warning: changing cluster locations will update the [NodePool.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools#NodePool.FIELDS.locations) of all node pools and will result in nodes being added and/or removed.
*/
@JvmName("qijsuqmhsxhlhigr")
public suspend fun locations(`value`: Output>) {
this.locations = value
}
@JvmName("llfmgoqvdbrscngc")
public suspend fun locations(vararg values: Output) {
this.locations = Output.all(values.asList())
}
/**
* @param values The list of Google Compute Engine [zones](https://cloud.google.com/compute/docs/zones#available) in which the cluster's nodes should be located. This field provides a default value if [NodePool.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools#NodePool.FIELDS.locations) are not specified during node pool creation. Warning: changing cluster locations will update the [NodePool.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools#NodePool.FIELDS.locations) of all node pools and will result in nodes being added and/or removed.
*/
@JvmName("ufnteyojwflntqgt")
public suspend fun locations(values: List>) {
this.locations = Output.all(values)
}
/**
* @param value Logging configuration for the cluster.
*/
@JvmName("rsisackytnsoimje")
public suspend fun loggingConfig(`value`: Output) {
this.loggingConfig = value
}
/**
* @param value The logging service the cluster should use to write logs. Currently available options: * `logging.googleapis.com/kubernetes` - The Cloud Logging service with a Kubernetes-native resource model * `logging.googleapis.com` - The legacy Cloud Logging service (no longer available as of GKE 1.15). * `none` - no logs will be exported from the cluster. If left as an empty string,`logging.googleapis.com/kubernetes` will be used for GKE 1.14+ or `logging.googleapis.com` for earlier versions.
*/
@JvmName("wfycfllpnjiduhwn")
public suspend fun loggingService(`value`: Output) {
this.loggingService = value
}
/**
* @param value Configure the maintenance policy for this cluster.
*/
@JvmName("hbxnpenhvuenxope")
public suspend fun maintenancePolicy(`value`: Output) {
this.maintenancePolicy = value
}
/**
* @param value The authentication information for accessing the master endpoint. If unspecified, the defaults are used: For clusters before v1.12, if master_auth is unspecified, `username` will be set to "admin", a random password will be generated, and a client certificate will be issued.
*/
@JvmName("xqvndppniwqrltsk")
public suspend fun masterAuth(`value`: Output) {
this.masterAuth = value
}
/**
* @param value The configuration options for master authorized networks feature.
*/
@JvmName("pgtjabquamujssnq")
public suspend fun masterAuthorizedNetworksConfig(`value`: Output) {
this.masterAuthorizedNetworksConfig = value
}
/**
* @param value Configuration for issuance of mTLS keys and certificates to Kubernetes pods.
*/
@JvmName("rucratdoesgtithv")
public suspend fun meshCertificates(`value`: Output) {
this.meshCertificates = value
}
/**
* @param value Monitoring configuration for the cluster.
*/
@JvmName("sfjkeyveqvbjtxkc")
public suspend fun monitoringConfig(`value`: Output) {
this.monitoringConfig = value
}
/**
* @param value The monitoring service the cluster should use to write metrics. Currently available options: * "monitoring.googleapis.com/kubernetes" - The Cloud Monitoring service with a Kubernetes-native resource model * `monitoring.googleapis.com` - The legacy Cloud Monitoring service (no longer available as of GKE 1.15). * `none` - No metrics will be exported from the cluster. If left as an empty string,`monitoring.googleapis.com/kubernetes` will be used for GKE 1.14+ or `monitoring.googleapis.com` for earlier versions.
*/
@JvmName("ksvrhatnpfsmgjqw")
public suspend fun monitoringService(`value`: Output) {
this.monitoringService = value
}
/**
* @param value The name of this cluster. The name must be unique within this project and location (e.g. zone or region), and can be up to 40 characters with the following restrictions: * Lowercase letters, numbers, and hyphens only. * Must start with a letter. * Must end with a number or a letter.
*/
@JvmName("squbvvijqsffuowf")
public suspend fun name(`value`: Output) {
this.name = value
}
/**
* @param value The name of the Google Compute Engine [network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks) to which the cluster is connected. If left unspecified, the `default` network will be used.
*/
@JvmName("fgghyliuxkbiyvov")
public suspend fun network(`value`: Output) {
this.network = value
}
/**
* @param value Configuration for cluster networking.
*/
@JvmName("uhkdryxrvnqcavgs")
public suspend fun networkConfig(`value`: Output) {
this.networkConfig = value
}
/**
* @param value Configuration options for the NetworkPolicy feature.
*/
@JvmName("wppdjxgtatfugqax")
public suspend fun networkPolicy(`value`: Output) {
this.networkPolicy = value
}
/**
* @param value Parameters used in creating the cluster's nodes. For requests, this field should only be used in lieu of a "node_pool" object, since this configuration (along with the "initial_node_count") will be used to create a "NodePool" object with an auto-generated name. Do not use this and a node_pool at the same time. For responses, this field will be populated with the node configuration of the first node pool. (For configuration of each node pool, see `node_pool.config`) If unspecified, the defaults are used. This field is deprecated, use node_pool.config instead.
*/
@Deprecated(
message = """
Parameters used in creating the cluster's nodes. For requests, this field should only be used in
lieu of a "node_pool" object, since this configuration (along with the "initial_node_count")
will be used to create a "NodePool" object with an auto-generated name. Do not use this and a
node_pool at the same time. For responses, this field will be populated with the node
configuration of the first node pool. (For configuration of each node pool, see
`node_pool.config`) If unspecified, the defaults are used. This field is deprecated, use
node_pool.config instead.
""",
)
@JvmName("slaiplcgwdbslooo")
public suspend fun nodeConfig(`value`: Output) {
this.nodeConfig = value
}
/**
* @param value Node pool configs that apply to all auto-provisioned node pools in autopilot clusters and node auto-provisioning enabled clusters.
*/
@JvmName("eitauaeaahkvavaj")
public suspend fun nodePoolAutoConfig(`value`: Output) {
this.nodePoolAutoConfig = value
}
/**
* @param value Default NodePool settings for the entire cluster. These settings are overridden if specified on the specific NodePool object.
*/
@JvmName("wwtuxndkcolflxro")
public suspend fun nodePoolDefaults(`value`: Output) {
this.nodePoolDefaults = value
}
/**
* @param value The node pools associated with this cluster. This field should not be set if "node_config" or "initial_node_count" are specified.
*/
@JvmName("dtsfngstitgdhgfb")
public suspend fun nodePools(`value`: Output>) {
this.nodePools = value
}
@JvmName("kdprllvheveouxjs")
public suspend fun nodePools(vararg values: Output) {
this.nodePools = Output.all(values.asList())
}
/**
* @param values The node pools associated with this cluster. This field should not be set if "node_config" or "initial_node_count" are specified.
*/
@JvmName("oksojeogowrjiliv")
public suspend fun nodePools(values: List>) {
this.nodePools = Output.all(values)
}
/**
* @param value Notification configuration of the cluster.
*/
@JvmName("cnlafnbaiopfprka")
public suspend fun notificationConfig(`value`: Output) {
this.notificationConfig = value
}
/**
* @param value The parent (project and location) where the cluster will be created. Specified in the format `projects/*/locations/*`.
* */*/
*/
@JvmName("hxybchfanaiadumm")
public suspend fun parent(`value`: Output) {
this.parent = value
}
/**
* @param value Configuration for private cluster.
*/
@JvmName("tlbnflkilwcwklfb")
public suspend fun privateClusterConfig(`value`: Output) {
this.privateClusterConfig = value
}
/**
* @param value Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the parent field.
*/
@Deprecated(
message = """
Deprecated. The Google Developers Console [project ID or project
number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field
has been deprecated and replaced by the parent field.
""",
)
@JvmName("yywowkjkllwdkchh")
public suspend fun project(`value`: Output) {
this.project = value
}
/**
* @param value Release channel configuration. If left unspecified on cluster creation and a version is specified, the cluster is enrolled in the most mature release channel where the version is available (first checking STABLE, then REGULAR, and finally RAPID). Otherwise, if no release channel configuration and no version is specified, the cluster is enrolled in the REGULAR channel with its default version.
*/
@JvmName("fkyhodrqrwefjsba")
public suspend fun releaseChannel(`value`: Output) {
this.releaseChannel = value
}
/**
* @param value The resource labels for the cluster to use to annotate any related Google Compute Engine resources.
*/
@JvmName("hkmxtoqwlporlqpu")
public suspend fun resourceLabels(`value`: Output>) {
this.resourceLabels = value
}
/**
* @param value Configuration for exporting resource usages. Resource usage export is disabled when this config is unspecified.
*/
@JvmName("wettexlcresutdqk")
public suspend fun resourceUsageExportConfig(`value`: Output) {
this.resourceUsageExportConfig = value
}
/**
* @param value Shielded Nodes configuration.
*/
@JvmName("lisgllmefwmmjgwl")
public suspend fun shieldedNodes(`value`: Output) {
this.shieldedNodes = value
}
/**
* @param value The name of the Google Compute Engine [subnetwork](https://cloud.google.com/compute/docs/subnetworks) to which the cluster is connected.
*/
@JvmName("kutbawyswedhgeab")
public suspend fun subnetwork(`value`: Output) {
this.subnetwork = value
}
/**
* @param value Cluster-level Vertical Pod Autoscaling configuration.
*/
@JvmName("prksvhnakuujyjav")
public suspend fun verticalPodAutoscaling(`value`: Output) {
this.verticalPodAutoscaling = value
}
/**
* @param value Configuration for the use of Kubernetes Service Accounts in GCP IAM policies.
*/
@JvmName("htsayigldxqfqgrk")
public suspend fun workloadIdentityConfig(`value`: Output) {
this.workloadIdentityConfig = value
}
/**
* @param value Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the parent field.
*/
@Deprecated(
message = """
Deprecated. The name of the Google Compute Engine
[zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides.
This field has been deprecated and replaced by the parent field.
""",
)
@JvmName("uaabeanlhhtqftmp")
public suspend fun zone(`value`: Output) {
this.zone = value
}
/**
* @param value Configurations for the various addons available to run in the cluster.
*/
@JvmName("gpnniiguobuvncfp")
public suspend fun addonsConfig(`value`: AddonsConfigArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.addonsConfig = mapped
}
/**
* @param argument Configurations for the various addons available to run in the cluster.
*/
@JvmName("ofvwrxciamtunvdg")
public suspend fun addonsConfig(argument: suspend AddonsConfigArgsBuilder.() -> Unit) {
val toBeMapped = AddonsConfigArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.addonsConfig = mapped
}
/**
* @param value Configuration controlling RBAC group membership information.
*/
@JvmName("sfhtgetyokrqpenh")
public suspend fun authenticatorGroupsConfig(`value`: AuthenticatorGroupsConfigArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.authenticatorGroupsConfig = mapped
}
/**
* @param argument Configuration controlling RBAC group membership information.
*/
@JvmName("qwwxxcbvfxydpayu")
public suspend fun authenticatorGroupsConfig(argument: suspend AuthenticatorGroupsConfigArgsBuilder.() -> Unit) {
val toBeMapped = AuthenticatorGroupsConfigArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.authenticatorGroupsConfig = mapped
}
/**
* @param value Autopilot configuration for the cluster.
*/
@JvmName("ogyikuenhbnvkmub")
public suspend fun autopilot(`value`: AutopilotArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.autopilot = mapped
}
/**
* @param argument Autopilot configuration for the cluster.
*/
@JvmName("obncdhqtgahywdkp")
public suspend fun autopilot(argument: suspend AutopilotArgsBuilder.() -> Unit) {
val toBeMapped = AutopilotArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.autopilot = mapped
}
/**
* @param value Cluster-level autoscaling configuration.
*/
@JvmName("gdwrnnstksgpxbhj")
public suspend fun autoscaling(`value`: ClusterAutoscalingArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.autoscaling = mapped
}
/**
* @param argument Cluster-level autoscaling configuration.
*/
@JvmName("gdgghnbouerajomy")
public suspend fun autoscaling(argument: suspend ClusterAutoscalingArgsBuilder.() -> Unit) {
val toBeMapped = ClusterAutoscalingArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.autoscaling = mapped
}
/**
* @param value Configuration for Binary Authorization.
*/
@JvmName("phpdvocjpvqpgoju")
public suspend fun binaryAuthorization(`value`: BinaryAuthorizationArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.binaryAuthorization = mapped
}
/**
* @param argument Configuration for Binary Authorization.
*/
@JvmName("xbytmpuivtnhaanp")
public suspend fun binaryAuthorization(argument: suspend BinaryAuthorizationArgsBuilder.() -> Unit) {
val toBeMapped = BinaryAuthorizationArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.binaryAuthorization = mapped
}
/**
* @param value The IP address range of the container pods in this cluster, in [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`). Leave blank to have one automatically chosen or specify a `/14` block in `10.0.0.0/8`.
*/
@JvmName("spadhykqonvnafls")
public suspend fun clusterIpv4Cidr(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.clusterIpv4Cidr = mapped
}
/**
* @param value Which conditions caused the current cluster state.
*/
@JvmName("qijbvhkqrtbscojl")
public suspend fun conditions(`value`: List?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.conditions = mapped
}
/**
* @param argument Which conditions caused the current cluster state.
*/
@JvmName("kuwqgoukthsxxogl")
public suspend fun conditions(argument: List Unit>) {
val toBeMapped = argument.toList().map {
StatusConditionArgsBuilder().applySuspend {
it()
}.build()
}
val mapped = of(toBeMapped)
this.conditions = mapped
}
/**
* @param argument Which conditions caused the current cluster state.
*/
@JvmName("xmtngygqfyyyiipb")
public suspend fun conditions(vararg argument: suspend StatusConditionArgsBuilder.() -> Unit) {
val toBeMapped = argument.toList().map {
StatusConditionArgsBuilder().applySuspend {
it()
}.build()
}
val mapped = of(toBeMapped)
this.conditions = mapped
}
/**
* @param argument Which conditions caused the current cluster state.
*/
@JvmName("ikgumyosxbxpammm")
public suspend fun conditions(argument: suspend StatusConditionArgsBuilder.() -> Unit) {
val toBeMapped = listOf(StatusConditionArgsBuilder().applySuspend { argument() }.build())
val mapped = of(toBeMapped)
this.conditions = mapped
}
/**
* @param values Which conditions caused the current cluster state.
*/
@JvmName("uyhwolbykshdxfot")
public suspend fun conditions(vararg values: StatusConditionArgs) {
val toBeMapped = values.toList()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.conditions = mapped
}
/**
* @param value Configuration of Confidential Nodes. All the nodes in the cluster will be Confidential VM once enabled.
*/
@JvmName("gparblavumbkdhsj")
public suspend fun confidentialNodes(`value`: ConfidentialNodesArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.confidentialNodes = mapped
}
/**
* @param argument Configuration of Confidential Nodes. All the nodes in the cluster will be Confidential VM once enabled.
*/
@JvmName("vshtpyumqnqbqbgl")
public suspend fun confidentialNodes(argument: suspend ConfidentialNodesArgsBuilder.() -> Unit) {
val toBeMapped = ConfidentialNodesArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.confidentialNodes = mapped
}
/**
* @param value Configuration for the fine-grained cost management feature.
*/
@JvmName("qywthxmluupdscvi")
public suspend fun costManagementConfig(`value`: CostManagementConfigArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.costManagementConfig = mapped
}
/**
* @param argument Configuration for the fine-grained cost management feature.
*/
@JvmName("wufutjvhbpfejvxl")
public suspend fun costManagementConfig(argument: suspend CostManagementConfigArgsBuilder.() -> Unit) {
val toBeMapped = CostManagementConfigArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.costManagementConfig = mapped
}
/**
* @param value Configuration of etcd encryption.
*/
@JvmName("mjekcmwjnvhmdfop")
public suspend fun databaseEncryption(`value`: DatabaseEncryptionArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.databaseEncryption = mapped
}
/**
* @param argument Configuration of etcd encryption.
*/
@JvmName("jcahtsnnwxwgghyw")
public suspend fun databaseEncryption(argument: suspend DatabaseEncryptionArgsBuilder.() -> Unit) {
val toBeMapped = DatabaseEncryptionArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.databaseEncryption = mapped
}
/**
* @param value The default constraint on the maximum number of pods that can be run simultaneously on a node in the node pool of this cluster. Only honored if cluster created with IP Alias support.
*/
@JvmName("hsovqbkpocdbbufa")
public suspend fun defaultMaxPodsConstraint(`value`: MaxPodsConstraintArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.defaultMaxPodsConstraint = mapped
}
/**
* @param argument The default constraint on the maximum number of pods that can be run simultaneously on a node in the node pool of this cluster. Only honored if cluster created with IP Alias support.
*/
@JvmName("qvvdedqxwkpgxfls")
public suspend fun defaultMaxPodsConstraint(argument: suspend MaxPodsConstraintArgsBuilder.() -> Unit) {
val toBeMapped = MaxPodsConstraintArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.defaultMaxPodsConstraint = mapped
}
/**
* @param value An optional description of this cluster.
*/
@JvmName("pixeosoqsotaylce")
public suspend fun description(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.description = mapped
}
/**
* @param value Kubernetes alpha features are enabled on this cluster. This includes alpha API groups (e.g. v1alpha1) and features that may not be production ready in the kubernetes version of the master and nodes. The cluster has no SLA for uptime and master/node upgrades are disabled. Alpha enabled clusters are automatically deleted thirty days after creation.
*/
@JvmName("kamlxsqimyyjpqvu")
public suspend fun enableKubernetesAlpha(`value`: Boolean?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.enableKubernetesAlpha = mapped
}
/**
* @param value Enable the ability to use Cloud TPUs in this cluster.
*/
@JvmName("aptmerxicdjnhvrs")
public suspend fun enableTpu(`value`: Boolean?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.enableTpu = mapped
}
/**
* @param value This checksum is computed by the server based on the value of cluster fields, and may be sent on update requests to ensure the client has an up-to-date value before proceeding.
*/
@JvmName("caymlgtbrimtthlp")
public suspend fun etag(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.etag = mapped
}
/**
* @param value Fleet information for the cluster.
*/
@JvmName("frmgscqofvjvtbwf")
public suspend fun fleet(`value`: FleetArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.fleet = mapped
}
/**
* @param argument Fleet information for the cluster.
*/
@JvmName("pnudddklvruqpytw")
public suspend fun fleet(argument: suspend FleetArgsBuilder.() -> Unit) {
val toBeMapped = FleetArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.fleet = mapped
}
/**
* @param value Configuration for Identity Service component.
*/
@JvmName("okhhyuroppqgyana")
public suspend fun identityServiceConfig(`value`: IdentityServiceConfigArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.identityServiceConfig = mapped
}
/**
* @param argument Configuration for Identity Service component.
*/
@JvmName("oqyxlxntdftibogp")
public suspend fun identityServiceConfig(argument: suspend IdentityServiceConfigArgsBuilder.() -> Unit) {
val toBeMapped = IdentityServiceConfigArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.identityServiceConfig = mapped
}
/**
* @param value The initial Kubernetes version for this cluster. Valid versions are those found in validMasterVersions returned by getServerConfig. The version can be upgraded over time; such upgrades are reflected in currentMasterVersion and currentNodeVersion. Users may specify either explicit versions offered by Kubernetes Engine or version aliases, which have the following behavior: - "latest": picks the highest valid Kubernetes version - "1.X": picks the highest valid patch+gke.N patch in the 1.X version - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version - "1.X.Y-gke.N": picks an explicit Kubernetes version - "","-": picks the default Kubernetes version
*/
@JvmName("eiokbgrhhqaknsae")
public suspend fun initialClusterVersion(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.initialClusterVersion = mapped
}
/**
* @param value The number of nodes to create in this cluster. You must ensure that your Compute Engine [resource quota](https://cloud.google.com/compute/quotas) is sufficient for this number of instances. You must also have available firewall and routes quota. For requests, this field should only be used in lieu of a "node_pool" object, since this configuration (along with the "node_config") will be used to create a "NodePool" object with an auto-generated name. Do not use this and a node_pool at the same time. This field is deprecated, use node_pool.initial_node_count instead.
*/
@Deprecated(
message = """
The number of nodes to create in this cluster. You must ensure that your Compute Engine [resource
quota](https://cloud.google.com/compute/quotas) is sufficient for this number of instances.
You must also have available firewall and routes quota. For requests, this field should only
be used in lieu of a "node_pool" object, since this configuration (along with the
"node_config") will be used to create a "NodePool" object with an auto-generated name. Do not
use this and a node_pool at the same time. This field is deprecated, use
node_pool.initial_node_count instead.
""",
)
@JvmName("khahqmcyldqhvocx")
public suspend fun initialNodeCount(`value`: Int?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.initialNodeCount = mapped
}
/**
* @param value Deprecated. Use node_pools.instance_group_urls.
*/
@Deprecated(
message = """
Deprecated. Use node_pools.instance_group_urls.
""",
)
@JvmName("eoulcyvgflwtdadh")
public suspend fun instanceGroupUrls(`value`: List?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.instanceGroupUrls = mapped
}
/**
* @param values Deprecated. Use node_pools.instance_group_urls.
*/
@Deprecated(
message = """
Deprecated. Use node_pools.instance_group_urls.
""",
)
@JvmName("xsblsulrkhrgobaa")
public suspend fun instanceGroupUrls(vararg values: String) {
val toBeMapped = values.toList()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.instanceGroupUrls = mapped
}
/**
* @param value Configuration for cluster IP allocation.
*/
@JvmName("urqxdbnxxonvrqfa")
public suspend fun ipAllocationPolicy(`value`: IPAllocationPolicyArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.ipAllocationPolicy = mapped
}
/**
* @param argument Configuration for cluster IP allocation.
*/
@JvmName("weohdsnrmmxlxbwx")
public suspend fun ipAllocationPolicy(argument: suspend IPAllocationPolicyArgsBuilder.() -> Unit) {
val toBeMapped = IPAllocationPolicyArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.ipAllocationPolicy = mapped
}
/**
* @param value Configuration for the legacy ABAC authorization mode.
*/
@JvmName("iwpdpiljicanoiwm")
public suspend fun legacyAbac(`value`: LegacyAbacArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.legacyAbac = mapped
}
/**
* @param argument Configuration for the legacy ABAC authorization mode.
*/
@JvmName("xdfdfjuyarrbmiku")
public suspend fun legacyAbac(argument: suspend LegacyAbacArgsBuilder.() -> Unit) {
val toBeMapped = LegacyAbacArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.legacyAbac = mapped
}
/**
* @param value
*/
@JvmName("xyjjqvwgynumpdnf")
public suspend fun location(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.location = mapped
}
/**
* @param value The list of Google Compute Engine [zones](https://cloud.google.com/compute/docs/zones#available) in which the cluster's nodes should be located. This field provides a default value if [NodePool.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools#NodePool.FIELDS.locations) are not specified during node pool creation. Warning: changing cluster locations will update the [NodePool.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools#NodePool.FIELDS.locations) of all node pools and will result in nodes being added and/or removed.
*/
@JvmName("myltgmxopvgedeaq")
public suspend fun locations(`value`: List?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.locations = mapped
}
/**
* @param values The list of Google Compute Engine [zones](https://cloud.google.com/compute/docs/zones#available) in which the cluster's nodes should be located. This field provides a default value if [NodePool.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools#NodePool.FIELDS.locations) are not specified during node pool creation. Warning: changing cluster locations will update the [NodePool.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools#NodePool.FIELDS.locations) of all node pools and will result in nodes being added and/or removed.
*/
@JvmName("ybebymxytxybnktw")
public suspend fun locations(vararg values: String) {
val toBeMapped = values.toList()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.locations = mapped
}
/**
* @param value Logging configuration for the cluster.
*/
@JvmName("lcihtkqhvpyiaulm")
public suspend fun loggingConfig(`value`: LoggingConfigArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.loggingConfig = mapped
}
/**
* @param argument Logging configuration for the cluster.
*/
@JvmName("lekuxtiyioagbslm")
public suspend fun loggingConfig(argument: suspend LoggingConfigArgsBuilder.() -> Unit) {
val toBeMapped = LoggingConfigArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.loggingConfig = mapped
}
/**
* @param value The logging service the cluster should use to write logs. Currently available options: * `logging.googleapis.com/kubernetes` - The Cloud Logging service with a Kubernetes-native resource model * `logging.googleapis.com` - The legacy Cloud Logging service (no longer available as of GKE 1.15). * `none` - no logs will be exported from the cluster. If left as an empty string,`logging.googleapis.com/kubernetes` will be used for GKE 1.14+ or `logging.googleapis.com` for earlier versions.
*/
@JvmName("qevxxckwxnremfdl")
public suspend fun loggingService(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.loggingService = mapped
}
/**
* @param value Configure the maintenance policy for this cluster.
*/
@JvmName("vxjaouyllxxrosal")
public suspend fun maintenancePolicy(`value`: MaintenancePolicyArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.maintenancePolicy = mapped
}
/**
* @param argument Configure the maintenance policy for this cluster.
*/
@JvmName("fjxkcmntendttntp")
public suspend fun maintenancePolicy(argument: suspend MaintenancePolicyArgsBuilder.() -> Unit) {
val toBeMapped = MaintenancePolicyArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.maintenancePolicy = mapped
}
/**
* @param value The authentication information for accessing the master endpoint. If unspecified, the defaults are used: For clusters before v1.12, if master_auth is unspecified, `username` will be set to "admin", a random password will be generated, and a client certificate will be issued.
*/
@JvmName("bdvlcgvjmctsielj")
public suspend fun masterAuth(`value`: MasterAuthArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.masterAuth = mapped
}
/**
* @param argument The authentication information for accessing the master endpoint. If unspecified, the defaults are used: For clusters before v1.12, if master_auth is unspecified, `username` will be set to "admin", a random password will be generated, and a client certificate will be issued.
*/
@JvmName("wcakwawhlyjxmtah")
public suspend fun masterAuth(argument: suspend MasterAuthArgsBuilder.() -> Unit) {
val toBeMapped = MasterAuthArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.masterAuth = mapped
}
/**
* @param value The configuration options for master authorized networks feature.
*/
@JvmName("jpqhtwjhfwmhhfwm")
public suspend fun masterAuthorizedNetworksConfig(`value`: MasterAuthorizedNetworksConfigArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.masterAuthorizedNetworksConfig = mapped
}
/**
* @param argument The configuration options for master authorized networks feature.
*/
@JvmName("pdaaufivfkhjhrgh")
public suspend fun masterAuthorizedNetworksConfig(argument: suspend MasterAuthorizedNetworksConfigArgsBuilder.() -> Unit) {
val toBeMapped = MasterAuthorizedNetworksConfigArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.masterAuthorizedNetworksConfig = mapped
}
/**
* @param value Configuration for issuance of mTLS keys and certificates to Kubernetes pods.
*/
@JvmName("ayavmpmxbfebremo")
public suspend fun meshCertificates(`value`: MeshCertificatesArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.meshCertificates = mapped
}
/**
* @param argument Configuration for issuance of mTLS keys and certificates to Kubernetes pods.
*/
@JvmName("xauvywajyjklnykq")
public suspend fun meshCertificates(argument: suspend MeshCertificatesArgsBuilder.() -> Unit) {
val toBeMapped = MeshCertificatesArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.meshCertificates = mapped
}
/**
* @param value Monitoring configuration for the cluster.
*/
@JvmName("gaqxxnvvifbjtmxb")
public suspend fun monitoringConfig(`value`: MonitoringConfigArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.monitoringConfig = mapped
}
/**
* @param argument Monitoring configuration for the cluster.
*/
@JvmName("xhmuqphnmiambhvw")
public suspend fun monitoringConfig(argument: suspend MonitoringConfigArgsBuilder.() -> Unit) {
val toBeMapped = MonitoringConfigArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.monitoringConfig = mapped
}
/**
* @param value The monitoring service the cluster should use to write metrics. Currently available options: * "monitoring.googleapis.com/kubernetes" - The Cloud Monitoring service with a Kubernetes-native resource model * `monitoring.googleapis.com` - The legacy Cloud Monitoring service (no longer available as of GKE 1.15). * `none` - No metrics will be exported from the cluster. If left as an empty string,`monitoring.googleapis.com/kubernetes` will be used for GKE 1.14+ or `monitoring.googleapis.com` for earlier versions.
*/
@JvmName("filsvlffowgkiuru")
public suspend fun monitoringService(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.monitoringService = mapped
}
/**
* @param value The name of this cluster. The name must be unique within this project and location (e.g. zone or region), and can be up to 40 characters with the following restrictions: * Lowercase letters, numbers, and hyphens only. * Must start with a letter. * Must end with a number or a letter.
*/
@JvmName("rwtjkiaccgoyoleu")
public suspend fun name(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.name = mapped
}
/**
* @param value The name of the Google Compute Engine [network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks) to which the cluster is connected. If left unspecified, the `default` network will be used.
*/
@JvmName("pahpkewxmqbfalbl")
public suspend fun network(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.network = mapped
}
/**
* @param value Configuration for cluster networking.
*/
@JvmName("utvdukivyryapayy")
public suspend fun networkConfig(`value`: NetworkConfigArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.networkConfig = mapped
}
/**
* @param argument Configuration for cluster networking.
*/
@JvmName("wsrmfjavdsggyplo")
public suspend fun networkConfig(argument: suspend NetworkConfigArgsBuilder.() -> Unit) {
val toBeMapped = NetworkConfigArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.networkConfig = mapped
}
/**
* @param value Configuration options for the NetworkPolicy feature.
*/
@JvmName("drubfsijuajnmlhb")
public suspend fun networkPolicy(`value`: NetworkPolicyArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.networkPolicy = mapped
}
/**
* @param argument Configuration options for the NetworkPolicy feature.
*/
@JvmName("aljemqmcjglcqedg")
public suspend fun networkPolicy(argument: suspend NetworkPolicyArgsBuilder.() -> Unit) {
val toBeMapped = NetworkPolicyArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.networkPolicy = mapped
}
/**
* @param value Parameters used in creating the cluster's nodes. For requests, this field should only be used in lieu of a "node_pool" object, since this configuration (along with the "initial_node_count") will be used to create a "NodePool" object with an auto-generated name. Do not use this and a node_pool at the same time. For responses, this field will be populated with the node configuration of the first node pool. (For configuration of each node pool, see `node_pool.config`) If unspecified, the defaults are used. This field is deprecated, use node_pool.config instead.
*/
@Deprecated(
message = """
Parameters used in creating the cluster's nodes. For requests, this field should only be used in
lieu of a "node_pool" object, since this configuration (along with the "initial_node_count")
will be used to create a "NodePool" object with an auto-generated name. Do not use this and a
node_pool at the same time. For responses, this field will be populated with the node
configuration of the first node pool. (For configuration of each node pool, see
`node_pool.config`) If unspecified, the defaults are used. This field is deprecated, use
node_pool.config instead.
""",
)
@JvmName("qgkfaaffspcbpqhq")
public suspend fun nodeConfig(`value`: NodeConfigArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.nodeConfig = mapped
}
/**
* @param argument Parameters used in creating the cluster's nodes. For requests, this field should only be used in lieu of a "node_pool" object, since this configuration (along with the "initial_node_count") will be used to create a "NodePool" object with an auto-generated name. Do not use this and a node_pool at the same time. For responses, this field will be populated with the node configuration of the first node pool. (For configuration of each node pool, see `node_pool.config`) If unspecified, the defaults are used. This field is deprecated, use node_pool.config instead.
*/
@Deprecated(
message = """
Parameters used in creating the cluster's nodes. For requests, this field should only be used in
lieu of a "node_pool" object, since this configuration (along with the "initial_node_count")
will be used to create a "NodePool" object with an auto-generated name. Do not use this and a
node_pool at the same time. For responses, this field will be populated with the node
configuration of the first node pool. (For configuration of each node pool, see
`node_pool.config`) If unspecified, the defaults are used. This field is deprecated, use
node_pool.config instead.
""",
)
@JvmName("relphixpgjnorfqm")
public suspend fun nodeConfig(argument: suspend NodeConfigArgsBuilder.() -> Unit) {
val toBeMapped = NodeConfigArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.nodeConfig = mapped
}
/**
* @param value Node pool configs that apply to all auto-provisioned node pools in autopilot clusters and node auto-provisioning enabled clusters.
*/
@JvmName("wdsfbgojjnmvybih")
public suspend fun nodePoolAutoConfig(`value`: NodePoolAutoConfigArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.nodePoolAutoConfig = mapped
}
/**
* @param argument Node pool configs that apply to all auto-provisioned node pools in autopilot clusters and node auto-provisioning enabled clusters.
*/
@JvmName("ugslpwjhucqcrbwl")
public suspend fun nodePoolAutoConfig(argument: suspend NodePoolAutoConfigArgsBuilder.() -> Unit) {
val toBeMapped = NodePoolAutoConfigArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.nodePoolAutoConfig = mapped
}
/**
* @param value Default NodePool settings for the entire cluster. These settings are overridden if specified on the specific NodePool object.
*/
@JvmName("fmwpfyomfpklwhhq")
public suspend fun nodePoolDefaults(`value`: NodePoolDefaultsArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.nodePoolDefaults = mapped
}
/**
* @param argument Default NodePool settings for the entire cluster. These settings are overridden if specified on the specific NodePool object.
*/
@JvmName("cqgignjjgchkhywc")
public suspend fun nodePoolDefaults(argument: suspend NodePoolDefaultsArgsBuilder.() -> Unit) {
val toBeMapped = NodePoolDefaultsArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.nodePoolDefaults = mapped
}
/**
* @param value The node pools associated with this cluster. This field should not be set if "node_config" or "initial_node_count" are specified.
*/
@JvmName("clalgwbhfcrteixp")
public suspend fun nodePools(`value`: List?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.nodePools = mapped
}
/**
* @param argument The node pools associated with this cluster. This field should not be set if "node_config" or "initial_node_count" are specified.
*/
@JvmName("ysahtglaboiefwjp")
public suspend fun nodePools(argument: List Unit>) {
val toBeMapped = argument.toList().map { NodePoolArgsBuilder().applySuspend { it() }.build() }
val mapped = of(toBeMapped)
this.nodePools = mapped
}
/**
* @param argument The node pools associated with this cluster. This field should not be set if "node_config" or "initial_node_count" are specified.
*/
@JvmName("jltsqqyinooicdbj")
public suspend fun nodePools(vararg argument: suspend NodePoolArgsBuilder.() -> Unit) {
val toBeMapped = argument.toList().map { NodePoolArgsBuilder().applySuspend { it() }.build() }
val mapped = of(toBeMapped)
this.nodePools = mapped
}
/**
* @param argument The node pools associated with this cluster. This field should not be set if "node_config" or "initial_node_count" are specified.
*/
@JvmName("wmpsapgheqfsimfx")
public suspend fun nodePools(argument: suspend NodePoolArgsBuilder.() -> Unit) {
val toBeMapped = listOf(NodePoolArgsBuilder().applySuspend { argument() }.build())
val mapped = of(toBeMapped)
this.nodePools = mapped
}
/**
* @param values The node pools associated with this cluster. This field should not be set if "node_config" or "initial_node_count" are specified.
*/
@JvmName("oqnxtnvlodbasnco")
public suspend fun nodePools(vararg values: NodePoolArgs) {
val toBeMapped = values.toList()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.nodePools = mapped
}
/**
* @param value Notification configuration of the cluster.
*/
@JvmName("edotrwywaxkswouc")
public suspend fun notificationConfig(`value`: NotificationConfigArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.notificationConfig = mapped
}
/**
* @param argument Notification configuration of the cluster.
*/
@JvmName("dnfiiabhehtmqnit")
public suspend fun notificationConfig(argument: suspend NotificationConfigArgsBuilder.() -> Unit) {
val toBeMapped = NotificationConfigArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.notificationConfig = mapped
}
/**
* @param value The parent (project and location) where the cluster will be created. Specified in the format `projects/*/locations/*`.
* */*/
*/
@JvmName("bosdniudtrevekqi")
public suspend fun parent(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.parent = mapped
}
/**
* @param value Configuration for private cluster.
*/
@JvmName("kappwankblekqyqb")
public suspend fun privateClusterConfig(`value`: PrivateClusterConfigArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.privateClusterConfig = mapped
}
/**
* @param argument Configuration for private cluster.
*/
@JvmName("dxwucbqjaohdbfvm")
public suspend fun privateClusterConfig(argument: suspend PrivateClusterConfigArgsBuilder.() -> Unit) {
val toBeMapped = PrivateClusterConfigArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.privateClusterConfig = mapped
}
/**
* @param value Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the parent field.
*/
@Deprecated(
message = """
Deprecated. The Google Developers Console [project ID or project
number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field
has been deprecated and replaced by the parent field.
""",
)
@JvmName("dgecncsyrvuxirin")
public suspend fun project(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.project = mapped
}
/**
* @param value Release channel configuration. If left unspecified on cluster creation and a version is specified, the cluster is enrolled in the most mature release channel where the version is available (first checking STABLE, then REGULAR, and finally RAPID). Otherwise, if no release channel configuration and no version is specified, the cluster is enrolled in the REGULAR channel with its default version.
*/
@JvmName("bmwjaadfbdxtxqyx")
public suspend fun releaseChannel(`value`: ReleaseChannelArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.releaseChannel = mapped
}
/**
* @param argument Release channel configuration. If left unspecified on cluster creation and a version is specified, the cluster is enrolled in the most mature release channel where the version is available (first checking STABLE, then REGULAR, and finally RAPID). Otherwise, if no release channel configuration and no version is specified, the cluster is enrolled in the REGULAR channel with its default version.
*/
@JvmName("yqfttjxfoclpipwq")
public suspend fun releaseChannel(argument: suspend ReleaseChannelArgsBuilder.() -> Unit) {
val toBeMapped = ReleaseChannelArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.releaseChannel = mapped
}
/**
* @param value The resource labels for the cluster to use to annotate any related Google Compute Engine resources.
*/
@JvmName("lxnfmdloamxuwpcm")
public suspend fun resourceLabels(`value`: Map?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.resourceLabels = mapped
}
/**
* @param values The resource labels for the cluster to use to annotate any related Google Compute Engine resources.
*/
@JvmName("xqhhopvmvufnxcls")
public fun resourceLabels(vararg values: Pair) {
val toBeMapped = values.toMap()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.resourceLabels = mapped
}
/**
* @param value Configuration for exporting resource usages. Resource usage export is disabled when this config is unspecified.
*/
@JvmName("nkyewidhvrgkpmdy")
public suspend fun resourceUsageExportConfig(`value`: ResourceUsageExportConfigArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.resourceUsageExportConfig = mapped
}
/**
* @param argument Configuration for exporting resource usages. Resource usage export is disabled when this config is unspecified.
*/
@JvmName("xevnlfihjbasmois")
public suspend fun resourceUsageExportConfig(argument: suspend ResourceUsageExportConfigArgsBuilder.() -> Unit) {
val toBeMapped = ResourceUsageExportConfigArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.resourceUsageExportConfig = mapped
}
/**
* @param value Shielded Nodes configuration.
*/
@JvmName("jodqrrmavlwjaydj")
public suspend fun shieldedNodes(`value`: ShieldedNodesArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.shieldedNodes = mapped
}
/**
* @param argument Shielded Nodes configuration.
*/
@JvmName("lsdxnekccwirglig")
public suspend fun shieldedNodes(argument: suspend ShieldedNodesArgsBuilder.() -> Unit) {
val toBeMapped = ShieldedNodesArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.shieldedNodes = mapped
}
/**
* @param value The name of the Google Compute Engine [subnetwork](https://cloud.google.com/compute/docs/subnetworks) to which the cluster is connected.
*/
@JvmName("genasjlqlpbcddvw")
public suspend fun subnetwork(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.subnetwork = mapped
}
/**
* @param value Cluster-level Vertical Pod Autoscaling configuration.
*/
@JvmName("oeqmjsgsegrjgsqh")
public suspend fun verticalPodAutoscaling(`value`: VerticalPodAutoscalingArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.verticalPodAutoscaling = mapped
}
/**
* @param argument Cluster-level Vertical Pod Autoscaling configuration.
*/
@JvmName("vhetfjfxhywlqntg")
public suspend fun verticalPodAutoscaling(argument: suspend VerticalPodAutoscalingArgsBuilder.() -> Unit) {
val toBeMapped = VerticalPodAutoscalingArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.verticalPodAutoscaling = mapped
}
/**
* @param value Configuration for the use of Kubernetes Service Accounts in GCP IAM policies.
*/
@JvmName("vdmfxakhpawucsiw")
public suspend fun workloadIdentityConfig(`value`: WorkloadIdentityConfigArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.workloadIdentityConfig = mapped
}
/**
* @param argument Configuration for the use of Kubernetes Service Accounts in GCP IAM policies.
*/
@JvmName("aiprlowsmxfwlrvh")
public suspend fun workloadIdentityConfig(argument: suspend WorkloadIdentityConfigArgsBuilder.() -> Unit) {
val toBeMapped = WorkloadIdentityConfigArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.workloadIdentityConfig = mapped
}
/**
* @param value Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the parent field.
*/
@Deprecated(
message = """
Deprecated. The name of the Google Compute Engine
[zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides.
This field has been deprecated and replaced by the parent field.
""",
)
@JvmName("nijwulovxfyrtgpd")
public suspend fun zone(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.zone = mapped
}
internal fun build(): ClusterArgs = ClusterArgs(
addonsConfig = addonsConfig,
authenticatorGroupsConfig = authenticatorGroupsConfig,
autopilot = autopilot,
autoscaling = autoscaling,
binaryAuthorization = binaryAuthorization,
clusterIpv4Cidr = clusterIpv4Cidr,
conditions = conditions,
confidentialNodes = confidentialNodes,
costManagementConfig = costManagementConfig,
databaseEncryption = databaseEncryption,
defaultMaxPodsConstraint = defaultMaxPodsConstraint,
description = description,
enableKubernetesAlpha = enableKubernetesAlpha,
enableTpu = enableTpu,
etag = etag,
fleet = fleet,
identityServiceConfig = identityServiceConfig,
initialClusterVersion = initialClusterVersion,
initialNodeCount = initialNodeCount,
instanceGroupUrls = instanceGroupUrls,
ipAllocationPolicy = ipAllocationPolicy,
legacyAbac = legacyAbac,
location = location,
locations = locations,
loggingConfig = loggingConfig,
loggingService = loggingService,
maintenancePolicy = maintenancePolicy,
masterAuth = masterAuth,
masterAuthorizedNetworksConfig = masterAuthorizedNetworksConfig,
meshCertificates = meshCertificates,
monitoringConfig = monitoringConfig,
monitoringService = monitoringService,
name = name,
network = network,
networkConfig = networkConfig,
networkPolicy = networkPolicy,
nodeConfig = nodeConfig,
nodePoolAutoConfig = nodePoolAutoConfig,
nodePoolDefaults = nodePoolDefaults,
nodePools = nodePools,
notificationConfig = notificationConfig,
parent = parent,
privateClusterConfig = privateClusterConfig,
project = project,
releaseChannel = releaseChannel,
resourceLabels = resourceLabels,
resourceUsageExportConfig = resourceUsageExportConfig,
shieldedNodes = shieldedNodes,
subnetwork = subnetwork,
verticalPodAutoscaling = verticalPodAutoscaling,
workloadIdentityConfig = workloadIdentityConfig,
zone = zone,
)
}