## API Report File for "@azure/arm-avs"

> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).

```ts

import type { AbortSignalLike } from '@azure/abort-controller';
import type { ClientOptions } from '@azure-rest/core-client';
import type { OperationOptions } from '@azure-rest/core-client';
import type { OperationState } from '@azure/core-lro';
import type { PathUncheckedResponse } from '@azure-rest/core-client';
import type { Pipeline } from '@azure/core-rest-pipeline';
import type { PollerLike } from '@azure/core-lro';
import type { TokenCredential } from '@azure/core-auth';

// @public
export type ActionType = string;

// @public
export interface Addon extends ProxyResource {
    properties?: AddonPropertiesUnion;
}

// @public
export interface AddonArcProperties extends AddonProperties {
    addonType: "Arc";
    vCenter?: string;
}

// @public
export interface AddonHcxProperties extends AddonProperties {
    addonType: "HCX";
    managementNetwork?: string;
    offer: string;
    uplinkNetwork?: string;
}

// @public
export interface AddonProperties {
    addonType: AddonType;
    readonly provisioningState?: AddonProvisioningState;
}

// @public
export type AddonPropertiesUnion = AddonSrmProperties | AddonVrProperties | AddonHcxProperties | AddonArcProperties | AddonProperties;

// @public
export type AddonProvisioningState = string;

// @public
export interface AddonsCreateOrUpdateOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface AddonsDeleteOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface AddonsGetOptionalParams extends OperationOptions {
}

// @public
export interface AddonsListOptionalParams extends OperationOptions {
}

// @public
export interface AddonsOperations {
    createOrUpdate: (resourceGroupName: string, privateCloudName: string, addonName: string, addon: Addon, options?: AddonsCreateOrUpdateOptionalParams) => PollerLike<OperationState<Addon>, Addon>;
    delete: (resourceGroupName: string, privateCloudName: string, addonName: string, options?: AddonsDeleteOptionalParams) => PollerLike<OperationState<void>, void>;
    get: (resourceGroupName: string, privateCloudName: string, addonName: string, options?: AddonsGetOptionalParams) => Promise<Addon>;
    list: (resourceGroupName: string, privateCloudName: string, options?: AddonsListOptionalParams) => PagedAsyncIterableIterator<Addon>;
}

// @public
export interface AddonSrmProperties extends AddonProperties {
    addonType: "SRM";
    licenseKey?: string;
}

// @public
export type AddonType = string;

// @public
export interface AddonVrProperties extends AddonProperties {
    addonType: "VR";
    vrsCount: number;
}

// @public
export interface AdminCredentials {
    readonly nsxtPassword?: string;
    readonly nsxtUsername?: string;
    readonly vcenterPassword?: string;
    readonly vcenterUsername?: string;
}

// @public
export type AffinityStrength = string;

// @public
export type AffinityType = string;

// @public
export interface AuthorizationsCreateOrUpdateOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface AuthorizationsDeleteOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface AuthorizationsGetOptionalParams extends OperationOptions {
}

// @public
export interface AuthorizationsListOptionalParams extends OperationOptions {
}

// @public
export interface AuthorizationsOperations {
    createOrUpdate: (resourceGroupName: string, privateCloudName: string, authorizationName: string, authorization: ExpressRouteAuthorization, options?: AuthorizationsCreateOrUpdateOptionalParams) => PollerLike<OperationState<ExpressRouteAuthorization>, ExpressRouteAuthorization>;
    delete: (resourceGroupName: string, privateCloudName: string, authorizationName: string, options?: AuthorizationsDeleteOptionalParams) => PollerLike<OperationState<void>, void>;
    get: (resourceGroupName: string, privateCloudName: string, authorizationName: string, options?: AuthorizationsGetOptionalParams) => Promise<ExpressRouteAuthorization>;
    list: (resourceGroupName: string, privateCloudName: string, options?: AuthorizationsListOptionalParams) => PagedAsyncIterableIterator<ExpressRouteAuthorization>;
}

// @public
export interface AvailabilityProperties {
    secondaryZone?: number;
    strategy?: AvailabilityStrategy;
    zone?: number;
}

// @public
export type AvailabilityStrategy = string;

// @public
export interface AvailableWindowForMaintenanceWhileRescheduleOperation extends RescheduleOperationConstraint {
    readonly endsAt: Date;
    kind: "AvailableWindowForMaintenance";
    readonly startsAt: Date;
}

// @public
export interface AvailableWindowForMaintenanceWhileScheduleOperation extends ScheduleOperationConstraint {
    readonly endsAt: Date;
    kind: "AvailableWindowForMaintenance";
    readonly startsAt: Date;
}

// @public
export enum AzureClouds {
    AZURE_CHINA_CLOUD = "AZURE_CHINA_CLOUD",
    AZURE_PUBLIC_CLOUD = "AZURE_PUBLIC_CLOUD",
    AZURE_US_GOVERNMENT = "AZURE_US_GOVERNMENT"
}

// @public
export type AzureHybridBenefitType = string;

// @public
export type AzureSupportedClouds = `${AzureClouds}`;

// @public (undocumented)
export class AzureVMwareSolutionAPI {
    constructor(credential: TokenCredential, subscriptionId: string, options?: AzureVMwareSolutionAPIOptionalParams);
    readonly addons: AddonsOperations;
    readonly authorizations: AuthorizationsOperations;
    readonly cloudLinks: CloudLinksOperations;
    readonly clusters: ClustersOperations;
    readonly datastores: DatastoresOperations;
    readonly globalReachConnections: GlobalReachConnectionsOperations;
    readonly hcxEnterpriseSites: HcxEnterpriseSitesOperations;
    readonly hosts: HostsOperations;
    readonly iscsiPaths: IscsiPathsOperations;
    readonly licenses: LicensesOperations;
    readonly locations: LocationsOperations;
    readonly maintenances: MaintenancesOperations;
    readonly operations: OperationsOperations;
    readonly pipeline: Pipeline;
    readonly placementPolicies: PlacementPoliciesOperations;
    readonly privateClouds: PrivateCloudsOperations;
    readonly provisionedNetworks: ProvisionedNetworksOperations;
    readonly pureStoragePolicies: PureStoragePoliciesOperations;
    readonly scriptCmdlets: ScriptCmdletsOperations;
    readonly scriptExecutions: ScriptExecutionsOperations;
    readonly scriptPackages: ScriptPackagesOperations;
    readonly skus: SkusOperations;
    readonly virtualMachines: VirtualMachinesOperations;
    readonly workloadNetworks: WorkloadNetworksOperations;
}

// @public
export interface AzureVMwareSolutionAPIOptionalParams extends ClientOptions {
    apiVersion?: string;
    cloudSetting?: AzureSupportedClouds;
}

// @public
export type BlockedDatesConstraintCategory = string;

// @public
export interface BlockedDatesConstraintTimeRange {
    readonly endsAt: Date;
    readonly reason?: string;
    readonly startsAt: Date;
}

// @public
export interface BlockedWhileRescheduleOperation extends RescheduleOperationConstraint {
    readonly category: BlockedDatesConstraintCategory;
    kind: "Blocked";
    readonly timeRanges?: BlockedDatesConstraintTimeRange[];
}

// @public
export interface BlockedWhileScheduleOperation extends ScheduleOperationConstraint {
    readonly category: BlockedDatesConstraintCategory;
    kind: "Blocked";
    readonly timeRanges?: BlockedDatesConstraintTimeRange[];
}

// @public
export interface Circuit {
    readonly expressRouteID?: string;
    readonly expressRoutePrivatePeeringID?: string;
    readonly primarySubnet?: string;
    readonly secondarySubnet?: string;
}

// @public
export interface CloudLink extends ProxyResource {
    properties?: CloudLinkProperties;
}

// @public
export interface CloudLinkProperties {
    linkedCloud?: string;
    readonly provisioningState?: CloudLinkProvisioningState;
    readonly status?: CloudLinkStatus;
}

// @public
export type CloudLinkProvisioningState = string;

// @public
export interface CloudLinksCreateOrUpdateOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface CloudLinksDeleteOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface CloudLinksGetOptionalParams extends OperationOptions {
}

// @public
export interface CloudLinksListOptionalParams extends OperationOptions {
}

// @public
export interface CloudLinksOperations {
    createOrUpdate: (resourceGroupName: string, privateCloudName: string, cloudLinkName: string, cloudLink: CloudLink, options?: CloudLinksCreateOrUpdateOptionalParams) => PollerLike<OperationState<CloudLink>, CloudLink>;
    delete: (resourceGroupName: string, privateCloudName: string, cloudLinkName: string, options?: CloudLinksDeleteOptionalParams) => PollerLike<OperationState<void>, void>;
    get: (resourceGroupName: string, privateCloudName: string, cloudLinkName: string, options?: CloudLinksGetOptionalParams) => Promise<CloudLink>;
    list: (resourceGroupName: string, privateCloudName: string, options?: CloudLinksListOptionalParams) => PagedAsyncIterableIterator<CloudLink>;
}

// @public
export type CloudLinkStatus = string;

// @public
export interface Cluster extends ProxyResource {
    properties?: ClusterProperties;
    sku: Sku;
}

// @public
export interface ClusterProperties {
    readonly clusterId?: number;
    clusterSize?: number;
    hosts?: string[];
    readonly provisioningState?: ClusterProvisioningState;
    vsanDatastoreName?: string;
}

// @public
export type ClusterProvisioningState = string;

// @public
export interface ClustersCreateOrUpdateOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface ClustersDeleteOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface ClustersGetOptionalParams extends OperationOptions {
}

// @public
export interface ClustersListOptionalParams extends OperationOptions {
}

// @public
export interface ClustersListZonesOptionalParams extends OperationOptions {
}

// @public
export interface ClustersOperations {
    createOrUpdate: (resourceGroupName: string, privateCloudName: string, clusterName: string, cluster: Cluster, options?: ClustersCreateOrUpdateOptionalParams) => PollerLike<OperationState<Cluster>, Cluster>;
    delete: (resourceGroupName: string, privateCloudName: string, clusterName: string, options?: ClustersDeleteOptionalParams) => PollerLike<OperationState<void>, void>;
    get: (resourceGroupName: string, privateCloudName: string, clusterName: string, options?: ClustersGetOptionalParams) => Promise<Cluster>;
    list: (resourceGroupName: string, privateCloudName: string, options?: ClustersListOptionalParams) => PagedAsyncIterableIterator<Cluster>;
    listZones: (resourceGroupName: string, privateCloudName: string, clusterName: string, options?: ClustersListZonesOptionalParams) => Promise<ClusterZoneList>;
    update: (resourceGroupName: string, privateCloudName: string, clusterName: string, clusterUpdate: ClusterUpdate, options?: ClustersUpdateOptionalParams) => PollerLike<OperationState<Cluster>, Cluster>;
}

// @public
export interface ClustersUpdateOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface ClusterUpdate {
    properties?: ClusterUpdateProperties;
    sku?: Sku;
}

// @public
export interface ClusterUpdateProperties {
    clusterSize?: number;
    hosts?: string[];
}

// @public
export interface ClusterZone {
    readonly hosts?: string[];
    readonly zone?: string;
}

// @public
export interface ClusterZoneList {
    zones?: ClusterZone[];
}

// @public
export type ContinuablePage<TElement, TPage = TElement[]> = TPage & {
    continuationToken?: string;
};

// @public
export type CreatedByType = string;

// @public
export interface Datastore extends ProxyResource {
    properties?: DatastoreProperties;
}

// @public
export interface DatastoreProperties {
    diskPoolVolume?: DiskPoolVolume;
    elasticSanVolume?: ElasticSanVolume;
    netAppVolume?: NetAppVolume;
    readonly provisioningState?: DatastoreProvisioningState;
    pureStorageVolume?: PureStorageVolume;
    readonly status?: DatastoreStatus;
}

// @public
export type DatastoreProvisioningState = string;

// @public
export interface DatastoresCreateOrUpdateOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface DatastoresDeleteOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface DatastoresGetOptionalParams extends OperationOptions {
}

// @public
export interface DatastoresListOptionalParams extends OperationOptions {
}

// @public
export interface DatastoresOperations {
    createOrUpdate: (resourceGroupName: string, privateCloudName: string, clusterName: string, datastoreName: string, datastore: Datastore, options?: DatastoresCreateOrUpdateOptionalParams) => PollerLike<OperationState<Datastore>, Datastore>;
    delete: (resourceGroupName: string, privateCloudName: string, clusterName: string, datastoreName: string, options?: DatastoresDeleteOptionalParams) => PollerLike<OperationState<void>, void>;
    get: (resourceGroupName: string, privateCloudName: string, clusterName: string, datastoreName: string, options?: DatastoresGetOptionalParams) => Promise<Datastore>;
    list: (resourceGroupName: string, privateCloudName: string, clusterName: string, options?: DatastoresListOptionalParams) => PagedAsyncIterableIterator<Datastore>;
}

// @public
export type DatastoreStatus = string;

// @public
export type DhcpTypeEnum = string;

// @public
export interface DiskPoolVolume {
    lunName: string;
    mountOption?: MountOptionEnum;
    readonly path?: string;
    targetId: string;
}

// @public
export type DnsServiceLogLevelEnum = string;

// @public
export type DnsServiceStatusEnum = string;

// @public
export type DnsZoneType = string;

// @public
export interface ElasticSanVolume {
    targetId: string;
}

// @public
export interface Encryption {
    keyVaultProperties?: EncryptionKeyVaultProperties;
    status?: EncryptionState;
}

// @public
export type EncryptionKeyStatus = string;

// @public
export interface EncryptionKeyVaultProperties {
    readonly autoDetectedKeyVersion?: string;
    keyName?: string;
    readonly keyState?: EncryptionKeyStatus;
    keyVaultUrl?: string;
    keyVersion?: string;
    readonly versionType?: EncryptionVersionType;
}

// @public
export type EncryptionState = string;

// @public
export type EncryptionVersionType = string;

// @public
export interface Endpoints {
    readonly hcxCloudManager?: string;
    readonly hcxCloudManagerIp?: string;
    readonly nsxtManager?: string;
    readonly nsxtManagerIp?: string;
    readonly vcenterIp?: string;
    readonly vcsa?: string;
}

// @public
export interface ErrorAdditionalInfo {
    readonly info?: any;
    readonly type?: string;
}

// @public
export interface ErrorDetail {
    readonly additionalInfo?: ErrorAdditionalInfo[];
    readonly code?: string;
    readonly details?: ErrorDetail[];
    readonly message?: string;
    readonly target?: string;
}

// @public
export interface ErrorResponse {
    error?: ErrorDetail;
}

// @public
export interface ExpressRouteAuthorization extends ProxyResource {
    properties?: ExpressRouteAuthorizationProperties;
}

// @public
export interface ExpressRouteAuthorizationProperties {
    readonly expressRouteAuthorizationId?: string;
    readonly expressRouteAuthorizationKey?: string;
    expressRouteId?: string;
    readonly provisioningState?: ExpressRouteAuthorizationProvisioningState;
}

// @public
export type ExpressRouteAuthorizationProvisioningState = string;

// @public
export interface GeneralHostProperties extends HostProperties {
    kind: "General";
}

// @public
export interface GlobalReachConnection extends ProxyResource {
    properties?: GlobalReachConnectionProperties;
}

// @public
export interface GlobalReachConnectionProperties {
    readonly addressPrefix?: string;
    authorizationKey?: string;
    readonly circuitConnectionStatus?: GlobalReachConnectionStatus;
    expressRouteId?: string;
    peerExpressRouteCircuit?: string;
    readonly provisioningState?: GlobalReachConnectionProvisioningState;
}

// @public
export type GlobalReachConnectionProvisioningState = string;

// @public
export interface GlobalReachConnectionsCreateOrUpdateOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface GlobalReachConnectionsDeleteOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface GlobalReachConnectionsGetOptionalParams extends OperationOptions {
}

// @public
export interface GlobalReachConnectionsListOptionalParams extends OperationOptions {
}

// @public
export interface GlobalReachConnectionsOperations {
    createOrUpdate: (resourceGroupName: string, privateCloudName: string, globalReachConnectionName: string, globalReachConnection: GlobalReachConnection, options?: GlobalReachConnectionsCreateOrUpdateOptionalParams) => PollerLike<OperationState<GlobalReachConnection>, GlobalReachConnection>;
    delete: (resourceGroupName: string, privateCloudName: string, globalReachConnectionName: string, options?: GlobalReachConnectionsDeleteOptionalParams) => PollerLike<OperationState<void>, void>;
    get: (resourceGroupName: string, privateCloudName: string, globalReachConnectionName: string, options?: GlobalReachConnectionsGetOptionalParams) => Promise<GlobalReachConnection>;
    list: (resourceGroupName: string, privateCloudName: string, options?: GlobalReachConnectionsListOptionalParams) => PagedAsyncIterableIterator<GlobalReachConnection>;
}

// @public
export type GlobalReachConnectionStatus = string;

// @public
export interface HcxEnterpriseSite extends ProxyResource {
    properties?: HcxEnterpriseSiteProperties;
}

// @public
export interface HcxEnterpriseSiteProperties {
    readonly activationKey?: string;
    readonly provisioningState?: HcxEnterpriseSiteProvisioningState;
    readonly status?: HcxEnterpriseSiteStatus;
}

// @public
export type HcxEnterpriseSiteProvisioningState = string;

// @public
export interface HcxEnterpriseSitesCreateOrUpdateOptionalParams extends OperationOptions {
}

// @public
export interface HcxEnterpriseSitesDeleteOptionalParams extends OperationOptions {
}

// @public
export interface HcxEnterpriseSitesGetOptionalParams extends OperationOptions {
}

// @public
export interface HcxEnterpriseSitesListOptionalParams extends OperationOptions {
}

// @public
export interface HcxEnterpriseSitesOperations {
    createOrUpdate: (resourceGroupName: string, privateCloudName: string, hcxEnterpriseSiteName: string, hcxEnterpriseSite: HcxEnterpriseSite, options?: HcxEnterpriseSitesCreateOrUpdateOptionalParams) => Promise<HcxEnterpriseSite>;
    delete: (resourceGroupName: string, privateCloudName: string, hcxEnterpriseSiteName: string, options?: HcxEnterpriseSitesDeleteOptionalParams) => Promise<void>;
    get: (resourceGroupName: string, privateCloudName: string, hcxEnterpriseSiteName: string, options?: HcxEnterpriseSitesGetOptionalParams) => Promise<HcxEnterpriseSite>;
    list: (resourceGroupName: string, privateCloudName: string, options?: HcxEnterpriseSitesListOptionalParams) => PagedAsyncIterableIterator<HcxEnterpriseSite>;
}

// @public
export type HcxEnterpriseSiteStatus = string;

// @public
export interface Host extends ProxyResource {
    properties?: HostPropertiesUnion;
    sku?: Sku;
    zones?: string[];
}

// @public
export type HostKind = string;

// @public
export type HostMaintenance = string;

// @public
export interface HostProperties {
    displayName?: string;
    // (undocumented)
    readonly faultDomain?: string;
    readonly fqdn?: string;
    kind: HostKind;
    maintenance?: HostMaintenance;
    readonly moRefId?: string;
    readonly provisioningState?: HostProvisioningState;
}

// @public
export type HostPropertiesUnion = GeneralHostProperties | SpecializedHostProperties | HostProperties;

// @public
export type HostProvisioningState = string;

// @public
export interface HostsGetOptionalParams extends OperationOptions {
}

// @public
export interface HostsListOptionalParams extends OperationOptions {
}

// @public
export interface HostsOperations {
    get: (resourceGroupName: string, privateCloudName: string, clusterName: string, hostId: string, options?: HostsGetOptionalParams) => Promise<Host>;
    list: (resourceGroupName: string, privateCloudName: string, clusterName: string, options?: HostsListOptionalParams) => PagedAsyncIterableIterator<Host>;
}

// @public
export interface IdentitySource {
    alias?: string;
    baseGroupDN?: string;
    baseUserDN?: string;
    domain?: string;
    name?: string;
    password?: string;
    primaryServer?: string;
    secondaryServer?: string;
    ssl?: SslEnum;
    username?: string;
}

// @public
export interface ImpactedMaintenanceResource {
    readonly errors?: ImpactedMaintenanceResourceError[];
    readonly id?: string;
}

// @public
export interface ImpactedMaintenanceResourceError {
    readonly actionRequired?: boolean;
    readonly details?: string;
    readonly errorCode?: string;
    readonly name?: string;
    readonly resolutionSteps?: string[];
}

// @public
export type InternetEnum = string;

// @public
export interface IscsiPath extends ProxyResource {
    properties?: IscsiPathProperties;
}

// @public
export interface IscsiPathProperties {
    networkBlock: string;
    readonly provisioningState?: IscsiPathProvisioningState;
}

// @public
export type IscsiPathProvisioningState = string;

// @public
export interface IscsiPathsCreateOrUpdateOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface IscsiPathsDeleteOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface IscsiPathsGetOptionalParams extends OperationOptions {
}

// @public
export interface IscsiPathsListByPrivateCloudOptionalParams extends OperationOptions {
}

// @public
export interface IscsiPathsOperations {
    createOrUpdate: (resourceGroupName: string, privateCloudName: string, resource: IscsiPath, options?: IscsiPathsCreateOrUpdateOptionalParams) => PollerLike<OperationState<IscsiPath>, IscsiPath>;
    delete: (resourceGroupName: string, privateCloudName: string, options?: IscsiPathsDeleteOptionalParams) => PollerLike<OperationState<void>, void>;
    get: (resourceGroupName: string, privateCloudName: string, options?: IscsiPathsGetOptionalParams) => Promise<IscsiPath>;
    listByPrivateCloud: (resourceGroupName: string, privateCloudName: string, options?: IscsiPathsListByPrivateCloudOptionalParams) => PagedAsyncIterableIterator<IscsiPath>;
}

// @public
export enum KnownActionType {
    Internal = "Internal"
}

// @public
export enum KnownAddonProvisioningState {
    Building = "Building",
    Canceled = "Canceled",
    Cancelled = "Cancelled",
    Deleting = "Deleting",
    Failed = "Failed",
    Succeeded = "Succeeded",
    Updating = "Updating"
}

// @public
export enum KnownAddonType {
    Arc = "Arc",
    HCX = "HCX",
    SRM = "SRM",
    VR = "VR"
}

// @public
export enum KnownAffinityStrength {
    Must = "Must",
    Should = "Should"
}

// @public
export enum KnownAffinityType {
    Affinity = "Affinity",
    AntiAffinity = "AntiAffinity"
}

// @public
export enum KnownAvailabilityStrategy {
    DualZone = "DualZone",
    SingleZone = "SingleZone"
}

// @public
export enum KnownAzureHybridBenefitType {
    None = "None",
    SqlHost = "SqlHost"
}

// @public
export enum KnownBlockedDatesConstraintCategory {
    HiPriorityEvent = "HiPriorityEvent",
    Holiday = "Holiday",
    QuotaExhausted = "QuotaExhausted"
}

// @public
export enum KnownCloudLinkProvisioningState {
    Canceled = "Canceled",
    Failed = "Failed",
    Succeeded = "Succeeded"
}

// @public
export enum KnownCloudLinkStatus {
    Active = "Active",
    Building = "Building",
    Deleting = "Deleting",
    Disconnected = "Disconnected",
    Failed = "Failed"
}

// @public
export enum KnownClusterProvisioningState {
    Canceled = "Canceled",
    Cancelled = "Cancelled",
    Deleting = "Deleting",
    Failed = "Failed",
    Succeeded = "Succeeded",
    Updating = "Updating"
}

// @public
export enum KnownCreatedByType {
    Application = "Application",
    Key = "Key",
    ManagedIdentity = "ManagedIdentity",
    User = "User"
}

// @public
export enum KnownDatastoreProvisioningState {
    Canceled = "Canceled",
    Cancelled = "Cancelled",
    Creating = "Creating",
    Deleting = "Deleting",
    Failed = "Failed",
    Pending = "Pending",
    Succeeded = "Succeeded",
    Updating = "Updating"
}

// @public
export enum KnownDatastoreStatus {
    Accessible = "Accessible",
    Attached = "Attached",
    DeadOrError = "DeadOrError",
    Detached = "Detached",
    Inaccessible = "Inaccessible",
    LostCommunication = "LostCommunication",
    Unknown = "Unknown"
}

// @public
export enum KnownDhcpTypeEnum {
    Relay = "RELAY",
    Server = "SERVER"
}

// @public
export enum KnownDnsServiceLogLevelEnum {
    Debug = "DEBUG",
    Error = "ERROR",
    Fatal = "FATAL",
    Info = "INFO",
    Warning = "WARNING"
}

// @public
export enum KnownDnsServiceStatusEnum {
    Failure = "FAILURE",
    Success = "SUCCESS"
}

// @public
export enum KnownDnsZoneType {
    Private = "Private",
    Public = "Public"
}

// @public
export enum KnownEncryptionKeyStatus {
    AccessDenied = "AccessDenied",
    Connected = "Connected"
}

// @public
export enum KnownEncryptionState {
    Disabled = "Disabled",
    Enabled = "Enabled"
}

// @public
export enum KnownEncryptionVersionType {
    AutoDetected = "AutoDetected",
    Fixed = "Fixed"
}

// @public
export enum KnownExpressRouteAuthorizationProvisioningState {
    Canceled = "Canceled",
    Failed = "Failed",
    Succeeded = "Succeeded",
    Updating = "Updating"
}

// @public
export enum KnownGlobalReachConnectionProvisioningState {
    Canceled = "Canceled",
    Failed = "Failed",
    Succeeded = "Succeeded",
    Updating = "Updating"
}

// @public
export enum KnownGlobalReachConnectionStatus {
    Connected = "Connected",
    Connecting = "Connecting",
    Disconnected = "Disconnected"
}

// @public
export enum KnownHcxEnterpriseSiteProvisioningState {
    Canceled = "Canceled",
    Failed = "Failed",
    Succeeded = "Succeeded"
}

// @public
export enum KnownHcxEnterpriseSiteStatus {
    Available = "Available",
    Consumed = "Consumed",
    Deactivated = "Deactivated",
    Deleted = "Deleted"
}

// @public
export enum KnownHostKind {
    General = "General",
    Specialized = "Specialized"
}

// @public
export enum KnownHostMaintenance {
    Replacement = "Replacement",
    Upgrade = "Upgrade"
}

// @public
export enum KnownHostProvisioningState {
    Canceled = "Canceled",
    Failed = "Failed",
    Succeeded = "Succeeded"
}

// @public
export enum KnownInternetEnum {
    Disabled = "Disabled",
    Enabled = "Enabled"
}

// @public
export enum KnownIscsiPathProvisioningState {
    Building = "Building",
    Canceled = "Canceled",
    Deleting = "Deleting",
    Failed = "Failed",
    Pending = "Pending",
    Succeeded = "Succeeded",
    Updating = "Updating"
}

// @public
export enum KnownLicenseKind {
    VmwareFirewall = "VmwareFirewall"
}

// @public
export enum KnownLicenseName {
    VmwareFirewall = "VmwareFirewall"
}

// @public
export enum KnownLicenseProvisioningState {
    Canceled = "Canceled",
    Failed = "Failed",
    Succeeded = "Succeeded"
}

// @public
export enum KnownMaintenanceCheckType {
    Precheck = "Precheck",
    Preflight = "Preflight"
}

// @public
export enum KnownMaintenanceManagementOperationKind {
    MaintenanceReadinessRefresh = "MaintenanceReadinessRefresh",
    Reschedule = "Reschedule",
    Schedule = "Schedule"
}

// @public
export enum KnownMaintenanceProvisioningState {
    Canceled = "Canceled",
    Failed = "Failed",
    Succeeded = "Succeeded",
    Updating = "Updating"
}

// @public
export enum KnownMaintenanceReadinessRefreshOperationStatus {
    Failed = "Failed",
    InProgress = "InProgress",
    NotApplicable = "NotApplicable",
    NotStarted = "NotStarted"
}

// @public
export enum KnownMaintenanceReadinessStatus {
    DataNotAvailable = "DataNotAvailable",
    NotApplicable = "NotApplicable",
    NotReady = "NotReady",
    Ready = "Ready"
}

// @public
export enum KnownMaintenanceStateName {
    Canceled = "Canceled",
    Failed = "Failed",
    InProgress = "InProgress",
    NotScheduled = "NotScheduled",
    Scheduled = "Scheduled",
    Success = "Success"
}

// @public
export enum KnownMaintenanceStatusFilter {
    Active = "Active",
    Inactive = "Inactive"
}

// @public
export enum KnownMaintenanceType {
    Esxi = "ESXI",
    Nsxt = "NSXT",
    Vcsa = "VCSA"
}

// @public
export enum KnownMountOptionEnum {
    Attach = "ATTACH",
    Mount = "MOUNT"
}

// @public
export enum KnownNsxPublicIpQuotaRaisedEnum {
    Disabled = "Disabled",
    Enabled = "Enabled"
}

// @public
export enum KnownOptionalParamEnum {
    Optional = "Optional",
    Required = "Required"
}

// @public
export enum KnownOrigin {
    System = "system",
    User = "user",
    UserSystem = "user,system"
}

// @public
export enum KnownPlacementPolicyProvisioningState {
    Building = "Building",
    Canceled = "Canceled",
    Deleting = "Deleting",
    Failed = "Failed",
    Succeeded = "Succeeded",
    Updating = "Updating"
}

// @public
export enum KnownPlacementPolicyState {
    Disabled = "Disabled",
    Enabled = "Enabled"
}

// @public
export enum KnownPlacementPolicyType {
    VmHost = "VmHost",
    VmVm = "VmVm"
}

// @public
export enum KnownPortMirroringDirectionEnum {
    Bidirectional = "BIDIRECTIONAL",
    Egress = "EGRESS",
    Ingress = "INGRESS"
}

// @public
export enum KnownPortMirroringStatusEnum {
    Failure = "FAILURE",
    Success = "SUCCESS"
}

// @public
export enum KnownPrivateCloudProvisioningState {
    Building = "Building",
    Canceled = "Canceled",
    Cancelled = "Cancelled",
    Deleting = "Deleting",
    Failed = "Failed",
    Pending = "Pending",
    Succeeded = "Succeeded",
    Updating = "Updating"
}

// @public
export enum KnownProvisionedNetworkProvisioningState {
    Canceled = "Canceled",
    Failed = "Failed",
    Succeeded = "Succeeded"
}

// @public
export enum KnownProvisionedNetworkTypes {
    EsxManagement = "esxManagement",
    EsxReplication = "esxReplication",
    HcxManagement = "hcxManagement",
    HcxUplink = "hcxUplink",
    VcenterManagement = "vcenterManagement",
    Vmotion = "vmotion",
    Vsan = "vsan"
}

// @public
export enum KnownPureStoragePolicyProvisioningState {
    Canceled = "Canceled",
    Deleting = "Deleting",
    Failed = "Failed",
    Succeeded = "Succeeded",
    Updating = "Updating"
}

// @public
export enum KnownQuotaEnabled {
    Disabled = "Disabled",
    Enabled = "Enabled"
}

// @public
export enum KnownRescheduleOperationConstraintKind {
    AvailableWindowForMaintenanceWhileRescheduleOperation = "AvailableWindowForMaintenance",
    BlockedWhileRescheduleOperation = "Blocked"
}

// @public
export enum KnownResourceIdentityType {
    None = "None",
    SystemAssigned = "SystemAssigned"
}

// @public
export enum KnownResourceSkuResourceType {
    PrivateClouds = "privateClouds",
    PrivateCloudsClusters = "privateClouds/clusters"
}

// @public
export enum KnownResourceSkuRestrictionsReasonCode {
    NotAvailableForSubscription = "NotAvailableForSubscription",
    QuotaId = "QuotaId"
}

// @public
export enum KnownResourceSkuRestrictionsType {
    Location = "Location",
    Zone = "Zone"
}

// @public
export enum KnownScheduleOperationConstraintKind {
    AvailableWindowForMaintenanceWhileScheduleOperation = "AvailableWindowForMaintenance",
    BlockedWhileScheduleOperation = "Blocked",
    SchedulingWindow = "SchedulingWindow"
}

// @public
export enum KnownScriptCmdletAudience {
    Any = "Any",
    Automation = "Automation"
}

// @public
export enum KnownScriptCmdletProvisioningState {
    Canceled = "Canceled",
    Failed = "Failed",
    Succeeded = "Succeeded"
}

// @public
export enum KnownScriptExecutionParameterType {
    Credential = "Credential",
    SecureValue = "SecureValue",
    Value = "Value"
}

// @public
export enum KnownScriptExecutionProvisioningState {
    Canceled = "Canceled",
    Cancelled = "Cancelled",
    Cancelling = "Cancelling",
    Deleting = "Deleting",
    Failed = "Failed",
    Pending = "Pending",
    Running = "Running",
    Succeeded = "Succeeded"
}

// @public
export enum KnownScriptOutputStreamType {
    Error = "Error",
    Information = "Information",
    Output = "Output",
    Warning = "Warning"
}

// @public
export enum KnownScriptPackageProvisioningState {
    Canceled = "Canceled",
    Failed = "Failed",
    Succeeded = "Succeeded"
}

// @public
export enum KnownScriptParameterTypes {
    Bool = "Bool",
    Credential = "Credential",
    Float = "Float",
    Int = "Int",
    SecureString = "SecureString",
    String = "String"
}

// @public
export enum KnownSegmentStatusEnum {
    Failure = "FAILURE",
    Success = "SUCCESS"
}

// @public
export enum KnownSslEnum {
    Disabled = "Disabled",
    Enabled = "Enabled"
}

// @public
export enum KnownTrialStatus {
    TrialAvailable = "TrialAvailable",
    TrialDisabled = "TrialDisabled",
    TrialUsed = "TrialUsed"
}

// @public
export enum KnownVcfLicenseKind {
    Vcf5 = "vcf5"
}

// @public
export enum KnownVersions {
    V20230901 = "2023-09-01",
    V20240901 = "2024-09-01",
    V20250901 = "2025-09-01"
}

// @public
export enum KnownVirtualMachineProvisioningState {
    Canceled = "Canceled",
    Failed = "Failed",
    Succeeded = "Succeeded"
}

// @public
export enum KnownVirtualMachineRestrictMovementState {
    Disabled = "Disabled",
    Enabled = "Enabled"
}

// @public
export enum KnownVisibilityParameterEnum {
    Hidden = "Hidden",
    Visible = "Visible"
}

// @public
export enum KnownVMGroupStatusEnum {
    Failure = "FAILURE",
    Success = "SUCCESS"
}

// @public
export enum KnownVMTypeEnum {
    Edge = "EDGE",
    Regular = "REGULAR",
    Service = "SERVICE"
}

// @public
export enum KnownWorkloadNetworkDhcpProvisioningState {
    Building = "Building",
    Canceled = "Canceled",
    Deleting = "Deleting",
    Failed = "Failed",
    Succeeded = "Succeeded",
    Updating = "Updating"
}

// @public
export enum KnownWorkloadNetworkDnsServiceProvisioningState {
    Building = "Building",
    Canceled = "Canceled",
    Deleting = "Deleting",
    Failed = "Failed",
    Succeeded = "Succeeded",
    Updating = "Updating"
}

// @public
export enum KnownWorkloadNetworkDnsZoneProvisioningState {
    Building = "Building",
    Canceled = "Canceled",
    Deleting = "Deleting",
    Failed = "Failed",
    Succeeded = "Succeeded",
    Updating = "Updating"
}

// @public
export enum KnownWorkloadNetworkPortMirroringProvisioningState {
    Building = "Building",
    Canceled = "Canceled",
    Deleting = "Deleting",
    Failed = "Failed",
    Succeeded = "Succeeded",
    Updating = "Updating"
}

// @public
export enum KnownWorkloadNetworkProvisioningState {
    Building = "Building",
    Canceled = "Canceled",
    Deleting = "Deleting",
    Failed = "Failed",
    Succeeded = "Succeeded",
    Updating = "Updating"
}

// @public
export enum KnownWorkloadNetworkPublicIPProvisioningState {
    Building = "Building",
    Canceled = "Canceled",
    Deleting = "Deleting",
    Failed = "Failed",
    Succeeded = "Succeeded",
    Updating = "Updating"
}

// @public
export enum KnownWorkloadNetworkSegmentProvisioningState {
    Building = "Building",
    Canceled = "Canceled",
    Deleting = "Deleting",
    Failed = "Failed",
    Succeeded = "Succeeded",
    Updating = "Updating"
}

// @public
export enum KnownWorkloadNetworkVMGroupProvisioningState {
    Building = "Building",
    Canceled = "Canceled",
    Deleting = "Deleting",
    Failed = "Failed",
    Succeeded = "Succeeded",
    Updating = "Updating"
}

// @public
export interface Label {
    key: string;
    value: string;
}

// @public
export interface License extends ProxyResource {
    properties?: LicensePropertiesUnion;
}

// @public
export type LicenseKind = string;

// @public
export type LicenseName = string;

// @public
export interface LicenseProperties {
    kind: LicenseKind;
    readonly provisioningState?: LicenseProvisioningState;
}

// @public
export type LicensePropertiesUnion = VmwareFirewallLicenseProperties | LicenseProperties;

// @public
export type LicenseProvisioningState = string;

// @public
export interface LicensesCreateOrUpdateOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface LicensesDeleteOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface LicensesGetOptionalParams extends OperationOptions {
}

// @public
export interface LicensesGetPropertiesOptionalParams extends OperationOptions {
}

// @public
export interface LicensesListOptionalParams extends OperationOptions {
}

// @public
export interface LicensesOperations {
    createOrUpdate: (resourceGroupName: string, privateCloudName: string, licenseName: LicenseName, resource: License, options?: LicensesCreateOrUpdateOptionalParams) => PollerLike<OperationState<License>, License>;
    delete: (resourceGroupName: string, privateCloudName: string, licenseName: LicenseName, options?: LicensesDeleteOptionalParams) => PollerLike<OperationState<void>, void>;
    get: (resourceGroupName: string, privateCloudName: string, licenseName: LicenseName, options?: LicensesGetOptionalParams) => Promise<License>;
    getProperties: (resourceGroupName: string, privateCloudName: string, licenseName: LicenseName, options?: LicensesGetPropertiesOptionalParams) => Promise<LicensePropertiesUnion>;
    list: (resourceGroupName: string, privateCloudName: string, options?: LicensesListOptionalParams) => PagedAsyncIterableIterator<License>;
}

// @public
export interface LocationsCheckQuotaAvailabilityOptionalParams extends OperationOptions {
}

// @public
export interface LocationsCheckTrialAvailabilityOptionalParams extends OperationOptions {
    sku?: Sku;
}

// @public
export interface LocationsOperations {
    checkQuotaAvailability: (location: string, options?: LocationsCheckQuotaAvailabilityOptionalParams) => Promise<Quota>;
    checkTrialAvailability: (location: string, options?: LocationsCheckTrialAvailabilityOptionalParams) => Promise<Trial>;
}

// @public
export interface Maintenance extends ProxyResource {
    properties?: MaintenanceProperties;
}

// @public
export type MaintenanceCheckType = string;

// @public
export interface MaintenanceFailedCheck {
    readonly impactedResources?: ImpactedMaintenanceResource[];
    readonly name?: string;
}

// @public
export interface MaintenanceManagementOperation {
    readonly kind: MaintenanceManagementOperationKind;
}

// @public
export type MaintenanceManagementOperationKind = string;

// @public
export type MaintenanceManagementOperationUnion = ScheduleOperation | RescheduleOperation | MaintenanceReadinessRefreshOperation | MaintenanceManagementOperation;

// @public
export interface MaintenanceProperties {
    readonly clusterId?: number;
    readonly component?: MaintenanceType;
    readonly displayName?: string;
    readonly estimatedDurationInMinutes?: number;
    readonly impact?: string;
    readonly infoLink?: string;
    readonly maintenanceReadiness?: MaintenanceReadiness;
    readonly operations?: MaintenanceManagementOperationUnion[];
    readonly provisioningState?: MaintenanceProvisioningState;
    readonly scheduledByMicrosoft?: boolean;
    readonly scheduledStartTime?: Date;
    readonly state?: MaintenanceState;
}

// @public
export type MaintenanceProvisioningState = string;

// @public
export interface MaintenanceReadiness {
    readonly failedChecks?: MaintenanceFailedCheck[];
    readonly lastUpdated?: Date;
    readonly message?: string;
    readonly status: MaintenanceReadinessStatus;
    readonly type: MaintenanceCheckType;
}

// @public
export interface MaintenanceReadinessRefreshOperation extends MaintenanceManagementOperation {
    readonly disabledReason?: string;
    readonly isDisabled?: boolean;
    kind: "MaintenanceReadinessRefresh";
    readonly message?: string;
    readonly refreshedByMicrosoft?: boolean;
    readonly status?: MaintenanceReadinessRefreshOperationStatus;
}

// @public
export type MaintenanceReadinessRefreshOperationStatus = string;

// @public
export type MaintenanceReadinessStatus = string;

// @public
export interface MaintenanceReschedule {
    message?: string;
    rescheduleTime?: Date;
}

// @public
export interface MaintenanceSchedule {
    message?: string;
    scheduleTime?: Date;
}

// @public
export interface MaintenancesGetOptionalParams extends OperationOptions {
}

// @public
export interface MaintenancesInitiateChecksOptionalParams extends OperationOptions {
}

// @public
export interface MaintenancesListOptionalParams extends OperationOptions {
    fromParam?: Date;
    stateName?: MaintenanceStateName;
    status?: MaintenanceStatusFilter;
    to?: Date;
}

// @public
export interface MaintenancesOperations {
    get: (resourceGroupName: string, privateCloudName: string, maintenanceName: string, options?: MaintenancesGetOptionalParams) => Promise<Maintenance>;
    initiateChecks: (resourceGroupName: string, privateCloudName: string, maintenanceName: string, options?: MaintenancesInitiateChecksOptionalParams) => Promise<Maintenance>;
    list: (resourceGroupName: string, privateCloudName: string, options?: MaintenancesListOptionalParams) => PagedAsyncIterableIterator<Maintenance>;
    reschedule: (resourceGroupName: string, privateCloudName: string, maintenanceName: string, body: MaintenanceReschedule, options?: MaintenancesRescheduleOptionalParams) => Promise<Maintenance>;
    schedule: (resourceGroupName: string, privateCloudName: string, maintenanceName: string, body: MaintenanceSchedule, options?: MaintenancesScheduleOptionalParams) => Promise<Maintenance>;
}

// @public
export interface MaintenancesRescheduleOptionalParams extends OperationOptions {
}

// @public
export interface MaintenancesScheduleOptionalParams extends OperationOptions {
}

// @public
export interface MaintenanceState {
    endedAt?: Date;
    message?: string;
    name?: MaintenanceStateName;
    startedAt?: Date;
}

// @public
export type MaintenanceStateName = string;

// @public
export type MaintenanceStatusFilter = string;

// @public
export type MaintenanceType = string;

// @public
export interface ManagementCluster {
    readonly clusterId?: number;
    clusterSize?: number;
    hosts?: string[];
    readonly provisioningState?: ClusterProvisioningState;
    vsanDatastoreName?: string;
}

// @public
export type MountOptionEnum = string;

// @public
export interface NetAppVolume {
    id: string;
}

// @public
export type NsxPublicIpQuotaRaisedEnum = string;

// @public
export interface Operation {
    readonly actionType?: ActionType;
    display?: OperationDisplay;
    readonly isDataAction?: boolean;
    readonly name?: string;
    readonly origin?: Origin;
}

// @public
export interface OperationDisplay {
    readonly description?: string;
    readonly operation?: string;
    readonly provider?: string;
    readonly resource?: string;
}

// @public
export interface OperationsListOptionalParams extends OperationOptions {
}

// @public
export interface OperationsOperations {
    list: (options?: OperationsListOptionalParams) => PagedAsyncIterableIterator<Operation>;
}

// @public
export type OptionalParamEnum = string;

// @public
export type Origin = string;

// @public
export interface PagedAsyncIterableIterator<TElement, TPage = TElement[], TPageSettings extends PageSettings = PageSettings> {
    [Symbol.asyncIterator](): PagedAsyncIterableIterator<TElement, TPage, TPageSettings>;
    byPage: (settings?: TPageSettings) => AsyncIterableIterator<ContinuablePage<TElement, TPage>>;
    next(): Promise<IteratorResult<TElement>>;
}

// @public
export interface PageSettings {
    continuationToken?: string;
}

// @public
export interface PlacementPoliciesCreateOrUpdateOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface PlacementPoliciesDeleteOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface PlacementPoliciesGetOptionalParams extends OperationOptions {
}

// @public
export interface PlacementPoliciesListOptionalParams extends OperationOptions {
}

// @public
export interface PlacementPoliciesOperations {
    createOrUpdate: (resourceGroupName: string, privateCloudName: string, clusterName: string, placementPolicyName: string, placementPolicy: PlacementPolicy, options?: PlacementPoliciesCreateOrUpdateOptionalParams) => PollerLike<OperationState<PlacementPolicy>, PlacementPolicy>;
    delete: (resourceGroupName: string, privateCloudName: string, clusterName: string, placementPolicyName: string, options?: PlacementPoliciesDeleteOptionalParams) => PollerLike<OperationState<void>, void>;
    get: (resourceGroupName: string, privateCloudName: string, clusterName: string, placementPolicyName: string, options?: PlacementPoliciesGetOptionalParams) => Promise<PlacementPolicy>;
    list: (resourceGroupName: string, privateCloudName: string, clusterName: string, options?: PlacementPoliciesListOptionalParams) => PagedAsyncIterableIterator<PlacementPolicy>;
    update: (resourceGroupName: string, privateCloudName: string, clusterName: string, placementPolicyName: string, placementPolicyUpdate: PlacementPolicyUpdate, options?: PlacementPoliciesUpdateOptionalParams) => PollerLike<OperationState<PlacementPolicy>, PlacementPolicy>;
}

// @public
export interface PlacementPoliciesUpdateOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface PlacementPolicy extends ProxyResource {
    properties?: PlacementPolicyPropertiesUnion;
}

// @public
export interface PlacementPolicyProperties {
    displayName?: string;
    readonly provisioningState?: PlacementPolicyProvisioningState;
    state?: PlacementPolicyState;
    type: PlacementPolicyType;
}

// @public
export type PlacementPolicyPropertiesUnion = VmPlacementPolicyProperties | VmHostPlacementPolicyProperties | PlacementPolicyProperties;

// @public
export type PlacementPolicyProvisioningState = string;

// @public
export type PlacementPolicyState = string;

// @public
export type PlacementPolicyType = string;

// @public
export interface PlacementPolicyUpdate {
    properties?: PlacementPolicyUpdateProperties;
}

// @public
export interface PlacementPolicyUpdateProperties {
    affinityStrength?: AffinityStrength;
    azureHybridBenefitType?: AzureHybridBenefitType;
    hostMembers?: string[];
    state?: PlacementPolicyState;
    vmMembers?: string[];
}

// @public
export type PortMirroringDirectionEnum = string;

// @public
export type PortMirroringStatusEnum = string;

// @public
export interface PrivateCloud extends TrackedResource {
    identity?: PrivateCloudIdentity;
    properties?: PrivateCloudProperties;
    sku: Sku;
    zones?: string[];
}

// @public
export interface PrivateCloudIdentity {
    readonly principalId?: string;
    readonly tenantId?: string;
    type: ResourceIdentityType;
}

// @public
export interface PrivateCloudProperties {
    availability?: AvailabilityProperties;
    circuit?: Circuit;
    dnsZoneType?: DnsZoneType;
    encryption?: Encryption;
    readonly endpoints?: Endpoints;
    extendedNetworkBlocks?: string[];
    readonly externalCloudLinks?: string[];
    identitySources?: IdentitySource[];
    internet?: InternetEnum;
    managementCluster: ManagementCluster;
    readonly managementNetwork?: string;
    networkBlock: string;
    readonly nsxPublicIpQuotaRaised?: NsxPublicIpQuotaRaisedEnum;
    readonly nsxtCertificateThumbprint?: string;
    nsxtPassword?: string;
    readonly provisioningNetwork?: string;
    readonly provisioningState?: PrivateCloudProvisioningState;
    secondaryCircuit?: Circuit;
    readonly vcenterCertificateThumbprint?: string;
    vcenterPassword?: string;
    vcfLicense?: VcfLicenseUnion;
    virtualNetworkId?: string;
    readonly vmotionNetwork?: string;
}

// @public
export type PrivateCloudProvisioningState = string;

// @public
export interface PrivateCloudsCreateOrUpdateOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface PrivateCloudsDeleteOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface PrivateCloudsGetOptionalParams extends OperationOptions {
}

// @public
export interface PrivateCloudsGetVcfLicenseOptionalParams extends OperationOptions {
}

// @public
export interface PrivateCloudsListAdminCredentialsOptionalParams extends OperationOptions {
}

// @public
export interface PrivateCloudsListInSubscriptionOptionalParams extends OperationOptions {
}

// @public
export interface PrivateCloudsListOptionalParams extends OperationOptions {
}

// @public
export interface PrivateCloudsOperations {
    createOrUpdate: (resourceGroupName: string, privateCloudName: string, privateCloud: PrivateCloud, options?: PrivateCloudsCreateOrUpdateOptionalParams) => PollerLike<OperationState<PrivateCloud>, PrivateCloud>;
    delete: (resourceGroupName: string, privateCloudName: string, options?: PrivateCloudsDeleteOptionalParams) => PollerLike<OperationState<void>, void>;
    get: (resourceGroupName: string, privateCloudName: string, options?: PrivateCloudsGetOptionalParams) => Promise<PrivateCloud>;
    getVcfLicense: (resourceGroupName: string, privateCloudName: string, options?: PrivateCloudsGetVcfLicenseOptionalParams) => Promise<VcfLicenseUnion>;
    list: (resourceGroupName: string, options?: PrivateCloudsListOptionalParams) => PagedAsyncIterableIterator<PrivateCloud>;
    listAdminCredentials: (resourceGroupName: string, privateCloudName: string, options?: PrivateCloudsListAdminCredentialsOptionalParams) => Promise<AdminCredentials>;
    listInSubscription: (options?: PrivateCloudsListInSubscriptionOptionalParams) => PagedAsyncIterableIterator<PrivateCloud>;
    rotateNsxtPassword: (resourceGroupName: string, privateCloudName: string, options?: PrivateCloudsRotateNsxtPasswordOptionalParams) => PollerLike<OperationState<void>, void>;
    rotateVcenterPassword: (resourceGroupName: string, privateCloudName: string, options?: PrivateCloudsRotateVcenterPasswordOptionalParams) => PollerLike<OperationState<void>, void>;
    update: (resourceGroupName: string, privateCloudName: string, privateCloudUpdate: PrivateCloudUpdate, options?: PrivateCloudsUpdateOptionalParams) => PollerLike<OperationState<PrivateCloud>, PrivateCloud>;
}

// @public
export interface PrivateCloudsRotateNsxtPasswordOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface PrivateCloudsRotateVcenterPasswordOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface PrivateCloudsUpdateOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface PrivateCloudUpdate {
    identity?: PrivateCloudIdentity;
    properties?: PrivateCloudUpdateProperties;
    sku?: Sku;
    tags?: Record<string, string>;
}

// @public
export interface PrivateCloudUpdateProperties {
    availability?: AvailabilityProperties;
    dnsZoneType?: DnsZoneType;
    encryption?: Encryption;
    extendedNetworkBlocks?: string[];
    identitySources?: IdentitySource[];
    internet?: InternetEnum;
    managementCluster?: ManagementCluster;
}

// @public
export interface ProvisionedNetwork extends ProxyResource {
    properties?: ProvisionedNetworkProperties;
}

// @public
export interface ProvisionedNetworkProperties {
    readonly addressPrefix?: string;
    readonly networkType?: ProvisionedNetworkTypes;
    readonly provisioningState?: ProvisionedNetworkProvisioningState;
}

// @public
export type ProvisionedNetworkProvisioningState = string;

// @public
export interface ProvisionedNetworksGetOptionalParams extends OperationOptions {
}

// @public
export interface ProvisionedNetworksListOptionalParams extends OperationOptions {
}

// @public
export interface ProvisionedNetworksOperations {
    get: (resourceGroupName: string, privateCloudName: string, provisionedNetworkName: string, options?: ProvisionedNetworksGetOptionalParams) => Promise<ProvisionedNetwork>;
    list: (resourceGroupName: string, privateCloudName: string, options?: ProvisionedNetworksListOptionalParams) => PagedAsyncIterableIterator<ProvisionedNetwork>;
}

// @public
export type ProvisionedNetworkTypes = string;

// @public
export interface ProxyResource extends Resource {
}

// @public
export interface PSCredentialExecutionParameter extends ScriptExecutionParameter {
    password?: string;
    type: "Credential";
    username?: string;
}

// @public
export interface PureStoragePoliciesCreateOrUpdateOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface PureStoragePoliciesDeleteOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface PureStoragePoliciesGetOptionalParams extends OperationOptions {
}

// @public
export interface PureStoragePoliciesListOptionalParams extends OperationOptions {
}

// @public
export interface PureStoragePoliciesOperations {
    createOrUpdate: (resourceGroupName: string, privateCloudName: string, storagePolicyName: string, resource: PureStoragePolicy, options?: PureStoragePoliciesCreateOrUpdateOptionalParams) => PollerLike<OperationState<PureStoragePolicy>, PureStoragePolicy>;
    delete: (resourceGroupName: string, privateCloudName: string, storagePolicyName: string, options?: PureStoragePoliciesDeleteOptionalParams) => PollerLike<OperationState<void>, void>;
    get: (resourceGroupName: string, privateCloudName: string, storagePolicyName: string, options?: PureStoragePoliciesGetOptionalParams) => Promise<PureStoragePolicy>;
    list: (resourceGroupName: string, privateCloudName: string, options?: PureStoragePoliciesListOptionalParams) => PagedAsyncIterableIterator<PureStoragePolicy>;
}

// @public
export interface PureStoragePolicy extends ProxyResource {
    properties?: PureStoragePolicyProperties;
}

// @public
export interface PureStoragePolicyProperties {
    readonly provisioningState?: PureStoragePolicyProvisioningState;
    storagePolicyDefinition: string;
    storagePoolId: string;
}

// @public
export type PureStoragePolicyProvisioningState = string;

// @public
export interface PureStorageVolume {
    sizeGb: number;
    storagePoolId: string;
}

// @public
export interface Quota {
    readonly hostsRemaining?: Record<string, number>;
    readonly quotaEnabled?: QuotaEnabled;
}

// @public
export type QuotaEnabled = string;

// @public
export interface RescheduleOperation extends MaintenanceManagementOperation {
    readonly constraints?: RescheduleOperationConstraintUnion[];
    readonly disabledReason?: string;
    readonly isDisabled?: boolean;
    kind: "Reschedule";
}

// @public
export interface RescheduleOperationConstraint {
    readonly kind: RescheduleOperationConstraintKind;
}

// @public
export type RescheduleOperationConstraintKind = string;

// @public
export type RescheduleOperationConstraintUnion = AvailableWindowForMaintenanceWhileRescheduleOperation | BlockedWhileRescheduleOperation | RescheduleOperationConstraint;

// @public
export interface Resource {
    readonly id?: string;
    readonly name?: string;
    readonly systemData?: SystemData;
    readonly type?: string;
}

// @public
export type ResourceIdentityType = string;

// @public
export interface ResourceSku {
    capabilities?: ResourceSkuCapabilities[];
    family?: string;
    locationInfo: ResourceSkuLocationInfo[];
    locations: string[];
    name: string;
    resourceType: ResourceSkuResourceType;
    restrictions: ResourceSkuRestrictions[];
    size?: string;
    tier?: string;
}

// @public
export interface ResourceSkuCapabilities {
    name: string;
    value: string;
}

// @public
export interface ResourceSkuLocationInfo {
    location: string;
    zoneDetails: ResourceSkuZoneDetails[];
    zones: string[];
}

// @public
export type ResourceSkuResourceType = string;

// @public
export interface ResourceSkuRestrictionInfo {
    locations?: string[];
    zones?: string[];
}

// @public
export interface ResourceSkuRestrictions {
    reasonCode?: ResourceSkuRestrictionsReasonCode;
    restrictionInfo: ResourceSkuRestrictionInfo;
    type?: ResourceSkuRestrictionsType;
    values: string[];
}

// @public
export type ResourceSkuRestrictionsReasonCode = string;

// @public
export type ResourceSkuRestrictionsType = string;

// @public
export interface ResourceSkuZoneDetails {
    capabilities: ResourceSkuCapabilities[];
    name: string[];
}

// @public
export function restorePoller<TResponse extends PathUncheckedResponse, TResult>(client: AzureVMwareSolutionAPI, serializedState: string, sourceOperation: (...args: any[]) => PollerLike<OperationState<TResult>, TResult>, options?: RestorePollerOptions<TResult>): PollerLike<OperationState<TResult>, TResult>;

// @public (undocumented)
export interface RestorePollerOptions<TResult, TResponse extends PathUncheckedResponse = PathUncheckedResponse> extends OperationOptions {
    abortSignal?: AbortSignalLike;
    processResponseBody?: (result: TResponse) => Promise<TResult>;
    updateIntervalInMs?: number;
}

// @public
export interface ScheduleOperation extends MaintenanceManagementOperation {
    readonly constraints?: ScheduleOperationConstraintUnion[];
    readonly disabledReason?: string;
    readonly isDisabled?: boolean;
    kind: "Schedule";
}

// @public
export interface ScheduleOperationConstraint {
    readonly kind: ScheduleOperationConstraintKind;
}

// @public
export type ScheduleOperationConstraintKind = string;

// @public
export type ScheduleOperationConstraintUnion = SchedulingWindow | AvailableWindowForMaintenanceWhileScheduleOperation | BlockedWhileScheduleOperation | ScheduleOperationConstraint;

// @public
export interface SchedulingWindow extends ScheduleOperationConstraint {
    readonly endsAt: Date;
    kind: "SchedulingWindow";
    readonly startsAt: Date;
}

// @public
export interface ScriptCmdlet extends ProxyResource {
    properties?: ScriptCmdletProperties;
}

// @public
export type ScriptCmdletAudience = string;

// @public
export interface ScriptCmdletProperties {
    readonly audience?: ScriptCmdletAudience;
    readonly description?: string;
    readonly parameters?: ScriptParameter[];
    readonly provisioningState?: ScriptCmdletProvisioningState;
    readonly timeout?: string;
}

// @public
export type ScriptCmdletProvisioningState = string;

// @public
export interface ScriptCmdletsGetOptionalParams extends OperationOptions {
}

// @public
export interface ScriptCmdletsListOptionalParams extends OperationOptions {
}

// @public
export interface ScriptCmdletsOperations {
    get: (resourceGroupName: string, privateCloudName: string, scriptPackageName: string, scriptCmdletName: string, options?: ScriptCmdletsGetOptionalParams) => Promise<ScriptCmdlet>;
    list: (resourceGroupName: string, privateCloudName: string, scriptPackageName: string, options?: ScriptCmdletsListOptionalParams) => PagedAsyncIterableIterator<ScriptCmdlet>;
}

// @public
export interface ScriptExecution extends ProxyResource {
    properties?: ScriptExecutionProperties;
}

// @public
export interface ScriptExecutionParameter {
    name: string;
    type: ScriptExecutionParameterType;
}

// @public
export type ScriptExecutionParameterType = string;

// @public
export type ScriptExecutionParameterUnion = ScriptSecureStringExecutionParameter | ScriptStringExecutionParameter | PSCredentialExecutionParameter | ScriptExecutionParameter;

// @public
export interface ScriptExecutionProperties {
    readonly errors?: string[];
    failureReason?: string;
    readonly finishedAt?: Date;
    hiddenParameters?: ScriptExecutionParameterUnion[];
    readonly information?: string[];
    namedOutputs?: Record<string, Record<string, any>>;
    output?: string[];
    parameters?: ScriptExecutionParameterUnion[];
    readonly provisioningState?: ScriptExecutionProvisioningState;
    retention?: string;
    scriptCmdletId?: string;
    readonly startedAt?: Date;
    readonly submittedAt?: Date;
    timeout: string;
    readonly warnings?: string[];
}

// @public
export type ScriptExecutionProvisioningState = string;

// @public
export interface ScriptExecutionsCreateOrUpdateOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface ScriptExecutionsDeleteOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface ScriptExecutionsGetExecutionLogsOptionalParams extends OperationOptions {
    scriptOutputStreamType?: ScriptOutputStreamType[];
}

// @public
export interface ScriptExecutionsGetOptionalParams extends OperationOptions {
}

// @public
export interface ScriptExecutionsListOptionalParams extends OperationOptions {
}

// @public
export interface ScriptExecutionsOperations {
    createOrUpdate: (resourceGroupName: string, privateCloudName: string, scriptExecutionName: string, scriptExecution: ScriptExecution, options?: ScriptExecutionsCreateOrUpdateOptionalParams) => PollerLike<OperationState<ScriptExecution>, ScriptExecution>;
    delete: (resourceGroupName: string, privateCloudName: string, scriptExecutionName: string, options?: ScriptExecutionsDeleteOptionalParams) => PollerLike<OperationState<void>, void>;
    get: (resourceGroupName: string, privateCloudName: string, scriptExecutionName: string, options?: ScriptExecutionsGetOptionalParams) => Promise<ScriptExecution>;
    getExecutionLogs: (resourceGroupName: string, privateCloudName: string, scriptExecutionName: string, options?: ScriptExecutionsGetExecutionLogsOptionalParams) => Promise<ScriptExecution>;
    list: (resourceGroupName: string, privateCloudName: string, options?: ScriptExecutionsListOptionalParams) => PagedAsyncIterableIterator<ScriptExecution>;
}

// @public
export type ScriptOutputStreamType = string;

// @public
export interface ScriptPackage extends ProxyResource {
    properties?: ScriptPackageProperties;
}

// @public
export interface ScriptPackageProperties {
    readonly company?: string;
    readonly description?: string;
    readonly provisioningState?: ScriptPackageProvisioningState;
    readonly uri?: string;
    readonly version?: string;
}

// @public
export type ScriptPackageProvisioningState = string;

// @public
export interface ScriptPackagesGetOptionalParams extends OperationOptions {
}

// @public
export interface ScriptPackagesListOptionalParams extends OperationOptions {
}

// @public
export interface ScriptPackagesOperations {
    get: (resourceGroupName: string, privateCloudName: string, scriptPackageName: string, options?: ScriptPackagesGetOptionalParams) => Promise<ScriptPackage>;
    list: (resourceGroupName: string, privateCloudName: string, options?: ScriptPackagesListOptionalParams) => PagedAsyncIterableIterator<ScriptPackage>;
}

// @public
export interface ScriptParameter {
    readonly description?: string;
    name?: string;
    readonly optional?: OptionalParamEnum;
    readonly type?: ScriptParameterTypes;
    readonly visibility?: VisibilityParameterEnum;
}

// @public
export type ScriptParameterTypes = string;

// @public
export interface ScriptSecureStringExecutionParameter extends ScriptExecutionParameter {
    secureValue?: string;
    type: "SecureValue";
}

// @public
export interface ScriptStringExecutionParameter extends ScriptExecutionParameter {
    type: "Value";
    value?: string;
}

// @public
export type SegmentStatusEnum = string;

// @public
export interface Sku {
    capacity?: number;
    family?: string;
    name: string;
    size?: string;
    tier?: SkuTier;
}

// @public
export interface SkusListOptionalParams extends OperationOptions {
}

// @public
export interface SkusOperations {
    list: (options?: SkusListOptionalParams) => PagedAsyncIterableIterator<ResourceSku>;
}

// @public
export type SkuTier = "Free" | "Basic" | "Standard" | "Premium";

// @public
export interface SpecializedHostProperties extends HostProperties {
    kind: "Specialized";
}

// @public
export type SslEnum = string;

// @public
export interface SystemData {
    createdAt?: Date;
    createdBy?: string;
    createdByType?: CreatedByType;
    lastModifiedAt?: Date;
    lastModifiedBy?: string;
    lastModifiedByType?: CreatedByType;
}

// @public
export interface TrackedResource extends Resource {
    location: string;
    tags?: Record<string, string>;
}

// @public
export interface Trial {
    readonly availableHosts?: number;
    readonly status?: TrialStatus;
}

// @public
export type TrialStatus = string;

// @public
export interface Vcf5License extends VcfLicense {
    broadcomContractNumber?: string;
    broadcomSiteId?: string;
    cores: number;
    endDate: Date;
    kind: "vcf5";
    labels?: Label[];
    licenseKey?: string;
}

// @public
export interface VcfLicense {
    kind: VcfLicenseKind;
    readonly provisioningState?: LicenseProvisioningState;
}

// @public
export type VcfLicenseKind = string;

// @public
export type VcfLicenseUnion = Vcf5License | VcfLicense;

// @public
export interface VirtualMachine extends ProxyResource {
    properties?: VirtualMachineProperties;
}

// @public
export interface VirtualMachineProperties {
    readonly displayName?: string;
    readonly folderPath?: string;
    readonly moRefId?: string;
    readonly provisioningState?: VirtualMachineProvisioningState;
    readonly restrictMovement?: VirtualMachineRestrictMovementState;
}

// @public
export type VirtualMachineProvisioningState = string;

// @public
export interface VirtualMachineRestrictMovement {
    restrictMovement?: VirtualMachineRestrictMovementState;
}

// @public
export type VirtualMachineRestrictMovementState = string;

// @public
export interface VirtualMachinesGetOptionalParams extends OperationOptions {
}

// @public
export interface VirtualMachinesListOptionalParams extends OperationOptions {
}

// @public
export interface VirtualMachinesOperations {
    get: (resourceGroupName: string, privateCloudName: string, clusterName: string, virtualMachineId: string, options?: VirtualMachinesGetOptionalParams) => Promise<VirtualMachine>;
    list: (resourceGroupName: string, privateCloudName: string, clusterName: string, options?: VirtualMachinesListOptionalParams) => PagedAsyncIterableIterator<VirtualMachine>;
    restrictMovement: (resourceGroupName: string, privateCloudName: string, clusterName: string, virtualMachineId: string, restrictMovementParameter: VirtualMachineRestrictMovement, options?: VirtualMachinesRestrictMovementOptionalParams) => PollerLike<OperationState<void>, void>;
}

// @public
export interface VirtualMachinesRestrictMovementOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export type VisibilityParameterEnum = string;

// @public
export type VMGroupStatusEnum = string;

// @public
export interface VmHostPlacementPolicyProperties extends PlacementPolicyProperties {
    affinityStrength?: AffinityStrength;
    affinityType: AffinityType;
    azureHybridBenefitType?: AzureHybridBenefitType;
    hostMembers: string[];
    type: "VmHost";
    vmMembers: string[];
}

// @public
export interface VmPlacementPolicyProperties extends PlacementPolicyProperties {
    affinityType: AffinityType;
    type: "VmVm";
    vmMembers: string[];
}

// @public
export type VMTypeEnum = string;

// @public
export interface VmwareFirewallLicenseProperties extends LicenseProperties {
    broadcomContractNumber?: string;
    broadcomSiteId?: string;
    cores: number;
    endDate: Date;
    kind: "VmwareFirewall";
    labels?: Label[];
    licenseKey?: string;
}

// @public
export interface WorkloadNetwork extends ProxyResource {
    properties?: WorkloadNetworkProperties;
}

// @public
export interface WorkloadNetworkDhcp extends ProxyResource {
    properties?: WorkloadNetworkDhcpEntityUnion;
}

// @public
export interface WorkloadNetworkDhcpEntity {
    dhcpType: DhcpTypeEnum;
    displayName?: string;
    readonly provisioningState?: WorkloadNetworkDhcpProvisioningState;
    revision?: number;
    readonly segments?: string[];
}

// @public
export type WorkloadNetworkDhcpEntityUnion = WorkloadNetworkDhcpServer | WorkloadNetworkDhcpRelay | WorkloadNetworkDhcpEntity;

// @public
export type WorkloadNetworkDhcpProvisioningState = string;

// @public
export interface WorkloadNetworkDhcpRelay extends WorkloadNetworkDhcpEntity {
    dhcpType: "RELAY";
    serverAddresses?: string[];
}

// @public
export interface WorkloadNetworkDhcpServer extends WorkloadNetworkDhcpEntity {
    dhcpType: "SERVER";
    leaseTime?: number;
    serverAddress?: string;
}

// @public
export interface WorkloadNetworkDnsService extends ProxyResource {
    properties?: WorkloadNetworkDnsServiceProperties;
}

// @public
export interface WorkloadNetworkDnsServiceProperties {
    defaultDnsZone?: string;
    displayName?: string;
    dnsServiceIp?: string;
    fqdnZones?: string[];
    logLevel?: DnsServiceLogLevelEnum;
    readonly provisioningState?: WorkloadNetworkDnsServiceProvisioningState;
    revision?: number;
    readonly status?: DnsServiceStatusEnum;
}

// @public
export type WorkloadNetworkDnsServiceProvisioningState = string;

// @public
export interface WorkloadNetworkDnsZone extends ProxyResource {
    properties?: WorkloadNetworkDnsZoneProperties;
}

// @public
export interface WorkloadNetworkDnsZoneProperties {
    displayName?: string;
    dnsServerIps?: string[];
    dnsServices?: number;
    domain?: string[];
    readonly provisioningState?: WorkloadNetworkDnsZoneProvisioningState;
    revision?: number;
    sourceIp?: string;
}

// @public
export type WorkloadNetworkDnsZoneProvisioningState = string;

// @public
export interface WorkloadNetworkGateway extends ProxyResource {
    properties?: WorkloadNetworkGatewayProperties;
}

// @public
export interface WorkloadNetworkGatewayProperties {
    displayName?: string;
    readonly path?: string;
    readonly provisioningState?: WorkloadNetworkProvisioningState;
}

// @public
export interface WorkloadNetworkPortMirroring extends ProxyResource {
    properties?: WorkloadNetworkPortMirroringProperties;
}

// @public
export interface WorkloadNetworkPortMirroringProperties {
    destination?: string;
    direction?: PortMirroringDirectionEnum;
    displayName?: string;
    readonly provisioningState?: WorkloadNetworkPortMirroringProvisioningState;
    revision?: number;
    source?: string;
    readonly status?: PortMirroringStatusEnum;
}

// @public
export type WorkloadNetworkPortMirroringProvisioningState = string;

// @public
export interface WorkloadNetworkProperties {
    readonly provisioningState?: WorkloadNetworkProvisioningState;
}

// @public
export type WorkloadNetworkProvisioningState = string;

// @public
export interface WorkloadNetworkPublicIP extends ProxyResource {
    properties?: WorkloadNetworkPublicIPProperties;
}

// @public
export interface WorkloadNetworkPublicIPProperties {
    displayName?: string;
    numberOfPublicIPs?: number;
    readonly provisioningState?: WorkloadNetworkPublicIPProvisioningState;
    readonly publicIPBlock?: string;
}

// @public
export type WorkloadNetworkPublicIPProvisioningState = string;

// @public
export interface WorkloadNetworksCreateDhcpOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface WorkloadNetworksCreateDnsServiceOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface WorkloadNetworksCreateDnsZoneOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface WorkloadNetworksCreatePortMirroringOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface WorkloadNetworksCreatePublicIPOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface WorkloadNetworksCreateSegmentsOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface WorkloadNetworksCreateVMGroupOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface WorkloadNetworksDeleteDhcpOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface WorkloadNetworksDeleteDnsServiceOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface WorkloadNetworksDeleteDnsZoneOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface WorkloadNetworksDeletePortMirroringOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface WorkloadNetworksDeletePublicIPOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface WorkloadNetworksDeleteSegmentOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface WorkloadNetworksDeleteVMGroupOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface WorkloadNetworkSegment extends ProxyResource {
    properties?: WorkloadNetworkSegmentProperties;
}

// @public
export interface WorkloadNetworkSegmentPortVif {
    portName?: string;
}

// @public
export interface WorkloadNetworkSegmentProperties {
    connectedGateway?: string;
    displayName?: string;
    readonly portVif?: WorkloadNetworkSegmentPortVif[];
    readonly provisioningState?: WorkloadNetworkSegmentProvisioningState;
    revision?: number;
    readonly status?: SegmentStatusEnum;
    subnet?: WorkloadNetworkSegmentSubnet;
}

// @public
export type WorkloadNetworkSegmentProvisioningState = string;

// @public
export interface WorkloadNetworkSegmentSubnet {
    dhcpRanges?: string[];
    gatewayAddress?: string;
}

// @public
export interface WorkloadNetworksGetDhcpOptionalParams extends OperationOptions {
}

// @public
export interface WorkloadNetworksGetDnsServiceOptionalParams extends OperationOptions {
}

// @public
export interface WorkloadNetworksGetDnsZoneOptionalParams extends OperationOptions {
}

// @public
export interface WorkloadNetworksGetGatewayOptionalParams extends OperationOptions {
}

// @public
export interface WorkloadNetworksGetOptionalParams extends OperationOptions {
}

// @public
export interface WorkloadNetworksGetPortMirroringOptionalParams extends OperationOptions {
}

// @public
export interface WorkloadNetworksGetPublicIPOptionalParams extends OperationOptions {
}

// @public
export interface WorkloadNetworksGetSegmentOptionalParams extends OperationOptions {
}

// @public
export interface WorkloadNetworksGetVirtualMachineOptionalParams extends OperationOptions {
}

// @public
export interface WorkloadNetworksGetVMGroupOptionalParams extends OperationOptions {
}

// @public
export interface WorkloadNetworksListDhcpOptionalParams extends OperationOptions {
}

// @public
export interface WorkloadNetworksListDnsServicesOptionalParams extends OperationOptions {
}

// @public
export interface WorkloadNetworksListDnsZonesOptionalParams extends OperationOptions {
}

// @public
export interface WorkloadNetworksListGatewaysOptionalParams extends OperationOptions {
}

// @public
export interface WorkloadNetworksListOptionalParams extends OperationOptions {
}

// @public
export interface WorkloadNetworksListPortMirroringOptionalParams extends OperationOptions {
}

// @public
export interface WorkloadNetworksListPublicIPsOptionalParams extends OperationOptions {
}

// @public
export interface WorkloadNetworksListSegmentsOptionalParams extends OperationOptions {
}

// @public
export interface WorkloadNetworksListVirtualMachinesOptionalParams extends OperationOptions {
}

// @public
export interface WorkloadNetworksListVMGroupsOptionalParams extends OperationOptions {
}

// @public
export interface WorkloadNetworksOperations {
    createDhcp: (resourceGroupName: string, privateCloudName: string, dhcpId: string, workloadNetworkDhcp: WorkloadNetworkDhcp, options?: WorkloadNetworksCreateDhcpOptionalParams) => PollerLike<OperationState<WorkloadNetworkDhcp>, WorkloadNetworkDhcp>;
    createDnsService: (resourceGroupName: string, privateCloudName: string, dnsServiceId: string, workloadNetworkDnsService: WorkloadNetworkDnsService, options?: WorkloadNetworksCreateDnsServiceOptionalParams) => PollerLike<OperationState<WorkloadNetworkDnsService>, WorkloadNetworkDnsService>;
    createDnsZone: (resourceGroupName: string, privateCloudName: string, dnsZoneId: string, workloadNetworkDnsZone: WorkloadNetworkDnsZone, options?: WorkloadNetworksCreateDnsZoneOptionalParams) => PollerLike<OperationState<WorkloadNetworkDnsZone>, WorkloadNetworkDnsZone>;
    createPortMirroring: (resourceGroupName: string, privateCloudName: string, portMirroringId: string, workloadNetworkPortMirroring: WorkloadNetworkPortMirroring, options?: WorkloadNetworksCreatePortMirroringOptionalParams) => PollerLike<OperationState<WorkloadNetworkPortMirroring>, WorkloadNetworkPortMirroring>;
    createPublicIP: (resourceGroupName: string, privateCloudName: string, publicIPId: string, workloadNetworkPublicIP: WorkloadNetworkPublicIP, options?: WorkloadNetworksCreatePublicIPOptionalParams) => PollerLike<OperationState<WorkloadNetworkPublicIP>, WorkloadNetworkPublicIP>;
    createSegments: (resourceGroupName: string, privateCloudName: string, segmentId: string, workloadNetworkSegment: WorkloadNetworkSegment, options?: WorkloadNetworksCreateSegmentsOptionalParams) => PollerLike<OperationState<WorkloadNetworkSegment>, WorkloadNetworkSegment>;
    createVMGroup: (resourceGroupName: string, privateCloudName: string, vmGroupId: string, workloadNetworkVMGroup: WorkloadNetworkVMGroup, options?: WorkloadNetworksCreateVMGroupOptionalParams) => PollerLike<OperationState<WorkloadNetworkVMGroup>, WorkloadNetworkVMGroup>;
    deleteDhcp: (resourceGroupName: string, privateCloudName: string, dhcpId: string, options?: WorkloadNetworksDeleteDhcpOptionalParams) => PollerLike<OperationState<void>, void>;
    deleteDnsService: (resourceGroupName: string, dnsServiceId: string, privateCloudName: string, options?: WorkloadNetworksDeleteDnsServiceOptionalParams) => PollerLike<OperationState<void>, void>;
    deleteDnsZone: (resourceGroupName: string, dnsZoneId: string, privateCloudName: string, options?: WorkloadNetworksDeleteDnsZoneOptionalParams) => PollerLike<OperationState<void>, void>;
    deletePortMirroring: (resourceGroupName: string, portMirroringId: string, privateCloudName: string, options?: WorkloadNetworksDeletePortMirroringOptionalParams) => PollerLike<OperationState<void>, void>;
    deletePublicIP: (resourceGroupName: string, publicIPId: string, privateCloudName: string, options?: WorkloadNetworksDeletePublicIPOptionalParams) => PollerLike<OperationState<void>, void>;
    deleteSegment: (resourceGroupName: string, privateCloudName: string, segmentId: string, options?: WorkloadNetworksDeleteSegmentOptionalParams) => PollerLike<OperationState<void>, void>;
    deleteVMGroup: (resourceGroupName: string, vmGroupId: string, privateCloudName: string, options?: WorkloadNetworksDeleteVMGroupOptionalParams) => PollerLike<OperationState<void>, void>;
    get: (resourceGroupName: string, privateCloudName: string, options?: WorkloadNetworksGetOptionalParams) => Promise<WorkloadNetwork>;
    getDhcp: (resourceGroupName: string, dhcpId: string, privateCloudName: string, options?: WorkloadNetworksGetDhcpOptionalParams) => Promise<WorkloadNetworkDhcp>;
    getDnsService: (resourceGroupName: string, privateCloudName: string, dnsServiceId: string, options?: WorkloadNetworksGetDnsServiceOptionalParams) => Promise<WorkloadNetworkDnsService>;
    getDnsZone: (resourceGroupName: string, privateCloudName: string, dnsZoneId: string, options?: WorkloadNetworksGetDnsZoneOptionalParams) => Promise<WorkloadNetworkDnsZone>;
    getGateway: (resourceGroupName: string, privateCloudName: string, gatewayId: string, options?: WorkloadNetworksGetGatewayOptionalParams) => Promise<WorkloadNetworkGateway>;
    getPortMirroring: (resourceGroupName: string, privateCloudName: string, portMirroringId: string, options?: WorkloadNetworksGetPortMirroringOptionalParams) => Promise<WorkloadNetworkPortMirroring>;
    getPublicIP: (resourceGroupName: string, privateCloudName: string, publicIPId: string, options?: WorkloadNetworksGetPublicIPOptionalParams) => Promise<WorkloadNetworkPublicIP>;
    getSegment: (resourceGroupName: string, privateCloudName: string, segmentId: string, options?: WorkloadNetworksGetSegmentOptionalParams) => Promise<WorkloadNetworkSegment>;
    getVirtualMachine: (resourceGroupName: string, privateCloudName: string, virtualMachineId: string, options?: WorkloadNetworksGetVirtualMachineOptionalParams) => Promise<WorkloadNetworkVirtualMachine>;
    getVMGroup: (resourceGroupName: string, privateCloudName: string, vmGroupId: string, options?: WorkloadNetworksGetVMGroupOptionalParams) => Promise<WorkloadNetworkVMGroup>;
    list: (resourceGroupName: string, privateCloudName: string, options?: WorkloadNetworksListOptionalParams) => PagedAsyncIterableIterator<WorkloadNetwork>;
    listDhcp: (resourceGroupName: string, privateCloudName: string, options?: WorkloadNetworksListDhcpOptionalParams) => PagedAsyncIterableIterator<WorkloadNetworkDhcp>;
    listDnsServices: (resourceGroupName: string, privateCloudName: string, options?: WorkloadNetworksListDnsServicesOptionalParams) => PagedAsyncIterableIterator<WorkloadNetworkDnsService>;
    listDnsZones: (resourceGroupName: string, privateCloudName: string, options?: WorkloadNetworksListDnsZonesOptionalParams) => PagedAsyncIterableIterator<WorkloadNetworkDnsZone>;
    listGateways: (resourceGroupName: string, privateCloudName: string, options?: WorkloadNetworksListGatewaysOptionalParams) => PagedAsyncIterableIterator<WorkloadNetworkGateway>;
    listPortMirroring: (resourceGroupName: string, privateCloudName: string, options?: WorkloadNetworksListPortMirroringOptionalParams) => PagedAsyncIterableIterator<WorkloadNetworkPortMirroring>;
    listPublicIPs: (resourceGroupName: string, privateCloudName: string, options?: WorkloadNetworksListPublicIPsOptionalParams) => PagedAsyncIterableIterator<WorkloadNetworkPublicIP>;
    listSegments: (resourceGroupName: string, privateCloudName: string, options?: WorkloadNetworksListSegmentsOptionalParams) => PagedAsyncIterableIterator<WorkloadNetworkSegment>;
    listVirtualMachines: (resourceGroupName: string, privateCloudName: string, options?: WorkloadNetworksListVirtualMachinesOptionalParams) => PagedAsyncIterableIterator<WorkloadNetworkVirtualMachine>;
    listVMGroups: (resourceGroupName: string, privateCloudName: string, options?: WorkloadNetworksListVMGroupsOptionalParams) => PagedAsyncIterableIterator<WorkloadNetworkVMGroup>;
    updateDhcp: (resourceGroupName: string, privateCloudName: string, dhcpId: string, workloadNetworkDhcp: WorkloadNetworkDhcp, options?: WorkloadNetworksUpdateDhcpOptionalParams) => PollerLike<OperationState<WorkloadNetworkDhcp>, WorkloadNetworkDhcp>;
    updateDnsService: (resourceGroupName: string, privateCloudName: string, dnsServiceId: string, workloadNetworkDnsService: WorkloadNetworkDnsService, options?: WorkloadNetworksUpdateDnsServiceOptionalParams) => PollerLike<OperationState<WorkloadNetworkDnsService>, WorkloadNetworkDnsService>;
    updateDnsZone: (resourceGroupName: string, privateCloudName: string, dnsZoneId: string, workloadNetworkDnsZone: WorkloadNetworkDnsZone, options?: WorkloadNetworksUpdateDnsZoneOptionalParams) => PollerLike<OperationState<WorkloadNetworkDnsZone>, WorkloadNetworkDnsZone>;
    updatePortMirroring: (resourceGroupName: string, privateCloudName: string, portMirroringId: string, workloadNetworkPortMirroring: WorkloadNetworkPortMirroring, options?: WorkloadNetworksUpdatePortMirroringOptionalParams) => PollerLike<OperationState<WorkloadNetworkPortMirroring>, WorkloadNetworkPortMirroring>;
    updateSegments: (resourceGroupName: string, privateCloudName: string, segmentId: string, workloadNetworkSegment: WorkloadNetworkSegment, options?: WorkloadNetworksUpdateSegmentsOptionalParams) => PollerLike<OperationState<WorkloadNetworkSegment>, WorkloadNetworkSegment>;
    updateVMGroup: (resourceGroupName: string, privateCloudName: string, vmGroupId: string, workloadNetworkVMGroup: WorkloadNetworkVMGroup, options?: WorkloadNetworksUpdateVMGroupOptionalParams) => PollerLike<OperationState<WorkloadNetworkVMGroup>, WorkloadNetworkVMGroup>;
}

// @public
export interface WorkloadNetworksUpdateDhcpOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface WorkloadNetworksUpdateDnsServiceOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface WorkloadNetworksUpdateDnsZoneOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface WorkloadNetworksUpdatePortMirroringOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface WorkloadNetworksUpdateSegmentsOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface WorkloadNetworksUpdateVMGroupOptionalParams extends OperationOptions {
    updateIntervalInMs?: number;
}

// @public
export interface WorkloadNetworkVirtualMachine extends ProxyResource {
    properties?: WorkloadNetworkVirtualMachineProperties;
}

// @public
export interface WorkloadNetworkVirtualMachineProperties {
    displayName?: string;
    readonly provisioningState?: WorkloadNetworkProvisioningState;
    readonly vmType?: VMTypeEnum;
}

// @public
export interface WorkloadNetworkVMGroup extends ProxyResource {
    properties?: WorkloadNetworkVMGroupProperties;
}

// @public
export interface WorkloadNetworkVMGroupProperties {
    displayName?: string;
    members?: string[];
    readonly provisioningState?: WorkloadNetworkVMGroupProvisioningState;
    revision?: number;
    readonly status?: VMGroupStatusEnum;
}

// @public
export type WorkloadNetworkVMGroupProvisioningState = string;

// (No @packageDocumentation comment for this package)

```
