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

com.pulumi.gcp.gkeonprem.kotlin.VMwareClusterArgs.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.VMwareClusterArgs.builder
import com.pulumi.gcp.gkeonprem.kotlin.inputs.VMwareClusterAntiAffinityGroupsArgs
import com.pulumi.gcp.gkeonprem.kotlin.inputs.VMwareClusterAntiAffinityGroupsArgsBuilder
import com.pulumi.gcp.gkeonprem.kotlin.inputs.VMwareClusterAuthorizationArgs
import com.pulumi.gcp.gkeonprem.kotlin.inputs.VMwareClusterAuthorizationArgsBuilder
import com.pulumi.gcp.gkeonprem.kotlin.inputs.VMwareClusterAutoRepairConfigArgs
import com.pulumi.gcp.gkeonprem.kotlin.inputs.VMwareClusterAutoRepairConfigArgsBuilder
import com.pulumi.gcp.gkeonprem.kotlin.inputs.VMwareClusterControlPlaneNodeArgs
import com.pulumi.gcp.gkeonprem.kotlin.inputs.VMwareClusterControlPlaneNodeArgsBuilder
import com.pulumi.gcp.gkeonprem.kotlin.inputs.VMwareClusterDataplaneV2Args
import com.pulumi.gcp.gkeonprem.kotlin.inputs.VMwareClusterDataplaneV2ArgsBuilder
import com.pulumi.gcp.gkeonprem.kotlin.inputs.VMwareClusterLoadBalancerArgs
import com.pulumi.gcp.gkeonprem.kotlin.inputs.VMwareClusterLoadBalancerArgsBuilder
import com.pulumi.gcp.gkeonprem.kotlin.inputs.VMwareClusterNetworkConfigArgs
import com.pulumi.gcp.gkeonprem.kotlin.inputs.VMwareClusterNetworkConfigArgsBuilder
import com.pulumi.gcp.gkeonprem.kotlin.inputs.VMwareClusterStorageArgs
import com.pulumi.gcp.gkeonprem.kotlin.inputs.VMwareClusterStorageArgsBuilder
import com.pulumi.gcp.gkeonprem.kotlin.inputs.VMwareClusterUpgradePolicyArgs
import com.pulumi.gcp.gkeonprem.kotlin.inputs.VMwareClusterUpgradePolicyArgsBuilder
import com.pulumi.gcp.gkeonprem.kotlin.inputs.VMwareClusterVcenterArgs
import com.pulumi.gcp.gkeonprem.kotlin.inputs.VMwareClusterVcenterArgsBuilder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Boolean
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 * A Google VMware User Cluster.
 * ## Example Usage
 * ### Gkeonprem Vmware Cluster Basic
 * 
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as gcp from "@pulumi/gcp";
 * const cluster_basic = new gcp.gkeonprem.VMwareCluster("cluster-basic", {
 *     name: "cluster-basic",
 *     location: "us-west1",
 *     adminClusterMembership: "projects/870316890899/locations/global/memberships/gkeonprem-terraform-test",
 *     description: "test cluster",
 *     onPremVersion: "1.13.1-gke.35",
 *     annotations: {},
 *     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"],
 *                     avoidBuggyIps: true,
 *                 },
 *                 {
 *                     pool: "lb-test-ip",
 *                     manualAssign: true,
 *                     addresses: ["10.251.135.19"],
 *                     avoidBuggyIps: true,
 *                 },
 *             ],
 *         },
 *     },
 * });
 * ```
 * ```python
 * import pulumi
 * import pulumi_gcp as gcp
 * cluster_basic = gcp.gkeonprem.VMwareCluster("cluster-basic",
 *     name="cluster-basic",
 *     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",
 *     annotations={},
 *     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"],
 *                     avoid_buggy_ips=True,
 *                 ),
 *                 gcp.gkeonprem.VMwareClusterLoadBalancerMetalLbConfigAddressPoolArgs(
 *                     pool="lb-test-ip",
 *                     manual_assign=True,
 *                     addresses=["10.251.135.19"],
 *                     avoid_buggy_ips=True,
 *                 ),
 *             ],
 *         ),
 *     ))
 * ```
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using Gcp = Pulumi.Gcp;
 * return await Deployment.RunAsync(() =>
 * {
 *     var cluster_basic = new Gcp.GkeOnPrem.VMwareCluster("cluster-basic", new()
 *     {
 *         Name = "cluster-basic",
 *         Location = "us-west1",
 *         AdminClusterMembership = "projects/870316890899/locations/global/memberships/gkeonprem-terraform-test",
 *         Description = "test cluster",
 *         OnPremVersion = "1.13.1-gke.35",
 *         Annotations = null,
 *         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",
 *                         },
 *                         AvoidBuggyIps = true,
 *                     },
 *                     new Gcp.GkeOnPrem.Inputs.VMwareClusterLoadBalancerMetalLbConfigAddressPoolArgs
 *                     {
 *                         Pool = "lb-test-ip",
 *                         ManualAssign = true,
 *                         Addresses = new[]
 *                         {
 *                             "10.251.135.19",
 *                         },
 *                         AvoidBuggyIps = 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, "cluster-basic", &gkeonprem.VMwareClusterArgs{
 * 			Name:                   pulumi.String("cluster-basic"),
 * 			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"),
 * 			Annotations:            nil,
 * 			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"),
 * 							},
 * 							AvoidBuggyIps: pulumi.Bool(true),
 * 						},
 * 						&gkeonprem.VMwareClusterLoadBalancerMetalLbConfigAddressPoolArgs{
 * 							Pool:         pulumi.String("lb-test-ip"),
 * 							ManualAssign: pulumi.Bool(true),
 * 							Addresses: pulumi.StringArray{
 * 								pulumi.String("10.251.135.19"),
 * 							},
 * 							AvoidBuggyIps: 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 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 cluster_basic = new VMwareCluster("cluster-basic", VMwareClusterArgs.builder()
 *             .name("cluster-basic")
 *             .location("us-west1")
 *             .adminClusterMembership("projects/870316890899/locations/global/memberships/gkeonprem-terraform-test")
 *             .description("test cluster")
 *             .onPremVersion("1.13.1-gke.35")
 *             .annotations()
 *             .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")
 *                             .avoidBuggyIps(true)
 *                             .build(),
 *                         VMwareClusterLoadBalancerMetalLbConfigAddressPoolArgs.builder()
 *                             .pool("lb-test-ip")
 *                             .manualAssign("true")
 *                             .addresses("10.251.135.19")
 *                             .avoidBuggyIps(true)
 *                             .build())
 *                     .build())
 *                 .build())
 *             .build());
 *     }
 * }
 * ```
 * ```yaml
 * resources:
 *   cluster-basic:
 *     type: gcp:gkeonprem:VMwareCluster
 *     properties:
 *       name: cluster-basic
 *       location: us-west1
 *       adminClusterMembership: projects/870316890899/locations/global/memberships/gkeonprem-terraform-test
 *       description: test cluster
 *       onPremVersion: 1.13.1-gke.35
 *       annotations: {}
 *       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
 *               avoidBuggyIps: true
 *             - pool: lb-test-ip
 *               manualAssign: 'true'
 *               addresses:
 *                 - 10.251.135.19
 *               avoidBuggyIps: true
 * ```
 * 
 * ### Gkeonprem Vmware Cluster F5lb
 * 
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as gcp from "@pulumi/gcp";
 * const cluster_f5lb = new gcp.gkeonprem.VMwareCluster("cluster-f5lb", {
 *     name: "cluster-f5lb",
 *     location: "us-west1",
 *     adminClusterMembership: "projects/870316890899/locations/global/memberships/gkeonprem-terraform-test",
 *     description: "test cluster",
 *     onPremVersion: "1.13.1-gke.35",
 *     annotations: {},
 *     networkConfig: {
 *         serviceAddressCidrBlocks: ["10.96.0.0/12"],
 *         podAddressCidrBlocks: ["192.168.0.0/16"],
 *         dhcpIpConfig: {
 *             enabled: true,
 *         },
 *         controlPlaneV2Config: {
 *             controlPlaneIpBlock: {
 *                 ips: [{
 *                     hostname: "test-hostname",
 *                     ip: "10.0.0.1",
 *                 }],
 *                 netmask: "10.0.0.1/32",
 *                 gateway: "test-gateway",
 *             },
 *         },
 *         vcenterNetwork: "test-vcenter-network",
 *     },
 *     controlPlaneNode: {
 *         cpus: 4,
 *         memory: 8192,
 *         replicas: 1,
 *         autoResizeConfig: {
 *             enabled: true,
 *         },
 *     },
 *     loadBalancer: {
 *         vipConfig: {
 *             controlPlaneVip: "10.251.133.5",
 *             ingressVip: "10.251.135.19",
 *         },
 *         f5Config: {
 *             address: "10.0.0.1",
 *             partition: "test-partition",
 *             snatPool: "test-snap-pool",
 *         },
 *     },
 *     dataplaneV2: {
 *         dataplaneV2Enabled: true,
 *         windowsDataplaneV2Enabled: true,
 *         advancedNetworking: true,
 *     },
 *     vmTrackingEnabled: true,
 *     enableControlPlaneV2: true,
 *     disableBundledIngress: true,
 *     authorization: {
 *         adminUsers: [{
 *             username: "[email protected]",
 *         }],
 *     },
 *     antiAffinityGroups: {
 *         aagConfigDisabled: true,
 *     },
 *     autoRepairConfig: {
 *         enabled: true,
 *     },
 *     storage: {
 *         vsphereCsiDisabled: true,
 *     },
 * });
 * ```
 * ```python
 * import pulumi
 * import pulumi_gcp as gcp
 * cluster_f5lb = gcp.gkeonprem.VMwareCluster("cluster-f5lb",
 *     name="cluster-f5lb",
 *     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",
 *     annotations={},
 *     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_v2_config=gcp.gkeonprem.VMwareClusterNetworkConfigControlPlaneV2ConfigArgs(
 *             control_plane_ip_block=gcp.gkeonprem.VMwareClusterNetworkConfigControlPlaneV2ConfigControlPlaneIpBlockArgs(
 *                 ips=[gcp.gkeonprem.VMwareClusterNetworkConfigControlPlaneV2ConfigControlPlaneIpBlockIpArgs(
 *                     hostname="test-hostname",
 *                     ip="10.0.0.1",
 *                 )],
 *                 netmask="10.0.0.1/32",
 *                 gateway="test-gateway",
 *             ),
 *         ),
 *         vcenter_network="test-vcenter-network",
 *     ),
 *     control_plane_node=gcp.gkeonprem.VMwareClusterControlPlaneNodeArgs(
 *         cpus=4,
 *         memory=8192,
 *         replicas=1,
 *         auto_resize_config=gcp.gkeonprem.VMwareClusterControlPlaneNodeAutoResizeConfigArgs(
 *             enabled=True,
 *         ),
 *     ),
 *     load_balancer=gcp.gkeonprem.VMwareClusterLoadBalancerArgs(
 *         vip_config=gcp.gkeonprem.VMwareClusterLoadBalancerVipConfigArgs(
 *             control_plane_vip="10.251.133.5",
 *             ingress_vip="10.251.135.19",
 *         ),
 *         f5_config=gcp.gkeonprem.VMwareClusterLoadBalancerF5ConfigArgs(
 *             address="10.0.0.1",
 *             partition="test-partition",
 *             snat_pool="test-snap-pool",
 *         ),
 *     ),
 *     dataplane_v2=gcp.gkeonprem.VMwareClusterDataplaneV2Args(
 *         dataplane_v2_enabled=True,
 *         windows_dataplane_v2_enabled=True,
 *         advanced_networking=True,
 *     ),
 *     vm_tracking_enabled=True,
 *     enable_control_plane_v2=True,
 *     disable_bundled_ingress=True,
 *     authorization=gcp.gkeonprem.VMwareClusterAuthorizationArgs(
 *         admin_users=[gcp.gkeonprem.VMwareClusterAuthorizationAdminUserArgs(
 *             username="[email protected]",
 *         )],
 *     ),
 *     anti_affinity_groups=gcp.gkeonprem.VMwareClusterAntiAffinityGroupsArgs(
 *         aag_config_disabled=True,
 *     ),
 *     auto_repair_config=gcp.gkeonprem.VMwareClusterAutoRepairConfigArgs(
 *         enabled=True,
 *     ),
 *     storage=gcp.gkeonprem.VMwareClusterStorageArgs(
 *         vsphere_csi_disabled=True,
 *     ))
 * ```
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using Gcp = Pulumi.Gcp;
 * return await Deployment.RunAsync(() =>
 * {
 *     var cluster_f5lb = new Gcp.GkeOnPrem.VMwareCluster("cluster-f5lb", new()
 *     {
 *         Name = "cluster-f5lb",
 *         Location = "us-west1",
 *         AdminClusterMembership = "projects/870316890899/locations/global/memberships/gkeonprem-terraform-test",
 *         Description = "test cluster",
 *         OnPremVersion = "1.13.1-gke.35",
 *         Annotations = null,
 *         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,
 *             },
 *             ControlPlaneV2Config = new Gcp.GkeOnPrem.Inputs.VMwareClusterNetworkConfigControlPlaneV2ConfigArgs
 *             {
 *                 ControlPlaneIpBlock = new Gcp.GkeOnPrem.Inputs.VMwareClusterNetworkConfigControlPlaneV2ConfigControlPlaneIpBlockArgs
 *                 {
 *                     Ips = new[]
 *                     {
 *                         new Gcp.GkeOnPrem.Inputs.VMwareClusterNetworkConfigControlPlaneV2ConfigControlPlaneIpBlockIpArgs
 *                         {
 *                             Hostname = "test-hostname",
 *                             Ip = "10.0.0.1",
 *                         },
 *                     },
 *                     Netmask = "10.0.0.1/32",
 *                     Gateway = "test-gateway",
 *                 },
 *             },
 *             VcenterNetwork = "test-vcenter-network",
 *         },
 *         ControlPlaneNode = new Gcp.GkeOnPrem.Inputs.VMwareClusterControlPlaneNodeArgs
 *         {
 *             Cpus = 4,
 *             Memory = 8192,
 *             Replicas = 1,
 *             AutoResizeConfig = new Gcp.GkeOnPrem.Inputs.VMwareClusterControlPlaneNodeAutoResizeConfigArgs
 *             {
 *                 Enabled = true,
 *             },
 *         },
 *         LoadBalancer = new Gcp.GkeOnPrem.Inputs.VMwareClusterLoadBalancerArgs
 *         {
 *             VipConfig = new Gcp.GkeOnPrem.Inputs.VMwareClusterLoadBalancerVipConfigArgs
 *             {
 *                 ControlPlaneVip = "10.251.133.5",
 *                 IngressVip = "10.251.135.19",
 *             },
 *             F5Config = new Gcp.GkeOnPrem.Inputs.VMwareClusterLoadBalancerF5ConfigArgs
 *             {
 *                 Address = "10.0.0.1",
 *                 Partition = "test-partition",
 *                 SnatPool = "test-snap-pool",
 *             },
 *         },
 *         DataplaneV2 = new Gcp.GkeOnPrem.Inputs.VMwareClusterDataplaneV2Args
 *         {
 *             DataplaneV2Enabled = true,
 *             WindowsDataplaneV2Enabled = true,
 *             AdvancedNetworking = true,
 *         },
 *         VmTrackingEnabled = true,
 *         EnableControlPlaneV2 = true,
 *         DisableBundledIngress = true,
 *         Authorization = new Gcp.GkeOnPrem.Inputs.VMwareClusterAuthorizationArgs
 *         {
 *             AdminUsers = new[]
 *             {
 *                 new Gcp.GkeOnPrem.Inputs.VMwareClusterAuthorizationAdminUserArgs
 *                 {
 *                     Username = "[email protected]",
 *                 },
 *             },
 *         },
 *         AntiAffinityGroups = new Gcp.GkeOnPrem.Inputs.VMwareClusterAntiAffinityGroupsArgs
 *         {
 *             AagConfigDisabled = true,
 *         },
 *         AutoRepairConfig = new Gcp.GkeOnPrem.Inputs.VMwareClusterAutoRepairConfigArgs
 *         {
 *             Enabled = true,
 *         },
 *         Storage = new Gcp.GkeOnPrem.Inputs.VMwareClusterStorageArgs
 *         {
 *             VsphereCsiDisabled = 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, "cluster-f5lb", &gkeonprem.VMwareClusterArgs{
 * 			Name:                   pulumi.String("cluster-f5lb"),
 * 			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"),
 * 			Annotations:            nil,
 * 			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),
 * 				},
 * 				ControlPlaneV2Config: &gkeonprem.VMwareClusterNetworkConfigControlPlaneV2ConfigArgs{
 * 					ControlPlaneIpBlock: &gkeonprem.VMwareClusterNetworkConfigControlPlaneV2ConfigControlPlaneIpBlockArgs{
 * 						Ips: gkeonprem.VMwareClusterNetworkConfigControlPlaneV2ConfigControlPlaneIpBlockIpArray{
 * 							&gkeonprem.VMwareClusterNetworkConfigControlPlaneV2ConfigControlPlaneIpBlockIpArgs{
 * 								Hostname: pulumi.String("test-hostname"),
 * 								Ip:       pulumi.String("10.0.0.1"),
 * 							},
 * 						},
 * 						Netmask: pulumi.String("10.0.0.1/32"),
 * 						Gateway: pulumi.String("test-gateway"),
 * 					},
 * 				},
 * 				VcenterNetwork: pulumi.String("test-vcenter-network"),
 * 			},
 * 			ControlPlaneNode: &gkeonprem.VMwareClusterControlPlaneNodeArgs{
 * 				Cpus:     pulumi.Int(4),
 * 				Memory:   pulumi.Int(8192),
 * 				Replicas: pulumi.Int(1),
 * 				AutoResizeConfig: &gkeonprem.VMwareClusterControlPlaneNodeAutoResizeConfigArgs{
 * 					Enabled: pulumi.Bool(true),
 * 				},
 * 			},
 * 			LoadBalancer: &gkeonprem.VMwareClusterLoadBalancerArgs{
 * 				VipConfig: &gkeonprem.VMwareClusterLoadBalancerVipConfigArgs{
 * 					ControlPlaneVip: pulumi.String("10.251.133.5"),
 * 					IngressVip:      pulumi.String("10.251.135.19"),
 * 				},
 * 				F5Config: &gkeonprem.VMwareClusterLoadBalancerF5ConfigArgs{
 * 					Address:   pulumi.String("10.0.0.1"),
 * 					Partition: pulumi.String("test-partition"),
 * 					SnatPool:  pulumi.String("test-snap-pool"),
 * 				},
 * 			},
 * 			DataplaneV2: &gkeonprem.VMwareClusterDataplaneV2Args{
 * 				DataplaneV2Enabled:        pulumi.Bool(true),
 * 				WindowsDataplaneV2Enabled: pulumi.Bool(true),
 * 				AdvancedNetworking:        pulumi.Bool(true),
 * 			},
 * 			VmTrackingEnabled:     pulumi.Bool(true),
 * 			EnableControlPlaneV2:  pulumi.Bool(true),
 * 			DisableBundledIngress: pulumi.Bool(true),
 * 			Authorization: &gkeonprem.VMwareClusterAuthorizationArgs{
 * 				AdminUsers: gkeonprem.VMwareClusterAuthorizationAdminUserArray{
 * 					&gkeonprem.VMwareClusterAuthorizationAdminUserArgs{
 * 						Username: pulumi.String("[email protected]"),
 * 					},
 * 				},
 * 			},
 * 			AntiAffinityGroups: &gkeonprem.VMwareClusterAntiAffinityGroupsArgs{
 * 				AagConfigDisabled: pulumi.Bool(true),
 * 			},
 * 			AutoRepairConfig: &gkeonprem.VMwareClusterAutoRepairConfigArgs{
 * 				Enabled: pulumi.Bool(true),
 * 			},
 * 			Storage: &gkeonprem.VMwareClusterStorageArgs{
 * 				VsphereCsiDisabled: 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.VMwareClusterNetworkConfigControlPlaneV2ConfigArgs;
 * import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterNetworkConfigControlPlaneV2ConfigControlPlaneIpBlockArgs;
 * import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterControlPlaneNodeArgs;
 * import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterControlPlaneNodeAutoResizeConfigArgs;
 * import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterLoadBalancerArgs;
 * import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterLoadBalancerVipConfigArgs;
 * import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterLoadBalancerF5ConfigArgs;
 * import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterDataplaneV2Args;
 * import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterAuthorizationArgs;
 * import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterAntiAffinityGroupsArgs;
 * import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterAutoRepairConfigArgs;
 * import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterStorageArgs;
 * 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 cluster_f5lb = new VMwareCluster("cluster-f5lb", VMwareClusterArgs.builder()
 *             .name("cluster-f5lb")
 *             .location("us-west1")
 *             .adminClusterMembership("projects/870316890899/locations/global/memberships/gkeonprem-terraform-test")
 *             .description("test cluster")
 *             .onPremVersion("1.13.1-gke.35")
 *             .annotations()
 *             .networkConfig(VMwareClusterNetworkConfigArgs.builder()
 *                 .serviceAddressCidrBlocks("10.96.0.0/12")
 *                 .podAddressCidrBlocks("192.168.0.0/16")
 *                 .dhcpIpConfig(VMwareClusterNetworkConfigDhcpIpConfigArgs.builder()
 *                     .enabled(true)
 *                     .build())
 *                 .controlPlaneV2Config(VMwareClusterNetworkConfigControlPlaneV2ConfigArgs.builder()
 *                     .controlPlaneIpBlock(VMwareClusterNetworkConfigControlPlaneV2ConfigControlPlaneIpBlockArgs.builder()
 *                         .ips(VMwareClusterNetworkConfigControlPlaneV2ConfigControlPlaneIpBlockIpArgs.builder()
 *                             .hostname("test-hostname")
 *                             .ip("10.0.0.1")
 *                             .build())
 *                         .netmask("10.0.0.1/32")
 *                         .gateway("test-gateway")
 *                         .build())
 *                     .build())
 *                 .vcenterNetwork("test-vcenter-network")
 *                 .build())
 *             .controlPlaneNode(VMwareClusterControlPlaneNodeArgs.builder()
 *                 .cpus(4)
 *                 .memory(8192)
 *                 .replicas(1)
 *                 .autoResizeConfig(VMwareClusterControlPlaneNodeAutoResizeConfigArgs.builder()
 *                     .enabled(true)
 *                     .build())
 *                 .build())
 *             .loadBalancer(VMwareClusterLoadBalancerArgs.builder()
 *                 .vipConfig(VMwareClusterLoadBalancerVipConfigArgs.builder()
 *                     .controlPlaneVip("10.251.133.5")
 *                     .ingressVip("10.251.135.19")
 *                     .build())
 *                 .f5Config(VMwareClusterLoadBalancerF5ConfigArgs.builder()
 *                     .address("10.0.0.1")
 *                     .partition("test-partition")
 *                     .snatPool("test-snap-pool")
 *                     .build())
 *                 .build())
 *             .dataplaneV2(VMwareClusterDataplaneV2Args.builder()
 *                 .dataplaneV2Enabled(true)
 *                 .windowsDataplaneV2Enabled(true)
 *                 .advancedNetworking(true)
 *                 .build())
 *             .vmTrackingEnabled(true)
 *             .enableControlPlaneV2(true)
 *             .disableBundledIngress(true)
 *             .authorization(VMwareClusterAuthorizationArgs.builder()
 *                 .adminUsers(VMwareClusterAuthorizationAdminUserArgs.builder()
 *                     .username("[email protected]")
 *                     .build())
 *                 .build())
 *             .antiAffinityGroups(VMwareClusterAntiAffinityGroupsArgs.builder()
 *                 .aagConfigDisabled(true)
 *                 .build())
 *             .autoRepairConfig(VMwareClusterAutoRepairConfigArgs.builder()
 *                 .enabled(true)
 *                 .build())
 *             .storage(VMwareClusterStorageArgs.builder()
 *                 .vsphereCsiDisabled(true)
 *                 .build())
 *             .build());
 *     }
 * }
 * ```
 * ```yaml
 * resources:
 *   cluster-f5lb:
 *     type: gcp:gkeonprem:VMwareCluster
 *     properties:
 *       name: cluster-f5lb
 *       location: us-west1
 *       adminClusterMembership: projects/870316890899/locations/global/memberships/gkeonprem-terraform-test
 *       description: test cluster
 *       onPremVersion: 1.13.1-gke.35
 *       annotations: {}
 *       networkConfig:
 *         serviceAddressCidrBlocks:
 *           - 10.96.0.0/12
 *         podAddressCidrBlocks:
 *           - 192.168.0.0/16
 *         dhcpIpConfig:
 *           enabled: true
 *         controlPlaneV2Config:
 *           controlPlaneIpBlock:
 *             ips:
 *               - hostname: test-hostname
 *                 ip: 10.0.0.1
 *             netmask: 10.0.0.1/32
 *             gateway: test-gateway
 *         vcenterNetwork: test-vcenter-network
 *       controlPlaneNode:
 *         cpus: 4
 *         memory: 8192
 *         replicas: 1
 *         autoResizeConfig:
 *           enabled: true
 *       loadBalancer:
 *         vipConfig:
 *           controlPlaneVip: 10.251.133.5
 *           ingressVip: 10.251.135.19
 *         f5Config:
 *           address: 10.0.0.1
 *           partition: test-partition
 *           snatPool: test-snap-pool
 *       dataplaneV2:
 *         dataplaneV2Enabled: true
 *         windowsDataplaneV2Enabled: true
 *         advancedNetworking: true
 *       vmTrackingEnabled: true
 *       enableControlPlaneV2: true
 *       disableBundledIngress: true
 *       authorization:
 *         adminUsers:
 *           - username: [email protected]
 *       antiAffinityGroups:
 *         aagConfigDisabled: true
 *       autoRepairConfig:
 *         enabled: true
 *       storage:
 *         vsphereCsiDisabled: true
 * ```
 * 
 * ### Gkeonprem Vmware Cluster Manuallb
 * 
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as gcp from "@pulumi/gcp";
 * const cluster_manuallb = new gcp.gkeonprem.VMwareCluster("cluster-manuallb", {
 *     name: "cluster-manuallb",
 *     location: "us-west1",
 *     adminClusterMembership: "projects/870316890899/locations/global/memberships/gkeonprem-terraform-test",
 *     description: "test cluster",
 *     onPremVersion: "1.13.1-gke.35",
 *     annotations: {},
 *     networkConfig: {
 *         serviceAddressCidrBlocks: ["10.96.0.0/12"],
 *         podAddressCidrBlocks: ["192.168.0.0/16"],
 *         hostConfig: {
 *             dnsServers: ["10.254.41.1"],
 *             ntpServers: ["216.239.35.8"],
 *             dnsSearchDomains: ["test-domain"],
 *         },
 *         staticIpConfig: {
 *             ipBlocks: [{
 *                 netmask: "255.255.252.0",
 *                 gateway: "10.251.31.254",
 *                 ips: [
 *                     {
 *                         ip: "10.251.30.153",
 *                         hostname: "test-hostname1",
 *                     },
 *                     {
 *                         ip: "10.251.31.206",
 *                         hostname: "test-hostname2",
 *                     },
 *                     {
 *                         ip: "10.251.31.193",
 *                         hostname: "test-hostname3",
 *                     },
 *                     {
 *                         ip: "10.251.30.230",
 *                         hostname: "test-hostname4",
 *                     },
 *                 ],
 *             }],
 *         },
 *     },
 *     controlPlaneNode: {
 *         cpus: 4,
 *         memory: 8192,
 *         replicas: 1,
 *         autoResizeConfig: {
 *             enabled: true,
 *         },
 *     },
 *     loadBalancer: {
 *         vipConfig: {
 *             controlPlaneVip: "10.251.133.5",
 *             ingressVip: "10.251.135.19",
 *         },
 *         manualLbConfig: {
 *             ingressHttpNodePort: 30005,
 *             ingressHttpsNodePort: 30006,
 *             controlPlaneNodePort: 30007,
 *             konnectivityServerNodePort: 30008,
 *         },
 *     },
 *     vcenters: [{
 *         resourcePool: "test-resource-pool",
 *         datastore: "test-datastore",
 *         datacenter: "test-datacenter",
 *         cluster: "test-cluster",
 *         folder: "test-folder",
 *         caCertData: "test-ca-cert-data",
 *         storagePolicyName: "test-storage-policy-name",
 *     }],
 *     dataplaneV2: {
 *         dataplaneV2Enabled: true,
 *         windowsDataplaneV2Enabled: true,
 *         advancedNetworking: true,
 *     },
 *     vmTrackingEnabled: true,
 *     enableControlPlaneV2: true,
 *     upgradePolicy: {
 *         controlPlaneOnly: true,
 *     },
 *     authorization: {
 *         adminUsers: [{
 *             username: "[email protected]",
 *         }],
 *     },
 *     antiAffinityGroups: {
 *         aagConfigDisabled: true,
 *     },
 *     autoRepairConfig: {
 *         enabled: true,
 *     },
 * });
 * ```
 * ```python
 * import pulumi
 * import pulumi_gcp as gcp
 * cluster_manuallb = gcp.gkeonprem.VMwareCluster("cluster-manuallb",
 *     name="cluster-manuallb",
 *     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",
 *     annotations={},
 *     network_config=gcp.gkeonprem.VMwareClusterNetworkConfigArgs(
 *         service_address_cidr_blocks=["10.96.0.0/12"],
 *         pod_address_cidr_blocks=["192.168.0.0/16"],
 *         host_config=gcp.gkeonprem.VMwareClusterNetworkConfigHostConfigArgs(
 *             dns_servers=["10.254.41.1"],
 *             ntp_servers=["216.239.35.8"],
 *             dns_search_domains=["test-domain"],
 *         ),
 *         static_ip_config=gcp.gkeonprem.VMwareClusterNetworkConfigStaticIpConfigArgs(
 *             ip_blocks=[gcp.gkeonprem.VMwareClusterNetworkConfigStaticIpConfigIpBlockArgs(
 *                 netmask="255.255.252.0",
 *                 gateway="10.251.31.254",
 *                 ips=[
 *                     gcp.gkeonprem.VMwareClusterNetworkConfigStaticIpConfigIpBlockIpArgs(
 *                         ip="10.251.30.153",
 *                         hostname="test-hostname1",
 *                     ),
 *                     gcp.gkeonprem.VMwareClusterNetworkConfigStaticIpConfigIpBlockIpArgs(
 *                         ip="10.251.31.206",
 *                         hostname="test-hostname2",
 *                     ),
 *                     gcp.gkeonprem.VMwareClusterNetworkConfigStaticIpConfigIpBlockIpArgs(
 *                         ip="10.251.31.193",
 *                         hostname="test-hostname3",
 *                     ),
 *                     gcp.gkeonprem.VMwareClusterNetworkConfigStaticIpConfigIpBlockIpArgs(
 *                         ip="10.251.30.230",
 *                         hostname="test-hostname4",
 *                     ),
 *                 ],
 *             )],
 *         ),
 *     ),
 *     control_plane_node=gcp.gkeonprem.VMwareClusterControlPlaneNodeArgs(
 *         cpus=4,
 *         memory=8192,
 *         replicas=1,
 *         auto_resize_config=gcp.gkeonprem.VMwareClusterControlPlaneNodeAutoResizeConfigArgs(
 *             enabled=True,
 *         ),
 *     ),
 *     load_balancer=gcp.gkeonprem.VMwareClusterLoadBalancerArgs(
 *         vip_config=gcp.gkeonprem.VMwareClusterLoadBalancerVipConfigArgs(
 *             control_plane_vip="10.251.133.5",
 *             ingress_vip="10.251.135.19",
 *         ),
 *         manual_lb_config=gcp.gkeonprem.VMwareClusterLoadBalancerManualLbConfigArgs(
 *             ingress_http_node_port=30005,
 *             ingress_https_node_port=30006,
 *             control_plane_node_port=30007,
 *             konnectivity_server_node_port=30008,
 *         ),
 *     ),
 *     vcenters=[gcp.gkeonprem.VMwareClusterVcenterArgs(
 *         resource_pool="test-resource-pool",
 *         datastore="test-datastore",
 *         datacenter="test-datacenter",
 *         cluster="test-cluster",
 *         folder="test-folder",
 *         ca_cert_data="test-ca-cert-data",
 *         storage_policy_name="test-storage-policy-name",
 *     )],
 *     dataplane_v2=gcp.gkeonprem.VMwareClusterDataplaneV2Args(
 *         dataplane_v2_enabled=True,
 *         windows_dataplane_v2_enabled=True,
 *         advanced_networking=True,
 *     ),
 *     vm_tracking_enabled=True,
 *     enable_control_plane_v2=True,
 *     upgrade_policy=gcp.gkeonprem.VMwareClusterUpgradePolicyArgs(
 *         control_plane_only=True,
 *     ),
 *     authorization=gcp.gkeonprem.VMwareClusterAuthorizationArgs(
 *         admin_users=[gcp.gkeonprem.VMwareClusterAuthorizationAdminUserArgs(
 *             username="[email protected]",
 *         )],
 *     ),
 *     anti_affinity_groups=gcp.gkeonprem.VMwareClusterAntiAffinityGroupsArgs(
 *         aag_config_disabled=True,
 *     ),
 *     auto_repair_config=gcp.gkeonprem.VMwareClusterAutoRepairConfigArgs(
 *         enabled=True,
 *     ))
 * ```
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using Gcp = Pulumi.Gcp;
 * return await Deployment.RunAsync(() =>
 * {
 *     var cluster_manuallb = new Gcp.GkeOnPrem.VMwareCluster("cluster-manuallb", new()
 *     {
 *         Name = "cluster-manuallb",
 *         Location = "us-west1",
 *         AdminClusterMembership = "projects/870316890899/locations/global/memberships/gkeonprem-terraform-test",
 *         Description = "test cluster",
 *         OnPremVersion = "1.13.1-gke.35",
 *         Annotations = null,
 *         NetworkConfig = new Gcp.GkeOnPrem.Inputs.VMwareClusterNetworkConfigArgs
 *         {
 *             ServiceAddressCidrBlocks = new[]
 *             {
 *                 "10.96.0.0/12",
 *             },
 *             PodAddressCidrBlocks = new[]
 *             {
 *                 "192.168.0.0/16",
 *             },
 *             HostConfig = new Gcp.GkeOnPrem.Inputs.VMwareClusterNetworkConfigHostConfigArgs
 *             {
 *                 DnsServers = new[]
 *                 {
 *                     "10.254.41.1",
 *                 },
 *                 NtpServers = new[]
 *                 {
 *                     "216.239.35.8",
 *                 },
 *                 DnsSearchDomains = new[]
 *                 {
 *                     "test-domain",
 *                 },
 *             },
 *             StaticIpConfig = new Gcp.GkeOnPrem.Inputs.VMwareClusterNetworkConfigStaticIpConfigArgs
 *             {
 *                 IpBlocks = new[]
 *                 {
 *                     new Gcp.GkeOnPrem.Inputs.VMwareClusterNetworkConfigStaticIpConfigIpBlockArgs
 *                     {
 *                         Netmask = "255.255.252.0",
 *                         Gateway = "10.251.31.254",
 *                         Ips = new[]
 *                         {
 *                             new Gcp.GkeOnPrem.Inputs.VMwareClusterNetworkConfigStaticIpConfigIpBlockIpArgs
 *                             {
 *                                 Ip = "10.251.30.153",
 *                                 Hostname = "test-hostname1",
 *                             },
 *                             new Gcp.GkeOnPrem.Inputs.VMwareClusterNetworkConfigStaticIpConfigIpBlockIpArgs
 *                             {
 *                                 Ip = "10.251.31.206",
 *                                 Hostname = "test-hostname2",
 *                             },
 *                             new Gcp.GkeOnPrem.Inputs.VMwareClusterNetworkConfigStaticIpConfigIpBlockIpArgs
 *                             {
 *                                 Ip = "10.251.31.193",
 *                                 Hostname = "test-hostname3",
 *                             },
 *                             new Gcp.GkeOnPrem.Inputs.VMwareClusterNetworkConfigStaticIpConfigIpBlockIpArgs
 *                             {
 *                                 Ip = "10.251.30.230",
 *                                 Hostname = "test-hostname4",
 *                             },
 *                         },
 *                     },
 *                 },
 *             },
 *         },
 *         ControlPlaneNode = new Gcp.GkeOnPrem.Inputs.VMwareClusterControlPlaneNodeArgs
 *         {
 *             Cpus = 4,
 *             Memory = 8192,
 *             Replicas = 1,
 *             AutoResizeConfig = new Gcp.GkeOnPrem.Inputs.VMwareClusterControlPlaneNodeAutoResizeConfigArgs
 *             {
 *                 Enabled = true,
 *             },
 *         },
 *         LoadBalancer = new Gcp.GkeOnPrem.Inputs.VMwareClusterLoadBalancerArgs
 *         {
 *             VipConfig = new Gcp.GkeOnPrem.Inputs.VMwareClusterLoadBalancerVipConfigArgs
 *             {
 *                 ControlPlaneVip = "10.251.133.5",
 *                 IngressVip = "10.251.135.19",
 *             },
 *             ManualLbConfig = new Gcp.GkeOnPrem.Inputs.VMwareClusterLoadBalancerManualLbConfigArgs
 *             {
 *                 IngressHttpNodePort = 30005,
 *                 IngressHttpsNodePort = 30006,
 *                 ControlPlaneNodePort = 30007,
 *                 KonnectivityServerNodePort = 30008,
 *             },
 *         },
 *         Vcenters = new[]
 *         {
 *             new Gcp.GkeOnPrem.Inputs.VMwareClusterVcenterArgs
 *             {
 *                 ResourcePool = "test-resource-pool",
 *                 Datastore = "test-datastore",
 *                 Datacenter = "test-datacenter",
 *                 Cluster = "test-cluster",
 *                 Folder = "test-folder",
 *                 CaCertData = "test-ca-cert-data",
 *                 StoragePolicyName = "test-storage-policy-name",
 *             },
 *         },
 *         DataplaneV2 = new Gcp.GkeOnPrem.Inputs.VMwareClusterDataplaneV2Args
 *         {
 *             DataplaneV2Enabled = true,
 *             WindowsDataplaneV2Enabled = true,
 *             AdvancedNetworking = true,
 *         },
 *         VmTrackingEnabled = true,
 *         EnableControlPlaneV2 = true,
 *         UpgradePolicy = new Gcp.GkeOnPrem.Inputs.VMwareClusterUpgradePolicyArgs
 *         {
 *             ControlPlaneOnly = true,
 *         },
 *         Authorization = new Gcp.GkeOnPrem.Inputs.VMwareClusterAuthorizationArgs
 *         {
 *             AdminUsers = new[]
 *             {
 *                 new Gcp.GkeOnPrem.Inputs.VMwareClusterAuthorizationAdminUserArgs
 *                 {
 *                     Username = "[email protected]",
 *                 },
 *             },
 *         },
 *         AntiAffinityGroups = new Gcp.GkeOnPrem.Inputs.VMwareClusterAntiAffinityGroupsArgs
 *         {
 *             AagConfigDisabled = true,
 *         },
 *         AutoRepairConfig = new Gcp.GkeOnPrem.Inputs.VMwareClusterAutoRepairConfigArgs
 *         {
 *             Enabled = 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, "cluster-manuallb", &gkeonprem.VMwareClusterArgs{
 * 			Name:                   pulumi.String("cluster-manuallb"),
 * 			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"),
 * 			Annotations:            nil,
 * 			NetworkConfig: &gkeonprem.VMwareClusterNetworkConfigArgs{
 * 				ServiceAddressCidrBlocks: pulumi.StringArray{
 * 					pulumi.String("10.96.0.0/12"),
 * 				},
 * 				PodAddressCidrBlocks: pulumi.StringArray{
 * 					pulumi.String("192.168.0.0/16"),
 * 				},
 * 				HostConfig: &gkeonprem.VMwareClusterNetworkConfigHostConfigArgs{
 * 					DnsServers: pulumi.StringArray{
 * 						pulumi.String("10.254.41.1"),
 * 					},
 * 					NtpServers: pulumi.StringArray{
 * 						pulumi.String("216.239.35.8"),
 * 					},
 * 					DnsSearchDomains: pulumi.StringArray{
 * 						pulumi.String("test-domain"),
 * 					},
 * 				},
 * 				StaticIpConfig: &gkeonprem.VMwareClusterNetworkConfigStaticIpConfigArgs{
 * 					IpBlocks: gkeonprem.VMwareClusterNetworkConfigStaticIpConfigIpBlockArray{
 * 						&gkeonprem.VMwareClusterNetworkConfigStaticIpConfigIpBlockArgs{
 * 							Netmask: pulumi.String("255.255.252.0"),
 * 							Gateway: pulumi.String("10.251.31.254"),
 * 							Ips: gkeonprem.VMwareClusterNetworkConfigStaticIpConfigIpBlockIpArray{
 * 								&gkeonprem.VMwareClusterNetworkConfigStaticIpConfigIpBlockIpArgs{
 * 									Ip:       pulumi.String("10.251.30.153"),
 * 									Hostname: pulumi.String("test-hostname1"),
 * 								},
 * 								&gkeonprem.VMwareClusterNetworkConfigStaticIpConfigIpBlockIpArgs{
 * 									Ip:       pulumi.String("10.251.31.206"),
 * 									Hostname: pulumi.String("test-hostname2"),
 * 								},
 * 								&gkeonprem.VMwareClusterNetworkConfigStaticIpConfigIpBlockIpArgs{
 * 									Ip:       pulumi.String("10.251.31.193"),
 * 									Hostname: pulumi.String("test-hostname3"),
 * 								},
 * 								&gkeonprem.VMwareClusterNetworkConfigStaticIpConfigIpBlockIpArgs{
 * 									Ip:       pulumi.String("10.251.30.230"),
 * 									Hostname: pulumi.String("test-hostname4"),
 * 								},
 * 							},
 * 						},
 * 					},
 * 				},
 * 			},
 * 			ControlPlaneNode: &gkeonprem.VMwareClusterControlPlaneNodeArgs{
 * 				Cpus:     pulumi.Int(4),
 * 				Memory:   pulumi.Int(8192),
 * 				Replicas: pulumi.Int(1),
 * 				AutoResizeConfig: &gkeonprem.VMwareClusterControlPlaneNodeAutoResizeConfigArgs{
 * 					Enabled: pulumi.Bool(true),
 * 				},
 * 			},
 * 			LoadBalancer: &gkeonprem.VMwareClusterLoadBalancerArgs{
 * 				VipConfig: &gkeonprem.VMwareClusterLoadBalancerVipConfigArgs{
 * 					ControlPlaneVip: pulumi.String("10.251.133.5"),
 * 					IngressVip:      pulumi.String("10.251.135.19"),
 * 				},
 * 				ManualLbConfig: &gkeonprem.VMwareClusterLoadBalancerManualLbConfigArgs{
 * 					IngressHttpNodePort:        pulumi.Int(30005),
 * 					IngressHttpsNodePort:       pulumi.Int(30006),
 * 					ControlPlaneNodePort:       pulumi.Int(30007),
 * 					KonnectivityServerNodePort: pulumi.Int(30008),
 * 				},
 * 			},
 * 			Vcenters: gkeonprem.VMwareClusterVcenterArray{
 * 				&gkeonprem.VMwareClusterVcenterArgs{
 * 					ResourcePool:      pulumi.String("test-resource-pool"),
 * 					Datastore:         pulumi.String("test-datastore"),
 * 					Datacenter:        pulumi.String("test-datacenter"),
 * 					Cluster:           pulumi.String("test-cluster"),
 * 					Folder:            pulumi.String("test-folder"),
 * 					CaCertData:        pulumi.String("test-ca-cert-data"),
 * 					StoragePolicyName: pulumi.String("test-storage-policy-name"),
 * 				},
 * 			},
 * 			DataplaneV2: &gkeonprem.VMwareClusterDataplaneV2Args{
 * 				DataplaneV2Enabled:        pulumi.Bool(true),
 * 				WindowsDataplaneV2Enabled: pulumi.Bool(true),
 * 				AdvancedNetworking:        pulumi.Bool(true),
 * 			},
 * 			VmTrackingEnabled:    pulumi.Bool(true),
 * 			EnableControlPlaneV2: pulumi.Bool(true),
 * 			UpgradePolicy: &gkeonprem.VMwareClusterUpgradePolicyArgs{
 * 				ControlPlaneOnly: pulumi.Bool(true),
 * 			},
 * 			Authorization: &gkeonprem.VMwareClusterAuthorizationArgs{
 * 				AdminUsers: gkeonprem.VMwareClusterAuthorizationAdminUserArray{
 * 					&gkeonprem.VMwareClusterAuthorizationAdminUserArgs{
 * 						Username: pulumi.String("[email protected]"),
 * 					},
 * 				},
 * 			},
 * 			AntiAffinityGroups: &gkeonprem.VMwareClusterAntiAffinityGroupsArgs{
 * 				AagConfigDisabled: pulumi.Bool(true),
 * 			},
 * 			AutoRepairConfig: &gkeonprem.VMwareClusterAutoRepairConfigArgs{
 * 				Enabled: 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.VMwareClusterNetworkConfigHostConfigArgs;
 * import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterNetworkConfigStaticIpConfigArgs;
 * import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterControlPlaneNodeArgs;
 * import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterControlPlaneNodeAutoResizeConfigArgs;
 * import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterLoadBalancerArgs;
 * import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterLoadBalancerVipConfigArgs;
 * import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterLoadBalancerManualLbConfigArgs;
 * import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterVcenterArgs;
 * import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterDataplaneV2Args;
 * import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterUpgradePolicyArgs;
 * import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterAuthorizationArgs;
 * import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterAntiAffinityGroupsArgs;
 * import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterAutoRepairConfigArgs;
 * 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 cluster_manuallb = new VMwareCluster("cluster-manuallb", VMwareClusterArgs.builder()
 *             .name("cluster-manuallb")
 *             .location("us-west1")
 *             .adminClusterMembership("projects/870316890899/locations/global/memberships/gkeonprem-terraform-test")
 *             .description("test cluster")
 *             .onPremVersion("1.13.1-gke.35")
 *             .annotations()
 *             .networkConfig(VMwareClusterNetworkConfigArgs.builder()
 *                 .serviceAddressCidrBlocks("10.96.0.0/12")
 *                 .podAddressCidrBlocks("192.168.0.0/16")
 *                 .hostConfig(VMwareClusterNetworkConfigHostConfigArgs.builder()
 *                     .dnsServers("10.254.41.1")
 *                     .ntpServers("216.239.35.8")
 *                     .dnsSearchDomains("test-domain")
 *                     .build())
 *                 .staticIpConfig(VMwareClusterNetworkConfigStaticIpConfigArgs.builder()
 *                     .ipBlocks(VMwareClusterNetworkConfigStaticIpConfigIpBlockArgs.builder()
 *                         .netmask("255.255.252.0")
 *                         .gateway("10.251.31.254")
 *                         .ips(
 *                             VMwareClusterNetworkConfigStaticIpConfigIpBlockIpArgs.builder()
 *                                 .ip("10.251.30.153")
 *                                 .hostname("test-hostname1")
 *                                 .build(),
 *                             VMwareClusterNetworkConfigStaticIpConfigIpBlockIpArgs.builder()
 *                                 .ip("10.251.31.206")
 *                                 .hostname("test-hostname2")
 *                                 .build(),
 *                             VMwareClusterNetworkConfigStaticIpConfigIpBlockIpArgs.builder()
 *                                 .ip("10.251.31.193")
 *                                 .hostname("test-hostname3")
 *                                 .build(),
 *                             VMwareClusterNetworkConfigStaticIpConfigIpBlockIpArgs.builder()
 *                                 .ip("10.251.30.230")
 *                                 .hostname("test-hostname4")
 *                                 .build())
 *                         .build())
 *                     .build())
 *                 .build())
 *             .controlPlaneNode(VMwareClusterControlPlaneNodeArgs.builder()
 *                 .cpus(4)
 *                 .memory(8192)
 *                 .replicas(1)
 *                 .autoResizeConfig(VMwareClusterControlPlaneNodeAutoResizeConfigArgs.builder()
 *                     .enabled(true)
 *                     .build())
 *                 .build())
 *             .loadBalancer(VMwareClusterLoadBalancerArgs.builder()
 *                 .vipConfig(VMwareClusterLoadBalancerVipConfigArgs.builder()
 *                     .controlPlaneVip("10.251.133.5")
 *                     .ingressVip("10.251.135.19")
 *                     .build())
 *                 .manualLbConfig(VMwareClusterLoadBalancerManualLbConfigArgs.builder()
 *                     .ingressHttpNodePort(30005)
 *                     .ingressHttpsNodePort(30006)
 *                     .controlPlaneNodePort(30007)
 *                     .konnectivityServerNodePort(30008)
 *                     .build())
 *                 .build())
 *             .vcenters(VMwareClusterVcenterArgs.builder()
 *                 .resourcePool("test-resource-pool")
 *                 .datastore("test-datastore")
 *                 .datacenter("test-datacenter")
 *                 .cluster("test-cluster")
 *                 .folder("test-folder")
 *                 .caCertData("test-ca-cert-data")
 *                 .storagePolicyName("test-storage-policy-name")
 *                 .build())
 *             .dataplaneV2(VMwareClusterDataplaneV2Args.builder()
 *                 .dataplaneV2Enabled(true)
 *                 .windowsDataplaneV2Enabled(true)
 *                 .advancedNetworking(true)
 *                 .build())
 *             .vmTrackingEnabled(true)
 *             .enableControlPlaneV2(true)
 *             .upgradePolicy(VMwareClusterUpgradePolicyArgs.builder()
 *                 .controlPlaneOnly(true)
 *                 .build())
 *             .authorization(VMwareClusterAuthorizationArgs.builder()
 *                 .adminUsers(VMwareClusterAuthorizationAdminUserArgs.builder()
 *                     .username("[email protected]")
 *                     .build())
 *                 .build())
 *             .antiAffinityGroups(VMwareClusterAntiAffinityGroupsArgs.builder()
 *                 .aagConfigDisabled(true)
 *                 .build())
 *             .autoRepairConfig(VMwareClusterAutoRepairConfigArgs.builder()
 *                 .enabled(true)
 *                 .build())
 *             .build());
 *     }
 * }
 * ```
 * ```yaml
 * resources:
 *   cluster-manuallb:
 *     type: gcp:gkeonprem:VMwareCluster
 *     properties:
 *       name: cluster-manuallb
 *       location: us-west1
 *       adminClusterMembership: projects/870316890899/locations/global/memberships/gkeonprem-terraform-test
 *       description: test cluster
 *       onPremVersion: 1.13.1-gke.35
 *       annotations: {}
 *       networkConfig:
 *         serviceAddressCidrBlocks:
 *           - 10.96.0.0/12
 *         podAddressCidrBlocks:
 *           - 192.168.0.0/16
 *         hostConfig:
 *           dnsServers:
 *             - 10.254.41.1
 *           ntpServers:
 *             - 216.239.35.8
 *           dnsSearchDomains:
 *             - test-domain
 *         staticIpConfig:
 *           ipBlocks:
 *             - netmask: 255.255.252.0
 *               gateway: 10.251.31.254
 *               ips:
 *                 - ip: 10.251.30.153
 *                   hostname: test-hostname1
 *                 - ip: 10.251.31.206
 *                   hostname: test-hostname2
 *                 - ip: 10.251.31.193
 *                   hostname: test-hostname3
 *                 - ip: 10.251.30.230
 *                   hostname: test-hostname4
 *       controlPlaneNode:
 *         cpus: 4
 *         memory: 8192
 *         replicas: 1
 *         autoResizeConfig:
 *           enabled: true
 *       loadBalancer:
 *         vipConfig:
 *           controlPlaneVip: 10.251.133.5
 *           ingressVip: 10.251.135.19
 *         manualLbConfig:
 *           ingressHttpNodePort: 30005
 *           ingressHttpsNodePort: 30006
 *           controlPlaneNodePort: 30007
 *           konnectivityServerNodePort: 30008
 *       vcenters:
 *         - resourcePool: test-resource-pool
 *           datastore: test-datastore
 *           datacenter: test-datacenter
 *           cluster: test-cluster
 *           folder: test-folder
 *           caCertData: test-ca-cert-data
 *           storagePolicyName: test-storage-policy-name
 *       dataplaneV2:
 *         dataplaneV2Enabled: true
 *         windowsDataplaneV2Enabled: true
 *         advancedNetworking: true
 *       vmTrackingEnabled: true
 *       enableControlPlaneV2: true
 *       upgradePolicy:
 *         controlPlaneOnly: true
 *       authorization:
 *         adminUsers:
 *           - username: [email protected]
 *       antiAffinityGroups:
 *         aagConfigDisabled: true
 *       autoRepairConfig:
 *         enabled: true
 * ```
 * 
 * ## Import
 * VmwareCluster can be imported using any of these accepted formats:
 * * `projects/{{project}}/locations/{{location}}/vmwareClusters/{{name}}`
 * * `{{project}}/{{location}}/{{name}}`
 * * `{{location}}/{{name}}`
 * When using the `pulumi import` command, VmwareCluster can be imported using one of the formats above. For example:
 * ```sh
 * $ pulumi import gcp:gkeonprem/vMwareCluster:VMwareCluster default projects/{{project}}/locations/{{location}}/vmwareClusters/{{name}}
 * ```
 * ```sh
 * $ pulumi import gcp:gkeonprem/vMwareCluster:VMwareCluster default {{project}}/{{location}}/{{name}}
 * ```
 * ```sh
 * $ pulumi import gcp:gkeonprem/vMwareCluster:VMwareCluster default {{location}}/{{name}}
 * ```
 * @property adminClusterMembership The admin cluster this VMware User Cluster belongs to.
 * This is the full resource name of the admin cluster's hub membership.
 * In the future, references to other resource types might be allowed if
 * admin clusters are modeled as their own resources.
 * @property annotations Annotations on the VMware User Cluster. 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 antiAffinityGroups AAGConfig specifies whether to spread VMware User Cluster nodes across at least three physical hosts in the datacenter.
 * @property authorization RBAC policy that will be applied and managed by GKE On-Prem.
 * @property autoRepairConfig Configuration for auto repairing.
 * @property controlPlaneNode VMware User Cluster control plane nodes must have either 1 or 3 replicas.
 * Structure is documented below.
 * @property dataplaneV2 VmwareDataplaneV2Config specifies configuration for Dataplane V2.
 * @property description (Output)
 * The description of the validation check.
 * @property disableBundledIngress Disable bundled ingress.
 * @property enableControlPlaneV2 Enable control plane V2. Default to false.
 * @property loadBalancer Load Balancer configuration.
 * @property location The location of the resource.
 * @property name The VMware cluster name.
 * @property networkConfig The VMware User Cluster network configuration.
 * @property onPremVersion The Anthos clusters on the VMware version for your user cluster.
 * @property project
 * @property storage Storage configuration.
 * @property upgradePolicy Specifies upgrade policy for the cluster.
 * @property vcenters VmwareVCenterConfig specifies vCenter config for the user cluster. Inherited from the admin cluster.
 * @property vmTrackingEnabled Enable VM tracking.
 */
