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

com.pulumi.gcp.gkeonprem.kotlin.VMwareCluster.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.gcp.gkeonprem.kotlin.outputs.VMwareClusterAntiAffinityGroups
import com.pulumi.gcp.gkeonprem.kotlin.outputs.VMwareClusterAuthorization
import com.pulumi.gcp.gkeonprem.kotlin.outputs.VMwareClusterAutoRepairConfig
import com.pulumi.gcp.gkeonprem.kotlin.outputs.VMwareClusterControlPlaneNode
import com.pulumi.gcp.gkeonprem.kotlin.outputs.VMwareClusterDataplaneV2
import com.pulumi.gcp.gkeonprem.kotlin.outputs.VMwareClusterFleet
import com.pulumi.gcp.gkeonprem.kotlin.outputs.VMwareClusterLoadBalancer
import com.pulumi.gcp.gkeonprem.kotlin.outputs.VMwareClusterNetworkConfig
import com.pulumi.gcp.gkeonprem.kotlin.outputs.VMwareClusterStatus
import com.pulumi.gcp.gkeonprem.kotlin.outputs.VMwareClusterStorage
import com.pulumi.gcp.gkeonprem.kotlin.outputs.VMwareClusterUpgradePolicy
import com.pulumi.gcp.gkeonprem.kotlin.outputs.VMwareClusterValidationCheck
import com.pulumi.gcp.gkeonprem.kotlin.outputs.VMwareClusterVcenter
import com.pulumi.kotlin.KotlinCustomResource
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.ResourceMapper
import com.pulumi.kotlin.options.CustomResourceOptions
import com.pulumi.kotlin.options.CustomResourceOptionsBuilder
import com.pulumi.resources.Resource
import kotlin.Boolean
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.collections.Map
import com.pulumi.gcp.gkeonprem.kotlin.outputs.VMwareClusterAntiAffinityGroups.Companion.toKotlin as vMwareClusterAntiAffinityGroupsToKotlin
import com.pulumi.gcp.gkeonprem.kotlin.outputs.VMwareClusterAuthorization.Companion.toKotlin as vMwareClusterAuthorizationToKotlin
import com.pulumi.gcp.gkeonprem.kotlin.outputs.VMwareClusterAutoRepairConfig.Companion.toKotlin as vMwareClusterAutoRepairConfigToKotlin
import com.pulumi.gcp.gkeonprem.kotlin.outputs.VMwareClusterControlPlaneNode.Companion.toKotlin as vMwareClusterControlPlaneNodeToKotlin
import com.pulumi.gcp.gkeonprem.kotlin.outputs.VMwareClusterDataplaneV2.Companion.toKotlin as vMwareClusterDataplaneV2ToKotlin
import com.pulumi.gcp.gkeonprem.kotlin.outputs.VMwareClusterFleet.Companion.toKotlin as vMwareClusterFleetToKotlin
import com.pulumi.gcp.gkeonprem.kotlin.outputs.VMwareClusterLoadBalancer.Companion.toKotlin as vMwareClusterLoadBalancerToKotlin
import com.pulumi.gcp.gkeonprem.kotlin.outputs.VMwareClusterNetworkConfig.Companion.toKotlin as vMwareClusterNetworkConfigToKotlin
import com.pulumi.gcp.gkeonprem.kotlin.outputs.VMwareClusterStatus.Companion.toKotlin as vMwareClusterStatusToKotlin
import com.pulumi.gcp.gkeonprem.kotlin.outputs.VMwareClusterStorage.Companion.toKotlin as vMwareClusterStorageToKotlin
import com.pulumi.gcp.gkeonprem.kotlin.outputs.VMwareClusterUpgradePolicy.Companion.toKotlin as vMwareClusterUpgradePolicyToKotlin
import com.pulumi.gcp.gkeonprem.kotlin.outputs.VMwareClusterValidationCheck.Companion.toKotlin as vMwareClusterValidationCheckToKotlin
import com.pulumi.gcp.gkeonprem.kotlin.outputs.VMwareClusterVcenter.Companion.toKotlin as vMwareClusterVcenterToKotlin

/**
 * Builder for [VMwareCluster].
 */
@PulumiTagMarker
public class VMwareClusterResourceBuilder internal constructor() {
    public var name: String? = null

    public var args: VMwareClusterArgs = VMwareClusterArgs()

    public var opts: CustomResourceOptions = CustomResourceOptions()

    /**
     * @param name The _unique_ name of the resulting resource.
     */
    public fun name(`value`: String) {
        this.name = value
    }

    /**
     * @param block The arguments to use to populate this resource's properties.
     */
    public suspend fun args(block: suspend VMwareClusterArgsBuilder.() -> Unit) {
        val builder = VMwareClusterArgsBuilder()
        block(builder)
        this.args = builder.build()
    }

    /**
     * @param block A bag of options that control this resource's behavior.
     */
    public suspend fun opts(block: suspend CustomResourceOptionsBuilder.() -> Unit) {
        this.opts = com.pulumi.kotlin.options.CustomResourceOptions.opts(block)
    }

