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

com.pulumi.gcp.gkeonprem.kotlin.VMwareNodePoolArgs.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.gkeonprem.kotlin

import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.gcp.gkeonprem.VMwareNodePoolArgs.builder
import com.pulumi.gcp.gkeonprem.kotlin.inputs.VMwareNodePoolConfigArgs
import com.pulumi.gcp.gkeonprem.kotlin.inputs.VMwareNodePoolConfigArgsBuilder
import com.pulumi.gcp.gkeonprem.kotlin.inputs.VMwareNodePoolNodePoolAutoscalingArgs
import com.pulumi.gcp.gkeonprem.kotlin.inputs.VMwareNodePoolNodePoolAutoscalingArgsBuilder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 * A Google Vmware Node Pool.
 * ## Example Usage
 * ### Gkeonprem Vmware Node Pool Basic
 * 
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as gcp from "@pulumi/gcp";
 * const default_basic = new gcp.gkeonprem.VMwareCluster("default-basic", {
 *     name: "my-cluster",
 *     location: "us-west1",
 *     adminClusterMembership: "projects/870316890899/locations/global/memberships/gkeonprem-terraform-test",
 *     description: "test cluster",
 *     onPremVersion: "1.13.1-gke.35",
 *     networkConfig: {
 *         serviceAddressCidrBlocks: ["10.96.0.0/12"],
 *         podAddressCidrBlocks: ["192.168.0.0/16"],
 *         dhcpIpConfig: {
 *             enabled: true,
 *         },
 *     },
 *     controlPlaneNode: {
 *         cpus: 4,
 *         memory: 8192,
 *         replicas: 1,
 *     },
 *     loadBalancer: {
 *         vipConfig: {
 *             controlPlaneVip: "10.251.133.5",
 *             ingressVip: "10.251.135.19",
 *         },
 *         metalLbConfig: {
 *             addressPools: [
 *                 {
 *                     pool: "ingress-ip",
 *                     manualAssign: true,
 *                     addresses: ["10.251.135.19"],
 *                 },
 *                 {
 *                     pool: "lb-test-ip",
 *                     manualAssign: true,
 *                     addresses: ["10.251.135.19"],
 *                 },
 *             ],
 *         },
 *     },
 * });
 * const nodepool_basic = new gcp.gkeonprem.VMwareNodePool("nodepool-basic", {
 *     name: "my-nodepool",
 *     location: "us-west1",
 *     vmwareCluster: default_basic.name,
 *     config: {
 *         replicas: 3,
 *         imageType: "ubuntu_containerd",
 *         enableLoadBalancer: true,
 *     },
 * });
 * ```
 * ```python
 * import pulumi
 * import pulumi_gcp as gcp
 * default_basic = gcp.gkeonprem.VMwareCluster("default-basic",
 *     name="my-cluster",
 *     location="us-west1",
 *     admin_cluster_membership="projects/870316890899/locations/global/memberships/gkeonprem-terraform-test",
 *     description="test cluster",
 *     on_prem_version="1.13.1-gke.35",
 *     network_config=gcp.gkeonprem.VMwareClusterNetworkConfigArgs(
 *         service_address_cidr_blocks=["10.96.0.0/12"],
 *         pod_address_cidr_blocks=["192.168.0.0/16"],
 *         dhcp_ip_config=gcp.gkeonprem.VMwareClusterNetworkConfigDhcpIpConfigArgs(
 *             enabled=True,
 *         ),
 *     ),
 *     control_plane_node=gcp.gkeonprem.VMwareClusterControlPlaneNodeArgs(
 *         cpus=4,
 *         memory=8192,
 *         replicas=1,
 *     ),
 *     load_balancer=gcp.gkeonprem.VMwareClusterLoadBalancerArgs(
 *         vip_config=gcp.gkeonprem.VMwareClusterLoadBalancerVipConfigArgs(
 *             control_plane_vip="10.251.133.5",
 *             ingress_vip="10.251.135.19",
 *         ),
 *         metal_lb_config=gcp.gkeonprem.VMwareClusterLoadBalancerMetalLbConfigArgs(
 *             address_pools=[
 *                 gcp.gkeonprem.VMwareClusterLoadBalancerMetalLbConfigAddressPoolArgs(
 *                     pool="ingress-ip",
 *                     manual_assign=True,
 *                     addresses=["10.251.135.19"],
 *                 ),
 *                 gcp.gkeonprem.VMwareClusterLoadBalancerMetalLbConfigAddressPoolArgs(
 *                     pool="lb-test-ip",
 *                     manual_assign=True,
 *                     addresses=["10.251.135.19"],
 *                 ),
 *             ],
 *         ),
 *     ))
 * nodepool_basic = gcp.gkeonprem.VMwareNodePool("nodepool-basic",
 *     name="my-nodepool",
 *     location="us-west1",
 *     vmware_cluster=default_basic.name,
 *     config=gcp.gkeonprem.VMwareNodePoolConfigArgs(
 *         replicas=3,
 *         image_type="ubuntu_containerd",
 *         enable_load_balancer=True,
 *     ))
 * ```
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using Gcp = Pulumi.Gcp;
 * return await Deployment.RunAsync(() =>
 * {
 *     var default_basic = new Gcp.GkeOnPrem.VMwareCluster("default-basic", new()
 *     {
 *         Name = "my-cluster",
 *         Location = "us-west1",
 *         AdminClusterMembership = "projects/870316890899/locations/global/memberships/gkeonprem-terraform-test",
 *         Description = "test cluster",
 *         OnPremVersion = "1.13.1-gke.35",
 *         NetworkConfig = new Gcp.GkeOnPrem.Inputs.VMwareClusterNetworkConfigArgs
 *         {
 *             ServiceAddressCidrBlocks = new[]
 *             {
 *                 "10.96.0.0/12",
 *             },
 *             PodAddressCidrBlocks = new[]
 *             {
 *                 "192.168.0.0/16",
 *             },
 *             DhcpIpConfig = new Gcp.GkeOnPrem.Inputs.VMwareClusterNetworkConfigDhcpIpConfigArgs
 *             {
 *                 Enabled = true,
 *             },
 *         },
 *         ControlPlaneNode = new Gcp.GkeOnPrem.Inputs.VMwareClusterControlPlaneNodeArgs
 *         {
 *             Cpus = 4,
 *             Memory = 8192,
 *             Replicas = 1,
 *         },
 *         LoadBalancer = new Gcp.GkeOnPrem.Inputs.VMwareClusterLoadBalancerArgs
 *         {
 *             VipConfig = new Gcp.GkeOnPrem.Inputs.VMwareClusterLoadBalancerVipConfigArgs
 *             {
 *                 ControlPlaneVip = "10.251.133.5",
 *                 IngressVip = "10.251.135.19",
 *             },
 *             MetalLbConfig = new Gcp.GkeOnPrem.Inputs.VMwareClusterLoadBalancerMetalLbConfigArgs
 *             {
 *                 AddressPools = new[]
 *                 {
 *                     new Gcp.GkeOnPrem.Inputs.VMwareClusterLoadBalancerMetalLbConfigAddressPoolArgs
 *                     {
 *                         Pool = "ingress-ip",
 *                         ManualAssign = true,
 *                         Addresses = new[]
 *                         {
 *                             "10.251.135.19",
 *                         },
 *                     },
 *                     new Gcp.GkeOnPrem.Inputs.VMwareClusterLoadBalancerMetalLbConfigAddressPoolArgs
 *                     {
 *                         Pool = "lb-test-ip",
 *                         ManualAssign = true,
 *                         Addresses = new[]
 *                         {
 *                             "10.251.135.19",
 *                         },
 *                     },
 *                 },
 *             },
 *         },
 *     });
 *     var nodepool_basic = new Gcp.GkeOnPrem.VMwareNodePool("nodepool-basic", new()
 *     {
 *         Name = "my-nodepool",
 *         Location = "us-west1",
 *         VmwareCluster = default_basic.Name,
 *         Config = new Gcp.GkeOnPrem.Inputs.VMwareNodePoolConfigArgs
 *         {
 *             Replicas = 3,
 *             ImageType = "ubuntu_containerd",
 *             EnableLoadBalancer = true,
 *         },
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/gkeonprem"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := gkeonprem.NewVMwareCluster(ctx, "default-basic", &gkeonprem.VMwareClusterArgs{
 * 			Name:                   pulumi.String("my-cluster"),
 * 			Location:               pulumi.String("us-west1"),
 * 			AdminClusterMembership: pulumi.String("projects/870316890899/locations/global/memberships/gkeonprem-terraform-test"),
 * 			Description:            pulumi.String("test cluster"),
 * 			OnPremVersion:          pulumi.String("1.13.1-gke.35"),
 * 			NetworkConfig: &gkeonprem.VMwareClusterNetworkConfigArgs{
 * 				ServiceAddressCidrBlocks: pulumi.StringArray{
 * 					pulumi.String("10.96.0.0/12"),
 * 				},
 * 				PodAddressCidrBlocks: pulumi.StringArray{
 * 					pulumi.String("192.168.0.0/16"),
 * 				},
 * 				DhcpIpConfig: &gkeonprem.VMwareClusterNetworkConfigDhcpIpConfigArgs{
 * 					Enabled: pulumi.Bool(true),
 * 				},
 * 			},
 * 			ControlPlaneNode: &gkeonprem.VMwareClusterControlPlaneNodeArgs{
 * 				Cpus:     pulumi.Int(4),
 * 				Memory:   pulumi.Int(8192),
 * 				Replicas: pulumi.Int(1),
 * 			},
 * 			LoadBalancer: &gkeonprem.VMwareClusterLoadBalancerArgs{
 * 				VipConfig: &gkeonprem.VMwareClusterLoadBalancerVipConfigArgs{
 * 					ControlPlaneVip: pulumi.String("10.251.133.5"),
 * 					IngressVip:      pulumi.String("10.251.135.19"),
 * 				},
 * 				MetalLbConfig: &gkeonprem.VMwareClusterLoadBalancerMetalLbConfigArgs{
 * 					AddressPools: gkeonprem.VMwareClusterLoadBalancerMetalLbConfigAddressPoolArray{
 * 						&gkeonprem.VMwareClusterLoadBalancerMetalLbConfigAddressPoolArgs{
 * 							Pool:         pulumi.String("ingress-ip"),
 * 							ManualAssign: pulumi.Bool(true),
 * 							Addresses: pulumi.StringArray{
 * 								pulumi.String("10.251.135.19"),
 * 							},
 * 						},
 * 						&gkeonprem.VMwareClusterLoadBalancerMetalLbConfigAddressPoolArgs{
 * 							Pool:         pulumi.String("lb-test-ip"),
 * 							ManualAssign: pulumi.Bool(true),
 * 							Addresses: pulumi.StringArray{
 * 								pulumi.String("10.251.135.19"),
 * 							},
 * 						},
 * 					},
 * 				},
 * 			},
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		_, err = gkeonprem.NewVMwareNodePool(ctx, "nodepool-basic", &gkeonprem.VMwareNodePoolArgs{
 * 			Name:          pulumi.String("my-nodepool"),
 * 			Location:      pulumi.String("us-west1"),
 * 			VmwareCluster: default_basic.Name,
 * 			Config: &gkeonprem.VMwareNodePoolConfigArgs{
 * 				Replicas:           pulumi.Int(3),
 * 				ImageType:          pulumi.String("ubuntu_containerd"),
 * 				EnableLoadBalancer: pulumi.Bool(true),
 * 			},
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.gcp.gkeonprem.VMwareCluster;
 * import com.pulumi.gcp.gkeonprem.VMwareClusterArgs;
 * import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterNetworkConfigArgs;
 * import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterNetworkConfigDhcpIpConfigArgs;
 * import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterControlPlaneNodeArgs;
 * import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterLoadBalancerArgs;
 * import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterLoadBalancerVipConfigArgs;
 * import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterLoadBalancerMetalLbConfigArgs;
 * import com.pulumi.gcp.gkeonprem.VMwareNodePool;
 * import com.pulumi.gcp.gkeonprem.VMwareNodePoolArgs;
 * import com.pulumi.gcp.gkeonprem.inputs.VMwareNodePoolConfigArgs;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 *     public static void stack(Context ctx) {
 *         var default_basic = new VMwareCluster("default-basic", VMwareClusterArgs.builder()
 *             .name("my-cluster")
 *             .location("us-west1")
 *             .adminClusterMembership("projects/870316890899/locations/global/memberships/gkeonprem-terraform-test")
 *             .description("test cluster")
 *             .onPremVersion("1.13.1-gke.35")
 *             .networkConfig(VMwareClusterNetworkConfigArgs.builder()
 *                 .serviceAddressCidrBlocks("10.96.0.0/12")
 *                 .podAddressCidrBlocks("192.168.0.0/16")
 *                 .dhcpIpConfig(VMwareClusterNetworkConfigDhcpIpConfigArgs.builder()
 *                     .enabled(true)
 *                     .build())
 *                 .build())
 *             .controlPlaneNode(VMwareClusterControlPlaneNodeArgs.builder()
 *                 .cpus(4)
 *                 .memory(8192)
 *                 .replicas(1)
 *                 .build())
 *             .loadBalancer(VMwareClusterLoadBalancerArgs.builder()
 *                 .vipConfig(VMwareClusterLoadBalancerVipConfigArgs.builder()
 *                     .controlPlaneVip("10.251.133.5")
 *                     .ingressVip("10.251.135.19")
 *                     .build())
 *                 .metalLbConfig(VMwareClusterLoadBalancerMetalLbConfigArgs.builder()
 *                     .addressPools(
 *                         VMwareClusterLoadBalancerMetalLbConfigAddressPoolArgs.builder()
 *                             .pool("ingress-ip")
 *                             .manualAssign("true")
 *                             .addresses("10.251.135.19")
 *                             .build(),
 *                         VMwareClusterLoadBalancerMetalLbConfigAddressPoolArgs.builder()
 *                             .pool("lb-test-ip")
 *                             .manualAssign("true")
 *                             .addresses("10.251.135.19")
 *                             .build())
 *                     .build())
 *                 .build())
 *             .build());
 *         var nodepool_basic = new VMwareNodePool("nodepool-basic", VMwareNodePoolArgs.builder()
 *             .name("my-nodepool")
 *             .location("us-west1")
 *             .vmwareCluster(default_basic.name())
 *             .config(VMwareNodePoolConfigArgs.builder()
 *                 .replicas(3)
 *                 .imageType("ubuntu_containerd")
 *                 .enableLoadBalancer(true)
 *                 .build())
 *             .build());
 *     }
 * }
 * ```
 * ```yaml
 * resources:
 *   default-basic:
 *     type: gcp:gkeonprem:VMwareCluster
 *     properties:
 *       name: my-cluster
 *       location: us-west1
 *       adminClusterMembership: projects/870316890899/locations/global/memberships/gkeonprem-terraform-test
 *       description: test cluster
 *       onPremVersion: 1.13.1-gke.35
 *       networkConfig:
 *         serviceAddressCidrBlocks:
 *           - 10.96.0.0/12
 *         podAddressCidrBlocks:
 *           - 192.168.0.0/16
 *         dhcpIpConfig:
 *           enabled: true
 *       controlPlaneNode:
 *         cpus: 4
 *         memory: 8192
 *         replicas: 1
 *       loadBalancer:
 *         vipConfig:
 *           controlPlaneVip: 10.251.133.5
 *           ingressVip: 10.251.135.19
 *         metalLbConfig:
 *           addressPools:
 *             - pool: ingress-ip
 *               manualAssign: 'true'
 *               addresses:
 *                 - 10.251.135.19
 *             - pool: lb-test-ip
 *               manualAssign: 'true'
 *               addresses:
 *                 - 10.251.135.19
 *   nodepool-basic:
 *     type: gcp:gkeonprem:VMwareNodePool
 *     properties:
 *       name: my-nodepool
 *       location: us-west1
 *       vmwareCluster: ${["default-basic"].name}
 *       config:
 *         replicas: 3
 *         imageType: ubuntu_containerd
 *         enableLoadBalancer: true
 * ```
 * 
 * ### Gkeonprem Vmware Node Pool Full
 * 
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.gcp.gkeonprem.VMwareCluster;
 * import com.pulumi.gcp.gkeonprem.VMwareClusterArgs;
 * import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterNetworkConfigArgs;
 * import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterNetworkConfigDhcpIpConfigArgs;
 * import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterControlPlaneNodeArgs;
 * import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterLoadBalancerArgs;
 * import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterLoadBalancerVipConfigArgs;
 * import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterLoadBalancerMetalLbConfigArgs;
 * import com.pulumi.gcp.gkeonprem.VMwareNodePool;
 * import com.pulumi.gcp.gkeonprem.VMwareNodePoolArgs;
 * import com.pulumi.gcp.gkeonprem.inputs.VMwareNodePoolConfigArgs;
 * import com.pulumi.gcp.gkeonprem.inputs.VMwareNodePoolNodePoolAutoscalingArgs;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 *     public static void stack(Context ctx) {
 *         var default_full = new VMwareCluster("default-full", VMwareClusterArgs.builder()
 *             .name("my-cluster")
 *             .location("us-west1")
 *             .adminClusterMembership("projects/870316890899/locations/global/memberships/gkeonprem-terraform-test")
 *             .description("test cluster")
 *             .onPremVersion("1.13.1-gke.35")
 *             .networkConfig(VMwareClusterNetworkConfigArgs.builder()
 *                 .serviceAddressCidrBlocks("10.96.0.0/12")
 *                 .podAddressCidrBlocks("192.168.0.0/16")
 *                 .dhcpIpConfig(VMwareClusterNetworkConfigDhcpIpConfigArgs.builder()
 *                     .enabled(true)
 *                     .build())
 *                 .build())
 *             .controlPlaneNode(VMwareClusterControlPlaneNodeArgs.builder()
 *                 .cpus(4)
 *                 .memory(8192)
 *                 .replicas(1)
 *                 .build())
 *             .loadBalancer(VMwareClusterLoadBalancerArgs.builder()
 *                 .vipConfig(VMwareClusterLoadBalancerVipConfigArgs.builder()
 *                     .controlPlaneVip("10.251.133.5")
 *                     .ingressVip("10.251.135.19")
 *                     .build())
 *                 .metalLbConfig(VMwareClusterLoadBalancerMetalLbConfigArgs.builder()
 *                     .addressPools(
 *                         VMwareClusterLoadBalancerMetalLbConfigAddressPoolArgs.builder()
 *                             .pool("ingress-ip")
 *                             .manualAssign("true")
 *                             .addresses("10.251.135.19")
 *                             .build(),
 *                         VMwareClusterLoadBalancerMetalLbConfigAddressPoolArgs.builder()
 *                             .pool("lb-test-ip")
 *                             .manualAssign("true")
 *                             .addresses("10.251.135.19")
 *                             .build())
 *                     .build())
 *                 .build())
 *             .build());
 *         var nodepool_full = new VMwareNodePool("nodepool-full", VMwareNodePoolArgs.builder()
 *             .name("my-nodepool")
 *             .location("us-west1")
 *             .vmwareCluster(default_full.name())
 *             .annotations()
 *             .config(VMwareNodePoolConfigArgs.builder()
 *                 .cpus(4)
 *                 .memoryMb(8196)
 *                 .replicas(3)
 *                 .imageType("ubuntu_containerd")
 *                 .image("image")
 *                 .bootDiskSizeGb(10)
 *                 .taints(
 *                     VMwareNodePoolConfigTaintArgs.builder()
 *                         .key("key")
 *                         .value("value")
 *                         .build(),
 *                     VMwareNodePoolConfigTaintArgs.builder()
 *                         .key("key")
 *                         .value("value")
 *                         .effect("NO_SCHEDULE")
 *                         .build())
 *                 .labels()
 *                 .vsphereConfig(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))
 *                 .enableLoadBalancer(true)
 *                 .build())
 *             .nodePoolAutoscaling(VMwareNodePoolNodePoolAutoscalingArgs.builder()
 *                 .minReplicas(1)
 *                 .maxReplicas(5)
 *                 .build())
 *             .build());
 *     }
 * }
 * ```
 * ```yaml
 * resources:
 *   default-full:
 *     type: gcp:gkeonprem:VMwareCluster
 *     properties:
 *       name: my-cluster
 *       location: us-west1
 *       adminClusterMembership: projects/870316890899/locations/global/memberships/gkeonprem-terraform-test
 *       description: test cluster
 *       onPremVersion: 1.13.1-gke.35
 *       networkConfig:
 *         serviceAddressCidrBlocks:
 *           - 10.96.0.0/12
 *         podAddressCidrBlocks:
 *           - 192.168.0.0/16
 *         dhcpIpConfig:
 *           enabled: true
 *       controlPlaneNode:
 *         cpus: 4
 *         memory: 8192
 *         replicas: 1
 *       loadBalancer:
 *         vipConfig:
 *           controlPlaneVip: 10.251.133.5
 *           ingressVip: 10.251.135.19
 *         metalLbConfig:
 *           addressPools:
 *             - pool: ingress-ip
 *               manualAssign: 'true'
 *               addresses:
 *                 - 10.251.135.19
 *             - pool: lb-test-ip
 *               manualAssign: 'true'
 *               addresses:
 *                 - 10.251.135.19
 *   nodepool-full:
 *     type: gcp:gkeonprem:VMwareNodePool
 *     properties:
 *       name: my-nodepool
 *       location: us-west1
 *       vmwareCluster: ${["default-full"].name}
 *       annotations: {}
 *       config:
 *         cpus: 4
 *         memoryMb: 8196
 *         replicas: 3
 *         imageType: ubuntu_containerd
 *         image: image
 *         bootDiskSizeGb: 10
 *         taints:
 *           - key: key
 *             value: value
 *           - key: key
 *             value: value
 *             effect: NO_SCHEDULE
 *         labels: {}
 *         vsphereConfig:
 *           datastore: test-datastore
 *           tags:
 *             - category: test-category-1
 *               tag: tag-1
 *             - category: test-category-2
 *               tag: tag-2
 *           hostGroups:
 *             - host1
 *             - host2
 *         enableLoadBalancer: true
 *       nodePoolAutoscaling:
 *         minReplicas: 1
 *         maxReplicas: 5
 * ```
 * 
 * ## Import
 * VmwareNodePool can be imported using any of these accepted formats:
 * * `projects/{{project}}/locations/{{location}}/vmwareClusters/{{vmware_cluster}}/vmwareNodePools/{{name}}`
 * * `{{project}}/{{location}}/{{vmware_cluster}}/{{name}}`
 * * `{{location}}/{{vmware_cluster}}/{{name}}`
 * When using the `pulumi import` command, VmwareNodePool can be imported using one of the formats above. For example:
 * ```sh
 * $ pulumi import gcp:gkeonprem/vMwareNodePool:VMwareNodePool default projects/{{project}}/locations/{{location}}/vmwareClusters/{{vmware_cluster}}/vmwareNodePools/{{name}}
 * ```
 * ```sh
 * $ pulumi import gcp:gkeonprem/vMwareNodePool:VMwareNodePool default {{project}}/{{location}}/{{vmware_cluster}}/{{name}}
 * ```
 * ```sh
 * $ pulumi import gcp:gkeonprem/vMwareNodePool:VMwareNodePool default {{location}}/{{vmware_cluster}}/{{name}}
 * ```
 * @property annotations Annotations on the node Pool. This field has the same restrictions as Kubernetes annotations. The total size of all keys
 * and values combined is limited to 256k. Key can have 2 segments: prefix (optional) and name (required), separated by a
 * slash (/). Prefix must be a DNS subdomain. Name must be 63 characters or less, begin and end with alphanumerics, with
 * dashes (-), underscores (_), dots (.), and alphanumerics between. **Note**: This field is non-authoritative, and will
 * only manage the annotations present in your configuration. Please refer to the field 'effective_annotations' for all of
 * the annotations present on the resource.
 * @property config The node configuration of the node pool.
 * Structure is documented below.
 * @property displayName The display name for the node pool.
 * @property location The location of the resource.
 * @property name The vmware node pool name.
 * @property nodePoolAutoscaling Node Pool autoscaling config for the node pool.
 * @property project
 * @property vmwareCluster The cluster this node pool belongs to.
 */
public data class VMwareNodePoolArgs(
    public val annotations: Output>? = null,
    public val config: Output? = null,
    public val displayName: Output? = null,
    public val location: Output? = null,
    public val name: Output? = null,
    public val nodePoolAutoscaling: Output? = null,
    public val project: Output? = null,
    public val vmwareCluster: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.gcp.gkeonprem.VMwareNodePoolArgs =
        com.pulumi.gcp.gkeonprem.VMwareNodePoolArgs.builder()
            .annotations(
                annotations?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.key.to(args0.value)
                    }).toMap()
                }),
            )
            .config(config?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .displayName(displayName?.applyValue({ args0 -> args0 }))
            .location(location?.applyValue({ args0 -> args0 }))
            .name(name?.applyValue({ args0 -> args0 }))
            .nodePoolAutoscaling(
                nodePoolAutoscaling?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .project(project?.applyValue({ args0 -> args0 }))
            .vmwareCluster(vmwareCluster?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [VMwareNodePoolArgs].
 */
@PulumiTagMarker
public class VMwareNodePoolArgsBuilder internal constructor() {
    private var annotations: Output>? = null

    private var config: Output? = null

    private var displayName: Output? = null

    private var location: Output? = null

    private var name: Output? = null

    private var nodePoolAutoscaling: Output? = null

    private var project: Output? = null

    private var vmwareCluster: Output? = null

    /**
     * @param value Annotations on the node Pool. This field has the same restrictions as Kubernetes annotations. The total size of all keys
     * and values combined is limited to 256k. Key can have 2 segments: prefix (optional) and name (required), separated by a
     * slash (/). Prefix must be a DNS subdomain. Name must be 63 characters or less, begin and end with alphanumerics, with
     * dashes (-), underscores (_), dots (.), and alphanumerics between. **Note**: This field is non-authoritative, and will
     * only manage the annotations present in your configuration. Please refer to the field 'effective_annotations' for all of
     * the annotations present on the resource.
     */
    @JvmName("syqlfimbkukqiqof")
    public suspend fun annotations(`value`: Output>) {
        this.annotations = value
    }

    /**
     * @param value The node configuration of the node pool.
     * Structure is documented below.
     */
    @JvmName("twuxtxdquasdcvno")
    public suspend fun config(`value`: Output) {
        this.config = value
    }

    /**
     * @param value The display name for the node pool.
     */
    @JvmName("vybpipltawxofqku")
    public suspend fun displayName(`value`: Output) {
        this.displayName = value
    }

    /**
     * @param value The location of the resource.
     */
    @JvmName("ultnugpgvbemhjqn")
    public suspend fun location(`value`: Output) {
        this.location = value
    }

    /**
     * @param value The vmware node pool name.
     */
    @JvmName("aqraqeetgnbhixlw")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value Node Pool autoscaling config for the node pool.
     */
    @JvmName("penspecvtvcrmiug")
    public suspend fun nodePoolAutoscaling(`value`: Output) {
        this.nodePoolAutoscaling = value
    }

    /**
     * @param value
     */
    @JvmName("koqyimgkaotmfjxl")
    public suspend fun project(`value`: Output) {
        this.project = value
    }

    /**
     * @param value The cluster this node pool belongs to.
     */
    @JvmName("nrhdshbwwxckcnmm")
    public suspend fun vmwareCluster(`value`: Output) {
        this.vmwareCluster = value
    }

    /**
     * @param value Annotations on the node Pool. This field has the same restrictions as Kubernetes annotations. The total size of all keys
     * and values combined is limited to 256k. Key can have 2 segments: prefix (optional) and name (required), separated by a
     * slash (/). Prefix must be a DNS subdomain. Name must be 63 characters or less, begin and end with alphanumerics, with
     * dashes (-), underscores (_), dots (.), and alphanumerics between. **Note**: This field is non-authoritative, and will
     * only manage the annotations present in your configuration. Please refer to the field 'effective_annotations' for all of
     * the annotations present on the resource.
     */
    @JvmName("rnljuqvkecrrjvsx")
    public suspend fun annotations(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.annotations = mapped
    }

    /**
     * @param values Annotations on the node Pool. This field has the same restrictions as Kubernetes annotations. The total size of all keys
     * and values combined is limited to 256k. Key can have 2 segments: prefix (optional) and name (required), separated by a
     * slash (/). Prefix must be a DNS subdomain. Name must be 63 characters or less, begin and end with alphanumerics, with
     * dashes (-), underscores (_), dots (.), and alphanumerics between. **Note**: This field is non-authoritative, and will
     * only manage the annotations present in your configuration. Please refer to the field 'effective_annotations' for all of
     * the annotations present on the resource.
     */
    @JvmName("tgrxncryandnpdus")
    public fun annotations(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.annotations = mapped
    }

    /**
     * @param value The node configuration of the node pool.
     * Structure is documented below.
     */
    @JvmName("idqwshdctvrgkpap")
    public suspend fun config(`value`: VMwareNodePoolConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.config = mapped
    }

    /**
     * @param argument The node configuration of the node pool.
     * Structure is documented below.
     */
    @JvmName("stgeqiuritmaaodw")
    public suspend fun config(argument: suspend VMwareNodePoolConfigArgsBuilder.() -> Unit) {
        val toBeMapped = VMwareNodePoolConfigArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.config = mapped
    }

    /**
     * @param value The display name for the node pool.
     */
    @JvmName("hnafrwgsivesmruw")
    public suspend fun displayName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.displayName = mapped
    }

    /**
     * @param value The location of the resource.
     */
    @JvmName("yfqncfohmswsbxws")
    public suspend fun location(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.location = mapped
    }

    /**
     * @param value The vmware node pool name.
     */
    @JvmName("rpkukulqyetlvion")
    public suspend fun name(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value Node Pool autoscaling config for the node pool.
     */
    @JvmName("nelkrqbprygwbmhw")
    public suspend fun nodePoolAutoscaling(`value`: VMwareNodePoolNodePoolAutoscalingArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.nodePoolAutoscaling = mapped
    }

    /**
     * @param argument Node Pool autoscaling config for the node pool.
     */
    @JvmName("xdnqnhhwpwriphjq")
    public suspend fun nodePoolAutoscaling(argument: suspend VMwareNodePoolNodePoolAutoscalingArgsBuilder.() -> Unit) {
        val toBeMapped = VMwareNodePoolNodePoolAutoscalingArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.nodePoolAutoscaling = mapped
    }

    /**
     * @param value
     */
    @JvmName("tdwjticgqtgengvi")
    public suspend fun project(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.project = mapped
    }

    /**
     * @param value The cluster this node pool belongs to.
     */
    @JvmName("ijfhfxuexjppbjab")
    public suspend fun vmwareCluster(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.vmwareCluster = mapped
    }

    internal fun build(): VMwareNodePoolArgs = VMwareNodePoolArgs(
        annotations = annotations,
        config = config,
        displayName = displayName,
        location = location,
        name = name,
        nodePoolAutoscaling = nodePoolAutoscaling,
        project = project,
        vmwareCluster = vmwareCluster,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy