diff --git a/sdk/subscription/arm-subscriptions-profile-2020-09-01-hybrid/LICENSE.txt b/sdk/subscription/arm-subscriptions-profile-2020-09-01-hybrid/LICENSE.txt
new file mode 100644
index 000000000000..ea8fb1516028
--- /dev/null
+++ b/sdk/subscription/arm-subscriptions-profile-2020-09-01-hybrid/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/subscription/arm-subscriptions-profile-2020-09-01-hybrid/README.md b/sdk/subscription/arm-subscriptions-profile-2020-09-01-hybrid/README.md
new file mode 100644
index 000000000000..6b4a8ef48d90
--- /dev/null
+++ b/sdk/subscription/arm-subscriptions-profile-2020-09-01-hybrid/README.md
@@ -0,0 +1,99 @@
+## Azure SubscriptionClient SDK for JavaScript
+
+This package contains an isomorphic SDK for SubscriptionClient.
+
+### Currently supported environments
+
+- Node.js version 6.x.x or higher
+- Browser JavaScript
+
+### How to Install
+
+```bash
+npm install @azure/arm-subscriptions-profile-2020-09-01-hybrid
+```
+
+### 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 { SubscriptionClient, SubscriptionModels, SubscriptionMappers } from "@azure/arm-subscriptions-profile-2020-09-01-hybrid";
+const subscriptionId = process.env["AZURE_SUBSCRIPTION_ID"];
+
+msRestNodeAuth.interactiveLogin().then((creds) => {
+ const client = new SubscriptionClient(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-subscriptions-profile-2020-09-01-hybrid 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/subscription/arm-subscriptions-profile-2020-09-01-hybrid/README.png)
diff --git a/sdk/subscription/arm-subscriptions-profile-2020-09-01-hybrid/package.json b/sdk/subscription/arm-subscriptions-profile-2020-09-01-hybrid/package.json
new file mode 100644
index 000000000000..a299d61947e5
--- /dev/null
+++ b/sdk/subscription/arm-subscriptions-profile-2020-09-01-hybrid/package.json
@@ -0,0 +1,58 @@
+{
+ "name": "@azure/arm-subscriptions-profile-2020-09-01-hybrid",
+ "author": "Microsoft Corporation",
+ "description": "SubscriptionClient Library with typescript type definitions for node.js and browser.",
+ "version": "1.0.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-subscriptions-profile-2020-09-01-hybrid.js",
+ "module": "./esm/subscriptionClient.js",
+ "types": "./esm/subscriptionClient.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/subscription/arm-subscriptions-profile-2020-09-01-hybrid",
+ "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-subscriptions-profile-2020-09-01-hybrid.js.map'\" -o ./dist/arm-subscriptions-profile-2020-09-01-hybrid.min.js ./dist/arm-subscriptions-profile-2020-09-01-hybrid.js",
+ "prepack": "npm install && npm run build"
+ },
+ "sideEffects": false,
+ "autoPublish": true
+}
diff --git a/sdk/subscription/arm-subscriptions-profile-2020-09-01-hybrid/rollup.config.js b/sdk/subscription/arm-subscriptions-profile-2020-09-01-hybrid/rollup.config.js
new file mode 100644
index 000000000000..a93a159b2d1c
--- /dev/null
+++ b/sdk/subscription/arm-subscriptions-profile-2020-09-01-hybrid/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/subscriptionClient.js",
+ external: [
+ "@azure/ms-rest-js",
+ "@azure/ms-rest-azure-js"
+ ],
+ output: {
+ file: "./dist/arm-subscriptions-profile-2020-09-01-hybrid.js",
+ format: "umd",
+ name: "Azure.ArmSubscriptionsProfile20200901Hybrid",
+ 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/subscription/arm-subscriptions-profile-2020-09-01-hybrid/src/models/index.ts b/sdk/subscription/arm-subscriptions-profile-2020-09-01-hybrid/src/models/index.ts
new file mode 100644
index 000000000000..20eba4871d4f
--- /dev/null
+++ b/sdk/subscription/arm-subscriptions-profile-2020-09-01-hybrid/src/models/index.ts
@@ -0,0 +1,485 @@
+/*
+ * 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 };
+
+/**
+ * Location information.
+ */
+export interface Location {
+ /**
+ * The fully qualified ID of the location. For example,
+ * /subscriptions/00000000-0000-0000-0000-000000000000/locations/westus.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly id?: string;
+ /**
+ * The subscription ID.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly subscriptionId?: string;
+ /**
+ * The location name.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly name?: string;
+ /**
+ * The display name of the location.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly displayName?: string;
+ /**
+ * The latitude of the location.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly latitude?: string;
+ /**
+ * The longitude of the location.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly longitude?: string;
+}
+
+/**
+ * Subscription policies.
+ */
+export interface SubscriptionPolicies {
+ /**
+ * The subscription location placement ID. The ID indicates which regions are visible for a
+ * subscription. For example, a subscription with a location placement Id of Public_2014-09-01
+ * has access to Azure public regions.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly locationPlacementId?: string;
+ /**
+ * The subscription quota ID.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly quotaId?: string;
+ /**
+ * The subscription spending limit. Possible values include: 'On', 'Off', 'CurrentPeriodOff'
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly spendingLimit?: SpendingLimit;
+}
+
+/**
+ * Subscription information.
+ */
+export interface Subscription {
+ /**
+ * The fully qualified ID for the subscription. For example,
+ * /subscriptions/00000000-0000-0000-0000-000000000000.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly id?: string;
+ /**
+ * The subscription ID.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly subscriptionId?: string;
+ /**
+ * The subscription display name.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly displayName?: string;
+ /**
+ * The subscription state. Possible values are Enabled, Warned, PastDue, Disabled, and Deleted.
+ * Possible values include: 'Enabled', 'Warned', 'PastDue', 'Disabled', 'Deleted'
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly state?: SubscriptionState;
+ /**
+ * The subscription policies.
+ */
+ subscriptionPolicies?: SubscriptionPolicies;
+ /**
+ * The authorization source of the request. Valid values are one or more combinations of Legacy,
+ * RoleBased, Bypassed, Direct and Management. For example, 'Legacy, RoleBased'.
+ */
+ authorizationSource?: string;
+}
+
+/**
+ * Tenant Id information.
+ */
+export interface TenantIdDescription {
+ /**
+ * The fully qualified ID of the tenant. For example,
+ * /tenants/00000000-0000-0000-0000-000000000000.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly id?: string;
+ /**
+ * The tenant ID. For example, 00000000-0000-0000-0000-000000000000.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly tenantId?: string;
+}
+
+/**
+ * Name and Type of the Resource
+ */
+export interface ResourceName {
+ /**
+ * Name of the resource
+ */
+ name: string;
+ /**
+ * The type of the resource
+ */
+ type: string;
+}
+
+/**
+ * Resource Name valid if not a reserved word, does not contain a reserved word and does not start
+ * with a reserved word
+ */
+export interface CheckResourceNameResult {
+ /**
+ * Name of Resource
+ */
+ name?: string;
+ /**
+ * Type of Resource
+ */
+ type?: string;
+ /**
+ * Is the resource name Allowed or Reserved. Possible values include: 'Allowed', 'Reserved'
+ */
+ status?: ResourceNameStatus;
+}
+
+/**
+ * Error description and code explaining why resource name is invalid.
+ */
+export interface ErrorDefinition {
+ /**
+ * Description of the error.
+ */
+ message?: string;
+ /**
+ * Code of the error.
+ */
+ code?: string;
+}
+
+/**
+ * Error response.
+ */
+export interface ErrorResponse {
+ /**
+ * The error details.
+ */
+ error?: ErrorDefinition;
+}
+
+/**
+ * The object that represents the operation.
+ */
+export interface OperationDisplay {
+ /**
+ * Service provider: Microsoft.Resources
+ */
+ provider?: string;
+ /**
+ * Resource on which the operation is performed: Profile, endpoint, etc.
+ */
+ resource?: string;
+ /**
+ * Operation type: Read, write, delete, etc.
+ */
+ operation?: string;
+ /**
+ * Description of the operation.
+ */
+ description?: string;
+}
+
+/**
+ * Microsoft.Resources operation
+ */
+export interface Operation {
+ /**
+ * Operation name: {provider}/{resource}/{operation}
+ */
+ name?: string;
+ /**
+ * The object that represents the operation.
+ */
+ display?: OperationDisplay;
+}
+
+/**
+ * Optional Parameters.
+ */
+export interface SubscriptionClientCheckResourceNameOptionalParams extends msRest.RequestOptionsBase {
+ /**
+ * Resource object with values for resource name and resource type
+ */
+ resourceNameDefinition?: ResourceName;
+}
+
+/**
+ * An interface representing SubscriptionClientOptions.
+ */
+export interface SubscriptionClientOptions extends AzureServiceClientOptions {
+ baseUri?: string;
+}
+
+/**
+ * @interface
+ * Result of the request to list Microsoft.Resources operations. It contains a list of operations
+ * and a URL link to get the next set of results.
+ * @extends Array
+ */
+export interface OperationListResult extends Array {
+ /**
+ * URL to get the next set of operation list results if there are any.
+ */
+ nextLink?: string;
+}
+
+/**
+ * @interface
+ * Location list operation response.
+ * @extends Array
+ */
+export interface LocationListResult extends Array {
+}
+
+/**
+ * @interface
+ * Subscription list operation response.
+ * @extends Array
+ */
+export interface SubscriptionListResult extends Array {
+ /**
+ * The URL to get the next set of results.
+ */
+ nextLink: string;
+}
+
+/**
+ * @interface
+ * Tenant Ids information.
+ * @extends Array
+ */
+export interface TenantListResult extends Array {
+ /**
+ * The URL to use for getting the next set of results.
+ */
+ nextLink: string;
+}
+
+/**
+ * Defines values for SubscriptionState.
+ * Possible values include: 'Enabled', 'Warned', 'PastDue', 'Disabled', 'Deleted'
+ * @readonly
+ * @enum {string}
+ */
+export type SubscriptionState = 'Enabled' | 'Warned' | 'PastDue' | 'Disabled' | 'Deleted';
+
+/**
+ * Defines values for SpendingLimit.
+ * Possible values include: 'On', 'Off', 'CurrentPeriodOff'
+ * @readonly
+ * @enum {string}
+ */
+export type SpendingLimit = 'On' | 'Off' | 'CurrentPeriodOff';
+
+/**
+ * Defines values for ResourceNameStatus.
+ * Possible values include: 'Allowed', 'Reserved'
+ * @readonly
+ * @enum {string}
+ */
+export type ResourceNameStatus = 'Allowed' | 'Reserved';
+
+/**
+ * Contains response data for the list operation.
+ */
+export type OperationsListResponse = OperationListResult & {
+ /**
+ * 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: OperationListResult;
+ };
+};
+
+/**
+ * Contains response data for the listNext operation.
+ */
+export type OperationsListNextResponse = OperationListResult & {
+ /**
+ * 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: OperationListResult;
+ };
+};
+
+/**
+ * Contains response data for the listLocations operation.
+ */
+export type SubscriptionsListLocationsResponse = LocationListResult & {
+ /**
+ * 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: LocationListResult;
+ };
+};
+
+/**
+ * Contains response data for the get operation.
+ */
+export type SubscriptionsGetResponse = Subscription & {
+ /**
+ * 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: Subscription;
+ };
+};
+
+/**
+ * Contains response data for the list operation.
+ */
+export type SubscriptionsListResponse = SubscriptionListResult & {
+ /**
+ * 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: SubscriptionListResult;
+ };
+};
+
+/**
+ * Contains response data for the listNext operation.
+ */
+export type SubscriptionsListNextResponse = SubscriptionListResult & {
+ /**
+ * 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: SubscriptionListResult;
+ };
+};
+
+/**
+ * Contains response data for the list operation.
+ */
+export type TenantsListResponse = TenantListResult & {
+ /**
+ * 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: TenantListResult;
+ };
+};
+
+/**
+ * Contains response data for the listNext operation.
+ */
+export type TenantsListNextResponse = TenantListResult & {
+ /**
+ * 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: TenantListResult;
+ };
+};
+
+/**
+ * Contains response data for the checkResourceName operation.
+ */
+export type CheckResourceNameResponse = CheckResourceNameResult & {
+ /**
+ * 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: CheckResourceNameResult;
+ };
+};
diff --git a/sdk/subscription/arm-subscriptions-profile-2020-09-01-hybrid/src/models/mappers.ts b/sdk/subscription/arm-subscriptions-profile-2020-09-01-hybrid/src/models/mappers.ts
new file mode 100644
index 000000000000..bedd5dffd9a6
--- /dev/null
+++ b/sdk/subscription/arm-subscriptions-profile-2020-09-01-hybrid/src/models/mappers.ts
@@ -0,0 +1,439 @@
+/*
+ * 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 Location: msRest.CompositeMapper = {
+ serializedName: "Location",
+ type: {
+ name: "Composite",
+ className: "Location",
+ modelProperties: {
+ id: {
+ readOnly: true,
+ serializedName: "id",
+ type: {
+ name: "String"
+ }
+ },
+ subscriptionId: {
+ readOnly: true,
+ serializedName: "subscriptionId",
+ type: {
+ name: "String"
+ }
+ },
+ name: {
+ readOnly: true,
+ serializedName: "name",
+ type: {
+ name: "String"
+ }
+ },
+ displayName: {
+ readOnly: true,
+ serializedName: "displayName",
+ type: {
+ name: "String"
+ }
+ },
+ latitude: {
+ readOnly: true,
+ serializedName: "latitude",
+ type: {
+ name: "String"
+ }
+ },
+ longitude: {
+ readOnly: true,
+ serializedName: "longitude",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const SubscriptionPolicies: msRest.CompositeMapper = {
+ serializedName: "SubscriptionPolicies",
+ type: {
+ name: "Composite",
+ className: "SubscriptionPolicies",
+ modelProperties: {
+ locationPlacementId: {
+ readOnly: true,
+ serializedName: "locationPlacementId",
+ type: {
+ name: "String"
+ }
+ },
+ quotaId: {
+ readOnly: true,
+ serializedName: "quotaId",
+ type: {
+ name: "String"
+ }
+ },
+ spendingLimit: {
+ readOnly: true,
+ serializedName: "spendingLimit",
+ type: {
+ name: "Enum",
+ allowedValues: [
+ "On",
+ "Off",
+ "CurrentPeriodOff"
+ ]
+ }
+ }
+ }
+ }
+};
+
+export const Subscription: msRest.CompositeMapper = {
+ serializedName: "Subscription",
+ type: {
+ name: "Composite",
+ className: "Subscription",
+ modelProperties: {
+ id: {
+ readOnly: true,
+ serializedName: "id",
+ type: {
+ name: "String"
+ }
+ },
+ subscriptionId: {
+ readOnly: true,
+ serializedName: "subscriptionId",
+ type: {
+ name: "String"
+ }
+ },
+ displayName: {
+ readOnly: true,
+ serializedName: "displayName",
+ type: {
+ name: "String"
+ }
+ },
+ state: {
+ readOnly: true,
+ serializedName: "state",
+ type: {
+ name: "Enum",
+ allowedValues: [
+ "Enabled",
+ "Warned",
+ "PastDue",
+ "Disabled",
+ "Deleted"
+ ]
+ }
+ },
+ subscriptionPolicies: {
+ serializedName: "subscriptionPolicies",
+ type: {
+ name: "Composite",
+ className: "SubscriptionPolicies"
+ }
+ },
+ authorizationSource: {
+ serializedName: "authorizationSource",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const TenantIdDescription: msRest.CompositeMapper = {
+ serializedName: "TenantIdDescription",
+ type: {
+ name: "Composite",
+ className: "TenantIdDescription",
+ modelProperties: {
+ id: {
+ readOnly: true,
+ serializedName: "id",
+ type: {
+ name: "String"
+ }
+ },
+ tenantId: {
+ readOnly: true,
+ serializedName: "tenantId",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const ResourceName: msRest.CompositeMapper = {
+ serializedName: "ResourceName",
+ type: {
+ name: "Composite",
+ className: "ResourceName",
+ modelProperties: {
+ name: {
+ required: true,
+ serializedName: "name",
+ type: {
+ name: "String"
+ }
+ },
+ type: {
+ required: true,
+ serializedName: "type",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const CheckResourceNameResult: msRest.CompositeMapper = {
+ serializedName: "CheckResourceNameResult",
+ type: {
+ name: "Composite",
+ className: "CheckResourceNameResult",
+ modelProperties: {
+ name: {
+ serializedName: "name",
+ type: {
+ name: "String"
+ }
+ },
+ type: {
+ serializedName: "type",
+ type: {
+ name: "String"
+ }
+ },
+ status: {
+ serializedName: "status",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const ErrorDefinition: msRest.CompositeMapper = {
+ serializedName: "ErrorDefinition",
+ type: {
+ name: "Composite",
+ className: "ErrorDefinition",
+ modelProperties: {
+ message: {
+ serializedName: "message",
+ type: {
+ name: "String"
+ }
+ },
+ code: {
+ serializedName: "code",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const ErrorResponse: msRest.CompositeMapper = {
+ serializedName: "ErrorResponse",
+ type: {
+ name: "Composite",
+ className: "ErrorResponse",
+ modelProperties: {
+ error: {
+ serializedName: "error",
+ type: {
+ name: "Composite",
+ className: "ErrorDefinition"
+ }
+ }
+ }
+ }
+};
+
+export const OperationDisplay: msRest.CompositeMapper = {
+ serializedName: "Operation_display",
+ type: {
+ name: "Composite",
+ className: "OperationDisplay",
+ modelProperties: {
+ provider: {
+ serializedName: "provider",
+ type: {
+ name: "String"
+ }
+ },
+ resource: {
+ serializedName: "resource",
+ type: {
+ name: "String"
+ }
+ },
+ operation: {
+ serializedName: "operation",
+ type: {
+ name: "String"
+ }
+ },
+ description: {
+ serializedName: "description",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const Operation: msRest.CompositeMapper = {
+ serializedName: "Operation",
+ type: {
+ name: "Composite",
+ className: "Operation",
+ modelProperties: {
+ name: {
+ serializedName: "name",
+ type: {
+ name: "String"
+ }
+ },
+ display: {
+ serializedName: "display",
+ type: {
+ name: "Composite",
+ className: "OperationDisplay"
+ }
+ }
+ }
+ }
+};
+
+export const OperationListResult: msRest.CompositeMapper = {
+ serializedName: "OperationListResult",
+ type: {
+ name: "Composite",
+ className: "OperationListResult",
+ modelProperties: {
+ value: {
+ serializedName: "",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "Operation"
+ }
+ }
+ }
+ },
+ nextLink: {
+ serializedName: "nextLink",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const LocationListResult: msRest.CompositeMapper = {
+ serializedName: "LocationListResult",
+ type: {
+ name: "Composite",
+ className: "LocationListResult",
+ modelProperties: {
+ value: {
+ serializedName: "",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "Location"
+ }
+ }
+ }
+ }
+ }
+ }
+};
+
+export const SubscriptionListResult: msRest.CompositeMapper = {
+ serializedName: "SubscriptionListResult",
+ type: {
+ name: "Composite",
+ className: "SubscriptionListResult",
+ modelProperties: {
+ value: {
+ serializedName: "",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "Subscription"
+ }
+ }
+ }
+ },
+ nextLink: {
+ required: true,
+ serializedName: "nextLink",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const TenantListResult: msRest.CompositeMapper = {
+ serializedName: "TenantListResult",
+ type: {
+ name: "Composite",
+ className: "TenantListResult",
+ modelProperties: {
+ value: {
+ serializedName: "",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "TenantIdDescription"
+ }
+ }
+ }
+ },
+ nextLink: {
+ required: true,
+ serializedName: "nextLink",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
diff --git a/sdk/subscription/arm-subscriptions-profile-2020-09-01-hybrid/src/models/operationsMappers.ts b/sdk/subscription/arm-subscriptions-profile-2020-09-01-hybrid/src/models/operationsMappers.ts
new file mode 100644
index 000000000000..689688180be7
--- /dev/null
+++ b/sdk/subscription/arm-subscriptions-profile-2020-09-01-hybrid/src/models/operationsMappers.ts
@@ -0,0 +1,14 @@
+/*
+ * 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 {
+ CloudError,
+ Operation,
+ OperationDisplay,
+ OperationListResult
+} from "../models/mappers";
diff --git a/sdk/subscription/arm-subscriptions-profile-2020-09-01-hybrid/src/models/parameters.ts b/sdk/subscription/arm-subscriptions-profile-2020-09-01-hybrid/src/models/parameters.ts
new file mode 100644
index 000000000000..9b62c11dd6da
--- /dev/null
+++ b/sdk/subscription/arm-subscriptions-profile-2020-09-01-hybrid/src/models/parameters.ts
@@ -0,0 +1,53 @@
+/*
+ * 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 nextPageLink: msRest.OperationURLParameter = {
+ parameterPath: "nextPageLink",
+ mapper: {
+ required: true,
+ serializedName: "nextLink",
+ type: {
+ name: "String"
+ }
+ },
+ skipEncoding: true
+};
+export const subscriptionId: msRest.OperationURLParameter = {
+ parameterPath: "subscriptionId",
+ mapper: {
+ required: true,
+ serializedName: "subscriptionId",
+ type: {
+ name: "String"
+ }
+ }
+};
diff --git a/sdk/subscription/arm-subscriptions-profile-2020-09-01-hybrid/src/models/subscriptionsMappers.ts b/sdk/subscription/arm-subscriptions-profile-2020-09-01-hybrid/src/models/subscriptionsMappers.ts
new file mode 100644
index 000000000000..496058988f35
--- /dev/null
+++ b/sdk/subscription/arm-subscriptions-profile-2020-09-01-hybrid/src/models/subscriptionsMappers.ts
@@ -0,0 +1,16 @@
+/*
+ * 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 {
+ CloudError,
+ Location,
+ LocationListResult,
+ Subscription,
+ SubscriptionListResult,
+ SubscriptionPolicies
+} from "../models/mappers";
diff --git a/sdk/subscription/arm-subscriptions-profile-2020-09-01-hybrid/src/models/tenantsMappers.ts b/sdk/subscription/arm-subscriptions-profile-2020-09-01-hybrid/src/models/tenantsMappers.ts
new file mode 100644
index 000000000000..3bb2cb4ae153
--- /dev/null
+++ b/sdk/subscription/arm-subscriptions-profile-2020-09-01-hybrid/src/models/tenantsMappers.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 {
+ CloudError,
+ TenantIdDescription,
+ TenantListResult
+} from "../models/mappers";
diff --git a/sdk/subscription/arm-subscriptions-profile-2020-09-01-hybrid/src/operations/index.ts b/sdk/subscription/arm-subscriptions-profile-2020-09-01-hybrid/src/operations/index.ts
new file mode 100644
index 000000000000..3e6732554b87
--- /dev/null
+++ b/sdk/subscription/arm-subscriptions-profile-2020-09-01-hybrid/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 "./subscriptions";
+export * from "./tenants";
diff --git a/sdk/subscription/arm-subscriptions-profile-2020-09-01-hybrid/src/operations/operations.ts b/sdk/subscription/arm-subscriptions-profile-2020-09-01-hybrid/src/operations/operations.ts
new file mode 100644
index 000000000000..e114c7453606
--- /dev/null
+++ b/sdk/subscription/arm-subscriptions-profile-2020-09-01-hybrid/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 { SubscriptionClientContext } from "../subscriptionClientContext";
+
+/** Class representing a Operations. */
+export class Operations {
+ private readonly client: SubscriptionClientContext;
+
+ /**
+ * Create a Operations.
+ * @param {SubscriptionClientContext} client Reference to the service client.
+ */
+ constructor(client: SubscriptionClientContext) {
+ this.client = client;
+ }
+
+ /**
+ * Lists all of the available Microsoft.Resources REST API 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 Microsoft.Resources REST API 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.Resources/operations",
+ queryParameters: [
+ Parameters.apiVersion
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.OperationListResult
+ },
+ default: {
+ bodyMapper: Mappers.CloudError
+ }
+ },
+ serializer
+};
+
+const listNextOperationSpec: msRest.OperationSpec = {
+ httpMethod: "GET",
+ baseUrl: "https://management.azure.com",
+ path: "{nextLink}",
+ urlParameters: [
+ Parameters.nextPageLink
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.OperationListResult
+ },
+ default: {
+ bodyMapper: Mappers.CloudError
+ }
+ },
+ serializer
+};
diff --git a/sdk/subscription/arm-subscriptions-profile-2020-09-01-hybrid/src/operations/subscriptions.ts b/sdk/subscription/arm-subscriptions-profile-2020-09-01-hybrid/src/operations/subscriptions.ts
new file mode 100644
index 000000000000..9046e3108365
--- /dev/null
+++ b/sdk/subscription/arm-subscriptions-profile-2020-09-01-hybrid/src/operations/subscriptions.ts
@@ -0,0 +1,227 @@
+/*
+ * 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/subscriptionsMappers";
+import * as Parameters from "../models/parameters";
+import { SubscriptionClientContext } from "../subscriptionClientContext";
+
+/** Class representing a Subscriptions. */
+export class Subscriptions {
+ private readonly client: SubscriptionClientContext;
+
+ /**
+ * Create a Subscriptions.
+ * @param {SubscriptionClientContext} client Reference to the service client.
+ */
+ constructor(client: SubscriptionClientContext) {
+ this.client = client;
+ }
+
+ /**
+ * This operation provides all the locations that are available for resource providers; however,
+ * each resource provider may support a subset of this list.
+ * @summary Gets all available geo-locations.
+ * @param subscriptionId The ID of the target subscription.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ listLocations(subscriptionId: string, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @param subscriptionId The ID of the target subscription.
+ * @param callback The callback
+ */
+ listLocations(subscriptionId: string, callback: msRest.ServiceCallback): void;
+ /**
+ * @param subscriptionId The ID of the target subscription.
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ listLocations(subscriptionId: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ listLocations(subscriptionId: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ subscriptionId,
+ options
+ },
+ listLocationsOperationSpec,
+ callback) as Promise;
+ }
+
+ /**
+ * Gets details about a specified subscription.
+ * @param subscriptionId The ID of the target subscription.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ get(subscriptionId: string, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @param subscriptionId The ID of the target subscription.
+ * @param callback The callback
+ */
+ get(subscriptionId: string, callback: msRest.ServiceCallback): void;
+ /**
+ * @param subscriptionId The ID of the target subscription.
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ get(subscriptionId: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ get(subscriptionId: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ subscriptionId,
+ options
+ },
+ getOperationSpec,
+ callback) as Promise;
+ }
+
+ /**
+ * Gets all subscriptions for a tenant.
+ * @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;
+ }
+
+ /**
+ * Gets all subscriptions for a tenant.
+ * @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 listLocationsOperationSpec: msRest.OperationSpec = {
+ httpMethod: "GET",
+ path: "subscriptions/{subscriptionId}/locations",
+ urlParameters: [
+ Parameters.subscriptionId
+ ],
+ queryParameters: [
+ Parameters.apiVersion
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.LocationListResult
+ },
+ default: {
+ bodyMapper: Mappers.CloudError
+ }
+ },
+ serializer
+};
+
+const getOperationSpec: msRest.OperationSpec = {
+ httpMethod: "GET",
+ path: "subscriptions/{subscriptionId}",
+ urlParameters: [
+ Parameters.subscriptionId
+ ],
+ queryParameters: [
+ Parameters.apiVersion
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.Subscription
+ },
+ default: {
+ bodyMapper: Mappers.CloudError
+ }
+ },
+ serializer
+};
+
+const listOperationSpec: msRest.OperationSpec = {
+ httpMethod: "GET",
+ path: "subscriptions",
+ queryParameters: [
+ Parameters.apiVersion
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.SubscriptionListResult
+ },
+ default: {
+ bodyMapper: Mappers.CloudError
+ }
+ },
+ serializer
+};
+
+const listNextOperationSpec: msRest.OperationSpec = {
+ httpMethod: "GET",
+ baseUrl: "https://management.azure.com",
+ path: "{nextLink}",
+ urlParameters: [
+ Parameters.nextPageLink
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.SubscriptionListResult
+ },
+ default: {
+ bodyMapper: Mappers.CloudError
+ }
+ },
+ serializer
+};
diff --git a/sdk/subscription/arm-subscriptions-profile-2020-09-01-hybrid/src/operations/tenants.ts b/sdk/subscription/arm-subscriptions-profile-2020-09-01-hybrid/src/operations/tenants.ts
new file mode 100644
index 000000000000..5355aa0faa75
--- /dev/null
+++ b/sdk/subscription/arm-subscriptions-profile-2020-09-01-hybrid/src/operations/tenants.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/tenantsMappers";
+import * as Parameters from "../models/parameters";
+import { SubscriptionClientContext } from "../subscriptionClientContext";
+
+/** Class representing a Tenants. */
+export class Tenants {
+ private readonly client: SubscriptionClientContext;
+
+ /**
+ * Create a Tenants.
+ * @param {SubscriptionClientContext} client Reference to the service client.
+ */
+ constructor(client: SubscriptionClientContext) {
+ this.client = client;
+ }
+
+ /**
+ * Gets the tenants for your account.
+ * @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;
+ }
+
+ /**
+ * Gets the tenants for your account.
+ * @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: "tenants",
+ queryParameters: [
+ Parameters.apiVersion
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.TenantListResult
+ },
+ default: {
+ bodyMapper: Mappers.CloudError
+ }
+ },
+ serializer
+};
+
+const listNextOperationSpec: msRest.OperationSpec = {
+ httpMethod: "GET",
+ baseUrl: "https://management.azure.com",
+ path: "{nextLink}",
+ urlParameters: [
+ Parameters.nextPageLink
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.TenantListResult
+ },
+ default: {
+ bodyMapper: Mappers.CloudError
+ }
+ },
+ serializer
+};
diff --git a/sdk/subscription/arm-subscriptions-profile-2020-09-01-hybrid/src/subscriptionClient.ts b/sdk/subscription/arm-subscriptions-profile-2020-09-01-hybrid/src/subscriptionClient.ts
new file mode 100644
index 000000000000..431b90d98a38
--- /dev/null
+++ b/sdk/subscription/arm-subscriptions-profile-2020-09-01-hybrid/src/subscriptionClient.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 { SubscriptionClientContext } from "./subscriptionClientContext";
+
+
+class SubscriptionClient extends SubscriptionClientContext {
+ // Operation groups
+ operations: operations.Operations;
+ subscriptions: operations.Subscriptions;
+ tenants: operations.Tenants;
+
+ /**
+ * Initializes a new instance of the SubscriptionClient class.
+ * @param credentials Credentials needed for the client to connect to Azure.
+ * @param [options] The parameter options
+ */
+ constructor(credentials: msRest.ServiceClientCredentials, options?: Models.SubscriptionClientOptions) {
+ super(credentials, options);
+ this.operations = new operations.Operations(this);
+ this.subscriptions = new operations.Subscriptions(this);
+ this.tenants = new operations.Tenants(this);
+ }
+
+ /**
+ * A resource name is valid if it is not a reserved word, does not contains a reserved word and
+ * does not start with a reserved word
+ * @summary Checks resource name validity
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ checkResourceName(options?: Models.SubscriptionClientCheckResourceNameOptionalParams): Promise;
+ /**
+ * @param callback The callback
+ */
+ checkResourceName(callback: msRest.ServiceCallback): void;
+ /**
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ checkResourceName(options: Models.SubscriptionClientCheckResourceNameOptionalParams, callback: msRest.ServiceCallback): void;
+ checkResourceName(options?: Models.SubscriptionClientCheckResourceNameOptionalParams | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.sendOperationRequest(
+ {
+ options
+ },
+ checkResourceNameOperationSpec,
+ callback) as Promise;
+ }
+}
+
+// Operation Specifications
+const serializer = new msRest.Serializer(Mappers);
+const checkResourceNameOperationSpec: msRest.OperationSpec = {
+ httpMethod: "POST",
+ path: "providers/Microsoft.Resources/checkResourceName",
+ queryParameters: [
+ Parameters.apiVersion
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ requestBody: {
+ parameterPath: [
+ "options",
+ "resourceNameDefinition"
+ ],
+ mapper: Mappers.ResourceName
+ },
+ responses: {
+ 200: {
+ bodyMapper: Mappers.CheckResourceNameResult
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+export {
+ SubscriptionClient,
+ SubscriptionClientContext,
+ Models as SubscriptionModels,
+ Mappers as SubscriptionMappers
+};
+export * from "./operations";
diff --git a/sdk/subscription/arm-subscriptions-profile-2020-09-01-hybrid/src/subscriptionClientContext.ts b/sdk/subscription/arm-subscriptions-profile-2020-09-01-hybrid/src/subscriptionClientContext.ts
new file mode 100644
index 000000000000..bcef1cc8ac0b
--- /dev/null
+++ b/sdk/subscription/arm-subscriptions-profile-2020-09-01-hybrid/src/subscriptionClientContext.ts
@@ -0,0 +1,56 @@
+/*
+ * 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-subscriptions-profile-2020-09-01-hybrid";
+const packageVersion = "1.0.0";
+
+export class SubscriptionClientContext extends msRestAzure.AzureServiceClient {
+ credentials: msRest.ServiceClientCredentials;
+ apiVersion?: string;
+
+ /**
+ * Initializes a new instance of the SubscriptionClient class.
+ * @param credentials Credentials needed for the client to connect to Azure.
+ * @param [options] The parameter options
+ */
+ constructor(credentials: msRest.ServiceClientCredentials, options?: Models.SubscriptionClientOptions) {
+ if (credentials == undefined) {
+ throw new Error('\'credentials\' cannot be null.');
+ }
+
+ if (!options) {
+ options = {};
+ }
+ if(!options.userAgent) {
+ const defaultUserAgent = msRestAzure.getDefaultUserAgentValue();
+ options.userAgent = `${packageName}/${packageVersion} ${defaultUserAgent}`;
+ }
+
+ super(credentials, options);
+
+ this.apiVersion = '2016-06-01';
+ 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;
+
+ 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/subscription/arm-subscriptions-profile-2020-09-01-hybrid/tsconfig.json b/sdk/subscription/arm-subscriptions-profile-2020-09-01-hybrid/tsconfig.json
new file mode 100644
index 000000000000..422b584abd5e
--- /dev/null
+++ b/sdk/subscription/arm-subscriptions-profile-2020-09-01-hybrid/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"]
+}