diff --git a/sdk/vmware/arm-vmware/LICENSE.txt b/sdk/vmware/arm-vmware/LICENSE.txt
new file mode 100644
index 000000000000..ea8fb1516028
--- /dev/null
+++ b/sdk/vmware/arm-vmware/LICENSE.txt
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2020 Microsoft
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/sdk/vmware/arm-vmware/README.md b/sdk/vmware/arm-vmware/README.md
new file mode 100644
index 000000000000..0e88439dad74
--- /dev/null
+++ b/sdk/vmware/arm-vmware/README.md
@@ -0,0 +1,99 @@
+## Azure AzureVMwareSolutionAPI SDK for JavaScript
+
+This package contains an isomorphic SDK for AzureVMwareSolutionAPI.
+
+### Currently supported environments
+
+- Node.js version 6.x.x or higher
+- Browser JavaScript
+
+### How to Install
+
+```bash
+npm install @azure/arm-vmware
+```
+
+### How to use
+
+#### nodejs - Authentication, client creation and list operations as an example written in TypeScript.
+
+##### Install @azure/ms-rest-nodeauth
+
+- Please install minimum version of `"@azure/ms-rest-nodeauth": "^3.0.0"`.
+```bash
+npm install @azure/ms-rest-nodeauth@"^3.0.0"
+```
+
+##### Sample code
+
+```typescript
+import * as msRest from "@azure/ms-rest-js";
+import * as msRestAzure from "@azure/ms-rest-azure-js";
+import * as msRestNodeAuth from "@azure/ms-rest-nodeauth";
+import { AzureVMwareSolutionAPI, AzureVMwareSolutionAPIModels, AzureVMwareSolutionAPIMappers } from "@azure/arm-vmware";
+const subscriptionId = process.env["AZURE_SUBSCRIPTION_ID"];
+
+msRestNodeAuth.interactiveLogin().then((creds) => {
+ const client = new AzureVMwareSolutionAPI(creds, subscriptionId);
+ client.operations.list().then((result) => {
+ console.log("The result is:");
+ console.log(result);
+ });
+}).catch((err) => {
+ console.error(err);
+});
+```
+
+#### browser - Authentication, client creation and list operations as an example written in JavaScript.
+
+##### Install @azure/ms-rest-browserauth
+
+```bash
+npm install @azure/ms-rest-browserauth
+```
+
+##### Sample code
+
+See https://github.com/Azure/ms-rest-browserauth to learn how to authenticate to Azure in the browser.
+
+- index.html
+```html
+
+
+
+ @azure/arm-vmware sample
+
+
+
+
+
+
+
+
+```
+
+## Related projects
+
+- [Microsoft Azure SDK for Javascript](https://github.com/Azure/azure-sdk-for-js)
+
+![Impressions](https://azure-sdk-impressions.azurewebsites.net/api/impressions/azure-sdk-for-js/sdk/vmware/arm-vmware/README.png)
diff --git a/sdk/vmware/arm-vmware/package.json b/sdk/vmware/arm-vmware/package.json
new file mode 100644
index 000000000000..3a10d8da4e35
--- /dev/null
+++ b/sdk/vmware/arm-vmware/package.json
@@ -0,0 +1,58 @@
+{
+ "name": "@azure/arm-vmware",
+ "author": "Microsoft Corporation",
+ "description": "AzureVMwareSolutionAPI Library with typescript type definitions for node.js and browser.",
+ "version": "0.3.0",
+ "dependencies": {
+ "@azure/ms-rest-azure-js": "^2.0.1",
+ "@azure/ms-rest-js": "^2.0.4",
+ "tslib": "^1.10.0"
+ },
+ "keywords": [
+ "node",
+ "azure",
+ "typescript",
+ "browser",
+ "isomorphic"
+ ],
+ "license": "MIT",
+ "main": "./dist/arm-vmware.js",
+ "module": "./esm/azureVMwareSolutionAPI.js",
+ "types": "./esm/azureVMwareSolutionAPI.d.ts",
+ "devDependencies": {
+ "typescript": "^3.5.3",
+ "rollup": "^1.18.0",
+ "rollup-plugin-node-resolve": "^5.2.0",
+ "rollup-plugin-sourcemaps": "^0.4.2",
+ "uglify-js": "^3.6.0"
+ },
+ "homepage": "https://github.com/Azure/azure-sdk-for-js/tree/master/sdk/vmware/arm-vmware",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/Azure/azure-sdk-for-js.git"
+ },
+ "bugs": {
+ "url": "https://github.com/Azure/azure-sdk-for-js/issues"
+ },
+ "files": [
+ "dist/**/*.js",
+ "dist/**/*.js.map",
+ "dist/**/*.d.ts",
+ "dist/**/*.d.ts.map",
+ "esm/**/*.js",
+ "esm/**/*.js.map",
+ "esm/**/*.d.ts",
+ "esm/**/*.d.ts.map",
+ "src/**/*.ts",
+ "README.md",
+ "rollup.config.js",
+ "tsconfig.json"
+ ],
+ "scripts": {
+ "build": "tsc && rollup -c rollup.config.js && npm run minify",
+ "minify": "uglifyjs -c -m --comments --source-map \"content='./dist/arm-vmware.js.map'\" -o ./dist/arm-vmware.min.js ./dist/arm-vmware.js",
+ "prepack": "npm install && npm run build"
+ },
+ "sideEffects": false,
+ "autoPublish": true
+}
diff --git a/sdk/vmware/arm-vmware/rollup.config.js b/sdk/vmware/arm-vmware/rollup.config.js
new file mode 100644
index 000000000000..427a27954019
--- /dev/null
+++ b/sdk/vmware/arm-vmware/rollup.config.js
@@ -0,0 +1,37 @@
+import rollup from "rollup";
+import nodeResolve from "rollup-plugin-node-resolve";
+import sourcemaps from "rollup-plugin-sourcemaps";
+
+/**
+ * @type {rollup.RollupFileOptions}
+ */
+const config = {
+ input: "./esm/azureVMwareSolutionAPI.js",
+ external: [
+ "@azure/ms-rest-js",
+ "@azure/ms-rest-azure-js"
+ ],
+ output: {
+ file: "./dist/arm-vmware.js",
+ format: "umd",
+ name: "Azure.ArmVmware",
+ sourcemap: true,
+ globals: {
+ "@azure/ms-rest-js": "msRest",
+ "@azure/ms-rest-azure-js": "msRestAzure"
+ },
+ banner: `/*
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ * Changes may cause incorrect behavior and will be lost if the code is regenerated.
+ */`
+ },
+ plugins: [
+ nodeResolve({ mainFields: ['module', 'main'] }),
+ sourcemaps()
+ ]
+};
+
+export default config;
diff --git a/sdk/vmware/arm-vmware/src/azureVMwareSolutionAPI.ts b/sdk/vmware/arm-vmware/src/azureVMwareSolutionAPI.ts
new file mode 100644
index 000000000000..04d5d74e42d3
--- /dev/null
+++ b/sdk/vmware/arm-vmware/src/azureVMwareSolutionAPI.ts
@@ -0,0 +1,99 @@
+/*
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+import * as msRest from "@azure/ms-rest-js";
+import * as Models from "./models";
+import * as Mappers from "./models/mappers";
+import * as Parameters from "./models/parameters";
+import * as operations from "./operations";
+import { AzureVMwareSolutionAPIContext } from "./azureVMwareSolutionAPIContext";
+
+
+class AzureVMwareSolutionAPI extends AzureVMwareSolutionAPIContext {
+ // Operation groups
+ operations: operations.Operations;
+ privateClouds: operations.PrivateClouds;
+ clusters: operations.Clusters;
+
+ /**
+ * Initializes a new instance of the AzureVMwareSolutionAPI class.
+ * @param credentials Credentials needed for the client to connect to Azure.
+ * @param subscriptionId Unique identifier for the Azure subscription
+ * @param [options] The parameter options
+ */
+ constructor(credentials: msRest.ServiceClientCredentials, subscriptionId: string, options?: Models.AzureVMwareSolutionAPIOptions) {
+ super(credentials, subscriptionId, options);
+ this.operations = new operations.Operations(this);
+ this.privateClouds = new operations.PrivateClouds(this);
+ this.clusters = new operations.Clusters(this);
+ }
+
+ /**
+ * Return quota for subscription by region
+ * @param location Azure region
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ checkQuotaAvailability(location: string, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @param location Azure region
+ * @param callback The callback
+ */
+ checkQuotaAvailability(location: string, callback: msRest.ServiceCallback): void;
+ /**
+ * @param location Azure region
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ checkQuotaAvailability(location: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ checkQuotaAvailability(location: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.sendOperationRequest(
+ {
+ location,
+ options
+ },
+ checkQuotaAvailabilityOperationSpec,
+ callback) as Promise;
+ }
+}
+
+// Operation Specifications
+const serializer = new msRest.Serializer(Mappers);
+const checkQuotaAvailabilityOperationSpec: msRest.OperationSpec = {
+ httpMethod: "POST",
+ path: "subscriptions/{subscriptionId}/providers/Microsoft.AVS/locations/{location}/checkQuotaAvailability",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.location
+ ],
+ queryParameters: [
+ Parameters.apiVersion
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.Quota
+ },
+ default: {
+ bodyMapper: Mappers.ApiError
+ }
+ },
+ serializer
+};
+
+export {
+ AzureVMwareSolutionAPI,
+ AzureVMwareSolutionAPIContext,
+ Models as AzureVMwareSolutionAPIModels,
+ Mappers as AzureVMwareSolutionAPIMappers
+};
+export * from "./operations";
diff --git a/sdk/vmware/arm-vmware/src/azureVMwareSolutionAPIContext.ts b/sdk/vmware/arm-vmware/src/azureVMwareSolutionAPIContext.ts
new file mode 100644
index 000000000000..b984e6cc23eb
--- /dev/null
+++ b/sdk/vmware/arm-vmware/src/azureVMwareSolutionAPIContext.ts
@@ -0,0 +1,62 @@
+/*
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+import * as Models from "./models";
+import * as msRest from "@azure/ms-rest-js";
+import * as msRestAzure from "@azure/ms-rest-azure-js";
+
+const packageName = "@azure/arm-vmware";
+const packageVersion = "0.3.0";
+
+export class AzureVMwareSolutionAPIContext extends msRestAzure.AzureServiceClient {
+ credentials: msRest.ServiceClientCredentials;
+ subscriptionId: string;
+ apiVersion?: string;
+
+ /**
+ * Initializes a new instance of the AzureVMwareSolutionAPI class.
+ * @param credentials Credentials needed for the client to connect to Azure.
+ * @param subscriptionId Unique identifier for the Azure subscription
+ * @param [options] The parameter options
+ */
+ constructor(credentials: msRest.ServiceClientCredentials, subscriptionId: string, options?: Models.AzureVMwareSolutionAPIOptions) {
+ if (credentials == undefined) {
+ throw new Error('\'credentials\' cannot be null.');
+ }
+ if (subscriptionId == undefined) {
+ throw new Error('\'subscriptionId\' cannot be null.');
+ }
+
+ if (!options) {
+ options = {};
+ }
+ if(!options.userAgent) {
+ const defaultUserAgent = msRestAzure.getDefaultUserAgentValue();
+ options.userAgent = `${packageName}/${packageVersion} ${defaultUserAgent}`;
+ }
+
+ super(credentials, options);
+
+ this.apiVersion = '2019-08-09-preview';
+ this.acceptLanguage = 'en-US';
+ this.longRunningOperationRetryTimeout = 30;
+ this.baseUri = options.baseUri || this.baseUri || "https://management.azure.com";
+ this.requestContentType = "application/json; charset=utf-8";
+ this.credentials = credentials;
+ this.subscriptionId = subscriptionId;
+
+ if(options.acceptLanguage !== null && options.acceptLanguage !== undefined) {
+ this.acceptLanguage = options.acceptLanguage;
+ }
+ if(options.longRunningOperationRetryTimeout !== null && options.longRunningOperationRetryTimeout !== undefined) {
+ this.longRunningOperationRetryTimeout = options.longRunningOperationRetryTimeout;
+ }
+ }
+}
diff --git a/sdk/vmware/arm-vmware/src/models/clustersMappers.ts b/sdk/vmware/arm-vmware/src/models/clustersMappers.ts
new file mode 100644
index 000000000000..730bdd10cdc7
--- /dev/null
+++ b/sdk/vmware/arm-vmware/src/models/clustersMappers.ts
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ * Changes may cause incorrect behavior and will be lost if the code is regenerated.
+ */
+
+export {
+ ApiError,
+ ApiErrorBase,
+ BaseResource,
+ Circuit,
+ Cluster,
+ ClusterList,
+ ClusterProperties,
+ DefaultClusterProperties,
+ Endpoints,
+ ExpressRouteAuthorization,
+ IdentitySource,
+ PrivateCloud,
+ PrivateCloudProperties,
+ Resource,
+ Sku,
+ TrackedResource
+} from "../models/mappers";
diff --git a/sdk/vmware/arm-vmware/src/models/index.ts b/sdk/vmware/arm-vmware/src/models/index.ts
new file mode 100644
index 000000000000..dd44bbfc59aa
--- /dev/null
+++ b/sdk/vmware/arm-vmware/src/models/index.ts
@@ -0,0 +1,939 @@
+/*
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ * Changes may cause incorrect behavior and will be lost if the code is regenerated.
+ */
+
+import { BaseResource, CloudError, AzureServiceClientOptions } from "@azure/ms-rest-azure-js";
+import * as msRest from "@azure/ms-rest-js";
+
+export { BaseResource, CloudError };
+
+/**
+ * Subscription quotas
+ */
+export interface Quota {
+ /**
+ * Remaining hosts quota by sku type
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly hostsRemaining?: { [propertyName: string]: number };
+ /**
+ * Host quota is active for current subscription. Possible values include: 'Enabled', 'Disabled'
+ */
+ quotaEnabled?: QuotaEnabled;
+}
+
+/**
+ * The core properties of ARM resources
+ */
+export interface Resource extends BaseResource {
+ /**
+ * Resource ID.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly id?: string;
+ /**
+ * Resource name.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly name?: string;
+ /**
+ * Resource type.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly type?: string;
+}
+
+/**
+ * The resource model definition for a ARM tracked top level resource
+ */
+export interface TrackedResource extends Resource {
+ /**
+ * Resource location
+ */
+ location?: string;
+ /**
+ * Resource tags
+ */
+ tags?: { [propertyName: string]: string };
+}
+
+/**
+ * Api error.
+ */
+export interface ApiErrorBase {
+ /**
+ * Error code
+ */
+ code?: string;
+ /**
+ * Error message
+ */
+ message?: string;
+}
+
+/**
+ * API error response
+ */
+export interface ApiError {
+ /**
+ * An error returned by the API
+ */
+ error?: ApiErrorBase;
+}
+
+/**
+ * Contains the localized display information for this operation
+ */
+export interface OperationDisplay {
+ /**
+ * Localized friendly form of the resource provider name
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly provider?: string;
+ /**
+ * Localized friendly form of the resource type related to this operation
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly resource?: string;
+ /**
+ * Localized friendly name for the operation
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly operation?: string;
+ /**
+ * Localized friendly description for the operation
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly description?: string;
+}
+
+/**
+ * A REST API operation
+ */
+export interface Operation {
+ /**
+ * Name of the operation being performed on this object
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly name?: string;
+ /**
+ * Contains the localized display information for this operation
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly display?: OperationDisplay;
+}
+
+/**
+ * Authorization for an ExpressRoute
+ */
+export interface ExpressRouteAuthorization {
+ /**
+ * The name of the ExpressRoute
+ */
+ name?: string;
+ /**
+ * The ID of the ExpressRoute
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly id?: string;
+ /**
+ * The key of the ExpressRoute
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly key?: string;
+}
+
+/**
+ * An ExpressRoute Circuit
+ */
+export interface Circuit {
+ /**
+ * CIDR of primary subnet
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly primarySubnet?: string;
+ /**
+ * CIDR of secondary subnet
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly secondarySubnet?: string;
+ /**
+ * Identifier of the ExpressRoute (Microsoft Colo only)
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly expressRouteID?: string;
+ /**
+ * Authorizations for the ExpressRoute (Microsoft Colo only)
+ */
+ authorizations?: ExpressRouteAuthorization[];
+ /**
+ * ExpressRoute private peering identifier
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly expressRoutePrivatePeeringID?: string;
+}
+
+/**
+ * Endpoint addresses
+ */
+export interface Endpoints {
+ /**
+ * Endpoint for the NSX-T Data Center manager
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly nsxtManager?: string;
+ /**
+ * Endpoint for Virtual Center Server Appliance
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly vcsa?: string;
+}
+
+/**
+ * vCenter Single Sign On Identity Source
+ */
+export interface IdentitySource {
+ /**
+ * The name of the identity source
+ */
+ name?: string;
+ /**
+ * The domain's NetBIOS name
+ */
+ alias?: string;
+ /**
+ * The domain's dns name
+ */
+ domain?: string;
+ /**
+ * The base distinguished name for users
+ */
+ baseUserDN?: string;
+ /**
+ * The base distinguished name for groups
+ */
+ baseGroupDN?: string;
+ /**
+ * Primary server URL
+ */
+ primaryServer?: string;
+ /**
+ * Secondary server URL
+ */
+ secondaryServer?: string;
+ /**
+ * Protect LDAP communication using SSL certificate (LDAPS). Possible values include: 'Enabled',
+ * 'Disabled'
+ */
+ ssl?: SslEnum;
+ /**
+ * The ID of an Active Directory user with a minimum of read-only access to Base DN for users and
+ * group
+ */
+ username?: string;
+ /**
+ * The password of the Active Directory user with a minimum of read-only access to Base DN for
+ * users and groups.
+ */
+ password?: string;
+}
+
+/**
+ * The resource model definition representing SKU
+ */
+export interface Sku {
+ /**
+ * The name of the SKU.
+ */
+ name: string;
+}
+
+/**
+ * The properties of a default cluster
+ */
+export interface DefaultClusterProperties {
+ /**
+ * The identity
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly clusterId?: number;
+ /**
+ * The cluster size
+ */
+ clusterSize?: number;
+ /**
+ * The hosts
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly hosts?: string[];
+}
+
+/**
+ * The properties of a private cloud resource
+ */
+export interface PrivateCloudProperties {
+ /**
+ * The provisioning state. Possible values include: 'Succeeded', 'Failed', 'Cancelled',
+ * 'Pending', 'Building', 'Updating'
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly provisioningState?: PrivateCloudProvisioningState;
+ /**
+ * An ExpressRoute Circuit
+ */
+ circuit?: Circuit;
+ /**
+ * The default cluster used for management
+ */
+ cluster?: DefaultClusterProperties;
+ /**
+ * The clusters
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly clusters?: string[];
+ /**
+ * The endpoints
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly endpoints?: Endpoints;
+ /**
+ * Connectivity to internet is enabled or disabled. Possible values include: 'Enabled',
+ * 'Disabled'
+ */
+ internet?: InternetEnum;
+ /**
+ * vCenter Single Sign On Identity Sources
+ */
+ identitySources?: IdentitySource[];
+ /**
+ * The block of addresses should be unique across VNet in your subscription as well as
+ * on-premise. Make sure the CIDR format is conformed to (A.B.C.D/X) where A,B,C,D are between 0
+ * and 255, and X is between 0 and 22
+ */
+ networkBlock?: string;
+ /**
+ * Network used to access vCenter Server and NSX-T Manager
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly managementNetwork?: string;
+ /**
+ * Used for virtual machine cold migration, cloning, and snapshot migration
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly provisioningNetwork?: string;
+ /**
+ * Used for live migration of virtual machines
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly vmotionNetwork?: string;
+ /**
+ * Optionally, set the vCenter admin password when the private cloud is created
+ */
+ vcenterPassword?: string;
+ /**
+ * Optionally, set the NSX-T Manager password when the private cloud is created
+ */
+ nsxtPassword?: string;
+ /**
+ * Thumbprint of the vCenter Server SSL certificate
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly vcenterCertificateThumbprint?: string;
+ /**
+ * Thumbprint of the NSX-T Manager SSL certificate
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly nsxtCertificateThumbprint?: string;
+}
+
+/**
+ * A private cloud resource
+ */
+export interface PrivateCloud extends TrackedResource {
+ /**
+ * The private cloud SKU
+ */
+ sku?: Sku;
+ /**
+ * The properties of a private cloud resource
+ */
+ properties?: PrivateCloudProperties;
+}
+
+/**
+ * The properties of a cluster
+ */
+export interface ClusterProperties extends DefaultClusterProperties {
+ /**
+ * The state of the cluster provisioning. Possible values include: 'Succeeded', 'Failed',
+ * 'Cancelled', 'Updating'
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly provisioningState?: ClusterProvisioningState;
+}
+
+/**
+ * A cluster resource
+ */
+export interface Cluster extends Resource {
+ /**
+ * The properties of a cluster resource
+ */
+ properties?: ClusterProperties;
+}
+
+/**
+ * Administrative credentials for accessing vCenter and NSX-T
+ */
+export interface AdminCredentials {
+ /**
+ * NSX-T Manager username
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly nsxtUsername?: string;
+ /**
+ * NSX-T Manager password
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly nsxtPassword?: string;
+ /**
+ * vCenter admin username
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly vcenterUsername?: string;
+ /**
+ * vCenter admin password
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly vcenterPassword?: string;
+}
+
+/**
+ * Optional Parameters.
+ */
+export interface ClustersCreateOrUpdateOptionalParams extends msRest.RequestOptionsBase {
+ /**
+ * The properties of a cluster resource
+ */
+ properties?: ClusterProperties;
+}
+
+/**
+ * Optional Parameters.
+ */
+export interface ClustersUpdateOptionalParams extends msRest.RequestOptionsBase {
+ /**
+ * The properties of a cluster resource
+ */
+ properties?: ClusterProperties;
+}
+
+/**
+ * Optional Parameters.
+ */
+export interface ClustersBeginCreateOrUpdateOptionalParams extends msRest.RequestOptionsBase {
+ /**
+ * The properties of a cluster resource
+ */
+ properties?: ClusterProperties;
+}
+
+/**
+ * Optional Parameters.
+ */
+export interface ClustersBeginUpdateOptionalParams extends msRest.RequestOptionsBase {
+ /**
+ * The properties of a cluster resource
+ */
+ properties?: ClusterProperties;
+}
+
+/**
+ * An interface representing AzureVMwareSolutionAPIOptions.
+ */
+export interface AzureVMwareSolutionAPIOptions extends AzureServiceClientOptions {
+ baseUri?: string;
+}
+
+/**
+ * @interface
+ * Pageable list of operations
+ * @extends Array
+ */
+export interface OperationList extends Array {
+ /**
+ * URL to get the next page if any
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly nextLink?: string;
+}
+
+/**
+ * @interface
+ * A paged list of private clouds
+ * @extends Array
+ */
+export interface PrivateCloudList extends Array {
+ /**
+ * URL to get the next page if any
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly nextLink?: string;
+}
+
+/**
+ * @interface
+ * A paged list of clusters
+ * @extends Array
+ */
+export interface ClusterList extends Array {
+ /**
+ * URL to get the next page if any
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly nextLink?: string;
+}
+
+/**
+ * Defines values for QuotaEnabled.
+ * Possible values include: 'Enabled', 'Disabled'
+ * @readonly
+ * @enum {string}
+ */
+export type QuotaEnabled = 'Enabled' | 'Disabled';
+
+/**
+ * Defines values for SslEnum.
+ * Possible values include: 'Enabled', 'Disabled'
+ * @readonly
+ * @enum {string}
+ */
+export type SslEnum = 'Enabled' | 'Disabled';
+
+/**
+ * Defines values for PrivateCloudProvisioningState.
+ * Possible values include: 'Succeeded', 'Failed', 'Cancelled', 'Pending', 'Building', 'Updating'
+ * @readonly
+ * @enum {string}
+ */
+export type PrivateCloudProvisioningState = 'Succeeded' | 'Failed' | 'Cancelled' | 'Pending' | 'Building' | 'Updating';
+
+/**
+ * Defines values for InternetEnum.
+ * Possible values include: 'Enabled', 'Disabled'
+ * @readonly
+ * @enum {string}
+ */
+export type InternetEnum = 'Enabled' | 'Disabled';
+
+/**
+ * Defines values for ClusterProvisioningState.
+ * Possible values include: 'Succeeded', 'Failed', 'Cancelled', 'Updating'
+ * @readonly
+ * @enum {string}
+ */
+export type ClusterProvisioningState = 'Succeeded' | 'Failed' | 'Cancelled' | 'Updating';
+
+/**
+ * Contains response data for the list operation.
+ */
+export type OperationsListResponse = OperationList & {
+ /**
+ * The underlying HTTP response.
+ */
+ _response: msRest.HttpResponse & {
+ /**
+ * The response body as text (string format)
+ */
+ bodyAsText: string;
+
+ /**
+ * The response body as parsed JSON or XML
+ */
+ parsedBody: OperationList;
+ };
+};
+
+/**
+ * Contains response data for the listNext operation.
+ */
+export type OperationsListNextResponse = OperationList & {
+ /**
+ * The underlying HTTP response.
+ */
+ _response: msRest.HttpResponse & {
+ /**
+ * The response body as text (string format)
+ */
+ bodyAsText: string;
+
+ /**
+ * The response body as parsed JSON or XML
+ */
+ parsedBody: OperationList;
+ };
+};
+
+/**
+ * Contains response data for the checkQuotaAvailability operation.
+ */
+export type CheckQuotaAvailabilityResponse = Quota & {
+ /**
+ * The underlying HTTP response.
+ */
+ _response: msRest.HttpResponse & {
+ /**
+ * The response body as text (string format)
+ */
+ bodyAsText: string;
+
+ /**
+ * The response body as parsed JSON or XML
+ */
+ parsedBody: Quota;
+ };
+};
+
+/**
+ * Contains response data for the list operation.
+ */
+export type PrivateCloudsListResponse = PrivateCloudList & {
+ /**
+ * The underlying HTTP response.
+ */
+ _response: msRest.HttpResponse & {
+ /**
+ * The response body as text (string format)
+ */
+ bodyAsText: string;
+
+ /**
+ * The response body as parsed JSON or XML
+ */
+ parsedBody: PrivateCloudList;
+ };
+};
+
+/**
+ * Contains response data for the listInSubscription operation.
+ */
+export type PrivateCloudsListInSubscriptionResponse = PrivateCloudList & {
+ /**
+ * The underlying HTTP response.
+ */
+ _response: msRest.HttpResponse & {
+ /**
+ * The response body as text (string format)
+ */
+ bodyAsText: string;
+
+ /**
+ * The response body as parsed JSON or XML
+ */
+ parsedBody: PrivateCloudList;
+ };
+};
+
+/**
+ * Contains response data for the get operation.
+ */
+export type PrivateCloudsGetResponse = PrivateCloud & {
+ /**
+ * The underlying HTTP response.
+ */
+ _response: msRest.HttpResponse & {
+ /**
+ * The response body as text (string format)
+ */
+ bodyAsText: string;
+
+ /**
+ * The response body as parsed JSON or XML
+ */
+ parsedBody: PrivateCloud;
+ };
+};
+
+/**
+ * Contains response data for the createOrUpdate operation.
+ */
+export type PrivateCloudsCreateOrUpdateResponse = PrivateCloud & {
+ /**
+ * The underlying HTTP response.
+ */
+ _response: msRest.HttpResponse & {
+ /**
+ * The response body as text (string format)
+ */
+ bodyAsText: string;
+
+ /**
+ * The response body as parsed JSON or XML
+ */
+ parsedBody: PrivateCloud;
+ };
+};
+
+/**
+ * Contains response data for the update operation.
+ */
+export type PrivateCloudsUpdateResponse = PrivateCloud & {
+ /**
+ * The underlying HTTP response.
+ */
+ _response: msRest.HttpResponse & {
+ /**
+ * The response body as text (string format)
+ */
+ bodyAsText: string;
+
+ /**
+ * The response body as parsed JSON or XML
+ */
+ parsedBody: PrivateCloud;
+ };
+};
+
+/**
+ * Contains response data for the listAdminCredentials operation.
+ */
+export type PrivateCloudsListAdminCredentialsResponse = AdminCredentials & {
+ /**
+ * The underlying HTTP response.
+ */
+ _response: msRest.HttpResponse & {
+ /**
+ * The response body as text (string format)
+ */
+ bodyAsText: string;
+
+ /**
+ * The response body as parsed JSON or XML
+ */
+ parsedBody: AdminCredentials;
+ };
+};
+
+/**
+ * Contains response data for the beginCreateOrUpdate operation.
+ */
+export type PrivateCloudsBeginCreateOrUpdateResponse = PrivateCloud & {
+ /**
+ * The underlying HTTP response.
+ */
+ _response: msRest.HttpResponse & {
+ /**
+ * The response body as text (string format)
+ */
+ bodyAsText: string;
+
+ /**
+ * The response body as parsed JSON or XML
+ */
+ parsedBody: PrivateCloud;
+ };
+};
+
+/**
+ * Contains response data for the beginUpdate operation.
+ */
+export type PrivateCloudsBeginUpdateResponse = PrivateCloud & {
+ /**
+ * The underlying HTTP response.
+ */
+ _response: msRest.HttpResponse & {
+ /**
+ * The response body as text (string format)
+ */
+ bodyAsText: string;
+
+ /**
+ * The response body as parsed JSON or XML
+ */
+ parsedBody: PrivateCloud;
+ };
+};
+
+/**
+ * Contains response data for the listNext operation.
+ */
+export type PrivateCloudsListNextResponse = PrivateCloudList & {
+ /**
+ * The underlying HTTP response.
+ */
+ _response: msRest.HttpResponse & {
+ /**
+ * The response body as text (string format)
+ */
+ bodyAsText: string;
+
+ /**
+ * The response body as parsed JSON or XML
+ */
+ parsedBody: PrivateCloudList;
+ };
+};
+
+/**
+ * Contains response data for the listInSubscriptionNext operation.
+ */
+export type PrivateCloudsListInSubscriptionNextResponse = PrivateCloudList & {
+ /**
+ * The underlying HTTP response.
+ */
+ _response: msRest.HttpResponse & {
+ /**
+ * The response body as text (string format)
+ */
+ bodyAsText: string;
+
+ /**
+ * The response body as parsed JSON or XML
+ */
+ parsedBody: PrivateCloudList;
+ };
+};
+
+/**
+ * Contains response data for the list operation.
+ */
+export type ClustersListResponse = ClusterList & {
+ /**
+ * The underlying HTTP response.
+ */
+ _response: msRest.HttpResponse & {
+ /**
+ * The response body as text (string format)
+ */
+ bodyAsText: string;
+
+ /**
+ * The response body as parsed JSON or XML
+ */
+ parsedBody: ClusterList;
+ };
+};
+
+/**
+ * Contains response data for the get operation.
+ */
+export type ClustersGetResponse = Cluster & {
+ /**
+ * The underlying HTTP response.
+ */
+ _response: msRest.HttpResponse & {
+ /**
+ * The response body as text (string format)
+ */
+ bodyAsText: string;
+
+ /**
+ * The response body as parsed JSON or XML
+ */
+ parsedBody: Cluster;
+ };
+};
+
+/**
+ * Contains response data for the createOrUpdate operation.
+ */
+export type ClustersCreateOrUpdateResponse = Cluster & {
+ /**
+ * The underlying HTTP response.
+ */
+ _response: msRest.HttpResponse & {
+ /**
+ * The response body as text (string format)
+ */
+ bodyAsText: string;
+
+ /**
+ * The response body as parsed JSON or XML
+ */
+ parsedBody: Cluster;
+ };
+};
+
+/**
+ * Contains response data for the update operation.
+ */
+export type ClustersUpdateResponse = Cluster & {
+ /**
+ * The underlying HTTP response.
+ */
+ _response: msRest.HttpResponse & {
+ /**
+ * The response body as text (string format)
+ */
+ bodyAsText: string;
+
+ /**
+ * The response body as parsed JSON or XML
+ */
+ parsedBody: Cluster;
+ };
+};
+
+/**
+ * Contains response data for the beginCreateOrUpdate operation.
+ */
+export type ClustersBeginCreateOrUpdateResponse = Cluster & {
+ /**
+ * The underlying HTTP response.
+ */
+ _response: msRest.HttpResponse & {
+ /**
+ * The response body as text (string format)
+ */
+ bodyAsText: string;
+
+ /**
+ * The response body as parsed JSON or XML
+ */
+ parsedBody: Cluster;
+ };
+};
+
+/**
+ * Contains response data for the beginUpdate operation.
+ */
+export type ClustersBeginUpdateResponse = Cluster & {
+ /**
+ * The underlying HTTP response.
+ */
+ _response: msRest.HttpResponse & {
+ /**
+ * The response body as text (string format)
+ */
+ bodyAsText: string;
+
+ /**
+ * The response body as parsed JSON or XML
+ */
+ parsedBody: Cluster;
+ };
+};
+
+/**
+ * Contains response data for the listNext operation.
+ */
+export type ClustersListNextResponse = ClusterList & {
+ /**
+ * The underlying HTTP response.
+ */
+ _response: msRest.HttpResponse & {
+ /**
+ * The response body as text (string format)
+ */
+ bodyAsText: string;
+
+ /**
+ * The response body as parsed JSON or XML
+ */
+ parsedBody: ClusterList;
+ };
+};
diff --git a/sdk/vmware/arm-vmware/src/models/mappers.ts b/sdk/vmware/arm-vmware/src/models/mappers.ts
new file mode 100644
index 000000000000..390d55a263a8
--- /dev/null
+++ b/sdk/vmware/arm-vmware/src/models/mappers.ts
@@ -0,0 +1,739 @@
+/*
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ * Changes may cause incorrect behavior and will be lost if the code is regenerated.
+ */
+
+import { CloudErrorMapper, BaseResourceMapper } from "@azure/ms-rest-azure-js";
+import * as msRest from "@azure/ms-rest-js";
+
+export const CloudError = CloudErrorMapper;
+export const BaseResource = BaseResourceMapper;
+
+export const Quota: msRest.CompositeMapper = {
+ serializedName: "Quota",
+ type: {
+ name: "Composite",
+ className: "Quota",
+ modelProperties: {
+ hostsRemaining: {
+ readOnly: true,
+ serializedName: "hostsRemaining",
+ type: {
+ name: "Dictionary",
+ value: {
+ type: {
+ name: "Number"
+ }
+ }
+ }
+ },
+ quotaEnabled: {
+ serializedName: "quotaEnabled",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const Resource: msRest.CompositeMapper = {
+ serializedName: "Resource",
+ type: {
+ name: "Composite",
+ className: "Resource",
+ modelProperties: {
+ id: {
+ readOnly: true,
+ serializedName: "id",
+ type: {
+ name: "String"
+ }
+ },
+ name: {
+ readOnly: true,
+ serializedName: "name",
+ type: {
+ name: "String"
+ }
+ },
+ type: {
+ readOnly: true,
+ serializedName: "type",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const TrackedResource: msRest.CompositeMapper = {
+ serializedName: "TrackedResource",
+ type: {
+ name: "Composite",
+ className: "TrackedResource",
+ modelProperties: {
+ ...Resource.type.modelProperties,
+ location: {
+ serializedName: "location",
+ type: {
+ name: "String"
+ }
+ },
+ tags: {
+ serializedName: "tags",
+ type: {
+ name: "Dictionary",
+ value: {
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+ }
+ }
+};
+
+export const ApiErrorBase: msRest.CompositeMapper = {
+ serializedName: "ApiErrorBase",
+ type: {
+ name: "Composite",
+ className: "ApiErrorBase",
+ modelProperties: {
+ code: {
+ serializedName: "code",
+ type: {
+ name: "String"
+ }
+ },
+ message: {
+ serializedName: "message",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const ApiError: msRest.CompositeMapper = {
+ serializedName: "ApiError",
+ type: {
+ name: "Composite",
+ className: "ApiError",
+ modelProperties: {
+ error: {
+ serializedName: "error",
+ type: {
+ name: "Composite",
+ className: "ApiErrorBase"
+ }
+ }
+ }
+ }
+};
+
+export const OperationDisplay: msRest.CompositeMapper = {
+ serializedName: "Operation_display",
+ type: {
+ name: "Composite",
+ className: "OperationDisplay",
+ modelProperties: {
+ provider: {
+ readOnly: true,
+ serializedName: "provider",
+ type: {
+ name: "String"
+ }
+ },
+ resource: {
+ readOnly: true,
+ serializedName: "resource",
+ type: {
+ name: "String"
+ }
+ },
+ operation: {
+ readOnly: true,
+ serializedName: "operation",
+ type: {
+ name: "String"
+ }
+ },
+ description: {
+ readOnly: true,
+ serializedName: "description",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const Operation: msRest.CompositeMapper = {
+ serializedName: "Operation",
+ type: {
+ name: "Composite",
+ className: "Operation",
+ modelProperties: {
+ name: {
+ readOnly: true,
+ serializedName: "name",
+ type: {
+ name: "String"
+ }
+ },
+ display: {
+ readOnly: true,
+ serializedName: "display",
+ type: {
+ name: "Composite",
+ className: "OperationDisplay"
+ }
+ }
+ }
+ }
+};
+
+export const ExpressRouteAuthorization: msRest.CompositeMapper = {
+ serializedName: "ExpressRouteAuthorization",
+ type: {
+ name: "Composite",
+ className: "ExpressRouteAuthorization",
+ modelProperties: {
+ name: {
+ serializedName: "name",
+ type: {
+ name: "String"
+ }
+ },
+ id: {
+ readOnly: true,
+ serializedName: "id",
+ type: {
+ name: "String"
+ }
+ },
+ key: {
+ readOnly: true,
+ serializedName: "key",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const Circuit: msRest.CompositeMapper = {
+ serializedName: "Circuit",
+ type: {
+ name: "Composite",
+ className: "Circuit",
+ modelProperties: {
+ primarySubnet: {
+ readOnly: true,
+ serializedName: "primarySubnet",
+ type: {
+ name: "String"
+ }
+ },
+ secondarySubnet: {
+ readOnly: true,
+ serializedName: "secondarySubnet",
+ type: {
+ name: "String"
+ }
+ },
+ expressRouteID: {
+ readOnly: true,
+ serializedName: "expressRouteID",
+ type: {
+ name: "String"
+ }
+ },
+ authorizations: {
+ serializedName: "authorizations",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "ExpressRouteAuthorization"
+ }
+ }
+ }
+ },
+ expressRoutePrivatePeeringID: {
+ readOnly: true,
+ serializedName: "expressRoutePrivatePeeringID",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const Endpoints: msRest.CompositeMapper = {
+ serializedName: "Endpoints",
+ type: {
+ name: "Composite",
+ className: "Endpoints",
+ modelProperties: {
+ nsxtManager: {
+ readOnly: true,
+ serializedName: "nsxtManager",
+ type: {
+ name: "String"
+ }
+ },
+ vcsa: {
+ readOnly: true,
+ serializedName: "vcsa",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const IdentitySource: msRest.CompositeMapper = {
+ serializedName: "IdentitySource",
+ type: {
+ name: "Composite",
+ className: "IdentitySource",
+ modelProperties: {
+ name: {
+ serializedName: "name",
+ type: {
+ name: "String"
+ }
+ },
+ alias: {
+ serializedName: "alias",
+ type: {
+ name: "String"
+ }
+ },
+ domain: {
+ serializedName: "domain",
+ type: {
+ name: "String"
+ }
+ },
+ baseUserDN: {
+ serializedName: "baseUserDN",
+ type: {
+ name: "String"
+ }
+ },
+ baseGroupDN: {
+ serializedName: "baseGroupDN",
+ type: {
+ name: "String"
+ }
+ },
+ primaryServer: {
+ serializedName: "primaryServer",
+ type: {
+ name: "String"
+ }
+ },
+ secondaryServer: {
+ serializedName: "secondaryServer",
+ type: {
+ name: "String"
+ }
+ },
+ ssl: {
+ serializedName: "ssl",
+ type: {
+ name: "String"
+ }
+ },
+ username: {
+ serializedName: "username",
+ type: {
+ name: "String"
+ }
+ },
+ password: {
+ serializedName: "password",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const Sku: msRest.CompositeMapper = {
+ serializedName: "Sku",
+ type: {
+ name: "Composite",
+ className: "Sku",
+ modelProperties: {
+ name: {
+ required: true,
+ serializedName: "name",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const DefaultClusterProperties: msRest.CompositeMapper = {
+ serializedName: "DefaultClusterProperties",
+ type: {
+ name: "Composite",
+ className: "DefaultClusterProperties",
+ modelProperties: {
+ clusterId: {
+ readOnly: true,
+ serializedName: "clusterId",
+ type: {
+ name: "Number"
+ }
+ },
+ clusterSize: {
+ serializedName: "clusterSize",
+ type: {
+ name: "Number"
+ }
+ },
+ hosts: {
+ readOnly: true,
+ serializedName: "hosts",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+ }
+ }
+};
+
+export const PrivateCloudProperties: msRest.CompositeMapper = {
+ serializedName: "PrivateCloudProperties",
+ type: {
+ name: "Composite",
+ className: "PrivateCloudProperties",
+ modelProperties: {
+ provisioningState: {
+ readOnly: true,
+ serializedName: "provisioningState",
+ type: {
+ name: "String"
+ }
+ },
+ circuit: {
+ serializedName: "circuit",
+ type: {
+ name: "Composite",
+ className: "Circuit"
+ }
+ },
+ cluster: {
+ serializedName: "cluster",
+ type: {
+ name: "Composite",
+ className: "DefaultClusterProperties"
+ }
+ },
+ clusters: {
+ readOnly: true,
+ serializedName: "clusters",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "String"
+ }
+ }
+ }
+ },
+ endpoints: {
+ readOnly: true,
+ serializedName: "endpoints",
+ type: {
+ name: "Composite",
+ className: "Endpoints"
+ }
+ },
+ internet: {
+ serializedName: "internet",
+ type: {
+ name: "String"
+ }
+ },
+ identitySources: {
+ serializedName: "identitySources",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "IdentitySource"
+ }
+ }
+ }
+ },
+ networkBlock: {
+ serializedName: "networkBlock",
+ type: {
+ name: "String"
+ }
+ },
+ managementNetwork: {
+ readOnly: true,
+ serializedName: "managementNetwork",
+ type: {
+ name: "String"
+ }
+ },
+ provisioningNetwork: {
+ readOnly: true,
+ serializedName: "provisioningNetwork",
+ type: {
+ name: "String"
+ }
+ },
+ vmotionNetwork: {
+ readOnly: true,
+ serializedName: "vmotionNetwork",
+ type: {
+ name: "String"
+ }
+ },
+ vcenterPassword: {
+ serializedName: "vcenterPassword",
+ type: {
+ name: "String"
+ }
+ },
+ nsxtPassword: {
+ serializedName: "nsxtPassword",
+ type: {
+ name: "String"
+ }
+ },
+ vcenterCertificateThumbprint: {
+ readOnly: true,
+ serializedName: "vcenterCertificateThumbprint",
+ type: {
+ name: "String"
+ }
+ },
+ nsxtCertificateThumbprint: {
+ readOnly: true,
+ serializedName: "nsxtCertificateThumbprint",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const PrivateCloud: msRest.CompositeMapper = {
+ serializedName: "PrivateCloud",
+ type: {
+ name: "Composite",
+ className: "PrivateCloud",
+ modelProperties: {
+ ...TrackedResource.type.modelProperties,
+ sku: {
+ serializedName: "sku",
+ type: {
+ name: "Composite",
+ className: "Sku"
+ }
+ },
+ properties: {
+ serializedName: "properties",
+ type: {
+ name: "Composite",
+ className: "PrivateCloudProperties"
+ }
+ }
+ }
+ }
+};
+
+export const ClusterProperties: msRest.CompositeMapper = {
+ serializedName: "ClusterProperties",
+ type: {
+ name: "Composite",
+ className: "ClusterProperties",
+ modelProperties: {
+ ...DefaultClusterProperties.type.modelProperties,
+ provisioningState: {
+ readOnly: true,
+ serializedName: "provisioningState",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const Cluster: msRest.CompositeMapper = {
+ serializedName: "Cluster",
+ type: {
+ name: "Composite",
+ className: "Cluster",
+ modelProperties: {
+ ...Resource.type.modelProperties,
+ properties: {
+ serializedName: "properties",
+ type: {
+ name: "Composite",
+ className: "ClusterProperties"
+ }
+ }
+ }
+ }
+};
+
+export const AdminCredentials: msRest.CompositeMapper = {
+ serializedName: "AdminCredentials",
+ type: {
+ name: "Composite",
+ className: "AdminCredentials",
+ modelProperties: {
+ nsxtUsername: {
+ readOnly: true,
+ serializedName: "nsxtUsername",
+ type: {
+ name: "String"
+ }
+ },
+ nsxtPassword: {
+ readOnly: true,
+ serializedName: "nsxtPassword",
+ type: {
+ name: "String"
+ }
+ },
+ vcenterUsername: {
+ readOnly: true,
+ serializedName: "vcenterUsername",
+ type: {
+ name: "String"
+ }
+ },
+ vcenterPassword: {
+ readOnly: true,
+ serializedName: "vcenterPassword",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const OperationList: msRest.CompositeMapper = {
+ serializedName: "OperationList",
+ type: {
+ name: "Composite",
+ className: "OperationList",
+ modelProperties: {
+ value: {
+ readOnly: true,
+ serializedName: "",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "Operation"
+ }
+ }
+ }
+ },
+ nextLink: {
+ readOnly: true,
+ serializedName: "nextLink",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const PrivateCloudList: msRest.CompositeMapper = {
+ serializedName: "PrivateCloudList",
+ type: {
+ name: "Composite",
+ className: "PrivateCloudList",
+ modelProperties: {
+ value: {
+ readOnly: true,
+ serializedName: "",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "PrivateCloud"
+ }
+ }
+ }
+ },
+ nextLink: {
+ readOnly: true,
+ serializedName: "nextLink",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const ClusterList: msRest.CompositeMapper = {
+ serializedName: "ClusterList",
+ type: {
+ name: "Composite",
+ className: "ClusterList",
+ modelProperties: {
+ value: {
+ readOnly: true,
+ serializedName: "",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "Cluster"
+ }
+ }
+ }
+ },
+ nextLink: {
+ readOnly: true,
+ serializedName: "nextLink",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
diff --git a/sdk/vmware/arm-vmware/src/models/operationsMappers.ts b/sdk/vmware/arm-vmware/src/models/operationsMappers.ts
new file mode 100644
index 000000000000..b694633c9b26
--- /dev/null
+++ b/sdk/vmware/arm-vmware/src/models/operationsMappers.ts
@@ -0,0 +1,15 @@
+/*
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ * Changes may cause incorrect behavior and will be lost if the code is regenerated.
+ */
+
+export {
+ ApiError,
+ ApiErrorBase,
+ Operation,
+ OperationDisplay,
+ OperationList
+} from "../models/mappers";
diff --git a/sdk/vmware/arm-vmware/src/models/parameters.ts b/sdk/vmware/arm-vmware/src/models/parameters.ts
new file mode 100644
index 000000000000..7e139c882955
--- /dev/null
+++ b/sdk/vmware/arm-vmware/src/models/parameters.ts
@@ -0,0 +1,93 @@
+/*
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+import * as msRest from "@azure/ms-rest-js";
+
+export const acceptLanguage: msRest.OperationParameter = {
+ parameterPath: "acceptLanguage",
+ mapper: {
+ serializedName: "accept-language",
+ defaultValue: 'en-US',
+ type: {
+ name: "String"
+ }
+ }
+};
+export const apiVersion: msRest.OperationQueryParameter = {
+ parameterPath: "apiVersion",
+ mapper: {
+ required: true,
+ serializedName: "api-version",
+ type: {
+ name: "String"
+ }
+ }
+};
+export const clusterName: msRest.OperationURLParameter = {
+ parameterPath: "clusterName",
+ mapper: {
+ required: true,
+ serializedName: "clusterName",
+ type: {
+ name: "String"
+ }
+ }
+};
+export const location: msRest.OperationURLParameter = {
+ parameterPath: "location",
+ mapper: {
+ required: true,
+ serializedName: "location",
+ type: {
+ name: "String"
+ }
+ }
+};
+export const nextPageLink: msRest.OperationURLParameter = {
+ parameterPath: "nextPageLink",
+ mapper: {
+ required: true,
+ serializedName: "nextLink",
+ type: {
+ name: "String"
+ }
+ },
+ skipEncoding: true
+};
+export const privateCloudName: msRest.OperationURLParameter = {
+ parameterPath: "privateCloudName",
+ mapper: {
+ required: true,
+ serializedName: "privateCloudName",
+ type: {
+ name: "String"
+ }
+ }
+};
+export const resourceGroupName: msRest.OperationURLParameter = {
+ parameterPath: "resourceGroupName",
+ mapper: {
+ required: true,
+ serializedName: "resourceGroupName",
+ type: {
+ name: "String"
+ }
+ }
+};
+export const subscriptionId: msRest.OperationURLParameter = {
+ parameterPath: "subscriptionId",
+ mapper: {
+ required: true,
+ serializedName: "subscriptionId",
+ type: {
+ name: "String"
+ }
+ }
+};
diff --git a/sdk/vmware/arm-vmware/src/models/privateCloudsMappers.ts b/sdk/vmware/arm-vmware/src/models/privateCloudsMappers.ts
new file mode 100644
index 000000000000..cfaee30705e1
--- /dev/null
+++ b/sdk/vmware/arm-vmware/src/models/privateCloudsMappers.ts
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ * Changes may cause incorrect behavior and will be lost if the code is regenerated.
+ */
+
+export {
+ AdminCredentials,
+ ApiError,
+ ApiErrorBase,
+ BaseResource,
+ Circuit,
+ Cluster,
+ ClusterProperties,
+ DefaultClusterProperties,
+ Endpoints,
+ ExpressRouteAuthorization,
+ IdentitySource,
+ PrivateCloud,
+ PrivateCloudList,
+ PrivateCloudProperties,
+ Resource,
+ Sku,
+ TrackedResource
+} from "../models/mappers";
diff --git a/sdk/vmware/arm-vmware/src/operations/clusters.ts b/sdk/vmware/arm-vmware/src/operations/clusters.ts
new file mode 100644
index 000000000000..9c940a946dae
--- /dev/null
+++ b/sdk/vmware/arm-vmware/src/operations/clusters.ts
@@ -0,0 +1,406 @@
+/*
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+import * as msRest from "@azure/ms-rest-js";
+import * as msRestAzure from "@azure/ms-rest-azure-js";
+import * as Models from "../models";
+import * as Mappers from "../models/clustersMappers";
+import * as Parameters from "../models/parameters";
+import { AzureVMwareSolutionAPIContext } from "../azureVMwareSolutionAPIContext";
+
+/** Class representing a Clusters. */
+export class Clusters {
+ private readonly client: AzureVMwareSolutionAPIContext;
+
+ /**
+ * Create a Clusters.
+ * @param {AzureVMwareSolutionAPIContext} client Reference to the service client.
+ */
+ constructor(client: AzureVMwareSolutionAPIContext) {
+ this.client = client;
+ }
+
+ /**
+ * @summary List clusters in a private cloud
+ * @param resourceGroupName Name of the resource group within the Azure subscription
+ * @param privateCloudName Name of the private cloud
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ list(resourceGroupName: string, privateCloudName: string, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @param resourceGroupName Name of the resource group within the Azure subscription
+ * @param privateCloudName Name of the private cloud
+ * @param callback The callback
+ */
+ list(resourceGroupName: string, privateCloudName: string, callback: msRest.ServiceCallback): void;
+ /**
+ * @param resourceGroupName Name of the resource group within the Azure subscription
+ * @param privateCloudName Name of the private cloud
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ list(resourceGroupName: string, privateCloudName: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ list(resourceGroupName: string, privateCloudName: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ resourceGroupName,
+ privateCloudName,
+ options
+ },
+ listOperationSpec,
+ callback) as Promise;
+ }
+
+ /**
+ * @summary Get a cluster by name in a private cloud
+ * @param resourceGroupName Name of the resource group within the Azure subscription
+ * @param privateCloudName Name of the private cloud
+ * @param clusterName Name of the cluster in the private cloud
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ get(resourceGroupName: string, privateCloudName: string, clusterName: string, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @param resourceGroupName Name of the resource group within the Azure subscription
+ * @param privateCloudName Name of the private cloud
+ * @param clusterName Name of the cluster in the private cloud
+ * @param callback The callback
+ */
+ get(resourceGroupName: string, privateCloudName: string, clusterName: string, callback: msRest.ServiceCallback): void;
+ /**
+ * @param resourceGroupName Name of the resource group within the Azure subscription
+ * @param privateCloudName Name of the private cloud
+ * @param clusterName Name of the cluster in the private cloud
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ get(resourceGroupName: string, privateCloudName: string, clusterName: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ get(resourceGroupName: string, privateCloudName: string, clusterName: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ resourceGroupName,
+ privateCloudName,
+ clusterName,
+ options
+ },
+ getOperationSpec,
+ callback) as Promise;
+ }
+
+ /**
+ * @summary Create or update a cluster in a private cloud
+ * @param resourceGroupName Name of the resource group within the Azure subscription
+ * @param privateCloudName The name of the private cloud.
+ * @param clusterName Name of the cluster in the private cloud
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ createOrUpdate(resourceGroupName: string, privateCloudName: string, clusterName: string, options?: Models.ClustersCreateOrUpdateOptionalParams): Promise {
+ return this.beginCreateOrUpdate(resourceGroupName,privateCloudName,clusterName,options)
+ .then(lroPoller => lroPoller.pollUntilFinished()) as Promise;
+ }
+
+ /**
+ * @summary Update a cluster in a private cloud
+ * @param resourceGroupName Name of the resource group within the Azure subscription
+ * @param privateCloudName Name of the private cloud
+ * @param clusterName Name of the cluster in the private cloud
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ update(resourceGroupName: string, privateCloudName: string, clusterName: string, options?: Models.ClustersUpdateOptionalParams): Promise {
+ return this.beginUpdate(resourceGroupName,privateCloudName,clusterName,options)
+ .then(lroPoller => lroPoller.pollUntilFinished()) as Promise;
+ }
+
+ /**
+ * @summary Delete a cluster in a private cloud
+ * @param resourceGroupName Name of the resource group within the Azure subscription
+ * @param privateCloudName Name of the private cloud
+ * @param clusterName Name of the cluster in the private cloud
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ deleteMethod(resourceGroupName: string, privateCloudName: string, clusterName: string, options?: msRest.RequestOptionsBase): Promise {
+ return this.beginDeleteMethod(resourceGroupName,privateCloudName,clusterName,options)
+ .then(lroPoller => lroPoller.pollUntilFinished());
+ }
+
+ /**
+ * @summary Create or update a cluster in a private cloud
+ * @param resourceGroupName Name of the resource group within the Azure subscription
+ * @param privateCloudName The name of the private cloud.
+ * @param clusterName Name of the cluster in the private cloud
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ beginCreateOrUpdate(resourceGroupName: string, privateCloudName: string, clusterName: string, options?: Models.ClustersBeginCreateOrUpdateOptionalParams): Promise {
+ return this.client.sendLRORequest(
+ {
+ resourceGroupName,
+ privateCloudName,
+ clusterName,
+ options
+ },
+ beginCreateOrUpdateOperationSpec,
+ options);
+ }
+
+ /**
+ * @summary Update a cluster in a private cloud
+ * @param resourceGroupName Name of the resource group within the Azure subscription
+ * @param privateCloudName Name of the private cloud
+ * @param clusterName Name of the cluster in the private cloud
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ beginUpdate(resourceGroupName: string, privateCloudName: string, clusterName: string, options?: Models.ClustersBeginUpdateOptionalParams): Promise {
+ return this.client.sendLRORequest(
+ {
+ resourceGroupName,
+ privateCloudName,
+ clusterName,
+ options
+ },
+ beginUpdateOperationSpec,
+ options);
+ }
+
+ /**
+ * @summary Delete a cluster in a private cloud
+ * @param resourceGroupName Name of the resource group within the Azure subscription
+ * @param privateCloudName Name of the private cloud
+ * @param clusterName Name of the cluster in the private cloud
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ beginDeleteMethod(resourceGroupName: string, privateCloudName: string, clusterName: string, options?: msRest.RequestOptionsBase): Promise {
+ return this.client.sendLRORequest(
+ {
+ resourceGroupName,
+ privateCloudName,
+ clusterName,
+ options
+ },
+ beginDeleteMethodOperationSpec,
+ options);
+ }
+
+ /**
+ * @summary List clusters in a private cloud
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ listNext(nextPageLink: string, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @param callback The callback
+ */
+ listNext(nextPageLink: string, callback: msRest.ServiceCallback): void;
+ /**
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ listNext(nextPageLink: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ listNext(nextPageLink: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ nextPageLink,
+ options
+ },
+ listNextOperationSpec,
+ callback) as Promise;
+ }
+}
+
+// Operation Specifications
+const serializer = new msRest.Serializer(Mappers);
+const listOperationSpec: msRest.OperationSpec = {
+ httpMethod: "GET",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds/{privateCloudName}/clusters",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.privateCloudName
+ ],
+ queryParameters: [
+ Parameters.apiVersion
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.ClusterList
+ },
+ default: {
+ bodyMapper: Mappers.ApiError
+ }
+ },
+ serializer
+};
+
+const getOperationSpec: msRest.OperationSpec = {
+ httpMethod: "GET",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds/{privateCloudName}/clusters/{clusterName}",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.privateCloudName,
+ Parameters.clusterName
+ ],
+ queryParameters: [
+ Parameters.apiVersion
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.Cluster
+ },
+ default: {
+ bodyMapper: Mappers.ApiError
+ }
+ },
+ serializer
+};
+
+const beginCreateOrUpdateOperationSpec: msRest.OperationSpec = {
+ httpMethod: "PUT",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds/{privateCloudName}/clusters/{clusterName}",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.privateCloudName,
+ Parameters.clusterName
+ ],
+ queryParameters: [
+ Parameters.apiVersion
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ requestBody: {
+ parameterPath: {
+ properties: [
+ "options",
+ "properties"
+ ]
+ },
+ mapper: {
+ ...Mappers.Cluster,
+ required: true
+ }
+ },
+ responses: {
+ 200: {
+ bodyMapper: Mappers.Cluster
+ },
+ 201: {
+ bodyMapper: Mappers.Cluster
+ },
+ default: {
+ bodyMapper: Mappers.ApiError
+ }
+ },
+ serializer
+};
+
+const beginUpdateOperationSpec: msRest.OperationSpec = {
+ httpMethod: "PATCH",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds/{privateCloudName}/clusters/{clusterName}",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.privateCloudName,
+ Parameters.clusterName
+ ],
+ queryParameters: [
+ Parameters.apiVersion
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ requestBody: {
+ parameterPath: {
+ properties: [
+ "options",
+ "properties"
+ ]
+ },
+ mapper: {
+ ...Mappers.Cluster,
+ required: true
+ }
+ },
+ responses: {
+ 200: {
+ bodyMapper: Mappers.Cluster
+ },
+ 201: {
+ bodyMapper: Mappers.Cluster
+ },
+ default: {
+ bodyMapper: Mappers.ApiError
+ }
+ },
+ serializer
+};
+
+const beginDeleteMethodOperationSpec: msRest.OperationSpec = {
+ httpMethod: "DELETE",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds/{privateCloudName}/clusters/{clusterName}",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.privateCloudName,
+ Parameters.clusterName
+ ],
+ queryParameters: [
+ Parameters.apiVersion
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {},
+ 202: {},
+ 204: {},
+ default: {
+ bodyMapper: Mappers.ApiError
+ }
+ },
+ serializer
+};
+
+const listNextOperationSpec: msRest.OperationSpec = {
+ httpMethod: "GET",
+ baseUrl: "https://management.azure.com",
+ path: "{nextLink}",
+ urlParameters: [
+ Parameters.nextPageLink
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.ClusterList
+ },
+ default: {
+ bodyMapper: Mappers.ApiError
+ }
+ },
+ serializer
+};
diff --git a/sdk/vmware/arm-vmware/src/operations/index.ts b/sdk/vmware/arm-vmware/src/operations/index.ts
new file mode 100644
index 000000000000..c5fe40c943f6
--- /dev/null
+++ b/sdk/vmware/arm-vmware/src/operations/index.ts
@@ -0,0 +1,13 @@
+/*
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+export * from "./operations";
+export * from "./privateClouds";
+export * from "./clusters";
diff --git a/sdk/vmware/arm-vmware/src/operations/operations.ts b/sdk/vmware/arm-vmware/src/operations/operations.ts
new file mode 100644
index 000000000000..372ef6b9bce5
--- /dev/null
+++ b/sdk/vmware/arm-vmware/src/operations/operations.ts
@@ -0,0 +1,123 @@
+/*
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+import * as msRest from "@azure/ms-rest-js";
+import * as Models from "../models";
+import * as Mappers from "../models/operationsMappers";
+import * as Parameters from "../models/parameters";
+import { AzureVMwareSolutionAPIContext } from "../azureVMwareSolutionAPIContext";
+
+/** Class representing a Operations. */
+export class Operations {
+ private readonly client: AzureVMwareSolutionAPIContext;
+
+ /**
+ * Create a Operations.
+ * @param {AzureVMwareSolutionAPIContext} client Reference to the service client.
+ */
+ constructor(client: AzureVMwareSolutionAPIContext) {
+ this.client = client;
+ }
+
+ /**
+ * Lists all of the available operations
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ list(options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @param callback The callback
+ */
+ list(callback: msRest.ServiceCallback): void;
+ /**
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ list(options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ list(options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ options
+ },
+ listOperationSpec,
+ callback) as Promise;
+ }
+
+ /**
+ * Lists all of the available operations
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ listNext(nextPageLink: string, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @param callback The callback
+ */
+ listNext(nextPageLink: string, callback: msRest.ServiceCallback): void;
+ /**
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ listNext(nextPageLink: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ listNext(nextPageLink: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ nextPageLink,
+ options
+ },
+ listNextOperationSpec,
+ callback) as Promise;
+ }
+}
+
+// Operation Specifications
+const serializer = new msRest.Serializer(Mappers);
+const listOperationSpec: msRest.OperationSpec = {
+ httpMethod: "GET",
+ path: "providers/Microsoft.AVS/operations",
+ queryParameters: [
+ Parameters.apiVersion
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.OperationList
+ },
+ default: {
+ bodyMapper: Mappers.ApiError
+ }
+ },
+ serializer
+};
+
+const listNextOperationSpec: msRest.OperationSpec = {
+ httpMethod: "GET",
+ baseUrl: "https://management.azure.com",
+ path: "{nextLink}",
+ urlParameters: [
+ Parameters.nextPageLink
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.OperationList
+ },
+ default: {
+ bodyMapper: Mappers.ApiError
+ }
+ },
+ serializer
+};
diff --git a/sdk/vmware/arm-vmware/src/operations/privateClouds.ts b/sdk/vmware/arm-vmware/src/operations/privateClouds.ts
new file mode 100644
index 000000000000..9a1a1445eaf1
--- /dev/null
+++ b/sdk/vmware/arm-vmware/src/operations/privateClouds.ts
@@ -0,0 +1,533 @@
+/*
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+import * as msRest from "@azure/ms-rest-js";
+import * as msRestAzure from "@azure/ms-rest-azure-js";
+import * as Models from "../models";
+import * as Mappers from "../models/privateCloudsMappers";
+import * as Parameters from "../models/parameters";
+import { AzureVMwareSolutionAPIContext } from "../azureVMwareSolutionAPIContext";
+
+/** Class representing a PrivateClouds. */
+export class PrivateClouds {
+ private readonly client: AzureVMwareSolutionAPIContext;
+
+ /**
+ * Create a PrivateClouds.
+ * @param {AzureVMwareSolutionAPIContext} client Reference to the service client.
+ */
+ constructor(client: AzureVMwareSolutionAPIContext) {
+ this.client = client;
+ }
+
+ /**
+ * @summary List private clouds in a resource group
+ * @param resourceGroupName Name of the resource group within the Azure subscription
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ list(resourceGroupName: string, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @param resourceGroupName Name of the resource group within the Azure subscription
+ * @param callback The callback
+ */
+ list(resourceGroupName: string, callback: msRest.ServiceCallback): void;
+ /**
+ * @param resourceGroupName Name of the resource group within the Azure subscription
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ list(resourceGroupName: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ list(resourceGroupName: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ resourceGroupName,
+ options
+ },
+ listOperationSpec,
+ callback) as Promise;
+ }
+
+ /**
+ * @summary List private clouds in a subscription
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ listInSubscription(options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @param callback The callback
+ */
+ listInSubscription(callback: msRest.ServiceCallback): void;
+ /**
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ listInSubscription(options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ listInSubscription(options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ options
+ },
+ listInSubscriptionOperationSpec,
+ callback) as Promise;
+ }
+
+ /**
+ * @summary Get a private cloud
+ * @param resourceGroupName Name of the resource group within the Azure subscription
+ * @param privateCloudName Name of the private cloud
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ get(resourceGroupName: string, privateCloudName: string, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @param resourceGroupName Name of the resource group within the Azure subscription
+ * @param privateCloudName Name of the private cloud
+ * @param callback The callback
+ */
+ get(resourceGroupName: string, privateCloudName: string, callback: msRest.ServiceCallback): void;
+ /**
+ * @param resourceGroupName Name of the resource group within the Azure subscription
+ * @param privateCloudName Name of the private cloud
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ get(resourceGroupName: string, privateCloudName: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ get(resourceGroupName: string, privateCloudName: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ resourceGroupName,
+ privateCloudName,
+ options
+ },
+ getOperationSpec,
+ callback) as Promise;
+ }
+
+ /**
+ * @summary Create or update a private cloud
+ * @param resourceGroupName Name of the resource group within the Azure subscription
+ * @param privateCloudName Name of the private cloud
+ * @param privateCloud The private cloud
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ createOrUpdate(resourceGroupName: string, privateCloudName: string, privateCloud: Models.PrivateCloud, options?: msRest.RequestOptionsBase): Promise {
+ return this.beginCreateOrUpdate(resourceGroupName,privateCloudName,privateCloud,options)
+ .then(lroPoller => lroPoller.pollUntilFinished()) as Promise;
+ }
+
+ /**
+ * @summary Update a private cloud
+ * @param resourceGroupName Name of the resource group within the Azure subscription
+ * @param privateCloudName Name of the private cloud
+ * @param privateCloud The private cloud
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ update(resourceGroupName: string, privateCloudName: string, privateCloud: Models.PrivateCloud, options?: msRest.RequestOptionsBase): Promise {
+ return this.beginUpdate(resourceGroupName,privateCloudName,privateCloud,options)
+ .then(lroPoller => lroPoller.pollUntilFinished()) as Promise;
+ }
+
+ /**
+ * @summary Delete a private cloud
+ * @param resourceGroupName Name of the resource group within the Azure subscription
+ * @param privateCloudName Name of the private cloud
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ deleteMethod(resourceGroupName: string, privateCloudName: string, options?: msRest.RequestOptionsBase): Promise {
+ return this.beginDeleteMethod(resourceGroupName,privateCloudName,options)
+ .then(lroPoller => lroPoller.pollUntilFinished());
+ }
+
+ /**
+ * @summary List the admin credentials for the private cloud
+ * @param resourceGroupName Name of the resource group within the Azure subscription
+ * @param privateCloudName Name of the private cloud
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ listAdminCredentials(resourceGroupName: string, privateCloudName: string, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @param resourceGroupName Name of the resource group within the Azure subscription
+ * @param privateCloudName Name of the private cloud
+ * @param callback The callback
+ */
+ listAdminCredentials(resourceGroupName: string, privateCloudName: string, callback: msRest.ServiceCallback): void;
+ /**
+ * @param resourceGroupName Name of the resource group within the Azure subscription
+ * @param privateCloudName Name of the private cloud
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ listAdminCredentials(resourceGroupName: string, privateCloudName: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ listAdminCredentials(resourceGroupName: string, privateCloudName: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ resourceGroupName,
+ privateCloudName,
+ options
+ },
+ listAdminCredentialsOperationSpec,
+ callback) as Promise;
+ }
+
+ /**
+ * @summary Create or update a private cloud
+ * @param resourceGroupName Name of the resource group within the Azure subscription
+ * @param privateCloudName Name of the private cloud
+ * @param privateCloud The private cloud
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ beginCreateOrUpdate(resourceGroupName: string, privateCloudName: string, privateCloud: Models.PrivateCloud, options?: msRest.RequestOptionsBase): Promise {
+ return this.client.sendLRORequest(
+ {
+ resourceGroupName,
+ privateCloudName,
+ privateCloud,
+ options
+ },
+ beginCreateOrUpdateOperationSpec,
+ options);
+ }
+
+ /**
+ * @summary Update a private cloud
+ * @param resourceGroupName Name of the resource group within the Azure subscription
+ * @param privateCloudName Name of the private cloud
+ * @param privateCloud The private cloud
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ beginUpdate(resourceGroupName: string, privateCloudName: string, privateCloud: Models.PrivateCloud, options?: msRest.RequestOptionsBase): Promise {
+ return this.client.sendLRORequest(
+ {
+ resourceGroupName,
+ privateCloudName,
+ privateCloud,
+ options
+ },
+ beginUpdateOperationSpec,
+ options);
+ }
+
+ /**
+ * @summary Delete a private cloud
+ * @param resourceGroupName Name of the resource group within the Azure subscription
+ * @param privateCloudName Name of the private cloud
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ beginDeleteMethod(resourceGroupName: string, privateCloudName: string, options?: msRest.RequestOptionsBase): Promise {
+ return this.client.sendLRORequest(
+ {
+ resourceGroupName,
+ privateCloudName,
+ options
+ },
+ beginDeleteMethodOperationSpec,
+ options);
+ }
+
+ /**
+ * @summary List private clouds in a resource group
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ listNext(nextPageLink: string, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @param callback The callback
+ */
+ listNext(nextPageLink: string, callback: msRest.ServiceCallback): void;
+ /**
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ listNext(nextPageLink: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ listNext(nextPageLink: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ nextPageLink,
+ options
+ },
+ listNextOperationSpec,
+ callback) as Promise;
+ }
+
+ /**
+ * @summary List private clouds in a subscription
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ listInSubscriptionNext(nextPageLink: string, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @param callback The callback
+ */
+ listInSubscriptionNext(nextPageLink: string, callback: msRest.ServiceCallback): void;
+ /**
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ listInSubscriptionNext(nextPageLink: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ listInSubscriptionNext(nextPageLink: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ nextPageLink,
+ options
+ },
+ listInSubscriptionNextOperationSpec,
+ callback) as Promise;
+ }
+}
+
+// Operation Specifications
+const serializer = new msRest.Serializer(Mappers);
+const listOperationSpec: msRest.OperationSpec = {
+ httpMethod: "GET",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName
+ ],
+ queryParameters: [
+ Parameters.apiVersion
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.PrivateCloudList
+ },
+ default: {
+ bodyMapper: Mappers.ApiError
+ }
+ },
+ serializer
+};
+
+const listInSubscriptionOperationSpec: msRest.OperationSpec = {
+ httpMethod: "GET",
+ path: "subscriptions/{subscriptionId}/providers/Microsoft.AVS/privateClouds",
+ urlParameters: [
+ Parameters.subscriptionId
+ ],
+ queryParameters: [
+ Parameters.apiVersion
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.PrivateCloudList
+ },
+ default: {
+ bodyMapper: Mappers.ApiError
+ }
+ },
+ serializer
+};
+
+const getOperationSpec: msRest.OperationSpec = {
+ httpMethod: "GET",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds/{privateCloudName}",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.privateCloudName
+ ],
+ queryParameters: [
+ Parameters.apiVersion
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.PrivateCloud
+ },
+ default: {
+ bodyMapper: Mappers.ApiError
+ }
+ },
+ serializer
+};
+
+const listAdminCredentialsOperationSpec: msRest.OperationSpec = {
+ httpMethod: "POST",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds/{privateCloudName}/listAdminCredentials",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.privateCloudName
+ ],
+ queryParameters: [
+ Parameters.apiVersion
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.AdminCredentials
+ },
+ default: {
+ bodyMapper: Mappers.ApiError
+ }
+ },
+ serializer
+};
+
+const beginCreateOrUpdateOperationSpec: msRest.OperationSpec = {
+ httpMethod: "PUT",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds/{privateCloudName}",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.privateCloudName
+ ],
+ queryParameters: [
+ Parameters.apiVersion
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ requestBody: {
+ parameterPath: "privateCloud",
+ mapper: {
+ ...Mappers.PrivateCloud,
+ required: true
+ }
+ },
+ responses: {
+ 200: {
+ bodyMapper: Mappers.PrivateCloud
+ },
+ 201: {
+ bodyMapper: Mappers.PrivateCloud
+ },
+ default: {
+ bodyMapper: Mappers.ApiError
+ }
+ },
+ serializer
+};
+
+const beginUpdateOperationSpec: msRest.OperationSpec = {
+ httpMethod: "PATCH",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds/{privateCloudName}",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.privateCloudName
+ ],
+ queryParameters: [
+ Parameters.apiVersion
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ requestBody: {
+ parameterPath: "privateCloud",
+ mapper: {
+ ...Mappers.PrivateCloud,
+ required: true
+ }
+ },
+ responses: {
+ 200: {
+ bodyMapper: Mappers.PrivateCloud
+ },
+ 201: {
+ bodyMapper: Mappers.PrivateCloud
+ },
+ default: {
+ bodyMapper: Mappers.ApiError
+ }
+ },
+ serializer
+};
+
+const beginDeleteMethodOperationSpec: msRest.OperationSpec = {
+ httpMethod: "DELETE",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds/{privateCloudName}",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.privateCloudName
+ ],
+ queryParameters: [
+ Parameters.apiVersion
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {},
+ 202: {},
+ 204: {},
+ default: {
+ bodyMapper: Mappers.ApiError
+ }
+ },
+ serializer
+};
+
+const listNextOperationSpec: msRest.OperationSpec = {
+ httpMethod: "GET",
+ baseUrl: "https://management.azure.com",
+ path: "{nextLink}",
+ urlParameters: [
+ Parameters.nextPageLink
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.PrivateCloudList
+ },
+ default: {
+ bodyMapper: Mappers.ApiError
+ }
+ },
+ serializer
+};
+
+const listInSubscriptionNextOperationSpec: msRest.OperationSpec = {
+ httpMethod: "GET",
+ baseUrl: "https://management.azure.com",
+ path: "{nextLink}",
+ urlParameters: [
+ Parameters.nextPageLink
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.PrivateCloudList
+ },
+ default: {
+ bodyMapper: Mappers.ApiError
+ }
+ },
+ serializer
+};
diff --git a/sdk/vmware/arm-vmware/tsconfig.json b/sdk/vmware/arm-vmware/tsconfig.json
new file mode 100644
index 000000000000..422b584abd5e
--- /dev/null
+++ b/sdk/vmware/arm-vmware/tsconfig.json
@@ -0,0 +1,19 @@
+{
+ "compilerOptions": {
+ "module": "es6",
+ "moduleResolution": "node",
+ "strict": true,
+ "target": "es5",
+ "sourceMap": true,
+ "declarationMap": true,
+ "esModuleInterop": true,
+ "allowSyntheticDefaultImports": true,
+ "forceConsistentCasingInFileNames": true,
+ "lib": ["es6", "dom"],
+ "declaration": true,
+ "outDir": "./esm",
+ "importHelpers": true
+ },
+ "include": ["./src/**/*.ts"],
+ "exclude": ["node_modules"]
+}