    internal fun build(): VMwareCluster {
        val builtJavaResource = com.pulumi.gcp.gkeonprem.VMwareCluster(
            this.name,
            this.args.toJava(),
            this.opts.toJava(),
        )
        return VMwareCluster(builtJavaResource)
    }
}

/**
 * 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}}
 * ```
 */
public class VMwareCluster internal constructor(
    override val javaResource: com.pulumi.gcp.gkeonprem.VMwareCluster,
) : KotlinCustomResource(javaResource, VMwareClusterMapper) {
    /**
     * 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.
     */
    public val adminClusterMembership: Output
        get() = javaResource.adminClusterMembership().applyValue({ args0 -> args0 })

    /**
     * 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.
     */
    public val annotations: Output>?
        get() = javaResource.annotations().applyValue({ args0 ->
            args0.map({ args0 ->
                args0.map({ args0 ->
                    args0.key.to(args0.value)
                }).toMap()
            }).orElse(null)
        })

    /**
     * AAGConfig specifies whether to spread VMware User Cluster nodes across at least three physical hosts in the datacenter.
     */
    public val antiAffinityGroups: Output
        get() = javaResource.antiAffinityGroups().applyValue({ args0 ->
            args0.let({ args0 ->
                vMwareClusterAntiAffinityGroupsToKotlin(args0)
            })
        })

    /**
     * RBAC policy that will be applied and managed by GKE On-Prem.
     */
    public val authorization: Output?
        get() = javaResource.authorization().applyValue({ args0 ->
            args0.map({ args0 ->
                args0.let({ args0 -> vMwareClusterAuthorizationToKotlin(args0) })
            }).orElse(null)
        })

    /**
     * Configuration for auto repairing.
     */
    public val autoRepairConfig: Output
        get() = javaResource.autoRepairConfig().applyValue({ args0 ->
            args0.let({ args0 ->
                vMwareClusterAutoRepairConfigToKotlin(args0)
            })
        })

    /**
     * VMware User Cluster control plane nodes must have either 1 or 3 replicas.
     * Structure is documented below.
     */
    public val controlPlaneNode: Output
        get() = javaResource.controlPlaneNode().applyValue({ args0 ->
            args0.let({ args0 ->
                vMwareClusterControlPlaneNodeToKotlin(args0)
            })
        })

    /**
     * The time at which VMware User Cluster was created.
     */
    public val createTime: Output
        get() = javaResource.createTime().applyValue({ args0 -> args0 })

    /**
     * VmwareDataplaneV2Config specifies configuration for Dataplane V2.
     */
    public val dataplaneV2: Output
        get() = javaResource.dataplaneV2().applyValue({ args0 ->
            args0.let({ args0 ->
                vMwareClusterDataplaneV2ToKotlin(args0)
            })
        })

    /**
     * The time at which VMware User Cluster was deleted.
     */
    public val deleteTime: Output
        get() = javaResource.deleteTime().applyValue({ args0 -> args0 })

    /**
     * (Output)
     * The description of the validation check.
     */
    public val description: Output?
        get() = javaResource.description().applyValue({ args0 ->
            args0.map({ args0 ->
                args0
            }).orElse(null)
        })

    /**
     * Disable bundled ingress.
     */
    public val disableBundledIngress: Output?
        get() = javaResource.disableBundledIngress().applyValue({ args0 ->
            args0.map({ args0 ->
                args0
            }).orElse(null)
        })

    public val effectiveAnnotations: Output>
        get() = javaResource.effectiveAnnotations().applyValue({ args0 ->
            args0.map({ args0 ->
                args0.key.to(args0.value)
            }).toMap()
        })

    /**
     * Enable control plane V2. Default to false.
     */
    public val enableControlPlaneV2: Output?
        get() = javaResource.enableControlPlaneV2().applyValue({ args0 ->
            args0.map({ args0 ->
                args0
            }).orElse(null)
        })

    /**
     * The DNS name of VMware User Cluster's API server.
     */
    public val endpoint: Output
        get() = javaResource.endpoint().applyValue({ args0 -> args0 })

    /**
     * This checksum is computed by the server based on the value of other
     * fields, and may be sent on update and delete requests to ensure the
     * client has an up-to-date value before proceeding.
     * Allows clients to perform consistent read-modify-writes
     * through optimistic concurrency control.
     */
    public val etag: Output
        get() = javaResource.etag().applyValue({ args0 -> args0 })

    /**
     * Fleet configuration for the cluster.
     * Structure is documented below.
     */
    public val fleets: Output>
        get() = javaResource.fleets().applyValue({ args0 ->
            args0.map({ args0 ->
                args0.let({ args0 ->
                    vMwareClusterFleetToKotlin(args0)
                })
            })
        })

    /**
     * Load Balancer configuration.
     */
    public val loadBalancer: Output?
        get() = javaResource.loadBalancer().applyValue({ args0 ->
            args0.map({ args0 ->
                args0.let({ args0 ->
                    vMwareClusterLoadBalancerToKotlin(args0)
                })
            }).orElse(null)
        })

    /**
     * The object name of the VMware OnPremUserCluster custom resource on the
     * associated admin cluster. This field is used to support conflicting
     * names when enrolling existing clusters to the API. When used as a part of
     * cluster enrollment, this field will differ from the ID in the resource
     * name. For new clusters, this field will match the user provided cluster ID
     * and be visible in the last component of the resource name. It is not
     * modifiable.
     * All users should use this name to access their cluster using gkectl or
     * kubectl and should expect to see the local name when viewing admin
     * cluster controller logs.
     */
    public val localName: Output
        get() = javaResource.localName().applyValue({ args0 -> args0 })

    /**
     * The location of the resource.
     */
    public val location: Output
        get() = javaResource.location().applyValue({ args0 -> args0 })

    /**
     * The VMware cluster name.
     */
    public val name: Output
        get() = javaResource.name().applyValue({ args0 -> args0 })

    /**
     * The VMware User Cluster network configuration.
     */
    public val networkConfig: Output?
        get() = javaResource.networkConfig().applyValue({ args0 ->
            args0.map({ args0 ->
                args0.let({ args0 -> vMwareClusterNetworkConfigToKotlin(args0) })
            }).orElse(null)
        })

    /**
     * The Anthos clusters on the VMware version for your user cluster.
     */
    public val onPremVersion: Output
        get() = javaResource.onPremVersion().applyValue({ args0 -> args0 })

    public val project: Output
        get() = javaResource.project().applyValue({ args0 -> args0 })

    /**
     * If set, there are currently changes in flight to the VMware User Cluster.
     */
    public val reconciling: Output
        get() = javaResource.reconciling().applyValue({ args0 -> args0 })

    /**
     * (Output)
     * The lifecycle state of the condition.
     */
    public val state: Output
        get() = javaResource.state().applyValue({ args0 -> args0 })

    /**
     * (Output)
     * Specifies the detailed validation check status
     * Structure is documented below.
     */
    public val statuses: Output>
        get() = javaResource.statuses().applyValue({ args0 ->
            args0.map({ args0 ->
                args0.let({ args0 ->
                    vMwareClusterStatusToKotlin(args0)
                })
            })
        })

    /**
     * Storage configuration.
     */
    public val storage: Output
        get() = javaResource.storage().applyValue({ args0 ->
            args0.let({ args0 ->
                vMwareClusterStorageToKotlin(args0)
            })
        })

    /**
     * The unique identifier of the VMware User Cluster.
     */
    public val uid: Output
        get() = javaResource.uid().applyValue({ args0 -> args0 })

    /**
     * The time at which VMware User Cluster was last updated.
     */
    public val updateTime: Output
        get() = javaResource.updateTime().applyValue({ args0 -> args0 })

    /**
     * Specifies upgrade policy for the cluster.
     */
    public val upgradePolicy: Output?
        get() = javaResource.upgradePolicy().applyValue({ args0 ->
            args0.map({ args0 ->
                args0.let({ args0 -> vMwareClusterUpgradePolicyToKotlin(args0) })
            }).orElse(null)
        })

    /**
     * ValidationCheck represents the result of the preflight check job.
     * Structure is documented below.
     */
    public val validationChecks: Output>
        get() = javaResource.validationChecks().applyValue({ args0 ->
            args0.map({ args0 ->
                args0.let({ args0 -> vMwareClusterValidationCheckToKotlin(args0) })
            })
        })

    /**
     * VmwareVCenterConfig specifies vCenter config for the user cluster. Inherited from the admin cluster.
     */
    public val vcenters: Output>?
        get() = javaResource.vcenters().applyValue({ args0 ->
            args0.map({ args0 ->
                args0.map({ args0 ->
                    args0.let({ args0 -> vMwareClusterVcenterToKotlin(args0) })
                })
            }).orElse(null)
        })

    /**
     * Enable VM tracking.
     */
    public val vmTrackingEnabled: Output
        get() = javaResource.vmTrackingEnabled().applyValue({ args0 -> args0 })
}

public object VMwareClusterMapper : ResourceMapper {
    override fun supportsMappingOfType(javaResource: Resource): Boolean =
        com.pulumi.gcp.gkeonprem.VMwareCluster::class == javaResource::class

    override fun map(javaResource: Resource): VMwareCluster = VMwareCluster(
        javaResource as
            com.pulumi.gcp.gkeonprem.VMwareCluster,
    )
}

/**
 * @see [VMwareCluster].
 * @param name The _unique_ name of the resulting resource.
 * @param block Builder for [VMwareCluster].
 */
public suspend fun vMwareCluster(
    name: String,
    block: suspend VMwareClusterResourceBuilder.() -> Unit,
): VMwareCluster {
    val builder = VMwareClusterResourceBuilder()
    builder.name(name)
    block(builder)
    return builder.build()
}

/**
 * @see [VMwareCluster].
 * @param name The _unique_ name of the resulting resource.
 */
public fun vMwareCluster(name: String): VMwareCluster {
    val builder = VMwareClusterResourceBuilder()
    builder.name(name)
    return builder.build()
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy