/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */
import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface GkeonpremVmwareClusterConfig extends cdktf.TerraformMetaArguments {
    /**
    * 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.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#admin_cluster_membership GkeonpremVmwareCluster#admin_cluster_membership}
    */
    readonly adminClusterMembership: string;
    /**
    * 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.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#annotations GkeonpremVmwareCluster#annotations}
    */
    readonly annotations?: {
        [key: string]: string;
    };
    /**
    * A human readable description of this VMware User Cluster.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#description GkeonpremVmwareCluster#description}
    */
    readonly description?: string;
    /**
    * Disable bundled ingress.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#disable_bundled_ingress GkeonpremVmwareCluster#disable_bundled_ingress}
    */
    readonly disableBundledIngress?: boolean | cdktf.IResolvable;
    /**
    * Enable advanced cluster. Default to false.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#enable_advanced_cluster GkeonpremVmwareCluster#enable_advanced_cluster}
    */
    readonly enableAdvancedCluster?: boolean | cdktf.IResolvable;
    /**
    * Enable control plane V2. Default to false.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#enable_control_plane_v2 GkeonpremVmwareCluster#enable_control_plane_v2}
    */
    readonly enableControlPlaneV2?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#id GkeonpremVmwareCluster#id}
    *
    * Please be aware that the id field is automatically added to all resources in Terraform providers using a Terraform provider SDK version below 2.
    * If you experience problems setting this value it might not be settable. Please take a look at the provider documentation to ensure it should be settable.
    */
    readonly id?: string;
    /**
    * The location of the resource.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#location GkeonpremVmwareCluster#location}
    */
    readonly location: string;
    /**
    * The VMware cluster name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#name GkeonpremVmwareCluster#name}
    */
    readonly name: string;
    /**
    * The Anthos clusters on the VMware version for your user cluster.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#on_prem_version GkeonpremVmwareCluster#on_prem_version}
    */
    readonly onPremVersion: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#project GkeonpremVmwareCluster#project}
    */
    readonly project?: string;
    /**
    * Enable VM tracking.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#vm_tracking_enabled GkeonpremVmwareCluster#vm_tracking_enabled}
    */
    readonly vmTrackingEnabled?: boolean | cdktf.IResolvable;
    /**
    * anti_affinity_groups block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#anti_affinity_groups GkeonpremVmwareCluster#anti_affinity_groups}
    */
    readonly antiAffinityGroups?: GkeonpremVmwareClusterAntiAffinityGroups;
    /**
    * authorization block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#authorization GkeonpremVmwareCluster#authorization}
    */
    readonly authorization?: GkeonpremVmwareClusterAuthorization;
    /**
    * auto_repair_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#auto_repair_config GkeonpremVmwareCluster#auto_repair_config}
    */
    readonly autoRepairConfig?: GkeonpremVmwareClusterAutoRepairConfig;
    /**
    * control_plane_node block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#control_plane_node GkeonpremVmwareCluster#control_plane_node}
    */
    readonly controlPlaneNode: GkeonpremVmwareClusterControlPlaneNode;
    /**
    * dataplane_v2 block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#dataplane_v2 GkeonpremVmwareCluster#dataplane_v2}
    */
    readonly dataplaneV2?: GkeonpremVmwareClusterDataplaneV2;
    /**
    * load_balancer block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#load_balancer GkeonpremVmwareCluster#load_balancer}
    */
    readonly loadBalancer?: GkeonpremVmwareClusterLoadBalancer;
    /**
    * network_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#network_config GkeonpremVmwareCluster#network_config}
    */
    readonly networkConfig?: GkeonpremVmwareClusterNetworkConfig;
    /**
    * storage block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#storage GkeonpremVmwareCluster#storage}
    */
    readonly storage?: GkeonpremVmwareClusterStorage;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#timeouts GkeonpremVmwareCluster#timeouts}
    */
    readonly timeouts?: GkeonpremVmwareClusterTimeouts;
    /**
    * upgrade_policy block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#upgrade_policy GkeonpremVmwareCluster#upgrade_policy}
    */
    readonly upgradePolicy?: GkeonpremVmwareClusterUpgradePolicy;
    /**
    * vcenter block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#vcenter GkeonpremVmwareCluster#vcenter}
    */
    readonly vcenter?: GkeonpremVmwareClusterVcenter;
}
export interface GkeonpremVmwareClusterFleet {
}
export declare function gkeonpremVmwareClusterFleetToTerraform(struct?: GkeonpremVmwareClusterFleet): any;
export declare function gkeonpremVmwareClusterFleetToHclTerraform(struct?: GkeonpremVmwareClusterFleet): any;
export declare class GkeonpremVmwareClusterFleetOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): GkeonpremVmwareClusterFleet | undefined;
    set internalValue(value: GkeonpremVmwareClusterFleet | undefined);
    get membership(): string;
}
export declare class GkeonpremVmwareClusterFleetList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): GkeonpremVmwareClusterFleetOutputReference;
}
export interface GkeonpremVmwareClusterStatusConditions {
}
export declare function gkeonpremVmwareClusterStatusConditionsToTerraform(struct?: GkeonpremVmwareClusterStatusConditions): any;
export declare function gkeonpremVmwareClusterStatusConditionsToHclTerraform(struct?: GkeonpremVmwareClusterStatusConditions): any;
export declare class GkeonpremVmwareClusterStatusConditionsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): GkeonpremVmwareClusterStatusConditions | undefined;
    set internalValue(value: GkeonpremVmwareClusterStatusConditions | undefined);
    get lastTransitionTime(): string;
    get message(): string;
    get reason(): string;
    get state(): string;
    get type(): string;
}
export declare class GkeonpremVmwareClusterStatusConditionsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): GkeonpremVmwareClusterStatusConditionsOutputReference;
}
export interface GkeonpremVmwareClusterStatus {
}
export declare function gkeonpremVmwareClusterStatusToTerraform(struct?: GkeonpremVmwareClusterStatus): any;
export declare function gkeonpremVmwareClusterStatusToHclTerraform(struct?: GkeonpremVmwareClusterStatus): any;
export declare class GkeonpremVmwareClusterStatusOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): GkeonpremVmwareClusterStatus | undefined;
    set internalValue(value: GkeonpremVmwareClusterStatus | undefined);
    private _conditions;
    get conditions(): GkeonpremVmwareClusterStatusConditionsList;
    get errorMessage(): string;
}
export declare class GkeonpremVmwareClusterStatusList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): GkeonpremVmwareClusterStatusOutputReference;
}
export interface GkeonpremVmwareClusterValidationCheckStatusResult {
}
export declare function gkeonpremVmwareClusterValidationCheckStatusResultToTerraform(struct?: GkeonpremVmwareClusterValidationCheckStatusResult): any;
export declare function gkeonpremVmwareClusterValidationCheckStatusResultToHclTerraform(struct?: GkeonpremVmwareClusterValidationCheckStatusResult): any;
export declare class GkeonpremVmwareClusterValidationCheckStatusResultOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): GkeonpremVmwareClusterValidationCheckStatusResult | undefined;
    set internalValue(value: GkeonpremVmwareClusterValidationCheckStatusResult | undefined);
    get category(): string;
    get description(): string;
    get details(): string;
    get options(): string;
    get reason(): string;
}
export declare class GkeonpremVmwareClusterValidationCheckStatusResultList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): GkeonpremVmwareClusterValidationCheckStatusResultOutputReference;
}
export interface GkeonpremVmwareClusterValidationCheckStatus {
}
export declare function gkeonpremVmwareClusterValidationCheckStatusToTerraform(struct?: GkeonpremVmwareClusterValidationCheckStatus): any;
export declare function gkeonpremVmwareClusterValidationCheckStatusToHclTerraform(struct?: GkeonpremVmwareClusterValidationCheckStatus): any;
export declare class GkeonpremVmwareClusterValidationCheckStatusOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): GkeonpremVmwareClusterValidationCheckStatus | undefined;
    set internalValue(value: GkeonpremVmwareClusterValidationCheckStatus | undefined);
    private _result;
    get result(): GkeonpremVmwareClusterValidationCheckStatusResultList;
}
export declare class GkeonpremVmwareClusterValidationCheckStatusList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): GkeonpremVmwareClusterValidationCheckStatusOutputReference;
}
export interface GkeonpremVmwareClusterValidationCheck {
}
export declare function gkeonpremVmwareClusterValidationCheckToTerraform(struct?: GkeonpremVmwareClusterValidationCheck): any;
export declare function gkeonpremVmwareClusterValidationCheckToHclTerraform(struct?: GkeonpremVmwareClusterValidationCheck): any;
export declare class GkeonpremVmwareClusterValidationCheckOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): GkeonpremVmwareClusterValidationCheck | undefined;
    set internalValue(value: GkeonpremVmwareClusterValidationCheck | undefined);
    get options(): string;
    get scenario(): string;
    private _status;
    get status(): GkeonpremVmwareClusterValidationCheckStatusList;
}
export declare class GkeonpremVmwareClusterValidationCheckList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): GkeonpremVmwareClusterValidationCheckOutputReference;
}
export interface GkeonpremVmwareClusterAntiAffinityGroups {
    /**
    * Spread nodes across at least three physical hosts (requires at least three
    * hosts).
    * Enabled by default.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#aag_config_disabled GkeonpremVmwareCluster#aag_config_disabled}
    */
    readonly aagConfigDisabled: boolean | cdktf.IResolvable;
}
export declare function gkeonpremVmwareClusterAntiAffinityGroupsToTerraform(struct?: GkeonpremVmwareClusterAntiAffinityGroupsOutputReference | GkeonpremVmwareClusterAntiAffinityGroups): any;
export declare function gkeonpremVmwareClusterAntiAffinityGroupsToHclTerraform(struct?: GkeonpremVmwareClusterAntiAffinityGroupsOutputReference | GkeonpremVmwareClusterAntiAffinityGroups): any;
export declare class GkeonpremVmwareClusterAntiAffinityGroupsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): GkeonpremVmwareClusterAntiAffinityGroups | undefined;
    set internalValue(value: GkeonpremVmwareClusterAntiAffinityGroups | undefined);
    private _aagConfigDisabled?;
    get aagConfigDisabled(): boolean | cdktf.IResolvable;
    set aagConfigDisabled(value: boolean | cdktf.IResolvable);
    get aagConfigDisabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface GkeonpremVmwareClusterAuthorizationAdminUsers {
    /**
    * The name of the user, e.g. 'my-gcp-id@gmail.com'.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#username GkeonpremVmwareCluster#username}
    */
    readonly username: string;
}
export declare function gkeonpremVmwareClusterAuthorizationAdminUsersToTerraform(struct?: GkeonpremVmwareClusterAuthorizationAdminUsers | cdktf.IResolvable): any;
export declare function gkeonpremVmwareClusterAuthorizationAdminUsersToHclTerraform(struct?: GkeonpremVmwareClusterAuthorizationAdminUsers | cdktf.IResolvable): any;
export declare class GkeonpremVmwareClusterAuthorizationAdminUsersOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): GkeonpremVmwareClusterAuthorizationAdminUsers | cdktf.IResolvable | undefined;
    set internalValue(value: GkeonpremVmwareClusterAuthorizationAdminUsers | cdktf.IResolvable | undefined);
    private _username?;
    get username(): string;
    set username(value: string);
    get usernameInput(): string | undefined;
}
export declare class GkeonpremVmwareClusterAuthorizationAdminUsersList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: GkeonpremVmwareClusterAuthorizationAdminUsers[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): GkeonpremVmwareClusterAuthorizationAdminUsersOutputReference;
}
export interface GkeonpremVmwareClusterAuthorization {
    /**
    * admin_users block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#admin_users GkeonpremVmwareCluster#admin_users}
    */
    readonly adminUsers?: GkeonpremVmwareClusterAuthorizationAdminUsers[] | cdktf.IResolvable;
}
export declare function gkeonpremVmwareClusterAuthorizationToTerraform(struct?: GkeonpremVmwareClusterAuthorizationOutputReference | GkeonpremVmwareClusterAuthorization): any;
export declare function gkeonpremVmwareClusterAuthorizationToHclTerraform(struct?: GkeonpremVmwareClusterAuthorizationOutputReference | GkeonpremVmwareClusterAuthorization): any;
export declare class GkeonpremVmwareClusterAuthorizationOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): GkeonpremVmwareClusterAuthorization | undefined;
    set internalValue(value: GkeonpremVmwareClusterAuthorization | undefined);
    private _adminUsers;
    get adminUsers(): GkeonpremVmwareClusterAuthorizationAdminUsersList;
    putAdminUsers(value: GkeonpremVmwareClusterAuthorizationAdminUsers[] | cdktf.IResolvable): void;
    resetAdminUsers(): void;
    get adminUsersInput(): cdktf.IResolvable | GkeonpremVmwareClusterAuthorizationAdminUsers[] | undefined;
}
export interface GkeonpremVmwareClusterAutoRepairConfig {
    /**
    * Whether auto repair is enabled.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#enabled GkeonpremVmwareCluster#enabled}
    */
    readonly enabled: boolean | cdktf.IResolvable;
}
export declare function gkeonpremVmwareClusterAutoRepairConfigToTerraform(struct?: GkeonpremVmwareClusterAutoRepairConfigOutputReference | GkeonpremVmwareClusterAutoRepairConfig): any;
export declare function gkeonpremVmwareClusterAutoRepairConfigToHclTerraform(struct?: GkeonpremVmwareClusterAutoRepairConfigOutputReference | GkeonpremVmwareClusterAutoRepairConfig): any;
export declare class GkeonpremVmwareClusterAutoRepairConfigOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): GkeonpremVmwareClusterAutoRepairConfig | undefined;
    set internalValue(value: GkeonpremVmwareClusterAutoRepairConfig | undefined);
    private _enabled?;
    get enabled(): boolean | cdktf.IResolvable;
    set enabled(value: boolean | cdktf.IResolvable);
    get enabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface GkeonpremVmwareClusterControlPlaneNodeVsphereConfig {
}
export declare function gkeonpremVmwareClusterControlPlaneNodeVsphereConfigToTerraform(struct?: GkeonpremVmwareClusterControlPlaneNodeVsphereConfig): any;
export declare function gkeonpremVmwareClusterControlPlaneNodeVsphereConfigToHclTerraform(struct?: GkeonpremVmwareClusterControlPlaneNodeVsphereConfig): any;
export declare class GkeonpremVmwareClusterControlPlaneNodeVsphereConfigOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): GkeonpremVmwareClusterControlPlaneNodeVsphereConfig | undefined;
    set internalValue(value: GkeonpremVmwareClusterControlPlaneNodeVsphereConfig | undefined);
    get datastore(): string;
    get storagePolicyName(): string;
}
export declare class GkeonpremVmwareClusterControlPlaneNodeVsphereConfigList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): GkeonpremVmwareClusterControlPlaneNodeVsphereConfigOutputReference;
}
export interface GkeonpremVmwareClusterControlPlaneNodeAutoResizeConfig {
    /**
    * Whether to enable control plane node auto resizing.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#enabled GkeonpremVmwareCluster#enabled}
    */
    readonly enabled: boolean | cdktf.IResolvable;
}
export declare function gkeonpremVmwareClusterControlPlaneNodeAutoResizeConfigToTerraform(struct?: GkeonpremVmwareClusterControlPlaneNodeAutoResizeConfigOutputReference | GkeonpremVmwareClusterControlPlaneNodeAutoResizeConfig): any;
export declare function gkeonpremVmwareClusterControlPlaneNodeAutoResizeConfigToHclTerraform(struct?: GkeonpremVmwareClusterControlPlaneNodeAutoResizeConfigOutputReference | GkeonpremVmwareClusterControlPlaneNodeAutoResizeConfig): any;
export declare class GkeonpremVmwareClusterControlPlaneNodeAutoResizeConfigOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): GkeonpremVmwareClusterControlPlaneNodeAutoResizeConfig | undefined;
    set internalValue(value: GkeonpremVmwareClusterControlPlaneNodeAutoResizeConfig | undefined);
    private _enabled?;
    get enabled(): boolean | cdktf.IResolvable;
    set enabled(value: boolean | cdktf.IResolvable);
    get enabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface GkeonpremVmwareClusterControlPlaneNode {
    /**
    * The number of CPUs for each admin cluster node that serve as control planes
    * for this VMware User Cluster. (default: 4 CPUs)
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#cpus GkeonpremVmwareCluster#cpus}
    */
    readonly cpus?: number;
    /**
    * The megabytes of memory for each admin cluster node that serves as a
    * control plane for this VMware User Cluster (default: 8192 MB memory).
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#memory GkeonpremVmwareCluster#memory}
    */
    readonly memory?: number;
    /**
    * The number of control plane nodes for this VMware User Cluster.
    * (default: 1 replica).
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#replicas GkeonpremVmwareCluster#replicas}
    */
    readonly replicas?: number;
    /**
    * auto_resize_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#auto_resize_config GkeonpremVmwareCluster#auto_resize_config}
    */
    readonly autoResizeConfig?: GkeonpremVmwareClusterControlPlaneNodeAutoResizeConfig;
}
export declare function gkeonpremVmwareClusterControlPlaneNodeToTerraform(struct?: GkeonpremVmwareClusterControlPlaneNodeOutputReference | GkeonpremVmwareClusterControlPlaneNode): any;
export declare function gkeonpremVmwareClusterControlPlaneNodeToHclTerraform(struct?: GkeonpremVmwareClusterControlPlaneNodeOutputReference | GkeonpremVmwareClusterControlPlaneNode): any;
export declare class GkeonpremVmwareClusterControlPlaneNodeOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): GkeonpremVmwareClusterControlPlaneNode | undefined;
    set internalValue(value: GkeonpremVmwareClusterControlPlaneNode | undefined);
    private _cpus?;
    get cpus(): number;
    set cpus(value: number);
    resetCpus(): void;
    get cpusInput(): number | undefined;
    private _memory?;
    get memory(): number;
    set memory(value: number);
    resetMemory(): void;
    get memoryInput(): number | undefined;
    private _replicas?;
    get replicas(): number;
    set replicas(value: number);
    resetReplicas(): void;
    get replicasInput(): number | undefined;
    private _vsphereConfig;
    get vsphereConfig(): GkeonpremVmwareClusterControlPlaneNodeVsphereConfigList;
    private _autoResizeConfig;
    get autoResizeConfig(): GkeonpremVmwareClusterControlPlaneNodeAutoResizeConfigOutputReference;
    putAutoResizeConfig(value: GkeonpremVmwareClusterControlPlaneNodeAutoResizeConfig): void;
    resetAutoResizeConfig(): void;
    get autoResizeConfigInput(): GkeonpremVmwareClusterControlPlaneNodeAutoResizeConfig | undefined;
}
export interface GkeonpremVmwareClusterDataplaneV2 {
    /**
    * Enable advanced networking which requires dataplane_v2_enabled to be set true.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#advanced_networking GkeonpremVmwareCluster#advanced_networking}
    */
    readonly advancedNetworking?: boolean | cdktf.IResolvable;
    /**
    * Enables Dataplane V2.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#dataplane_v2_enabled GkeonpremVmwareCluster#dataplane_v2_enabled}
    */
    readonly dataplaneV2Enabled?: boolean | cdktf.IResolvable;
    /**
    * Enable Dataplane V2 for clusters with Windows nodes.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#windows_dataplane_v2_enabled GkeonpremVmwareCluster#windows_dataplane_v2_enabled}
    */
    readonly windowsDataplaneV2Enabled?: boolean | cdktf.IResolvable;
}
export declare function gkeonpremVmwareClusterDataplaneV2ToTerraform(struct?: GkeonpremVmwareClusterDataplaneV2OutputReference | GkeonpremVmwareClusterDataplaneV2): any;
export declare function gkeonpremVmwareClusterDataplaneV2ToHclTerraform(struct?: GkeonpremVmwareClusterDataplaneV2OutputReference | GkeonpremVmwareClusterDataplaneV2): any;
export declare class GkeonpremVmwareClusterDataplaneV2OutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): GkeonpremVmwareClusterDataplaneV2 | undefined;
    set internalValue(value: GkeonpremVmwareClusterDataplaneV2 | undefined);
    private _advancedNetworking?;
    get advancedNetworking(): boolean | cdktf.IResolvable;
    set advancedNetworking(value: boolean | cdktf.IResolvable);
    resetAdvancedNetworking(): void;
    get advancedNetworkingInput(): boolean | cdktf.IResolvable | undefined;
    private _dataplaneV2Enabled?;
    get dataplaneV2Enabled(): boolean | cdktf.IResolvable;
    set dataplaneV2Enabled(value: boolean | cdktf.IResolvable);
    resetDataplaneV2Enabled(): void;
    get dataplaneV2EnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _windowsDataplaneV2Enabled?;
    get windowsDataplaneV2Enabled(): boolean | cdktf.IResolvable;
    set windowsDataplaneV2Enabled(value: boolean | cdktf.IResolvable);
    resetWindowsDataplaneV2Enabled(): void;
    get windowsDataplaneV2EnabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface GkeonpremVmwareClusterLoadBalancerF5Config {
    /**
    * The load balancer's IP address.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#address GkeonpremVmwareCluster#address}
    */
    readonly address?: string;
    /**
    * he preexisting partition to be used by the load balancer. T
    * his partition is usually created for the admin cluster for example:
    * 'my-f5-admin-partition'.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#partition GkeonpremVmwareCluster#partition}
    */
    readonly partition?: string;
    /**
    * The pool name. Only necessary, if using SNAT.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#snat_pool GkeonpremVmwareCluster#snat_pool}
    */
    readonly snatPool?: string;
}
export declare function gkeonpremVmwareClusterLoadBalancerF5ConfigToTerraform(struct?: GkeonpremVmwareClusterLoadBalancerF5ConfigOutputReference | GkeonpremVmwareClusterLoadBalancerF5Config): any;
export declare function gkeonpremVmwareClusterLoadBalancerF5ConfigToHclTerraform(struct?: GkeonpremVmwareClusterLoadBalancerF5ConfigOutputReference | GkeonpremVmwareClusterLoadBalancerF5Config): any;
export declare class GkeonpremVmwareClusterLoadBalancerF5ConfigOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): GkeonpremVmwareClusterLoadBalancerF5Config | undefined;
    set internalValue(value: GkeonpremVmwareClusterLoadBalancerF5Config | undefined);
    private _address?;
    get address(): string;
    set address(value: string);
    resetAddress(): void;
    get addressInput(): string | undefined;
    private _partition?;
    get partition(): string;
    set partition(value: string);
    resetPartition(): void;
    get partitionInput(): string | undefined;
    private _snatPool?;
    get snatPool(): string;
    set snatPool(value: string);
    resetSnatPool(): void;
    get snatPoolInput(): string | undefined;
}
export interface GkeonpremVmwareClusterLoadBalancerManualLbConfig {
    /**
    * NodePort for control plane service. The Kubernetes API server in the admin
    * cluster is implemented as a Service of type NodePort (ex. 30968).
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#control_plane_node_port GkeonpremVmwareCluster#control_plane_node_port}
    */
    readonly controlPlaneNodePort?: number;
    /**
    * NodePort for ingress service's http. The ingress service in the admin
    * cluster is implemented as a Service of type NodePort (ex. 32527).
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#ingress_http_node_port GkeonpremVmwareCluster#ingress_http_node_port}
    */
    readonly ingressHttpNodePort?: number;
    /**
    * NodePort for ingress service's https. The ingress service in the admin
    * cluster is implemented as a Service of type NodePort (ex. 30139).
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#ingress_https_node_port GkeonpremVmwareCluster#ingress_https_node_port}
    */
    readonly ingressHttpsNodePort?: number;
    /**
    * NodePort for konnectivity server service running as a sidecar in each
    * kube-apiserver pod (ex. 30564).
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#konnectivity_server_node_port GkeonpremVmwareCluster#konnectivity_server_node_port}
    */
    readonly konnectivityServerNodePort?: number;
}
export declare function gkeonpremVmwareClusterLoadBalancerManualLbConfigToTerraform(struct?: GkeonpremVmwareClusterLoadBalancerManualLbConfigOutputReference | GkeonpremVmwareClusterLoadBalancerManualLbConfig): any;
export declare function gkeonpremVmwareClusterLoadBalancerManualLbConfigToHclTerraform(struct?: GkeonpremVmwareClusterLoadBalancerManualLbConfigOutputReference | GkeonpremVmwareClusterLoadBalancerManualLbConfig): any;
export declare class GkeonpremVmwareClusterLoadBalancerManualLbConfigOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): GkeonpremVmwareClusterLoadBalancerManualLbConfig | undefined;
    set internalValue(value: GkeonpremVmwareClusterLoadBalancerManualLbConfig | undefined);
    private _controlPlaneNodePort?;
    get controlPlaneNodePort(): number;
    set controlPlaneNodePort(value: number);
    resetControlPlaneNodePort(): void;
    get controlPlaneNodePortInput(): number | undefined;
    private _ingressHttpNodePort?;
    get ingressHttpNodePort(): number;
    set ingressHttpNodePort(value: number);
    resetIngressHttpNodePort(): void;
    get ingressHttpNodePortInput(): number | undefined;
    private _ingressHttpsNodePort?;
    get ingressHttpsNodePort(): number;
    set ingressHttpsNodePort(value: number);
    resetIngressHttpsNodePort(): void;
    get ingressHttpsNodePortInput(): number | undefined;
    private _konnectivityServerNodePort?;
    get konnectivityServerNodePort(): number;
    set konnectivityServerNodePort(value: number);
    resetKonnectivityServerNodePort(): void;
    get konnectivityServerNodePortInput(): number | undefined;
}
export interface GkeonpremVmwareClusterLoadBalancerMetalLbConfigAddressPools {
    /**
    * The addresses that are part of this pool. Each address
    * must be either in the CIDR form (1.2.3.0/24) or range
    * form (1.2.3.1-1.2.3.5).
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#addresses GkeonpremVmwareCluster#addresses}
    */
    readonly addresses: string[];
    /**
    * If true, avoid using IPs ending in .0 or .255.
    * This avoids buggy consumer devices mistakenly dropping IPv4 traffic for
    * those special IP addresses.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#avoid_buggy_ips GkeonpremVmwareCluster#avoid_buggy_ips}
    */
    readonly avoidBuggyIps?: boolean | cdktf.IResolvable;
    /**
    * If true, prevent IP addresses from being automatically assigned.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#manual_assign GkeonpremVmwareCluster#manual_assign}
    */
    readonly manualAssign?: boolean | cdktf.IResolvable;
    /**
    * The name of the address pool.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#pool GkeonpremVmwareCluster#pool}
    */
    readonly pool: string;
}
export declare function gkeonpremVmwareClusterLoadBalancerMetalLbConfigAddressPoolsToTerraform(struct?: GkeonpremVmwareClusterLoadBalancerMetalLbConfigAddressPools | cdktf.IResolvable): any;
export declare function gkeonpremVmwareClusterLoadBalancerMetalLbConfigAddressPoolsToHclTerraform(struct?: GkeonpremVmwareClusterLoadBalancerMetalLbConfigAddressPools | cdktf.IResolvable): any;
export declare class GkeonpremVmwareClusterLoadBalancerMetalLbConfigAddressPoolsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): GkeonpremVmwareClusterLoadBalancerMetalLbConfigAddressPools | cdktf.IResolvable | undefined;
    set internalValue(value: GkeonpremVmwareClusterLoadBalancerMetalLbConfigAddressPools | cdktf.IResolvable | undefined);
    private _addresses?;
    get addresses(): string[];
    set addresses(value: string[]);
    get addressesInput(): string[] | undefined;
    private _avoidBuggyIps?;
    get avoidBuggyIps(): boolean | cdktf.IResolvable;
    set avoidBuggyIps(value: boolean | cdktf.IResolvable);
    resetAvoidBuggyIps(): void;
    get avoidBuggyIpsInput(): boolean | cdktf.IResolvable | undefined;
    private _manualAssign?;
    get manualAssign(): boolean | cdktf.IResolvable;
    set manualAssign(value: boolean | cdktf.IResolvable);
    resetManualAssign(): void;
    get manualAssignInput(): boolean | cdktf.IResolvable | undefined;
    private _pool?;
    get pool(): string;
    set pool(value: string);
    get poolInput(): string | undefined;
}
export declare class GkeonpremVmwareClusterLoadBalancerMetalLbConfigAddressPoolsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: GkeonpremVmwareClusterLoadBalancerMetalLbConfigAddressPools[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): GkeonpremVmwareClusterLoadBalancerMetalLbConfigAddressPoolsOutputReference;
}
export interface GkeonpremVmwareClusterLoadBalancerMetalLbConfig {
    /**
    * address_pools block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#address_pools GkeonpremVmwareCluster#address_pools}
    */
    readonly addressPools: GkeonpremVmwareClusterLoadBalancerMetalLbConfigAddressPools[] | cdktf.IResolvable;
}
export declare function gkeonpremVmwareClusterLoadBalancerMetalLbConfigToTerraform(struct?: GkeonpremVmwareClusterLoadBalancerMetalLbConfigOutputReference | GkeonpremVmwareClusterLoadBalancerMetalLbConfig): any;
export declare function gkeonpremVmwareClusterLoadBalancerMetalLbConfigToHclTerraform(struct?: GkeonpremVmwareClusterLoadBalancerMetalLbConfigOutputReference | GkeonpremVmwareClusterLoadBalancerMetalLbConfig): any;
export declare class GkeonpremVmwareClusterLoadBalancerMetalLbConfigOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): GkeonpremVmwareClusterLoadBalancerMetalLbConfig | undefined;
    set internalValue(value: GkeonpremVmwareClusterLoadBalancerMetalLbConfig | undefined);
    private _addressPools;
    get addressPools(): GkeonpremVmwareClusterLoadBalancerMetalLbConfigAddressPoolsList;
    putAddressPools(value: GkeonpremVmwareClusterLoadBalancerMetalLbConfigAddressPools[] | cdktf.IResolvable): void;
    get addressPoolsInput(): cdktf.IResolvable | GkeonpremVmwareClusterLoadBalancerMetalLbConfigAddressPools[] | undefined;
}
export interface GkeonpremVmwareClusterLoadBalancerVipConfig {
    /**
    * The VIP which you previously set aside for the Kubernetes API of this cluster.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#control_plane_vip GkeonpremVmwareCluster#control_plane_vip}
    */
    readonly controlPlaneVip?: string;
    /**
    * The VIP which you previously set aside for ingress traffic into this cluster.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#ingress_vip GkeonpremVmwareCluster#ingress_vip}
    */
    readonly ingressVip?: string;
}
export declare function gkeonpremVmwareClusterLoadBalancerVipConfigToTerraform(struct?: GkeonpremVmwareClusterLoadBalancerVipConfigOutputReference | GkeonpremVmwareClusterLoadBalancerVipConfig): any;
export declare function gkeonpremVmwareClusterLoadBalancerVipConfigToHclTerraform(struct?: GkeonpremVmwareClusterLoadBalancerVipConfigOutputReference | GkeonpremVmwareClusterLoadBalancerVipConfig): any;
export declare class GkeonpremVmwareClusterLoadBalancerVipConfigOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): GkeonpremVmwareClusterLoadBalancerVipConfig | undefined;
    set internalValue(value: GkeonpremVmwareClusterLoadBalancerVipConfig | undefined);
    private _controlPlaneVip?;
    get controlPlaneVip(): string;
    set controlPlaneVip(value: string);
    resetControlPlaneVip(): void;
    get controlPlaneVipInput(): string | undefined;
    private _ingressVip?;
    get ingressVip(): string;
    set ingressVip(value: string);
    resetIngressVip(): void;
    get ingressVipInput(): string | undefined;
}
export interface GkeonpremVmwareClusterLoadBalancer {
    /**
    * f5_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#f5_config GkeonpremVmwareCluster#f5_config}
    */
    readonly f5Config?: GkeonpremVmwareClusterLoadBalancerF5Config;
    /**
    * manual_lb_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#manual_lb_config GkeonpremVmwareCluster#manual_lb_config}
    */
    readonly manualLbConfig?: GkeonpremVmwareClusterLoadBalancerManualLbConfig;
    /**
    * metal_lb_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#metal_lb_config GkeonpremVmwareCluster#metal_lb_config}
    */
    readonly metalLbConfig?: GkeonpremVmwareClusterLoadBalancerMetalLbConfig;
    /**
    * vip_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#vip_config GkeonpremVmwareCluster#vip_config}
    */
    readonly vipConfig?: GkeonpremVmwareClusterLoadBalancerVipConfig;
}
export declare function gkeonpremVmwareClusterLoadBalancerToTerraform(struct?: GkeonpremVmwareClusterLoadBalancerOutputReference | GkeonpremVmwareClusterLoadBalancer): any;
export declare function gkeonpremVmwareClusterLoadBalancerToHclTerraform(struct?: GkeonpremVmwareClusterLoadBalancerOutputReference | GkeonpremVmwareClusterLoadBalancer): any;
export declare class GkeonpremVmwareClusterLoadBalancerOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): GkeonpremVmwareClusterLoadBalancer | undefined;
    set internalValue(value: GkeonpremVmwareClusterLoadBalancer | undefined);
    private _f5Config;
    get f5Config(): GkeonpremVmwareClusterLoadBalancerF5ConfigOutputReference;
    putF5Config(value: GkeonpremVmwareClusterLoadBalancerF5Config): void;
    resetF5Config(): void;
    get f5ConfigInput(): GkeonpremVmwareClusterLoadBalancerF5Config | undefined;
    private _manualLbConfig;
    get manualLbConfig(): GkeonpremVmwareClusterLoadBalancerManualLbConfigOutputReference;
    putManualLbConfig(value: GkeonpremVmwareClusterLoadBalancerManualLbConfig): void;
    resetManualLbConfig(): void;
    get manualLbConfigInput(): GkeonpremVmwareClusterLoadBalancerManualLbConfig | undefined;
    private _metalLbConfig;
    get metalLbConfig(): GkeonpremVmwareClusterLoadBalancerMetalLbConfigOutputReference;
    putMetalLbConfig(value: GkeonpremVmwareClusterLoadBalancerMetalLbConfig): void;
    resetMetalLbConfig(): void;
    get metalLbConfigInput(): GkeonpremVmwareClusterLoadBalancerMetalLbConfig | undefined;
    private _vipConfig;
    get vipConfig(): GkeonpremVmwareClusterLoadBalancerVipConfigOutputReference;
    putVipConfig(value: GkeonpremVmwareClusterLoadBalancerVipConfig): void;
    resetVipConfig(): void;
    get vipConfigInput(): GkeonpremVmwareClusterLoadBalancerVipConfig | undefined;
}
export interface GkeonpremVmwareClusterNetworkConfigControlPlaneV2ConfigControlPlaneIpBlockIps {
    /**
    * Hostname of the machine. VM's name will be used if this field is empty.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#hostname GkeonpremVmwareCluster#hostname}
    */
    readonly hostname?: string;
    /**
    * IP could be an IP address (like 1.2.3.4) or a CIDR (like 1.2.3.0/24).
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#ip GkeonpremVmwareCluster#ip}
    */
    readonly ip?: string;
}
export declare function gkeonpremVmwareClusterNetworkConfigControlPlaneV2ConfigControlPlaneIpBlockIpsToTerraform(struct?: GkeonpremVmwareClusterNetworkConfigControlPlaneV2ConfigControlPlaneIpBlockIps | cdktf.IResolvable): any;
export declare function gkeonpremVmwareClusterNetworkConfigControlPlaneV2ConfigControlPlaneIpBlockIpsToHclTerraform(struct?: GkeonpremVmwareClusterNetworkConfigControlPlaneV2ConfigControlPlaneIpBlockIps | cdktf.IResolvable): any;
export declare class GkeonpremVmwareClusterNetworkConfigControlPlaneV2ConfigControlPlaneIpBlockIpsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): GkeonpremVmwareClusterNetworkConfigControlPlaneV2ConfigControlPlaneIpBlockIps | cdktf.IResolvable | undefined;
    set internalValue(value: GkeonpremVmwareClusterNetworkConfigControlPlaneV2ConfigControlPlaneIpBlockIps | cdktf.IResolvable | undefined);
    private _hostname?;
    get hostname(): string;
    set hostname(value: string);
    resetHostname(): void;
    get hostnameInput(): string | undefined;
    private _ip?;
    get ip(): string;
    set ip(value: string);
    resetIp(): void;
    get ipInput(): string | undefined;
}
export declare class GkeonpremVmwareClusterNetworkConfigControlPlaneV2ConfigControlPlaneIpBlockIpsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: GkeonpremVmwareClusterNetworkConfigControlPlaneV2ConfigControlPlaneIpBlockIps[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): GkeonpremVmwareClusterNetworkConfigControlPlaneV2ConfigControlPlaneIpBlockIpsOutputReference;
}
export interface GkeonpremVmwareClusterNetworkConfigControlPlaneV2ConfigControlPlaneIpBlock {
    /**
    * The network gateway used by the VMware User Cluster.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#gateway GkeonpremVmwareCluster#gateway}
    */
    readonly gateway?: string;
    /**
    * The netmask used by the VMware User Cluster.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#netmask GkeonpremVmwareCluster#netmask}
    */
    readonly netmask?: string;
    /**
    * ips block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#ips GkeonpremVmwareCluster#ips}
    */
    readonly ips?: GkeonpremVmwareClusterNetworkConfigControlPlaneV2ConfigControlPlaneIpBlockIps[] | cdktf.IResolvable;
}
export declare function gkeonpremVmwareClusterNetworkConfigControlPlaneV2ConfigControlPlaneIpBlockToTerraform(struct?: GkeonpremVmwareClusterNetworkConfigControlPlaneV2ConfigControlPlaneIpBlockOutputReference | GkeonpremVmwareClusterNetworkConfigControlPlaneV2ConfigControlPlaneIpBlock): any;
export declare function gkeonpremVmwareClusterNetworkConfigControlPlaneV2ConfigControlPlaneIpBlockToHclTerraform(struct?: GkeonpremVmwareClusterNetworkConfigControlPlaneV2ConfigControlPlaneIpBlockOutputReference | GkeonpremVmwareClusterNetworkConfigControlPlaneV2ConfigControlPlaneIpBlock): any;
export declare class GkeonpremVmwareClusterNetworkConfigControlPlaneV2ConfigControlPlaneIpBlockOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): GkeonpremVmwareClusterNetworkConfigControlPlaneV2ConfigControlPlaneIpBlock | undefined;
    set internalValue(value: GkeonpremVmwareClusterNetworkConfigControlPlaneV2ConfigControlPlaneIpBlock | undefined);
    private _gateway?;
    get gateway(): string;
    set gateway(value: string);
    resetGateway(): void;
    get gatewayInput(): string | undefined;
    private _netmask?;
    get netmask(): string;
    set netmask(value: string);
    resetNetmask(): void;
    get netmaskInput(): string | undefined;
    private _ips;
    get ips(): GkeonpremVmwareClusterNetworkConfigControlPlaneV2ConfigControlPlaneIpBlockIpsList;
    putIps(value: GkeonpremVmwareClusterNetworkConfigControlPlaneV2ConfigControlPlaneIpBlockIps[] | cdktf.IResolvable): void;
    resetIps(): void;
    get ipsInput(): cdktf.IResolvable | GkeonpremVmwareClusterNetworkConfigControlPlaneV2ConfigControlPlaneIpBlockIps[] | undefined;
}
export interface GkeonpremVmwareClusterNetworkConfigControlPlaneV2Config {
    /**
    * control_plane_ip_block block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#control_plane_ip_block GkeonpremVmwareCluster#control_plane_ip_block}
    */
    readonly controlPlaneIpBlock?: GkeonpremVmwareClusterNetworkConfigControlPlaneV2ConfigControlPlaneIpBlock;
}
export declare function gkeonpremVmwareClusterNetworkConfigControlPlaneV2ConfigToTerraform(struct?: GkeonpremVmwareClusterNetworkConfigControlPlaneV2ConfigOutputReference | GkeonpremVmwareClusterNetworkConfigControlPlaneV2Config): any;
export declare function gkeonpremVmwareClusterNetworkConfigControlPlaneV2ConfigToHclTerraform(struct?: GkeonpremVmwareClusterNetworkConfigControlPlaneV2ConfigOutputReference | GkeonpremVmwareClusterNetworkConfigControlPlaneV2Config): any;
export declare class GkeonpremVmwareClusterNetworkConfigControlPlaneV2ConfigOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): GkeonpremVmwareClusterNetworkConfigControlPlaneV2Config | undefined;
    set internalValue(value: GkeonpremVmwareClusterNetworkConfigControlPlaneV2Config | undefined);
    private _controlPlaneIpBlock;
    get controlPlaneIpBlock(): GkeonpremVmwareClusterNetworkConfigControlPlaneV2ConfigControlPlaneIpBlockOutputReference;
    putControlPlaneIpBlock(value: GkeonpremVmwareClusterNetworkConfigControlPlaneV2ConfigControlPlaneIpBlock): void;
    resetControlPlaneIpBlock(): void;
    get controlPlaneIpBlockInput(): GkeonpremVmwareClusterNetworkConfigControlPlaneV2ConfigControlPlaneIpBlock | undefined;
}
export interface GkeonpremVmwareClusterNetworkConfigDhcpIpConfig {
    /**
    * enabled is a flag to mark if DHCP IP allocation is
    * used for VMware user clusters.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#enabled GkeonpremVmwareCluster#enabled}
    */
    readonly enabled: boolean | cdktf.IResolvable;
}
export declare function gkeonpremVmwareClusterNetworkConfigDhcpIpConfigToTerraform(struct?: GkeonpremVmwareClusterNetworkConfigDhcpIpConfigOutputReference | GkeonpremVmwareClusterNetworkConfigDhcpIpConfig): any;
export declare function gkeonpremVmwareClusterNetworkConfigDhcpIpConfigToHclTerraform(struct?: GkeonpremVmwareClusterNetworkConfigDhcpIpConfigOutputReference | GkeonpremVmwareClusterNetworkConfigDhcpIpConfig): any;
export declare class GkeonpremVmwareClusterNetworkConfigDhcpIpConfigOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): GkeonpremVmwareClusterNetworkConfigDhcpIpConfig | undefined;
    set internalValue(value: GkeonpremVmwareClusterNetworkConfigDhcpIpConfig | undefined);
    private _enabled?;
    get enabled(): boolean | cdktf.IResolvable;
    set enabled(value: boolean | cdktf.IResolvable);
    get enabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface GkeonpremVmwareClusterNetworkConfigHostConfig {
    /**
    * DNS search domains.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#dns_search_domains GkeonpremVmwareCluster#dns_search_domains}
    */
    readonly dnsSearchDomains?: string[];
    /**
    * DNS servers.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#dns_servers GkeonpremVmwareCluster#dns_servers}
    */
    readonly dnsServers?: string[];
    /**
    * NTP servers.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#ntp_servers GkeonpremVmwareCluster#ntp_servers}
    */
    readonly ntpServers?: string[];
}
export declare function gkeonpremVmwareClusterNetworkConfigHostConfigToTerraform(struct?: GkeonpremVmwareClusterNetworkConfigHostConfigOutputReference | GkeonpremVmwareClusterNetworkConfigHostConfig): any;
export declare function gkeonpremVmwareClusterNetworkConfigHostConfigToHclTerraform(struct?: GkeonpremVmwareClusterNetworkConfigHostConfigOutputReference | GkeonpremVmwareClusterNetworkConfigHostConfig): any;
export declare class GkeonpremVmwareClusterNetworkConfigHostConfigOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): GkeonpremVmwareClusterNetworkConfigHostConfig | undefined;
    set internalValue(value: GkeonpremVmwareClusterNetworkConfigHostConfig | undefined);
    private _dnsSearchDomains?;
    get dnsSearchDomains(): string[];
    set dnsSearchDomains(value: string[]);
    resetDnsSearchDomains(): void;
    get dnsSearchDomainsInput(): string[] | undefined;
    private _dnsServers?;
    get dnsServers(): string[];
    set dnsServers(value: string[]);
    resetDnsServers(): void;
    get dnsServersInput(): string[] | undefined;
    private _ntpServers?;
    get ntpServers(): string[];
    set ntpServers(value: string[]);
    resetNtpServers(): void;
    get ntpServersInput(): string[] | undefined;
}
export interface GkeonpremVmwareClusterNetworkConfigStaticIpConfigIpBlocksIps {
    /**
    * Hostname of the machine. VM's name will be used if this field is empty.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#hostname GkeonpremVmwareCluster#hostname}
    */
    readonly hostname?: string;
    /**
    * IP could be an IP address (like 1.2.3.4) or a CIDR (like 1.2.3.0/24).
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#ip GkeonpremVmwareCluster#ip}
    */
    readonly ip: string;
}
export declare function gkeonpremVmwareClusterNetworkConfigStaticIpConfigIpBlocksIpsToTerraform(struct?: GkeonpremVmwareClusterNetworkConfigStaticIpConfigIpBlocksIps | cdktf.IResolvable): any;
export declare function gkeonpremVmwareClusterNetworkConfigStaticIpConfigIpBlocksIpsToHclTerraform(struct?: GkeonpremVmwareClusterNetworkConfigStaticIpConfigIpBlocksIps | cdktf.IResolvable): any;
export declare class GkeonpremVmwareClusterNetworkConfigStaticIpConfigIpBlocksIpsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): GkeonpremVmwareClusterNetworkConfigStaticIpConfigIpBlocksIps | cdktf.IResolvable | undefined;
    set internalValue(value: GkeonpremVmwareClusterNetworkConfigStaticIpConfigIpBlocksIps | cdktf.IResolvable | undefined);
    private _hostname?;
    get hostname(): string;
    set hostname(value: string);
    resetHostname(): void;
    get hostnameInput(): string | undefined;
    private _ip?;
    get ip(): string;
    set ip(value: string);
    get ipInput(): string | undefined;
}
export declare class GkeonpremVmwareClusterNetworkConfigStaticIpConfigIpBlocksIpsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: GkeonpremVmwareClusterNetworkConfigStaticIpConfigIpBlocksIps[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): GkeonpremVmwareClusterNetworkConfigStaticIpConfigIpBlocksIpsOutputReference;
}
export interface GkeonpremVmwareClusterNetworkConfigStaticIpConfigIpBlocks {
    /**
    * The network gateway used by the VMware User Cluster.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#gateway GkeonpremVmwareCluster#gateway}
    */
    readonly gateway: string;
    /**
    * The netmask used by the VMware User Cluster.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#netmask GkeonpremVmwareCluster#netmask}
    */
    readonly netmask: string;
    /**
    * ips block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#ips GkeonpremVmwareCluster#ips}
    */
    readonly ips: GkeonpremVmwareClusterNetworkConfigStaticIpConfigIpBlocksIps[] | cdktf.IResolvable;
}
export declare function gkeonpremVmwareClusterNetworkConfigStaticIpConfigIpBlocksToTerraform(struct?: GkeonpremVmwareClusterNetworkConfigStaticIpConfigIpBlocks | cdktf.IResolvable): any;
export declare function gkeonpremVmwareClusterNetworkConfigStaticIpConfigIpBlocksToHclTerraform(struct?: GkeonpremVmwareClusterNetworkConfigStaticIpConfigIpBlocks | cdktf.IResolvable): any;
export declare class GkeonpremVmwareClusterNetworkConfigStaticIpConfigIpBlocksOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): GkeonpremVmwareClusterNetworkConfigStaticIpConfigIpBlocks | cdktf.IResolvable | undefined;
    set internalValue(value: GkeonpremVmwareClusterNetworkConfigStaticIpConfigIpBlocks | cdktf.IResolvable | undefined);
    private _gateway?;
    get gateway(): string;
    set gateway(value: string);
    get gatewayInput(): string | undefined;
    private _netmask?;
    get netmask(): string;
    set netmask(value: string);
    get netmaskInput(): string | undefined;
    private _ips;
    get ips(): GkeonpremVmwareClusterNetworkConfigStaticIpConfigIpBlocksIpsList;
    putIps(value: GkeonpremVmwareClusterNetworkConfigStaticIpConfigIpBlocksIps[] | cdktf.IResolvable): void;
    get ipsInput(): cdktf.IResolvable | GkeonpremVmwareClusterNetworkConfigStaticIpConfigIpBlocksIps[] | undefined;
}
export declare class GkeonpremVmwareClusterNetworkConfigStaticIpConfigIpBlocksList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: GkeonpremVmwareClusterNetworkConfigStaticIpConfigIpBlocks[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): GkeonpremVmwareClusterNetworkConfigStaticIpConfigIpBlocksOutputReference;
}
export interface GkeonpremVmwareClusterNetworkConfigStaticIpConfig {
    /**
    * ip_blocks block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#ip_blocks GkeonpremVmwareCluster#ip_blocks}
    */
    readonly ipBlocks: GkeonpremVmwareClusterNetworkConfigStaticIpConfigIpBlocks[] | cdktf.IResolvable;
}
export declare function gkeonpremVmwareClusterNetworkConfigStaticIpConfigToTerraform(struct?: GkeonpremVmwareClusterNetworkConfigStaticIpConfigOutputReference | GkeonpremVmwareClusterNetworkConfigStaticIpConfig): any;
export declare function gkeonpremVmwareClusterNetworkConfigStaticIpConfigToHclTerraform(struct?: GkeonpremVmwareClusterNetworkConfigStaticIpConfigOutputReference | GkeonpremVmwareClusterNetworkConfigStaticIpConfig): any;
export declare class GkeonpremVmwareClusterNetworkConfigStaticIpConfigOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): GkeonpremVmwareClusterNetworkConfigStaticIpConfig | undefined;
    set internalValue(value: GkeonpremVmwareClusterNetworkConfigStaticIpConfig | undefined);
    private _ipBlocks;
    get ipBlocks(): GkeonpremVmwareClusterNetworkConfigStaticIpConfigIpBlocksList;
    putIpBlocks(value: GkeonpremVmwareClusterNetworkConfigStaticIpConfigIpBlocks[] | cdktf.IResolvable): void;
    get ipBlocksInput(): cdktf.IResolvable | GkeonpremVmwareClusterNetworkConfigStaticIpConfigIpBlocks[] | undefined;
}
export interface GkeonpremVmwareClusterNetworkConfig {
    /**
    * All pods in the cluster are assigned an RFC1918 IPv4 address from these ranges.
    * Only a single range is supported. This field cannot be changed after creation.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#pod_address_cidr_blocks GkeonpremVmwareCluster#pod_address_cidr_blocks}
    */
    readonly podAddressCidrBlocks: string[];
    /**
    * All services in the cluster are assigned an RFC1918 IPv4 address
    * from these ranges. Only a single range is supported.. This field
    * cannot be changed after creation.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#service_address_cidr_blocks GkeonpremVmwareCluster#service_address_cidr_blocks}
    */
    readonly serviceAddressCidrBlocks: string[];
    /**
    * vcenter_network specifies vCenter network name. Inherited from the admin cluster.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#vcenter_network GkeonpremVmwareCluster#vcenter_network}
    */
    readonly vcenterNetwork?: string;
    /**
    * control_plane_v2_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#control_plane_v2_config GkeonpremVmwareCluster#control_plane_v2_config}
    */
    readonly controlPlaneV2Config?: GkeonpremVmwareClusterNetworkConfigControlPlaneV2Config;
    /**
    * dhcp_ip_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#dhcp_ip_config GkeonpremVmwareCluster#dhcp_ip_config}
    */
    readonly dhcpIpConfig?: GkeonpremVmwareClusterNetworkConfigDhcpIpConfig;
    /**
    * host_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#host_config GkeonpremVmwareCluster#host_config}
    */
    readonly hostConfig?: GkeonpremVmwareClusterNetworkConfigHostConfig;
    /**
    * static_ip_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#static_ip_config GkeonpremVmwareCluster#static_ip_config}
    */
    readonly staticIpConfig?: GkeonpremVmwareClusterNetworkConfigStaticIpConfig;
}
export declare function gkeonpremVmwareClusterNetworkConfigToTerraform(struct?: GkeonpremVmwareClusterNetworkConfigOutputReference | GkeonpremVmwareClusterNetworkConfig): any;
export declare function gkeonpremVmwareClusterNetworkConfigToHclTerraform(struct?: GkeonpremVmwareClusterNetworkConfigOutputReference | GkeonpremVmwareClusterNetworkConfig): any;
export declare class GkeonpremVmwareClusterNetworkConfigOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): GkeonpremVmwareClusterNetworkConfig | undefined;
    set internalValue(value: GkeonpremVmwareClusterNetworkConfig | undefined);
    private _podAddressCidrBlocks?;
    get podAddressCidrBlocks(): string[];
    set podAddressCidrBlocks(value: string[]);
    get podAddressCidrBlocksInput(): string[] | undefined;
    private _serviceAddressCidrBlocks?;
    get serviceAddressCidrBlocks(): string[];
    set serviceAddressCidrBlocks(value: string[]);
    get serviceAddressCidrBlocksInput(): string[] | undefined;
    private _vcenterNetwork?;
    get vcenterNetwork(): string;
    set vcenterNetwork(value: string);
    resetVcenterNetwork(): void;
    get vcenterNetworkInput(): string | undefined;
    private _controlPlaneV2Config;
    get controlPlaneV2Config(): GkeonpremVmwareClusterNetworkConfigControlPlaneV2ConfigOutputReference;
    putControlPlaneV2Config(value: GkeonpremVmwareClusterNetworkConfigControlPlaneV2Config): void;
    resetControlPlaneV2Config(): void;
    get controlPlaneV2ConfigInput(): GkeonpremVmwareClusterNetworkConfigControlPlaneV2Config | undefined;
    private _dhcpIpConfig;
    get dhcpIpConfig(): GkeonpremVmwareClusterNetworkConfigDhcpIpConfigOutputReference;
    putDhcpIpConfig(value: GkeonpremVmwareClusterNetworkConfigDhcpIpConfig): void;
    resetDhcpIpConfig(): void;
    get dhcpIpConfigInput(): GkeonpremVmwareClusterNetworkConfigDhcpIpConfig | undefined;
    private _hostConfig;
    get hostConfig(): GkeonpremVmwareClusterNetworkConfigHostConfigOutputReference;
    putHostConfig(value: GkeonpremVmwareClusterNetworkConfigHostConfig): void;
    resetHostConfig(): void;
    get hostConfigInput(): GkeonpremVmwareClusterNetworkConfigHostConfig | undefined;
    private _staticIpConfig;
    get staticIpConfig(): GkeonpremVmwareClusterNetworkConfigStaticIpConfigOutputReference;
    putStaticIpConfig(value: GkeonpremVmwareClusterNetworkConfigStaticIpConfig): void;
    resetStaticIpConfig(): void;
    get staticIpConfigInput(): GkeonpremVmwareClusterNetworkConfigStaticIpConfig | undefined;
}
export interface GkeonpremVmwareClusterStorage {
    /**
    * Whether or not to deploy vSphere CSI components in the VMware User Cluster.
    * Enabled by default.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#vsphere_csi_disabled GkeonpremVmwareCluster#vsphere_csi_disabled}
    */
    readonly vsphereCsiDisabled: boolean | cdktf.IResolvable;
}
export declare function gkeonpremVmwareClusterStorageToTerraform(struct?: GkeonpremVmwareClusterStorageOutputReference | GkeonpremVmwareClusterStorage): any;
export declare function gkeonpremVmwareClusterStorageToHclTerraform(struct?: GkeonpremVmwareClusterStorageOutputReference | GkeonpremVmwareClusterStorage): any;
export declare class GkeonpremVmwareClusterStorageOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): GkeonpremVmwareClusterStorage | undefined;
    set internalValue(value: GkeonpremVmwareClusterStorage | undefined);
    private _vsphereCsiDisabled?;
    get vsphereCsiDisabled(): boolean | cdktf.IResolvable;
    set vsphereCsiDisabled(value: boolean | cdktf.IResolvable);
    get vsphereCsiDisabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface GkeonpremVmwareClusterTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#create GkeonpremVmwareCluster#create}
    */
    readonly create?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#delete GkeonpremVmwareCluster#delete}
    */
    readonly delete?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#update GkeonpremVmwareCluster#update}
    */
    readonly update?: string;
}
export declare function gkeonpremVmwareClusterTimeoutsToTerraform(struct?: GkeonpremVmwareClusterTimeouts | cdktf.IResolvable): any;
export declare function gkeonpremVmwareClusterTimeoutsToHclTerraform(struct?: GkeonpremVmwareClusterTimeouts | cdktf.IResolvable): any;
export declare class GkeonpremVmwareClusterTimeoutsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): GkeonpremVmwareClusterTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: GkeonpremVmwareClusterTimeouts | cdktf.IResolvable | undefined);
    private _create?;
    get create(): string;
    set create(value: string);
    resetCreate(): void;
    get createInput(): string | undefined;
    private _delete?;
    get delete(): string;
    set delete(value: string);
    resetDelete(): void;
    get deleteInput(): string | undefined;
    private _update?;
    get update(): string;
    set update(value: string);
    resetUpdate(): void;
    get updateInput(): string | undefined;
}
export interface GkeonpremVmwareClusterUpgradePolicy {
    /**
    * Controls whether the upgrade applies to the control plane only.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#control_plane_only GkeonpremVmwareCluster#control_plane_only}
    */
    readonly controlPlaneOnly?: boolean | cdktf.IResolvable;
}
export declare function gkeonpremVmwareClusterUpgradePolicyToTerraform(struct?: GkeonpremVmwareClusterUpgradePolicyOutputReference | GkeonpremVmwareClusterUpgradePolicy): any;
export declare function gkeonpremVmwareClusterUpgradePolicyToHclTerraform(struct?: GkeonpremVmwareClusterUpgradePolicyOutputReference | GkeonpremVmwareClusterUpgradePolicy): any;
export declare class GkeonpremVmwareClusterUpgradePolicyOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): GkeonpremVmwareClusterUpgradePolicy | undefined;
    set internalValue(value: GkeonpremVmwareClusterUpgradePolicy | undefined);
    private _controlPlaneOnly?;
    get controlPlaneOnly(): boolean | cdktf.IResolvable;
    set controlPlaneOnly(value: boolean | cdktf.IResolvable);
    resetControlPlaneOnly(): void;
    get controlPlaneOnlyInput(): boolean | cdktf.IResolvable | undefined;
}
export interface GkeonpremVmwareClusterVcenter {
    /**
    * Contains the vCenter CA certificate public key for SSL verification.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#ca_cert_data GkeonpremVmwareCluster#ca_cert_data}
    */
    readonly caCertData?: string;
    /**
    * The name of the vCenter cluster for the user cluster.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#cluster GkeonpremVmwareCluster#cluster}
    */
    readonly cluster?: string;
    /**
    * The name of the vCenter datacenter for the user cluster.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#datacenter GkeonpremVmwareCluster#datacenter}
    */
    readonly datacenter?: string;
    /**
    * The name of the vCenter datastore for the user cluster.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#datastore GkeonpremVmwareCluster#datastore}
    */
    readonly datastore?: string;
    /**
    * The name of the vCenter folder for the user cluster.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#folder GkeonpremVmwareCluster#folder}
    */
    readonly folder?: string;
    /**
    * The name of the vCenter resource pool for the user cluster.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#resource_pool GkeonpremVmwareCluster#resource_pool}
    */
    readonly resourcePool?: string;
    /**
    * The name of the vCenter storage policy for the user cluster.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#storage_policy_name GkeonpremVmwareCluster#storage_policy_name}
    */
    readonly storagePolicyName?: string;
}
export declare function gkeonpremVmwareClusterVcenterToTerraform(struct?: GkeonpremVmwareClusterVcenterOutputReference | GkeonpremVmwareClusterVcenter): any;
export declare function gkeonpremVmwareClusterVcenterToHclTerraform(struct?: GkeonpremVmwareClusterVcenterOutputReference | GkeonpremVmwareClusterVcenter): any;
export declare class GkeonpremVmwareClusterVcenterOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): GkeonpremVmwareClusterVcenter | undefined;
    set internalValue(value: GkeonpremVmwareClusterVcenter | undefined);
    get address(): string;
    private _caCertData?;
    get caCertData(): string;
    set caCertData(value: string);
    resetCaCertData(): void;
    get caCertDataInput(): string | undefined;
    private _cluster?;
    get cluster(): string;
    set cluster(value: string);
    resetCluster(): void;
    get clusterInput(): string | undefined;
    private _datacenter?;
    get datacenter(): string;
    set datacenter(value: string);
    resetDatacenter(): void;
    get datacenterInput(): string | undefined;
    private _datastore?;
    get datastore(): string;
    set datastore(value: string);
    resetDatastore(): void;
    get datastoreInput(): string | undefined;
    private _folder?;
    get folder(): string;
    set folder(value: string);
    resetFolder(): void;
    get folderInput(): string | undefined;
    private _resourcePool?;
    get resourcePool(): string;
    set resourcePool(value: string);
    resetResourcePool(): void;
    get resourcePoolInput(): string | undefined;
    private _storagePolicyName?;
    get storagePolicyName(): string;
    set storagePolicyName(value: string);
    resetStoragePolicyName(): void;
    get storagePolicyNameInput(): string | undefined;
}
/**
* Represents a {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster google_gkeonprem_vmware_cluster}
*/
export declare class GkeonpremVmwareCluster extends cdktf.TerraformResource {
    static readonly tfResourceType = "google_gkeonprem_vmware_cluster";
    /**
    * Generates CDKTF code for importing a GkeonpremVmwareCluster resource upon running "cdktf plan <stack-name>"
    * @param scope The scope in which to define this construct
    * @param importToId The construct id used in the generated config for the GkeonpremVmwareCluster to import
    * @param importFromId The id of the existing GkeonpremVmwareCluster that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the GkeonpremVmwareCluster to import is found
    */
    static generateConfigForImport(scope: Construct, importToId: string, importFromId: string, provider?: cdktf.TerraformProvider): cdktf.ImportableResource;
    /**
    * Create a new {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gkeonprem_vmware_cluster google_gkeonprem_vmware_cluster} Resource
    *
    * @param scope The scope in which to define this construct
    * @param id The scoped construct ID. Must be unique amongst siblings in the same scope
    * @param options GkeonpremVmwareClusterConfig
    */
    constructor(scope: Construct, id: string, config: GkeonpremVmwareClusterConfig);
    private _adminClusterMembership?;
    get adminClusterMembership(): string;
    set adminClusterMembership(value: string);
    get adminClusterMembershipInput(): string | undefined;
    private _annotations?;
    get annotations(): {
        [key: string]: string;
    };
    set annotations(value: {
        [key: string]: string;
    });
    resetAnnotations(): void;
    get annotationsInput(): {
        [key: string]: string;
    } | undefined;
    get createTime(): string;
    get deleteTime(): string;
    private _description?;
    get description(): string;
    set description(value: string);
    resetDescription(): void;
    get descriptionInput(): string | undefined;
    private _disableBundledIngress?;
    get disableBundledIngress(): boolean | cdktf.IResolvable;
    set disableBundledIngress(value: boolean | cdktf.IResolvable);
    resetDisableBundledIngress(): void;
    get disableBundledIngressInput(): boolean | cdktf.IResolvable | undefined;
    private _effectiveAnnotations;
    get effectiveAnnotations(): cdktf.StringMap;
    private _enableAdvancedCluster?;
    get enableAdvancedCluster(): boolean | cdktf.IResolvable;
    set enableAdvancedCluster(value: boolean | cdktf.IResolvable);
    resetEnableAdvancedCluster(): void;
    get enableAdvancedClusterInput(): boolean | cdktf.IResolvable | undefined;
    private _enableControlPlaneV2?;
    get enableControlPlaneV2(): boolean | cdktf.IResolvable;
    set enableControlPlaneV2(value: boolean | cdktf.IResolvable);
    resetEnableControlPlaneV2(): void;
    get enableControlPlaneV2Input(): boolean | cdktf.IResolvable | undefined;
    get endpoint(): string;
    get etag(): string;
    private _fleet;
    get fleet(): GkeonpremVmwareClusterFleetList;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    get localName(): string;
    private _location?;
    get location(): string;
    set location(value: string);
    get locationInput(): string | undefined;
    private _name?;
    get name(): string;
    set name(value: string);
    get nameInput(): string | undefined;
    private _onPremVersion?;
    get onPremVersion(): string;
    set onPremVersion(value: string);
    get onPremVersionInput(): string | undefined;
    private _project?;
    get project(): string;
    set project(value: string);
    resetProject(): void;
    get projectInput(): string | undefined;
    get reconciling(): cdktf.IResolvable;
    get state(): string;
    private _status;
    get status(): GkeonpremVmwareClusterStatusList;
    get uid(): string;
    get updateTime(): string;
    private _validationCheck;
    get validationCheck(): GkeonpremVmwareClusterValidationCheckList;
    private _vmTrackingEnabled?;
    get vmTrackingEnabled(): boolean | cdktf.IResolvable;
    set vmTrackingEnabled(value: boolean | cdktf.IResolvable);
    resetVmTrackingEnabled(): void;
    get vmTrackingEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _antiAffinityGroups;
    get antiAffinityGroups(): GkeonpremVmwareClusterAntiAffinityGroupsOutputReference;
    putAntiAffinityGroups(value: GkeonpremVmwareClusterAntiAffinityGroups): void;
    resetAntiAffinityGroups(): void;
    get antiAffinityGroupsInput(): GkeonpremVmwareClusterAntiAffinityGroups | undefined;
    private _authorization;
    get authorization(): GkeonpremVmwareClusterAuthorizationOutputReference;
    putAuthorization(value: GkeonpremVmwareClusterAuthorization): void;
    resetAuthorization(): void;
    get authorizationInput(): GkeonpremVmwareClusterAuthorization | undefined;
    private _autoRepairConfig;
    get autoRepairConfig(): GkeonpremVmwareClusterAutoRepairConfigOutputReference;
    putAutoRepairConfig(value: GkeonpremVmwareClusterAutoRepairConfig): void;
    resetAutoRepairConfig(): void;
    get autoRepairConfigInput(): GkeonpremVmwareClusterAutoRepairConfig | undefined;
    private _controlPlaneNode;
    get controlPlaneNode(): GkeonpremVmwareClusterControlPlaneNodeOutputReference;
    putControlPlaneNode(value: GkeonpremVmwareClusterControlPlaneNode): void;
    get controlPlaneNodeInput(): GkeonpremVmwareClusterControlPlaneNode | undefined;
    private _dataplaneV2;
    get dataplaneV2(): GkeonpremVmwareClusterDataplaneV2OutputReference;
    putDataplaneV2(value: GkeonpremVmwareClusterDataplaneV2): void;
    resetDataplaneV2(): void;
    get dataplaneV2Input(): GkeonpremVmwareClusterDataplaneV2 | undefined;
    private _loadBalancer;
    get loadBalancer(): GkeonpremVmwareClusterLoadBalancerOutputReference;
    putLoadBalancer(value: GkeonpremVmwareClusterLoadBalancer): void;
    resetLoadBalancer(): void;
    get loadBalancerInput(): GkeonpremVmwareClusterLoadBalancer | undefined;
    private _networkConfig;
    get networkConfig(): GkeonpremVmwareClusterNetworkConfigOutputReference;
    putNetworkConfig(value: GkeonpremVmwareClusterNetworkConfig): void;
    resetNetworkConfig(): void;
    get networkConfigInput(): GkeonpremVmwareClusterNetworkConfig | undefined;
    private _storage;
    get storage(): GkeonpremVmwareClusterStorageOutputReference;
    putStorage(value: GkeonpremVmwareClusterStorage): void;
    resetStorage(): void;
    get storageInput(): GkeonpremVmwareClusterStorage | undefined;
    private _timeouts;
    get timeouts(): GkeonpremVmwareClusterTimeoutsOutputReference;
    putTimeouts(value: GkeonpremVmwareClusterTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | GkeonpremVmwareClusterTimeouts | undefined;
    private _upgradePolicy;
    get upgradePolicy(): GkeonpremVmwareClusterUpgradePolicyOutputReference;
    putUpgradePolicy(value: GkeonpremVmwareClusterUpgradePolicy): void;
    resetUpgradePolicy(): void;
    get upgradePolicyInput(): GkeonpremVmwareClusterUpgradePolicy | undefined;
    private _vcenter;
    get vcenter(): GkeonpremVmwareClusterVcenterOutputReference;
    putVcenter(value: GkeonpremVmwareClusterVcenter): void;
    resetVcenter(): void;
    get vcenterInput(): GkeonpremVmwareClusterVcenter | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