public data class VMwareClusterArgs(
    public val adminClusterMembership: Output? = null,
    public val annotations: Output>? = null,
    public val antiAffinityGroups: Output? = null,
    public val authorization: Output? = null,
    public val autoRepairConfig: Output? = null,
    public val controlPlaneNode: Output? = null,
    public val dataplaneV2: Output? = null,
    public val description: Output? = null,
    public val disableBundledIngress: Output? = null,
    public val enableControlPlaneV2: Output? = null,
    public val loadBalancer: Output? = null,
    public val location: Output? = null,
    public val name: Output? = null,
    public val networkConfig: Output? = null,
    public val onPremVersion: Output? = null,
    public val project: Output? = null,
    public val storage: Output? = null,
    public val upgradePolicy: Output? = null,
    public val vcenters: Output>? = null,
    public val vmTrackingEnabled: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.gcp.gkeonprem.VMwareClusterArgs =
        com.pulumi.gcp.gkeonprem.VMwareClusterArgs.builder()
            .adminClusterMembership(adminClusterMembership?.applyValue({ args0 -> args0 }))
            .annotations(
                annotations?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.key.to(args0.value)
                    }).toMap()
                }),
            )
            .antiAffinityGroups(
                antiAffinityGroups?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .authorization(authorization?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .autoRepairConfig(autoRepairConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .controlPlaneNode(controlPlaneNode?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .dataplaneV2(dataplaneV2?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .description(description?.applyValue({ args0 -> args0 }))
            .disableBundledIngress(disableBundledIngress?.applyValue({ args0 -> args0 }))
            .enableControlPlaneV2(enableControlPlaneV2?.applyValue({ args0 -> args0 }))
            .loadBalancer(loadBalancer?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .location(location?.applyValue({ args0 -> args0 }))
            .name(name?.applyValue({ args0 -> args0 }))
            .networkConfig(networkConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .onPremVersion(onPremVersion?.applyValue({ args0 -> args0 }))
            .project(project?.applyValue({ args0 -> args0 }))
            .storage(storage?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .upgradePolicy(upgradePolicy?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .vcenters(
                vcenters?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .vmTrackingEnabled(vmTrackingEnabled?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [VMwareClusterArgs].
 */
@PulumiTagMarker
public class VMwareClusterArgsBuilder internal constructor() {
    private var adminClusterMembership: Output? = null

    private var annotations: Output>? = null

    private var antiAffinityGroups: Output? = null

    private var authorization: Output? = null

    private var autoRepairConfig: Output? = null

    private var controlPlaneNode: Output? = null

    private var dataplaneV2: Output? = null

    private var description: Output? = null

    private var disableBundledIngress: Output? = null

    private var enableControlPlaneV2: Output? = null

    private var loadBalancer: Output? = null

    private var location: Output? = null

    private var name: Output? = null

    private var networkConfig: Output? = null

    private var onPremVersion: Output? = null

    private var project: Output? = null

    private var storage: Output? = null

    private var upgradePolicy: Output? = null

    private var vcenters: Output>? = null

    private var vmTrackingEnabled: Output? = null

    /**
     * @param value The admin cluster this VMware User Cluster belongs to.
     * This is the full resource name of the admin cluster's hub membership.
     * In the future, references to other resource types might be allowed if
     * admin clusters are modeled as their own resources.
     */
    @JvmName("umrqwcjpugmuvogv")
    public suspend fun adminClusterMembership(`value`: Output) {
        this.adminClusterMembership = value
    }

    /**
     * @param value Annotations on the VMware User Cluster. 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("psbestxuxelkobon")
    public suspend fun annotations(`value`: Output>) {
        this.annotations = value
    }

    /**
     * @param value AAGConfig specifies whether to spread VMware User Cluster nodes across at least three physical hosts in the datacenter.
     */
    @JvmName("ipukxwsxpmfstsvo")
    public suspend fun antiAffinityGroups(`value`: Output) {
        this.antiAffinityGroups = value
    }

    /**
     * @param value RBAC policy that will be applied and managed by GKE On-Prem.
     */
    @JvmName("acdbjekojojqgwbg")
    public suspend fun authorization(`value`: Output) {
        this.authorization = value
    }

    /**
     * @param value Configuration for auto repairing.
     */
    @JvmName("soppghmcpstlgbxv")
    public suspend fun autoRepairConfig(`value`: Output) {
        this.autoRepairConfig = value
    }

    /**
     * @param value VMware User Cluster control plane nodes must have either 1 or 3 replicas.
     * Structure is documented below.
     */
    @JvmName("xeioyiwpwcgbpxxo")
    public suspend fun controlPlaneNode(`value`: Output) {
        this.controlPlaneNode = value
    }

    /**
     * @param value VmwareDataplaneV2Config specifies configuration for Dataplane V2.
     */
    @JvmName("ieavrhxkcyfpregw")
    public suspend fun dataplaneV2(`value`: Output) {
        this.dataplaneV2 = value
    }

    /**
     * @param value (Output)
     * The description of the validation check.
     */
    @JvmName("apiceetmyvjnsfta")
    public suspend fun description(`value`: Output) {
        this.description = value
    }

    /**
     * @param value Disable bundled ingress.
     */
    @JvmName("qujjowprjcbpmele")
    public suspend fun disableBundledIngress(`value`: Output) {
        this.disableBundledIngress = value
    }

    /**
     * @param value Enable control plane V2. Default to false.
     */
    @JvmName("nrghtjebyacchjwp")
    public suspend fun enableControlPlaneV2(`value`: Output) {
        this.enableControlPlaneV2 = value
    }

    /**
     * @param value Load Balancer configuration.
     */
    @JvmName("yqlvqnjfmmdmmmvt")
    public suspend fun loadBalancer(`value`: Output) {
        this.loadBalancer = value
    }

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

    /**
     * @param value The VMware cluster name.
     */
    @JvmName("cvrxtpibmrpggvmk")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value The VMware User Cluster network configuration.
     */
    @JvmName("orglotdrmurfpdjl")
    public suspend fun networkConfig(`value`: Output) {
        this.networkConfig = value
    }

    /**
     * @param value The Anthos clusters on the VMware version for your user cluster.
     */
    @JvmName("jpidmijkvupxctri")
    public suspend fun onPremVersion(`value`: Output) {
        this.onPremVersion = value
    }

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

    /**
     * @param value Storage configuration.
     */
    @JvmName("omftvoamlcdcnpmt")
    public suspend fun storage(`value`: Output) {
        this.storage = value
    }

    /**
     * @param value Specifies upgrade policy for the cluster.
     */
    @JvmName("rodqofkyngdbdleq")
    public suspend fun upgradePolicy(`value`: Output) {
        this.upgradePolicy = value
    }

    /**
     * @param value VmwareVCenterConfig specifies vCenter config for the user cluster. Inherited from the admin cluster.
     */
    @JvmName("bxbkgghapinosvkb")
    public suspend fun vcenters(`value`: Output>) {
        this.vcenters = value
    }

    @JvmName("newpdhnaxgtuwcrc")
    public suspend fun vcenters(vararg values: Output) {
        this.vcenters = Output.all(values.asList())
    }

    /**
     * @param values VmwareVCenterConfig specifies vCenter config for the user cluster. Inherited from the admin cluster.
     */
    @JvmName("ooppdtwsrbytufpe")
    public suspend fun vcenters(values: List>) {
        this.vcenters = Output.all(values)
    }

    /**
     * @param value Enable VM tracking.
     */
    @JvmName("trhndomcacbwodtf")
    public suspend fun vmTrackingEnabled(`value`: Output) {
        this.vmTrackingEnabled = value
    }

    /**
     * @param value The admin cluster this VMware User Cluster belongs to.
     * This is the full resource name of the admin cluster's hub membership.
     * In the future, references to other resource types might be allowed if
     * admin clusters are modeled as their own resources.
     */
    @JvmName("eaeedenkjtvwmecw")
    public suspend fun adminClusterMembership(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.adminClusterMembership = mapped
    }

    /**
     * @param value Annotations on the VMware User Cluster. 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("wtjrsylgfgvjbwjk")
    public suspend fun annotations(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.annotations = mapped
    }

    /**
     * @param values Annotations on the VMware User Cluster. 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("vqgysiwpldjmmshj")
    public fun annotations(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.annotations = mapped
    }

    /**
     * @param value AAGConfig specifies whether to spread VMware User Cluster nodes across at least three physical hosts in the datacenter.
     */
    @JvmName("myxtsyuxjwoqtjey")
    public suspend fun antiAffinityGroups(`value`: VMwareClusterAntiAffinityGroupsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.antiAffinityGroups = mapped
    }

    /**
     * @param argument AAGConfig specifies whether to spread VMware User Cluster nodes across at least three physical hosts in the datacenter.
     */
    @JvmName("lbsudnqeeqwbysbk")
    public suspend fun antiAffinityGroups(argument: suspend VMwareClusterAntiAffinityGroupsArgsBuilder.() -> Unit) {
        val toBeMapped = VMwareClusterAntiAffinityGroupsArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.antiAffinityGroups = mapped
    }

    /**
     * @param value RBAC policy that will be applied and managed by GKE On-Prem.
     */
    @JvmName("exxcbsyqquhmsovf")
    public suspend fun authorization(`value`: VMwareClusterAuthorizationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.authorization = mapped
    }

    /**
     * @param argument RBAC policy that will be applied and managed by GKE On-Prem.
     */
    @JvmName("egaybbyvpkhqxhcb")
    public suspend fun authorization(argument: suspend VMwareClusterAuthorizationArgsBuilder.() -> Unit) {
        val toBeMapped = VMwareClusterAuthorizationArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.authorization = mapped
    }

    /**
     * @param value Configuration for auto repairing.
     */
    @JvmName("xvmydkjxbeqfvlxy")
    public suspend fun autoRepairConfig(`value`: VMwareClusterAutoRepairConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.autoRepairConfig = mapped
    }

    /**
     * @param argument Configuration for auto repairing.
     */
    @JvmName("qupejrmsthyiwrqq")
    public suspend fun autoRepairConfig(argument: suspend VMwareClusterAutoRepairConfigArgsBuilder.() -> Unit) {
        val toBeMapped = VMwareClusterAutoRepairConfigArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.autoRepairConfig = mapped
    }

    /**
     * @param value VMware User Cluster control plane nodes must have either 1 or 3 replicas.
     * Structure is documented below.
     */
    @JvmName("imemwirrxkqbtpwg")
    public suspend fun controlPlaneNode(`value`: VMwareClusterControlPlaneNodeArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.controlPlaneNode = mapped
    }

    /**
     * @param argument VMware User Cluster control plane nodes must have either 1 or 3 replicas.
     * Structure is documented below.
     */
    @JvmName("hfkjwmuricqfdnwa")
    public suspend fun controlPlaneNode(argument: suspend VMwareClusterControlPlaneNodeArgsBuilder.() -> Unit) {
        val toBeMapped = VMwareClusterControlPlaneNodeArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.controlPlaneNode = mapped
    }

    /**
     * @param value VmwareDataplaneV2Config specifies configuration for Dataplane V2.
     */
    @JvmName("tsltepcudgyxftlp")
    public suspend fun dataplaneV2(`value`: VMwareClusterDataplaneV2Args?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dataplaneV2 = mapped
    }

    /**
     * @param argument VmwareDataplaneV2Config specifies configuration for Dataplane V2.
     */
    @JvmName("wtaqhquputixuqsk")
    public suspend fun dataplaneV2(argument: suspend VMwareClusterDataplaneV2ArgsBuilder.() -> Unit) {
        val toBeMapped = VMwareClusterDataplaneV2ArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.dataplaneV2 = mapped
    }

    /**
     * @param value (Output)
     * The description of the validation check.
     */
    @JvmName("bwhrsnaqeqcfetxc")
    public suspend fun description(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.description = mapped
    }

    /**
     * @param value Disable bundled ingress.
     */
    @JvmName("drwsujorxdwvklhg")
    public suspend fun disableBundledIngress(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.disableBundledIngress = mapped
    }

    /**
     * @param value Enable control plane V2. Default to false.
     */
    @JvmName("tnyjsvmobunpyxaa")
    public suspend fun enableControlPlaneV2(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.enableControlPlaneV2 = mapped
    }

    /**
     * @param value Load Balancer configuration.
     */
    @JvmName("anuxcotopjlhjope")
    public suspend fun loadBalancer(`value`: VMwareClusterLoadBalancerArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.loadBalancer = mapped
    }

    /**
     * @param argument Load Balancer configuration.
     */
    @JvmName("dqxkalnnujogxxtd")
    public suspend fun loadBalancer(argument: suspend VMwareClusterLoadBalancerArgsBuilder.() -> Unit) {
        val toBeMapped = VMwareClusterLoadBalancerArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.loadBalancer = mapped
    }

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

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

    /**
     * @param value The VMware User Cluster network configuration.
     */
    @JvmName("mjioywwwyajhrile")
    public suspend fun networkConfig(`value`: VMwareClusterNetworkConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.networkConfig = mapped
    }

    /**
     * @param argument The VMware User Cluster network configuration.
     */
    @JvmName("mapdopybowqarbnh")
    public suspend fun networkConfig(argument: suspend VMwareClusterNetworkConfigArgsBuilder.() -> Unit) {
        val toBeMapped = VMwareClusterNetworkConfigArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.networkConfig = mapped
    }

    /**
     * @param value The Anthos clusters on the VMware version for your user cluster.
     */
    @JvmName("rcsteilvquprdwtq")
    public suspend fun onPremVersion(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.onPremVersion = mapped
    }

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

    /**
     * @param value Storage configuration.
     */
    @JvmName("juahbklggwmmixwr")
    public suspend fun storage(`value`: VMwareClusterStorageArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.storage = mapped
    }

    /**
     * @param argument Storage configuration.
     */
    @JvmName("jhaixcyclqsxloxl")
    public suspend fun storage(argument: suspend VMwareClusterStorageArgsBuilder.() -> Unit) {
        val toBeMapped = VMwareClusterStorageArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.storage = mapped
    }

    /**
     * @param value Specifies upgrade policy for the cluster.
     */
    @JvmName("twqgckvmepmffcpt")
    public suspend fun upgradePolicy(`value`: VMwareClusterUpgradePolicyArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.upgradePolicy = mapped
    }

    /**
     * @param argument Specifies upgrade policy for the cluster.
     */
    @JvmName("swanfeqtwwfdfyui")
    public suspend fun upgradePolicy(argument: suspend VMwareClusterUpgradePolicyArgsBuilder.() -> Unit) {
        val toBeMapped = VMwareClusterUpgradePolicyArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.upgradePolicy = mapped
    }

    /**
     * @param value VmwareVCenterConfig specifies vCenter config for the user cluster. Inherited from the admin cluster.
     */
    @JvmName("qihkdxquyhecgscu")
    public suspend fun vcenters(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.vcenters = mapped
    }

    /**
     * @param argument VmwareVCenterConfig specifies vCenter config for the user cluster. Inherited from the admin cluster.
     */
    @JvmName("dyrfsbdjvgbotmsr")
    public suspend fun vcenters(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            VMwareClusterVcenterArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.vcenters = mapped
    }

    /**
     * @param argument VmwareVCenterConfig specifies vCenter config for the user cluster. Inherited from the admin cluster.
     */
    @JvmName("yigawlvnjenfthpt")
    public suspend fun vcenters(vararg argument: suspend VMwareClusterVcenterArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            VMwareClusterVcenterArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.vcenters = mapped
    }

    /**
     * @param argument VmwareVCenterConfig specifies vCenter config for the user cluster. Inherited from the admin cluster.
     */
    @JvmName("wmpaehpkqpwwujfa")
    public suspend fun vcenters(argument: suspend VMwareClusterVcenterArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(VMwareClusterVcenterArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.vcenters = mapped
    }

    /**
     * @param values VmwareVCenterConfig specifies vCenter config for the user cluster. Inherited from the admin cluster.
     */
    @JvmName("lgcqosvnqfwgfolt")
    public suspend fun vcenters(vararg values: VMwareClusterVcenterArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.vcenters = mapped
    }

    /**
     * @param value Enable VM tracking.
     */
    @JvmName("ktcdnkdirolbjesf")
    public suspend fun vmTrackingEnabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.vmTrackingEnabled = mapped
    }

    internal fun build(): VMwareClusterArgs = VMwareClusterArgs(
        adminClusterMembership = adminClusterMembership,
        annotations = annotations,
        antiAffinityGroups = antiAffinityGroups,
        authorization = authorization,
        autoRepairConfig = autoRepairConfig,
        controlPlaneNode = controlPlaneNode,
        dataplaneV2 = dataplaneV2,
        description = description,
        disableBundledIngress = disableBundledIngress,
        enableControlPlaneV2 = enableControlPlaneV2,
        loadBalancer = loadBalancer,
        location = location,
        name = name,
        networkConfig = networkConfig,
        onPremVersion = onPremVersion,
        project = project,
        storage = storage,
        upgradePolicy = upgradePolicy,
        vcenters = vcenters,
        vmTrackingEnabled = vmTrackingEnabled,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy