diff --git a/sdk/frontdoor/arm-frontdoor/LICENSE.txt b/sdk/frontdoor/arm-frontdoor/LICENSE.txt
new file mode 100644
index 000000000000..b73b4a1293c3
--- /dev/null
+++ b/sdk/frontdoor/arm-frontdoor/LICENSE.txt
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2019 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/frontdoor/arm-frontdoor/README.md b/sdk/frontdoor/arm-frontdoor/README.md
new file mode 100644
index 000000000000..c5c54936393e
--- /dev/null
+++ b/sdk/frontdoor/arm-frontdoor/README.md
@@ -0,0 +1,96 @@
+## Azure FrontDoorManagementClient SDK for JavaScript
+
+This package contains an isomorphic SDK for FrontDoorManagementClient.
+
+### Currently supported environments
+
+- Node.js version 6.x.x or higher
+- Browser JavaScript
+
+### How to Install
+
+```bash
+npm install @azure/arm-frontdoor
+```
+
+### How to use
+
+#### nodejs - Authentication, client creation and list frontDoors as an example written in TypeScript.
+
+##### Install @azure/ms-rest-nodeauth
+
+```bash
+npm install @azure/ms-rest-nodeauth
+```
+
+##### 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 { FrontDoorManagementClient, FrontDoorManagementModels, FrontDoorManagementMappers } from "@azure/arm-frontdoor";
+const subscriptionId = process.env["AZURE_SUBSCRIPTION_ID"];
+
+msRestNodeAuth.interactiveLogin().then((creds) => {
+ const client = new FrontDoorManagementClient(creds, subscriptionId);
+ client.frontDoors.list().then((result) => {
+ console.log("The result is:");
+ console.log(result);
+ });
+}).catch((err) => {
+ console.error(err);
+});
+```
+
+#### browser - Authentication, client creation and list frontDoors 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-frontdoor sample
+
+
+
+
+
+
+
+
+```
+
+## Related projects
+
+- [Microsoft Azure SDK for Javascript](https://github.com/Azure/azure-sdk-for-js)
diff --git a/sdk/frontdoor/arm-frontdoor/lib/frontDoorManagementClient.ts b/sdk/frontdoor/arm-frontdoor/lib/frontDoorManagementClient.ts
new file mode 100644
index 000000000000..9a5fe29bc516
--- /dev/null
+++ b/sdk/frontdoor/arm-frontdoor/lib/frontDoorManagementClient.ts
@@ -0,0 +1,173 @@
+/*
+ * 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 { FrontDoorManagementClientContext } from "./frontDoorManagementClientContext";
+
+
+class FrontDoorManagementClient extends FrontDoorManagementClientContext {
+ // Operation groups
+ frontDoors: operations.FrontDoors;
+ routingRules: operations.RoutingRules;
+ healthProbeSettings: operations.HealthProbeSettings;
+ loadBalancingSettings: operations.LoadBalancingSettings;
+ backendPools: operations.BackendPools;
+ frontendEndpoints: operations.FrontendEndpoints;
+ endpoints: operations.Endpoints;
+ policies: operations.Policies;
+ managedRuleSets: operations.ManagedRuleSets;
+
+ /**
+ * Initializes a new instance of the FrontDoorManagementClient class.
+ * @param credentials Credentials needed for the client to connect to Azure.
+ * @param subscriptionId The subscription credentials which uniquely identify the Microsoft Azure
+ * subscription. The subscription ID forms part of the URI for every service call.
+ * @param [options] The parameter options
+ */
+ constructor(credentials: msRest.ServiceClientCredentials, subscriptionId: string, options?: Models.FrontDoorManagementClientOptions) {
+ super(credentials, subscriptionId, options);
+ this.frontDoors = new operations.FrontDoors(this);
+ this.routingRules = new operations.RoutingRules(this);
+ this.healthProbeSettings = new operations.HealthProbeSettings(this);
+ this.loadBalancingSettings = new operations.LoadBalancingSettings(this);
+ this.backendPools = new operations.BackendPools(this);
+ this.frontendEndpoints = new operations.FrontendEndpoints(this);
+ this.endpoints = new operations.Endpoints(this);
+ this.policies = new operations.Policies(this);
+ this.managedRuleSets = new operations.ManagedRuleSets(this);
+ }
+
+ /**
+ * Check the availability of a Front Door resource name.
+ * @param checkFrontDoorNameAvailabilityInput Input to check.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ checkFrontDoorNameAvailability(checkFrontDoorNameAvailabilityInput: Models.CheckNameAvailabilityInput, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @param checkFrontDoorNameAvailabilityInput Input to check.
+ * @param callback The callback
+ */
+ checkFrontDoorNameAvailability(checkFrontDoorNameAvailabilityInput: Models.CheckNameAvailabilityInput, callback: msRest.ServiceCallback): void;
+ /**
+ * @param checkFrontDoorNameAvailabilityInput Input to check.
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ checkFrontDoorNameAvailability(checkFrontDoorNameAvailabilityInput: Models.CheckNameAvailabilityInput, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ checkFrontDoorNameAvailability(checkFrontDoorNameAvailabilityInput: Models.CheckNameAvailabilityInput, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.sendOperationRequest(
+ {
+ checkFrontDoorNameAvailabilityInput,
+ options
+ },
+ checkFrontDoorNameAvailabilityOperationSpec,
+ callback) as Promise;
+ }
+
+ /**
+ * Check the availability of a Front Door subdomain.
+ * @param checkFrontDoorNameAvailabilityInput Input to check.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ checkFrontDoorNameAvailabilityWithSubscription(checkFrontDoorNameAvailabilityInput: Models.CheckNameAvailabilityInput, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @param checkFrontDoorNameAvailabilityInput Input to check.
+ * @param callback The callback
+ */
+ checkFrontDoorNameAvailabilityWithSubscription(checkFrontDoorNameAvailabilityInput: Models.CheckNameAvailabilityInput, callback: msRest.ServiceCallback): void;
+ /**
+ * @param checkFrontDoorNameAvailabilityInput Input to check.
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ checkFrontDoorNameAvailabilityWithSubscription(checkFrontDoorNameAvailabilityInput: Models.CheckNameAvailabilityInput, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ checkFrontDoorNameAvailabilityWithSubscription(checkFrontDoorNameAvailabilityInput: Models.CheckNameAvailabilityInput, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.sendOperationRequest(
+ {
+ checkFrontDoorNameAvailabilityInput,
+ options
+ },
+ checkFrontDoorNameAvailabilityWithSubscriptionOperationSpec,
+ callback) as Promise;
+ }
+}
+
+// Operation Specifications
+const serializer = new msRest.Serializer(Mappers);
+const checkFrontDoorNameAvailabilityOperationSpec: msRest.OperationSpec = {
+ httpMethod: "POST",
+ path: "providers/Microsoft.Network/checkFrontDoorNameAvailability",
+ queryParameters: [
+ Parameters.apiVersion0
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ requestBody: {
+ parameterPath: "checkFrontDoorNameAvailabilityInput",
+ mapper: {
+ ...Mappers.CheckNameAvailabilityInput,
+ required: true
+ }
+ },
+ responses: {
+ 200: {
+ bodyMapper: Mappers.CheckNameAvailabilityOutput
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const checkFrontDoorNameAvailabilityWithSubscriptionOperationSpec: msRest.OperationSpec = {
+ httpMethod: "POST",
+ path: "subscriptions/{subscriptionId}/providers/Microsoft.Network/checkFrontDoorNameAvailability",
+ urlParameters: [
+ Parameters.subscriptionId
+ ],
+ queryParameters: [
+ Parameters.apiVersion0
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ requestBody: {
+ parameterPath: "checkFrontDoorNameAvailabilityInput",
+ mapper: {
+ ...Mappers.CheckNameAvailabilityInput,
+ required: true
+ }
+ },
+ responses: {
+ 200: {
+ bodyMapper: Mappers.CheckNameAvailabilityOutput
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+export {
+ FrontDoorManagementClient,
+ FrontDoorManagementClientContext,
+ Models as FrontDoorManagementModels,
+ Mappers as FrontDoorManagementMappers
+};
+export * from "./operations";
diff --git a/sdk/frontdoor/arm-frontdoor/lib/frontDoorManagementClientContext.ts b/sdk/frontdoor/arm-frontdoor/lib/frontDoorManagementClientContext.ts
new file mode 100644
index 000000000000..6b51eaaaf587
--- /dev/null
+++ b/sdk/frontdoor/arm-frontdoor/lib/frontDoorManagementClientContext.ts
@@ -0,0 +1,61 @@
+/*
+ * 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-frontdoor";
+const packageVersion = "3.1.0";
+
+export class FrontDoorManagementClientContext extends msRestAzure.AzureServiceClient {
+ credentials: msRest.ServiceClientCredentials;
+ subscriptionId: string;
+
+ /**
+ * Initializes a new instance of the FrontDoorManagementClient class.
+ * @param credentials Credentials needed for the client to connect to Azure.
+ * @param subscriptionId The subscription credentials which uniquely identify the Microsoft Azure
+ * subscription. The subscription ID forms part of the URI for every service call.
+ * @param [options] The parameter options
+ */
+ constructor(credentials: msRest.ServiceClientCredentials, subscriptionId: string, options?: Models.FrontDoorManagementClientOptions) {
+ 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.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/frontdoor/arm-frontdoor/lib/models/backendPoolsMappers.ts b/sdk/frontdoor/arm-frontdoor/lib/models/backendPoolsMappers.ts
new file mode 100644
index 000000000000..22f853070d87
--- /dev/null
+++ b/sdk/frontdoor/arm-frontdoor/lib/models/backendPoolsMappers.ts
@@ -0,0 +1,47 @@
+/*
+ * 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 {
+ discriminators,
+ BackendPoolListResult,
+ BackendPool,
+ SubResource,
+ BaseResource,
+ Backend,
+ ErrorResponse,
+ RoutingRule,
+ RouteConfiguration,
+ LoadBalancingSettingsModel,
+ HealthProbeSettingsModel,
+ FrontendEndpoint,
+ FrontendEndpointUpdateParametersWebApplicationFirewallPolicyLink,
+ CustomHttpsConfiguration,
+ KeyVaultCertificateSourceParametersVault,
+ ForwardingConfiguration,
+ CacheConfiguration,
+ RedirectConfiguration,
+ Resource,
+ WebApplicationFirewallPolicy,
+ PolicySettings,
+ CustomRuleList,
+ CustomRule,
+ MatchCondition,
+ ManagedRuleSetList,
+ ManagedRuleSet,
+ ManagedRuleGroupOverride,
+ ManagedRuleOverride,
+ FrontendEndpointLink,
+ ManagedRuleSetDefinition,
+ ManagedRuleGroupDefinition,
+ ManagedRuleDefinition,
+ FrontDoor,
+ BackendPoolsSettings
+} from "../models/mappers";
+
diff --git a/sdk/frontdoor/arm-frontdoor/lib/models/endpointsMappers.ts b/sdk/frontdoor/arm-frontdoor/lib/models/endpointsMappers.ts
new file mode 100644
index 000000000000..18eb96ab15e1
--- /dev/null
+++ b/sdk/frontdoor/arm-frontdoor/lib/models/endpointsMappers.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 {
+ discriminators,
+ PurgeParameters,
+ ErrorResponse
+} from "../models/mappers";
+
diff --git a/sdk/frontdoor/arm-frontdoor/lib/models/frontDoorsMappers.ts b/sdk/frontdoor/arm-frontdoor/lib/models/frontDoorsMappers.ts
new file mode 100644
index 000000000000..0334cd41e517
--- /dev/null
+++ b/sdk/frontdoor/arm-frontdoor/lib/models/frontDoorsMappers.ts
@@ -0,0 +1,49 @@
+/*
+ * 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 {
+ discriminators,
+ FrontDoorListResult,
+ FrontDoor,
+ Resource,
+ BaseResource,
+ RoutingRule,
+ SubResource,
+ RouteConfiguration,
+ LoadBalancingSettingsModel,
+ HealthProbeSettingsModel,
+ BackendPool,
+ Backend,
+ FrontendEndpoint,
+ FrontendEndpointUpdateParametersWebApplicationFirewallPolicyLink,
+ CustomHttpsConfiguration,
+ KeyVaultCertificateSourceParametersVault,
+ BackendPoolsSettings,
+ ErrorResponse,
+ ValidateCustomDomainInput,
+ ValidateCustomDomainOutput,
+ ForwardingConfiguration,
+ CacheConfiguration,
+ RedirectConfiguration,
+ WebApplicationFirewallPolicy,
+ PolicySettings,
+ CustomRuleList,
+ CustomRule,
+ MatchCondition,
+ ManagedRuleSetList,
+ ManagedRuleSet,
+ ManagedRuleGroupOverride,
+ ManagedRuleOverride,
+ FrontendEndpointLink,
+ ManagedRuleSetDefinition,
+ ManagedRuleGroupDefinition,
+ ManagedRuleDefinition
+} from "../models/mappers";
+
diff --git a/sdk/frontdoor/arm-frontdoor/lib/models/frontendEndpointsMappers.ts b/sdk/frontdoor/arm-frontdoor/lib/models/frontendEndpointsMappers.ts
new file mode 100644
index 000000000000..c0cc148e7c5a
--- /dev/null
+++ b/sdk/frontdoor/arm-frontdoor/lib/models/frontendEndpointsMappers.ts
@@ -0,0 +1,47 @@
+/*
+ * 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 {
+ discriminators,
+ FrontendEndpointsListResult,
+ FrontendEndpoint,
+ SubResource,
+ BaseResource,
+ FrontendEndpointUpdateParametersWebApplicationFirewallPolicyLink,
+ CustomHttpsConfiguration,
+ KeyVaultCertificateSourceParametersVault,
+ ErrorResponse,
+ RoutingRule,
+ RouteConfiguration,
+ LoadBalancingSettingsModel,
+ HealthProbeSettingsModel,
+ BackendPool,
+ Backend,
+ ForwardingConfiguration,
+ CacheConfiguration,
+ RedirectConfiguration,
+ Resource,
+ WebApplicationFirewallPolicy,
+ PolicySettings,
+ CustomRuleList,
+ CustomRule,
+ MatchCondition,
+ ManagedRuleSetList,
+ ManagedRuleSet,
+ ManagedRuleGroupOverride,
+ ManagedRuleOverride,
+ FrontendEndpointLink,
+ ManagedRuleSetDefinition,
+ ManagedRuleGroupDefinition,
+ ManagedRuleDefinition,
+ FrontDoor,
+ BackendPoolsSettings
+} from "../models/mappers";
+
diff --git a/sdk/frontdoor/arm-frontdoor/lib/models/healthProbeSettingsMappers.ts b/sdk/frontdoor/arm-frontdoor/lib/models/healthProbeSettingsMappers.ts
new file mode 100644
index 000000000000..7e39522a35ed
--- /dev/null
+++ b/sdk/frontdoor/arm-frontdoor/lib/models/healthProbeSettingsMappers.ts
@@ -0,0 +1,47 @@
+/*
+ * 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 {
+ discriminators,
+ HealthProbeSettingsListResult,
+ HealthProbeSettingsModel,
+ SubResource,
+ BaseResource,
+ ErrorResponse,
+ RoutingRule,
+ RouteConfiguration,
+ LoadBalancingSettingsModel,
+ BackendPool,
+ Backend,
+ FrontendEndpoint,
+ FrontendEndpointUpdateParametersWebApplicationFirewallPolicyLink,
+ CustomHttpsConfiguration,
+ KeyVaultCertificateSourceParametersVault,
+ ForwardingConfiguration,
+ CacheConfiguration,
+ RedirectConfiguration,
+ Resource,
+ WebApplicationFirewallPolicy,
+ PolicySettings,
+ CustomRuleList,
+ CustomRule,
+ MatchCondition,
+ ManagedRuleSetList,
+ ManagedRuleSet,
+ ManagedRuleGroupOverride,
+ ManagedRuleOverride,
+ FrontendEndpointLink,
+ ManagedRuleSetDefinition,
+ ManagedRuleGroupDefinition,
+ ManagedRuleDefinition,
+ FrontDoor,
+ BackendPoolsSettings
+} from "../models/mappers";
+
diff --git a/sdk/frontdoor/arm-frontdoor/lib/models/index.ts b/sdk/frontdoor/arm-frontdoor/lib/models/index.ts
new file mode 100644
index 000000000000..c056b007f6f1
--- /dev/null
+++ b/sdk/frontdoor/arm-frontdoor/lib/models/index.ts
@@ -0,0 +1,2592 @@
+/*
+ * 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 };
+
+
+/**
+ * @interface
+ * An interface representing Resource.
+ * Common resource representation.
+ *
+ * @extends BaseResource
+ */
+export interface Resource extends BaseResource {
+ /**
+ * @member {string} [id] Resource ID.
+ * **NOTE: This property will not be serialized. It can only be populated by
+ * the server.**
+ */
+ readonly id?: string;
+ /**
+ * @member {string} [name] Resource name.
+ * **NOTE: This property will not be serialized. It can only be populated by
+ * the server.**
+ */
+ readonly name?: string;
+ /**
+ * @member {string} [type] Resource type.
+ * **NOTE: This property will not be serialized. It can only be populated by
+ * the server.**
+ */
+ readonly type?: string;
+ /**
+ * @member {string} [location] Resource location.
+ */
+ location?: string;
+ /**
+ * @member {{ [propertyName: string]: string }} [tags] Resource tags.
+ */
+ tags?: { [propertyName: string]: string };
+}
+
+/**
+ * @interface
+ * An interface representing FrontDoor.
+ * Front Door represents a collection of backend endpoints to route traffic to
+ * along with rules that specify how traffic is sent there.
+ *
+ * @extends Resource
+ */
+export interface FrontDoor extends Resource {
+ /**
+ * @member {string} [friendlyName] A friendly name for the frontDoor
+ */
+ friendlyName?: string;
+ /**
+ * @member {RoutingRule[]} [routingRules] Routing rules associated with this
+ * Front Door.
+ */
+ routingRules?: RoutingRule[];
+ /**
+ * @member {LoadBalancingSettingsModel[]} [loadBalancingSettings] Load
+ * balancing settings associated with this Front Door instance.
+ */
+ loadBalancingSettings?: LoadBalancingSettingsModel[];
+ /**
+ * @member {HealthProbeSettingsModel[]} [healthProbeSettings] Health probe
+ * settings associated with this Front Door instance.
+ */
+ healthProbeSettings?: HealthProbeSettingsModel[];
+ /**
+ * @member {BackendPool[]} [backendPools] Backend pools available to routing
+ * rules.
+ */
+ backendPools?: BackendPool[];
+ /**
+ * @member {FrontendEndpoint[]} [frontendEndpoints] Frontend endpoints
+ * available to routing rules.
+ */
+ frontendEndpoints?: FrontendEndpoint[];
+ /**
+ * @member {BackendPoolsSettings} [backendPoolsSettings] Settings for all
+ * backendPools
+ */
+ backendPoolsSettings?: BackendPoolsSettings;
+ /**
+ * @member {FrontDoorEnabledState} [enabledState] Operational status of the
+ * Front Door load balancer. Permitted values are 'Enabled' or 'Disabled'.
+ * Possible values include: 'Enabled', 'Disabled'
+ */
+ enabledState?: FrontDoorEnabledState;
+ /**
+ * @member {FrontDoorResourceState} [resourceState] Resource status of the
+ * Front Door. Possible values include: 'Creating', 'Enabling', 'Enabled',
+ * 'Disabling', 'Disabled', 'Deleting'
+ */
+ resourceState?: FrontDoorResourceState;
+ /**
+ * @member {string} [provisioningState] Provisioning state of the Front Door.
+ * **NOTE: This property will not be serialized. It can only be populated by
+ * the server.**
+ */
+ readonly provisioningState?: string;
+ /**
+ * @member {string} [cname] The host that each frontendEndpoint must CNAME
+ * to.
+ * **NOTE: This property will not be serialized. It can only be populated by
+ * the server.**
+ */
+ readonly cname?: string;
+}
+
+/**
+ * @interface
+ * An interface representing SubResource.
+ * Reference to another subresource.
+ *
+ * @extends BaseResource
+ */
+export interface SubResource extends BaseResource {
+ /**
+ * @member {string} [id] Resource ID.
+ */
+ id?: string;
+}
+
+/**
+ * @interface
+ * An interface representing RoutingRule.
+ * A routing rule represents a specification for traffic to treat and where to
+ * send it, along with health probe information.
+ *
+ * @extends SubResource
+ */
+export interface RoutingRule extends SubResource {
+ /**
+ * @member {SubResource[]} [frontendEndpoints] Frontend endpoints associated
+ * with this rule
+ */
+ frontendEndpoints?: SubResource[];
+ /**
+ * @member {FrontDoorProtocol[]} [acceptedProtocols] Protocol schemes to
+ * match for this rule
+ */
+ acceptedProtocols?: FrontDoorProtocol[];
+ /**
+ * @member {string[]} [patternsToMatch] The route patterns of the rule.
+ */
+ patternsToMatch?: string[];
+ /**
+ * @member {RoutingRuleEnabledState} [enabledState] Whether to enable use of
+ * this rule. Permitted values are 'Enabled' or 'Disabled'. Possible values
+ * include: 'Enabled', 'Disabled'
+ */
+ enabledState?: RoutingRuleEnabledState;
+ /**
+ * @member {RouteConfigurationUnion} [routeConfiguration] A reference to the
+ * routing configuration.
+ */
+ routeConfiguration?: RouteConfigurationUnion;
+ /**
+ * @member {FrontDoorResourceState} [resourceState] Resource status. Possible
+ * values include: 'Creating', 'Enabling', 'Enabled', 'Disabling',
+ * 'Disabled', 'Deleting'
+ */
+ resourceState?: FrontDoorResourceState;
+ /**
+ * @member {string} [name] Resource name.
+ */
+ name?: string;
+ /**
+ * @member {string} [type] Resource type.
+ * **NOTE: This property will not be serialized. It can only be populated by
+ * the server.**
+ */
+ readonly type?: string;
+}
+
+/**
+ * @interface
+ * An interface representing LoadBalancingSettingsModel.
+ * Load balancing settings for a backend pool
+ *
+ * @extends SubResource
+ */
+export interface LoadBalancingSettingsModel extends SubResource {
+ /**
+ * @member {number} [sampleSize] The number of samples to consider for load
+ * balancing decisions
+ */
+ sampleSize?: number;
+ /**
+ * @member {number} [successfulSamplesRequired] The number of samples within
+ * the sample period that must succeed
+ */
+ successfulSamplesRequired?: number;
+ /**
+ * @member {number} [additionalLatencyMilliseconds] The additional latency in
+ * milliseconds for probes to fall into the lowest latency bucket
+ */
+ additionalLatencyMilliseconds?: number;
+ /**
+ * @member {FrontDoorResourceState} [resourceState] Resource status. Possible
+ * values include: 'Creating', 'Enabling', 'Enabled', 'Disabling',
+ * 'Disabled', 'Deleting'
+ */
+ resourceState?: FrontDoorResourceState;
+ /**
+ * @member {string} [name] Resource name.
+ */
+ name?: string;
+ /**
+ * @member {string} [type] Resource type.
+ * **NOTE: This property will not be serialized. It can only be populated by
+ * the server.**
+ */
+ readonly type?: string;
+}
+
+/**
+ * @interface
+ * An interface representing HealthProbeSettingsModel.
+ * Load balancing settings for a backend pool
+ *
+ * @extends SubResource
+ */
+export interface HealthProbeSettingsModel extends SubResource {
+ /**
+ * @member {string} [path] The path to use for the health probe. Default is /
+ */
+ path?: string;
+ /**
+ * @member {FrontDoorProtocol} [protocol] Protocol scheme to use for this
+ * probe. Possible values include: 'Http', 'Https'
+ */
+ protocol?: FrontDoorProtocol;
+ /**
+ * @member {number} [intervalInSeconds] The number of seconds between health
+ * probes.
+ */
+ intervalInSeconds?: number;
+ /**
+ * @member {FrontDoorResourceState} [resourceState] Resource status. Possible
+ * values include: 'Creating', 'Enabling', 'Enabled', 'Disabling',
+ * 'Disabled', 'Deleting'
+ */
+ resourceState?: FrontDoorResourceState;
+ /**
+ * @member {string} [name] Resource name.
+ */
+ name?: string;
+ /**
+ * @member {string} [type] Resource type.
+ * **NOTE: This property will not be serialized. It can only be populated by
+ * the server.**
+ */
+ readonly type?: string;
+}
+
+/**
+ * @interface
+ * An interface representing BackendPool.
+ * A backend pool is a collection of backends that can be routed to.
+ *
+ * @extends SubResource
+ */
+export interface BackendPool extends SubResource {
+ /**
+ * @member {Backend[]} [backends] The set of backends for this pool
+ */
+ backends?: Backend[];
+ /**
+ * @member {SubResource} [loadBalancingSettings] Load balancing settings for
+ * a backend pool
+ */
+ loadBalancingSettings?: SubResource;
+ /**
+ * @member {SubResource} [healthProbeSettings] L7 health probe settings for a
+ * backend pool
+ */
+ healthProbeSettings?: SubResource;
+ /**
+ * @member {FrontDoorResourceState} [resourceState] Resource status. Possible
+ * values include: 'Creating', 'Enabling', 'Enabled', 'Disabling',
+ * 'Disabled', 'Deleting'
+ */
+ resourceState?: FrontDoorResourceState;
+ /**
+ * @member {string} [name] Resource name.
+ */
+ name?: string;
+ /**
+ * @member {string} [type] Resource type.
+ * **NOTE: This property will not be serialized. It can only be populated by
+ * the server.**
+ */
+ readonly type?: string;
+}
+
+/**
+ * @interface
+ * An interface representing KeyVaultCertificateSourceParametersVault.
+ * The Key Vault containing the SSL certificate
+ *
+ */
+export interface KeyVaultCertificateSourceParametersVault {
+ /**
+ * @member {string} [id] Resource ID.
+ */
+ id?: string;
+}
+
+/**
+ * @interface
+ * An interface representing CustomHttpsConfiguration.
+ * Https settings for a domain
+ *
+ */
+export interface CustomHttpsConfiguration {
+ /**
+ * @member {FrontDoorCertificateSource} [certificateSource] Defines the
+ * source of the SSL certificate. Possible values include: 'AzureKeyVault',
+ * 'FrontDoor'
+ */
+ certificateSource?: FrontDoorCertificateSource;
+ /**
+ * @member {FrontDoorTlsProtocolType} [protocolType] Defines the TLS
+ * extension protocol that is used for secure delivery. Possible values
+ * include: 'ServerNameIndication'
+ */
+ protocolType?: FrontDoorTlsProtocolType;
+ /**
+ * @member {KeyVaultCertificateSourceParametersVault} [vault] The Key Vault
+ * containing the SSL certificate
+ */
+ vault?: KeyVaultCertificateSourceParametersVault;
+ /**
+ * @member {string} [secretName] The name of the Key Vault secret
+ * representing the full certificate PFX
+ */
+ secretName?: string;
+ /**
+ * @member {string} [secretVersion] The version of the Key Vault secret
+ * representing the full certificate PFX
+ */
+ secretVersion?: string;
+ /**
+ * @member {FrontDoorCertificateType} [certificateType] Defines the type of
+ * the certificate used for secure connections to a frontendEndpoint.
+ * Possible values include: 'Dedicated'
+ */
+ certificateType?: FrontDoorCertificateType;
+}
+
+/**
+ * @interface
+ * An interface representing FrontendEndpoint.
+ * A frontend endpoint used for routing.
+ *
+ * @extends SubResource
+ */
+export interface FrontendEndpoint extends SubResource {
+ /**
+ * @member {string} [hostName] The host name of the frontendEndpoint. Must be
+ * a domain name.
+ */
+ hostName?: string;
+ /**
+ * @member {SessionAffinityEnabledState} [sessionAffinityEnabledState]
+ * Whether to allow session affinity on this host. Valid options are
+ * 'Enabled' or 'Disabled'. Possible values include: 'Enabled', 'Disabled'
+ */
+ sessionAffinityEnabledState?: SessionAffinityEnabledState;
+ /**
+ * @member {number} [sessionAffinityTtlSeconds] UNUSED. This field will be
+ * ignored. The TTL to use in seconds for session affinity, if applicable.
+ */
+ sessionAffinityTtlSeconds?: number;
+ /**
+ * @member {FrontendEndpointUpdateParametersWebApplicationFirewallPolicyLink}
+ * [webApplicationFirewallPolicyLink] Defines the Web Application Firewall
+ * policy for each host (if applicable)
+ */
+ webApplicationFirewallPolicyLink?: FrontendEndpointUpdateParametersWebApplicationFirewallPolicyLink;
+ /**
+ * @member {FrontDoorResourceState} [resourceState] Resource status. Possible
+ * values include: 'Creating', 'Enabling', 'Enabled', 'Disabling',
+ * 'Disabled', 'Deleting'
+ */
+ resourceState?: FrontDoorResourceState;
+ /**
+ * @member {CustomHttpsProvisioningState} [customHttpsProvisioningState]
+ * Provisioning status of Custom Https of the frontendEndpoint. Possible
+ * values include: 'Enabling', 'Enabled', 'Disabling', 'Disabled', 'Failed'
+ * **NOTE: This property will not be serialized. It can only be populated by
+ * the server.**
+ */
+ readonly customHttpsProvisioningState?: CustomHttpsProvisioningState;
+ /**
+ * @member {CustomHttpsProvisioningSubstate}
+ * [customHttpsProvisioningSubstate] Provisioning substate shows the progress
+ * of custom HTTPS enabling/disabling process step by step. Possible values
+ * include: 'SubmittingDomainControlValidationRequest',
+ * 'PendingDomainControlValidationREquestApproval',
+ * 'DomainControlValidationRequestApproved',
+ * 'DomainControlValidationRequestRejected',
+ * 'DomainControlValidationRequestTimedOut', 'IssuingCertificate',
+ * 'DeployingCertificate', 'CertificateDeployed', 'DeletingCertificate',
+ * 'CertificateDeleted'
+ * **NOTE: This property will not be serialized. It can only be populated by
+ * the server.**
+ */
+ readonly customHttpsProvisioningSubstate?: CustomHttpsProvisioningSubstate;
+ /**
+ * @member {CustomHttpsConfiguration} [customHttpsConfiguration] The
+ * configuration specifying how to enable HTTPS
+ * **NOTE: This property will not be serialized. It can only be populated by
+ * the server.**
+ */
+ readonly customHttpsConfiguration?: CustomHttpsConfiguration;
+ /**
+ * @member {string} [name] Resource name.
+ */
+ name?: string;
+ /**
+ * @member {string} [type] Resource type.
+ * **NOTE: This property will not be serialized. It can only be populated by
+ * the server.**
+ */
+ readonly type?: string;
+}
+
+/**
+ * @interface
+ * An interface representing BackendPoolsSettings.
+ * Settings that apply to all backend pools.
+ *
+ */
+export interface BackendPoolsSettings {
+ /**
+ * @member {EnforceCertificateNameCheckEnabledState}
+ * [enforceCertificateNameCheck] Whether to enforce certificate name check on
+ * HTTPS requests to all backend pools. No effect on non-HTTPS requests.
+ * Possible values include: 'Enabled', 'Disabled'. Default value: 'Enabled' .
+ */
+ enforceCertificateNameCheck?: EnforceCertificateNameCheckEnabledState;
+}
+
+/**
+ * @interface
+ * An interface representing FrontDoorUpdateParameters.
+ * The properties needed to update a Front Door
+ *
+ */
+export interface FrontDoorUpdateParameters {
+ /**
+ * @member {string} [friendlyName] A friendly name for the frontDoor
+ */
+ friendlyName?: string;
+ /**
+ * @member {RoutingRule[]} [routingRules] Routing rules associated with this
+ * Front Door.
+ */
+ routingRules?: RoutingRule[];
+ /**
+ * @member {LoadBalancingSettingsModel[]} [loadBalancingSettings] Load
+ * balancing settings associated with this Front Door instance.
+ */
+ loadBalancingSettings?: LoadBalancingSettingsModel[];
+ /**
+ * @member {HealthProbeSettingsModel[]} [healthProbeSettings] Health probe
+ * settings associated with this Front Door instance.
+ */
+ healthProbeSettings?: HealthProbeSettingsModel[];
+ /**
+ * @member {BackendPool[]} [backendPools] Backend pools available to routing
+ * rules.
+ */
+ backendPools?: BackendPool[];
+ /**
+ * @member {FrontendEndpoint[]} [frontendEndpoints] Frontend endpoints
+ * available to routing rules.
+ */
+ frontendEndpoints?: FrontendEndpoint[];
+ /**
+ * @member {BackendPoolsSettings} [backendPoolsSettings] Settings for all
+ * backendPools
+ */
+ backendPoolsSettings?: BackendPoolsSettings;
+ /**
+ * @member {FrontDoorEnabledState} [enabledState] Operational status of the
+ * Front Door load balancer. Permitted values are 'Enabled' or 'Disabled'.
+ * Possible values include: 'Enabled', 'Disabled'
+ */
+ enabledState?: FrontDoorEnabledState;
+}
+
+/**
+ * @interface
+ * An interface representing PurgeParameters.
+ * Parameters required for content purge.
+ *
+ */
+export interface PurgeParameters {
+ /**
+ * @member {string[]} contentPaths The path to the content to be purged. Can
+ * describe a file path or a wild card directory.
+ */
+ contentPaths: string[];
+}
+
+/**
+ * Contains the possible cases for RouteConfiguration.
+ */
+export type RouteConfigurationUnion = RouteConfiguration | ForwardingConfiguration | RedirectConfiguration;
+
+/**
+ * @interface
+ * An interface representing RouteConfiguration.
+ * Base class for all types of Route.
+ *
+ */
+export interface RouteConfiguration {
+ /**
+ * @member {string} odatatype Polymorphic Discriminator
+ */
+ odatatype: "RouteConfiguration";
+}
+
+/**
+ * @interface
+ * An interface representing RoutingRuleUpdateParameters.
+ * Routing rules to apply to an endpoint
+ *
+ */
+export interface RoutingRuleUpdateParameters {
+ /**
+ * @member {SubResource[]} [frontendEndpoints] Frontend endpoints associated
+ * with this rule
+ */
+ frontendEndpoints?: SubResource[];
+ /**
+ * @member {FrontDoorProtocol[]} [acceptedProtocols] Protocol schemes to
+ * match for this rule
+ */
+ acceptedProtocols?: FrontDoorProtocol[];
+ /**
+ * @member {string[]} [patternsToMatch] The route patterns of the rule.
+ */
+ patternsToMatch?: string[];
+ /**
+ * @member {RoutingRuleEnabledState} [enabledState] Whether to enable use of
+ * this rule. Permitted values are 'Enabled' or 'Disabled'. Possible values
+ * include: 'Enabled', 'Disabled'
+ */
+ enabledState?: RoutingRuleEnabledState;
+ /**
+ * @member {RouteConfigurationUnion} [routeConfiguration] A reference to the
+ * routing configuration.
+ */
+ routeConfiguration?: RouteConfigurationUnion;
+}
+
+/**
+ * @interface
+ * An interface representing CacheConfiguration.
+ * Caching settings for a caching-type route. To disable caching, do not
+ * provide a cacheConfiguration object.
+ *
+ */
+export interface CacheConfiguration {
+ /**
+ * @member {FrontDoorQuery} [queryParameterStripDirective] Treatment of URL
+ * query terms when forming the cache key. Possible values include:
+ * 'StripNone', 'StripAll'
+ */
+ queryParameterStripDirective?: FrontDoorQuery;
+ /**
+ * @member {DynamicCompressionEnabled} [dynamicCompression] Whether to use
+ * dynamic compression for cached content. Possible values include:
+ * 'Enabled', 'Disabled'
+ */
+ dynamicCompression?: DynamicCompressionEnabled;
+}
+
+/**
+ * @interface
+ * An interface representing ForwardingConfiguration.
+ * Describes Forwarding Route.
+ *
+ */
+export interface ForwardingConfiguration {
+ /**
+ * @member {string} odatatype Polymorphic Discriminator
+ */
+ odatatype: "#Microsoft.Azure.FrontDoor.Models.FrontdoorForwardingConfiguration";
+ /**
+ * @member {string} [customForwardingPath] A custom path used to rewrite
+ * resource paths matched by this rule. Leave empty to use incoming path.
+ */
+ customForwardingPath?: string;
+ /**
+ * @member {FrontDoorForwardingProtocol} [forwardingProtocol] Protocol this
+ * rule will use when forwarding traffic to backends. Possible values
+ * include: 'HttpOnly', 'HttpsOnly', 'MatchRequest'
+ */
+ forwardingProtocol?: FrontDoorForwardingProtocol;
+ /**
+ * @member {CacheConfiguration} [cacheConfiguration] The caching
+ * configuration associated with this rule.
+ */
+ cacheConfiguration?: CacheConfiguration;
+ /**
+ * @member {SubResource} [backendPool] A reference to the BackendPool which
+ * this rule routes to.
+ */
+ backendPool?: SubResource;
+}
+
+/**
+ * @interface
+ * An interface representing RedirectConfiguration.
+ * Describes Redirect Route.
+ *
+ */
+export interface RedirectConfiguration {
+ /**
+ * @member {string} odatatype Polymorphic Discriminator
+ */
+ odatatype: "#Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration";
+ /**
+ * @member {FrontDoorRedirectType} [redirectType] The redirect type the rule
+ * will use when redirecting traffic. Possible values include: 'Moved',
+ * 'Found', 'TemporaryRedirect', 'PermanentRedirect'
+ */
+ redirectType?: FrontDoorRedirectType;
+ /**
+ * @member {FrontDoorRedirectProtocol} [redirectProtocol] The protocol of the
+ * destination to where the traffic is redirected. Possible values include:
+ * 'HttpOnly', 'HttpsOnly', 'MatchRequest'
+ */
+ redirectProtocol?: FrontDoorRedirectProtocol;
+ /**
+ * @member {string} [customHost] Host to redirect. Leave empty to use the
+ * incoming host as the destination host.
+ */
+ customHost?: string;
+ /**
+ * @member {string} [customPath] The full path to redirect. Path cannot be
+ * empty and must start with /. Leave empty to use the incoming path as
+ * destination path.
+ */
+ customPath?: string;
+ /**
+ * @member {string} [customFragment] Fragment to add to the redirect URL.
+ * Fragment is the part of the URL that comes after #. Do not include the #.
+ */
+ customFragment?: string;
+ /**
+ * @member {string} [customQueryString] The set of query strings to be placed
+ * in the redirect URL. Setting this value would replace any existing query
+ * string; leave empty to preserve the incoming query string. Query string
+ * must be in = format. The first ? and & will be added
+ * automatically so do not include them in the front, but do separate
+ * multiple query strings with &.
+ */
+ customQueryString?: string;
+}
+
+/**
+ * @interface
+ * An interface representing Backend.
+ * Backend address of a frontDoor load balancer.
+ *
+ */
+export interface Backend {
+ /**
+ * @member {string} [address] Location of the backend (IP address or FQDN)
+ */
+ address?: string;
+ /**
+ * @member {number} [httpPort] The HTTP TCP port number. Must be between 1
+ * and 65535.
+ */
+ httpPort?: number;
+ /**
+ * @member {number} [httpsPort] The HTTPS TCP port number. Must be between 1
+ * and 65535.
+ */
+ httpsPort?: number;
+ /**
+ * @member {BackendEnabledState} [enabledState] Whether to enable use of this
+ * backend. Permitted values are 'Enabled' or 'Disabled'. Possible values
+ * include: 'Enabled', 'Disabled'
+ */
+ enabledState?: BackendEnabledState;
+ /**
+ * @member {number} [priority] Priority to use for load balancing. Higher
+ * priorities will not be used for load balancing if any lower priority
+ * backend is healthy.
+ */
+ priority?: number;
+ /**
+ * @member {number} [weight] Weight of this endpoint for load balancing
+ * purposes.
+ */
+ weight?: number;
+ /**
+ * @member {string} [backendHostHeader] The value to use as the host header
+ * sent to the backend. If blank or unspecified, this defaults to the
+ * incoming host.
+ */
+ backendHostHeader?: string;
+}
+
+/**
+ * @interface
+ * An interface representing LoadBalancingSettingsUpdateParameters.
+ * Round-Robin load balancing settings for a backend pool
+ *
+ */
+export interface LoadBalancingSettingsUpdateParameters {
+ /**
+ * @member {number} [sampleSize] The number of samples to consider for load
+ * balancing decisions
+ */
+ sampleSize?: number;
+ /**
+ * @member {number} [successfulSamplesRequired] The number of samples within
+ * the sample period that must succeed
+ */
+ successfulSamplesRequired?: number;
+ /**
+ * @member {number} [additionalLatencyMilliseconds] The additional latency in
+ * milliseconds for probes to fall into the lowest latency bucket
+ */
+ additionalLatencyMilliseconds?: number;
+}
+
+/**
+ * @interface
+ * An interface representing HealthProbeSettingsUpdateParameters.
+ * L7 health probe settings for a backend pool
+ *
+ */
+export interface HealthProbeSettingsUpdateParameters {
+ /**
+ * @member {string} [path] The path to use for the health probe. Default is /
+ */
+ path?: string;
+ /**
+ * @member {FrontDoorProtocol} [protocol] Protocol scheme to use for this
+ * probe. Possible values include: 'Http', 'Https'
+ */
+ protocol?: FrontDoorProtocol;
+ /**
+ * @member {number} [intervalInSeconds] The number of seconds between health
+ * probes.
+ */
+ intervalInSeconds?: number;
+}
+
+/**
+ * @interface
+ * An interface representing BackendPoolUpdateParameters.
+ * A collection of backends that can be routed to.
+ *
+ */
+export interface BackendPoolUpdateParameters {
+ /**
+ * @member {Backend[]} [backends] The set of backends for this pool
+ */
+ backends?: Backend[];
+ /**
+ * @member {SubResource} [loadBalancingSettings] Load balancing settings for
+ * a backend pool
+ */
+ loadBalancingSettings?: SubResource;
+ /**
+ * @member {SubResource} [healthProbeSettings] L7 health probe settings for a
+ * backend pool
+ */
+ healthProbeSettings?: SubResource;
+}
+
+/**
+ * @interface
+ * An interface representing FrontendEndpointUpdateParametersWebApplicationFirewallPolicyLink.
+ * Defines the Web Application Firewall policy for each host (if applicable)
+ *
+ */
+export interface FrontendEndpointUpdateParametersWebApplicationFirewallPolicyLink {
+ /**
+ * @member {string} [id] Resource ID.
+ */
+ id?: string;
+}
+
+/**
+ * @interface
+ * An interface representing FrontendEndpointUpdateParameters.
+ * Frontend endpoint used in routing rule
+ *
+ */
+export interface FrontendEndpointUpdateParameters {
+ /**
+ * @member {string} [hostName] The host name of the frontendEndpoint. Must be
+ * a domain name.
+ */
+ hostName?: string;
+ /**
+ * @member {SessionAffinityEnabledState} [sessionAffinityEnabledState]
+ * Whether to allow session affinity on this host. Valid options are
+ * 'Enabled' or 'Disabled'. Possible values include: 'Enabled', 'Disabled'
+ */
+ sessionAffinityEnabledState?: SessionAffinityEnabledState;
+ /**
+ * @member {number} [sessionAffinityTtlSeconds] UNUSED. This field will be
+ * ignored. The TTL to use in seconds for session affinity, if applicable.
+ */
+ sessionAffinityTtlSeconds?: number;
+ /**
+ * @member {FrontendEndpointUpdateParametersWebApplicationFirewallPolicyLink}
+ * [webApplicationFirewallPolicyLink] Defines the Web Application Firewall
+ * policy for each host (if applicable)
+ */
+ webApplicationFirewallPolicyLink?: FrontendEndpointUpdateParametersWebApplicationFirewallPolicyLink;
+}
+
+/**
+ * @interface
+ * An interface representing ValidateCustomDomainInput.
+ * Input of the custom domain to be validated for DNS mapping.
+ *
+ */
+export interface ValidateCustomDomainInput {
+ /**
+ * @member {string} hostName The host name of the custom domain. Must be a
+ * domain name.
+ */
+ hostName: string;
+}
+
+/**
+ * @interface
+ * An interface representing ValidateCustomDomainOutput.
+ * Output of custom domain validation.
+ *
+ */
+export interface ValidateCustomDomainOutput {
+ /**
+ * @member {boolean} [customDomainValidated] Indicates whether the custom
+ * domain is valid or not.
+ * **NOTE: This property will not be serialized. It can only be populated by
+ * the server.**
+ */
+ readonly customDomainValidated?: boolean;
+ /**
+ * @member {string} [reason] The reason why the custom domain is not valid.
+ * **NOTE: This property will not be serialized. It can only be populated by
+ * the server.**
+ */
+ readonly reason?: string;
+ /**
+ * @member {string} [message] Error message describing why the custom domain
+ * is not valid.
+ * **NOTE: This property will not be serialized. It can only be populated by
+ * the server.**
+ */
+ readonly message?: string;
+}
+
+/**
+ * @interface
+ * An interface representing ErrorResponse.
+ * Error response indicates Front Door service is not able to process the
+ * incoming request. The reason is provided in the error message.
+ *
+ */
+export interface ErrorResponse {
+ /**
+ * @member {string} [code] Error code.
+ * **NOTE: This property will not be serialized. It can only be populated by
+ * the server.**
+ */
+ readonly code?: string;
+ /**
+ * @member {string} [message] Error message indicating why the operation
+ * failed.
+ * **NOTE: This property will not be serialized. It can only be populated by
+ * the server.**
+ */
+ readonly message?: string;
+}
+
+/**
+ * @interface
+ * An interface representing CheckNameAvailabilityInput.
+ * Input of CheckNameAvailability API.
+ *
+ */
+export interface CheckNameAvailabilityInput {
+ /**
+ * @member {string} name The resource name to validate.
+ */
+ name: string;
+ /**
+ * @member {ResourceType} type The type of the resource whose name is to be
+ * validated. Possible values include: 'Microsoft.Network/frontDoors',
+ * 'Microsoft.Network/frontDoors/frontendEndpoints'
+ */
+ type: ResourceType;
+}
+
+/**
+ * @interface
+ * An interface representing CheckNameAvailabilityOutput.
+ * Output of check name availability API.
+ *
+ */
+export interface CheckNameAvailabilityOutput {
+ /**
+ * @member {Availability} [nameAvailability] Indicates whether the name is
+ * available. Possible values include: 'Available', 'Unavailable'
+ * **NOTE: This property will not be serialized. It can only be populated by
+ * the server.**
+ */
+ readonly nameAvailability?: Availability;
+ /**
+ * @member {string} [reason] The reason why the name is not available.
+ * **NOTE: This property will not be serialized. It can only be populated by
+ * the server.**
+ */
+ readonly reason?: string;
+ /**
+ * @member {string} [message] The detailed error message describing why the
+ * name is not available.
+ * **NOTE: This property will not be serialized. It can only be populated by
+ * the server.**
+ */
+ readonly message?: string;
+}
+
+/**
+ * @interface
+ * An interface representing ErrorDetails.
+ */
+export interface ErrorDetails {
+ /**
+ * @member {string} [code]
+ */
+ code?: string;
+ /**
+ * @member {string} [target]
+ */
+ target?: string;
+ /**
+ * @member {string} [message]
+ */
+ message?: string;
+}
+
+/**
+ * @interface
+ * An interface representing ErrorModel.
+ */
+export interface ErrorModel {
+ /**
+ * @member {string} [code]
+ */
+ code?: string;
+ /**
+ * @member {string} [message]
+ */
+ message?: string;
+ /**
+ * @member {string} [target]
+ */
+ target?: string;
+ /**
+ * @member {ErrorDetails[]} [details]
+ */
+ details?: ErrorDetails[];
+ /**
+ * @member {string} [innerError]
+ */
+ innerError?: string;
+}
+
+/**
+ * @interface
+ * An interface representing AzureAsyncOperationResult.
+ * The response body contains the status of the specified asynchronous
+ * operation, indicating whether it has succeeded, is in progress, or has
+ * failed. Note that this status is distinct from the HTTP status code returned
+ * for the Get Operation Status operation itself. If the asynchronous operation
+ * succeeded, the response body includes the HTTP status code for the
+ * successful request. If the asynchronous operation failed, the response body
+ * includes the HTTP status code for the failed request and error information
+ * regarding the failure.
+ *
+ */
+export interface AzureAsyncOperationResult {
+ /**
+ * @member {NetworkOperationStatus} [status] Status of the Azure async
+ * operation. Possible values are: 'InProgress', 'Succeeded', and 'Failed'.
+ * Possible values include: 'InProgress', 'Succeeded', 'Failed'
+ */
+ status?: NetworkOperationStatus;
+ /**
+ * @member {ErrorModel} [error]
+ */
+ error?: ErrorModel;
+}
+
+/**
+ * @interface
+ * An interface representing TagsObject.
+ * Tags object for patch operations.
+ *
+ */
+export interface TagsObject {
+ /**
+ * @member {{ [propertyName: string]: string }} [tags] Resource tags.
+ */
+ tags?: { [propertyName: string]: string };
+}
+
+/**
+ * @interface
+ * An interface representing PolicySettings.
+ * Defines top-level WebApplicationFirewallPolicy configuration settings.
+ *
+ */
+export interface PolicySettings {
+ /**
+ * @member {PolicyEnabledState} [enabledState] Describes if the policy is in
+ * enabled or disabled state. Defaults to Enabled if not specified. Possible
+ * values include: 'Disabled', 'Enabled'
+ */
+ enabledState?: PolicyEnabledState;
+ /**
+ * @member {PolicyMode} [mode] Describes if it is in detection mode or
+ * prevention mode at policy level. Possible values include: 'Prevention',
+ * 'Detection'
+ */
+ mode?: PolicyMode;
+ /**
+ * @member {string} [redirectUrl] If action type is redirect, this field
+ * represents redirect URL for the client.
+ */
+ redirectUrl?: string;
+ /**
+ * @member {number} [customBlockResponseStatusCode] If the action type is
+ * block, customer can override the response status code.
+ */
+ customBlockResponseStatusCode?: number;
+ /**
+ * @member {string} [customBlockResponseBody] If the action type is block,
+ * customer can override the response body. The body must be specified in
+ * base64 encoding.
+ */
+ customBlockResponseBody?: string;
+}
+
+/**
+ * @interface
+ * An interface representing MatchCondition.
+ * Define a match condition.
+ *
+ */
+export interface MatchCondition {
+ /**
+ * @member {MatchVariable} matchVariable Match variable to compare against.
+ * Possible values include: 'RemoteAddr', 'RequestMethod', 'QueryString',
+ * 'PostArgs', 'RequestUri', 'RequestHeader', 'RequestBody', 'Cookies'
+ */
+ matchVariable: MatchVariable;
+ /**
+ * @member {string} [selector] Selector can used to match against a specific
+ * key from QueryString, PostArgs, RequestHeader or Cookies.
+ */
+ selector?: string;
+ /**
+ * @member {Operator} operator Describes operator to be matched. Possible
+ * values include: 'Any', 'IPMatch', 'GeoMatch', 'Equal', 'Contains',
+ * 'LessThan', 'GreaterThan', 'LessThanOrEqual', 'GreaterThanOrEqual',
+ * 'BeginsWith', 'EndsWith', 'RegEx'
+ */
+ operator: Operator;
+ /**
+ * @member {boolean} [negateCondition] Describes if the result of this
+ * condition should be negated.
+ */
+ negateCondition?: boolean;
+ /**
+ * @member {string[]} matchValue List of possible match values.
+ */
+ matchValue: string[];
+ /**
+ * @member {TransformType[]} [transforms] List of transforms.
+ */
+ transforms?: TransformType[];
+}
+
+/**
+ * @interface
+ * An interface representing CustomRule.
+ * Defines contents of a web application rule
+ *
+ */
+export interface CustomRule {
+ /**
+ * @member {string} [name] Describes the name of the rule.
+ */
+ name?: string;
+ /**
+ * @member {number} priority Describes priority of the rule. Rules with a
+ * lower value will be evaluated before rules with a higher value.
+ */
+ priority: number;
+ /**
+ * @member {CustomRuleEnabledState} [enabledState] Describes if the custom
+ * rule is in enabled or disabled state. Defaults to Enabled if not
+ * specified. Possible values include: 'Disabled', 'Enabled'
+ */
+ enabledState?: CustomRuleEnabledState;
+ /**
+ * @member {RuleType} ruleType Describes type of rule. Possible values
+ * include: 'MatchRule', 'RateLimitRule'
+ */
+ ruleType: RuleType;
+ /**
+ * @member {number} [rateLimitDurationInMinutes] Defines rate limit duration.
+ * Default is 1 minute.
+ */
+ rateLimitDurationInMinutes?: number;
+ /**
+ * @member {number} [rateLimitThreshold] Defines rate limit threshold.
+ */
+ rateLimitThreshold?: number;
+ /**
+ * @member {MatchCondition[]} matchConditions List of match conditions.
+ */
+ matchConditions: MatchCondition[];
+ /**
+ * @member {ActionType} action Describes what action to be applied when rule
+ * matches. Possible values include: 'Allow', 'Block', 'Log', 'Redirect'
+ */
+ action: ActionType;
+}
+
+/**
+ * @interface
+ * An interface representing CustomRuleList.
+ * Defines contents of custom rules
+ *
+ */
+export interface CustomRuleList {
+ /**
+ * @member {CustomRule[]} [rules] List of rules
+ */
+ rules?: CustomRule[];
+}
+
+/**
+ * @interface
+ * An interface representing ManagedRuleOverride.
+ * Defines a managed rule group override setting.
+ *
+ */
+export interface ManagedRuleOverride {
+ /**
+ * @member {string} ruleId Identifier for the managed rule.
+ */
+ ruleId: string;
+ /**
+ * @member {ManagedRuleEnabledState} [enabledState] Describes if the managed
+ * rule is in enabled or disabled state. Defaults to Disabled if not
+ * specified. Possible values include: 'Disabled', 'Enabled'
+ */
+ enabledState?: ManagedRuleEnabledState;
+ /**
+ * @member {ActionType} [action] Describes the override action to be applied
+ * when rule matches. Possible values include: 'Allow', 'Block', 'Log',
+ * 'Redirect'
+ */
+ action?: ActionType;
+}
+
+/**
+ * @interface
+ * An interface representing ManagedRuleGroupOverride.
+ * Defines a managed rule group override setting.
+ *
+ */
+export interface ManagedRuleGroupOverride {
+ /**
+ * @member {string} ruleGroupName Describes the managed rule group to
+ * override.
+ */
+ ruleGroupName: string;
+ /**
+ * @member {ManagedRuleOverride[]} [rules] List of rules that will be
+ * disabled. If none specified, all rules in the group will be disabled.
+ */
+ rules?: ManagedRuleOverride[];
+}
+
+/**
+ * @interface
+ * An interface representing ManagedRuleSet.
+ * Defines a managed rule set.
+ *
+ */
+export interface ManagedRuleSet {
+ /**
+ * @member {string} ruleSetType Defines the rule set type to use.
+ */
+ ruleSetType: string;
+ /**
+ * @member {string} ruleSetVersion Defines the version of the rule set to
+ * use.
+ */
+ ruleSetVersion: string;
+ /**
+ * @member {ManagedRuleGroupOverride[]} [ruleGroupOverrides] Defines the rule
+ * group overrides to apply to the rule set.
+ */
+ ruleGroupOverrides?: ManagedRuleGroupOverride[];
+}
+
+/**
+ * @interface
+ * An interface representing ManagedRuleSetList.
+ * Defines the list of managed rule sets for the policy.
+ *
+ */
+export interface ManagedRuleSetList {
+ /**
+ * @member {ManagedRuleSet[]} [managedRuleSets] List of rule sets.
+ */
+ managedRuleSets?: ManagedRuleSet[];
+}
+
+/**
+ * @interface
+ * An interface representing FrontendEndpointLink.
+ * Defines the Resource ID for a Frontend Endpoint.
+ *
+ */
+export interface FrontendEndpointLink {
+ /**
+ * @member {string} [id] Resource ID.
+ */
+ id?: string;
+}
+
+/**
+ * @interface
+ * An interface representing WebApplicationFirewallPolicy.
+ * Defines web application firewall policy.
+ *
+ * @extends Resource
+ */
+export interface WebApplicationFirewallPolicy extends Resource {
+ /**
+ * @member {PolicySettings} [policySettings] Describes settings for the
+ * policy.
+ */
+ policySettings?: PolicySettings;
+ /**
+ * @member {CustomRuleList} [customRules] Describes custom rules inside the
+ * policy.
+ */
+ customRules?: CustomRuleList;
+ /**
+ * @member {ManagedRuleSetList} [managedRules] Describes managed rules inside
+ * the policy.
+ */
+ managedRules?: ManagedRuleSetList;
+ /**
+ * @member {FrontendEndpointLink[]} [frontendEndpointLinks] Describes
+ * Frontend Endpoints associated with this Web Application Firewall policy.
+ * **NOTE: This property will not be serialized. It can only be populated by
+ * the server.**
+ */
+ readonly frontendEndpointLinks?: FrontendEndpointLink[];
+ /**
+ * @member {string} [provisioningState] Provisioning state of the policy.
+ * **NOTE: This property will not be serialized. It can only be populated by
+ * the server.**
+ */
+ readonly provisioningState?: string;
+ /**
+ * @member {PolicyResourceState} [resourceState] Resource status of the
+ * policy. Possible values include: 'Creating', 'Enabling', 'Enabled',
+ * 'Disabling', 'Disabled', 'Deleting'
+ * **NOTE: This property will not be serialized. It can only be populated by
+ * the server.**
+ */
+ readonly resourceState?: PolicyResourceState;
+ /**
+ * @member {string} [etag] Gets a unique read-only string that changes
+ * whenever the resource is updated.
+ */
+ etag?: string;
+}
+
+/**
+ * @interface
+ * An interface representing ManagedRuleDefinition.
+ * Describes a managed rule definition.
+ *
+ */
+export interface ManagedRuleDefinition {
+ /**
+ * @member {string} [ruleId] Identifier for the managed rule.
+ * **NOTE: This property will not be serialized. It can only be populated by
+ * the server.**
+ */
+ readonly ruleId?: string;
+ /**
+ * @member {string} [description] Describes the functionality of the managed
+ * rule.
+ * **NOTE: This property will not be serialized. It can only be populated by
+ * the server.**
+ */
+ readonly description?: string;
+}
+
+/**
+ * @interface
+ * An interface representing ManagedRuleGroupDefinition.
+ * Describes a managed rule group.
+ *
+ */
+export interface ManagedRuleGroupDefinition {
+ /**
+ * @member {string} [ruleGroupName] Name of the managed rule group.
+ * **NOTE: This property will not be serialized. It can only be populated by
+ * the server.**
+ */
+ readonly ruleGroupName?: string;
+ /**
+ * @member {string} [description] Description of the managed rule group.
+ * **NOTE: This property will not be serialized. It can only be populated by
+ * the server.**
+ */
+ readonly description?: string;
+ /**
+ * @member {ManagedRuleDefinition[]} [rules] List of rules within the managed
+ * rule group.
+ * **NOTE: This property will not be serialized. It can only be populated by
+ * the server.**
+ */
+ readonly rules?: ManagedRuleDefinition[];
+}
+
+/**
+ * @interface
+ * An interface representing ManagedRuleSetDefinition.
+ * Describes the a managed rule set definition.
+ *
+ * @extends Resource
+ */
+export interface ManagedRuleSetDefinition extends Resource {
+ /**
+ * @member {string} [provisioningState] Provisioning state of the managed
+ * rule set.
+ * **NOTE: This property will not be serialized. It can only be populated by
+ * the server.**
+ */
+ readonly provisioningState?: string;
+ /**
+ * @member {string} [ruleSetType] Type of the managed rule set.
+ * **NOTE: This property will not be serialized. It can only be populated by
+ * the server.**
+ */
+ readonly ruleSetType?: string;
+ /**
+ * @member {string} [ruleSetVersion] Version of the managed rule set type.
+ * **NOTE: This property will not be serialized. It can only be populated by
+ * the server.**
+ */
+ readonly ruleSetVersion?: string;
+ /**
+ * @member {ManagedRuleGroupDefinition[]} [ruleGroups] Rule groups of the
+ * managed rule set.
+ * **NOTE: This property will not be serialized. It can only be populated by
+ * the server.**
+ */
+ readonly ruleGroups?: ManagedRuleGroupDefinition[];
+}
+
+/**
+ * @interface
+ * An interface representing FrontDoorManagementClientOptions.
+ * @extends AzureServiceClientOptions
+ */
+export interface FrontDoorManagementClientOptions extends AzureServiceClientOptions {
+ /**
+ * @member {string} [baseUri]
+ */
+ baseUri?: string;
+}
+
+
+/**
+ * @interface
+ * An interface representing the FrontDoorListResult.
+ * Result of the request to list Front Doors. It contains a list of Front Door
+ * objects and a URL link to get the next set of results.
+ *
+ * @extends Array
+ */
+export interface FrontDoorListResult extends Array {
+ /**
+ * @member {string} [nextLink] URL to get the next set of Front Door objects
+ * if there are any.
+ */
+ nextLink?: string;
+}
+
+/**
+ * @interface
+ * An interface representing the RoutingRuleListResult.
+ * Result of the request to list Routing Rules. It contains a list of Routing
+ * Rule objects and a URL link to get the next set of results.
+ *
+ * @extends Array
+ */
+export interface RoutingRuleListResult extends Array {
+ /**
+ * @member {string} [nextLink] URL to get the next set of RoutingRule objects
+ * if there are any.
+ */
+ nextLink?: string;
+}
+
+/**
+ * @interface
+ * An interface representing the HealthProbeSettingsListResult.
+ * Result of the request to list HealthProbeSettings. It contains a list of
+ * HealthProbeSettings objects and a URL link to get the next set of results.
+ *
+ * @extends Array
+ */
+export interface HealthProbeSettingsListResult extends Array {
+ /**
+ * @member {string} [nextLink] URL to get the next set of HealthProbeSettings
+ * objects if there are any.
+ */
+ nextLink?: string;
+}
+
+/**
+ * @interface
+ * An interface representing the LoadBalancingSettingsListResult.
+ * Result of the request to list load balancing settings. It contains a list of
+ * load balancing settings objects and a URL link to get the next set of
+ * results.
+ *
+ * @extends Array
+ */
+export interface LoadBalancingSettingsListResult extends Array {
+ /**
+ * @member {string} [nextLink] URL to get the next set of
+ * LoadBalancingSettings objects if there are any.
+ */
+ nextLink?: string;
+}
+
+/**
+ * @interface
+ * An interface representing the BackendPoolListResult.
+ * Result of the request to list Backend Pools. It contains a list of Backend
+ * Pools objects and a URL link to get the next set of results.
+ *
+ * @extends Array
+ */
+export interface BackendPoolListResult extends Array {
+ /**
+ * @member {string} [nextLink] URL to get the next set of BackendPool objects
+ * if there are any.
+ */
+ nextLink?: string;
+}
+
+/**
+ * @interface
+ * An interface representing the FrontendEndpointsListResult.
+ * Result of the request to list frontend endpoints. It contains a list of
+ * Frontend endpoint objects and a URL link to get the next set of results.
+ *
+ * @extends Array
+ */
+export interface FrontendEndpointsListResult extends Array {
+ /**
+ * @member {string} [nextLink] URL to get the next set of frontend endpoints
+ * if there are any.
+ */
+ nextLink?: string;
+}
+
+/**
+ * @interface
+ * An interface representing the WebApplicationFirewallPolicyList.
+ * Defines a list of WebApplicationFirewallPolicies. It contains a list of
+ * WebApplicationFirewallPolicy objects and a URL link to get the next set of
+ * results.
+ *
+ * @extends Array
+ */
+export interface WebApplicationFirewallPolicyList extends Array {
+ /**
+ * @member {string} [nextLink] URL to get the next set of
+ * WebApplicationFirewallPolicy objects if there are any.
+ */
+ nextLink?: string;
+}
+
+/**
+ * @interface
+ * An interface representing the ManagedRuleSetDefinitionList.
+ * List of managed rule set definitions available for use in a policy.
+ *
+ * @extends Array
+ */
+export interface ManagedRuleSetDefinitionList extends Array {
+ /**
+ * @member {string} [nextLink] URL to retrieve next set of managed rule set
+ * definitions.
+ */
+ nextLink?: string;
+}
+
+/**
+ * Defines values for FrontDoorResourceState.
+ * Possible values include: 'Creating', 'Enabling', 'Enabled', 'Disabling', 'Disabled', 'Deleting'
+ * @readonly
+ * @enum {string}
+ */
+export type FrontDoorResourceState = 'Creating' | 'Enabling' | 'Enabled' | 'Disabling' | 'Disabled' | 'Deleting';
+
+/**
+ * Defines values for CustomHttpsProvisioningState.
+ * Possible values include: 'Enabling', 'Enabled', 'Disabling', 'Disabled', 'Failed'
+ * @readonly
+ * @enum {string}
+ */
+export type CustomHttpsProvisioningState = 'Enabling' | 'Enabled' | 'Disabling' | 'Disabled' | 'Failed';
+
+/**
+ * Defines values for CustomHttpsProvisioningSubstate.
+ * Possible values include: 'SubmittingDomainControlValidationRequest',
+ * 'PendingDomainControlValidationREquestApproval', 'DomainControlValidationRequestApproved',
+ * 'DomainControlValidationRequestRejected', 'DomainControlValidationRequestTimedOut',
+ * 'IssuingCertificate', 'DeployingCertificate', 'CertificateDeployed', 'DeletingCertificate',
+ * 'CertificateDeleted'
+ * @readonly
+ * @enum {string}
+ */
+export type CustomHttpsProvisioningSubstate = 'SubmittingDomainControlValidationRequest' | 'PendingDomainControlValidationREquestApproval' | 'DomainControlValidationRequestApproved' | 'DomainControlValidationRequestRejected' | 'DomainControlValidationRequestTimedOut' | 'IssuingCertificate' | 'DeployingCertificate' | 'CertificateDeployed' | 'DeletingCertificate' | 'CertificateDeleted';
+
+/**
+ * Defines values for FrontDoorCertificateSource.
+ * Possible values include: 'AzureKeyVault', 'FrontDoor'
+ * @readonly
+ * @enum {string}
+ */
+export type FrontDoorCertificateSource = 'AzureKeyVault' | 'FrontDoor';
+
+/**
+ * Defines values for FrontDoorTlsProtocolType.
+ * Possible values include: 'ServerNameIndication'
+ * @readonly
+ * @enum {string}
+ */
+export type FrontDoorTlsProtocolType = 'ServerNameIndication';
+
+/**
+ * Defines values for FrontDoorCertificateType.
+ * Possible values include: 'Dedicated'
+ * @readonly
+ * @enum {string}
+ */
+export type FrontDoorCertificateType = 'Dedicated';
+
+/**
+ * Defines values for EnforceCertificateNameCheckEnabledState.
+ * Possible values include: 'Enabled', 'Disabled'
+ * @readonly
+ * @enum {string}
+ */
+export type EnforceCertificateNameCheckEnabledState = 'Enabled' | 'Disabled';
+
+/**
+ * Defines values for FrontDoorEnabledState.
+ * Possible values include: 'Enabled', 'Disabled'
+ * @readonly
+ * @enum {string}
+ */
+export type FrontDoorEnabledState = 'Enabled' | 'Disabled';
+
+/**
+ * Defines values for FrontDoorProtocol.
+ * Possible values include: 'Http', 'Https'
+ * @readonly
+ * @enum {string}
+ */
+export type FrontDoorProtocol = 'Http' | 'Https';
+
+/**
+ * Defines values for RoutingRuleEnabledState.
+ * Possible values include: 'Enabled', 'Disabled'
+ * @readonly
+ * @enum {string}
+ */
+export type RoutingRuleEnabledState = 'Enabled' | 'Disabled';
+
+/**
+ * Defines values for FrontDoorForwardingProtocol.
+ * Possible values include: 'HttpOnly', 'HttpsOnly', 'MatchRequest'
+ * @readonly
+ * @enum {string}
+ */
+export type FrontDoorForwardingProtocol = 'HttpOnly' | 'HttpsOnly' | 'MatchRequest';
+
+/**
+ * Defines values for FrontDoorQuery.
+ * Possible values include: 'StripNone', 'StripAll'
+ * @readonly
+ * @enum {string}
+ */
+export type FrontDoorQuery = 'StripNone' | 'StripAll';
+
+/**
+ * Defines values for DynamicCompressionEnabled.
+ * Possible values include: 'Enabled', 'Disabled'
+ * @readonly
+ * @enum {string}
+ */
+export type DynamicCompressionEnabled = 'Enabled' | 'Disabled';
+
+/**
+ * Defines values for FrontDoorRedirectType.
+ * Possible values include: 'Moved', 'Found', 'TemporaryRedirect', 'PermanentRedirect'
+ * @readonly
+ * @enum {string}
+ */
+export type FrontDoorRedirectType = 'Moved' | 'Found' | 'TemporaryRedirect' | 'PermanentRedirect';
+
+/**
+ * Defines values for FrontDoorRedirectProtocol.
+ * Possible values include: 'HttpOnly', 'HttpsOnly', 'MatchRequest'
+ * @readonly
+ * @enum {string}
+ */
+export type FrontDoorRedirectProtocol = 'HttpOnly' | 'HttpsOnly' | 'MatchRequest';
+
+/**
+ * Defines values for BackendEnabledState.
+ * Possible values include: 'Enabled', 'Disabled'
+ * @readonly
+ * @enum {string}
+ */
+export type BackendEnabledState = 'Enabled' | 'Disabled';
+
+/**
+ * Defines values for SessionAffinityEnabledState.
+ * Possible values include: 'Enabled', 'Disabled'
+ * @readonly
+ * @enum {string}
+ */
+export type SessionAffinityEnabledState = 'Enabled' | 'Disabled';
+
+/**
+ * Defines values for ResourceType.
+ * Possible values include: 'Microsoft.Network/frontDoors',
+ * 'Microsoft.Network/frontDoors/frontendEndpoints'
+ * @readonly
+ * @enum {string}
+ */
+export type ResourceType = 'Microsoft.Network/frontDoors' | 'Microsoft.Network/frontDoors/frontendEndpoints';
+
+/**
+ * Defines values for Availability.
+ * Possible values include: 'Available', 'Unavailable'
+ * @readonly
+ * @enum {string}
+ */
+export type Availability = 'Available' | 'Unavailable';
+
+/**
+ * Defines values for NetworkOperationStatus.
+ * Possible values include: 'InProgress', 'Succeeded', 'Failed'
+ * @readonly
+ * @enum {string}
+ */
+export type NetworkOperationStatus = 'InProgress' | 'Succeeded' | 'Failed';
+
+/**
+ * Defines values for PolicyEnabledState.
+ * Possible values include: 'Disabled', 'Enabled'
+ * @readonly
+ * @enum {string}
+ */
+export type PolicyEnabledState = 'Disabled' | 'Enabled';
+
+/**
+ * Defines values for PolicyMode.
+ * Possible values include: 'Prevention', 'Detection'
+ * @readonly
+ * @enum {string}
+ */
+export type PolicyMode = 'Prevention' | 'Detection';
+
+/**
+ * Defines values for CustomRuleEnabledState.
+ * Possible values include: 'Disabled', 'Enabled'
+ * @readonly
+ * @enum {string}
+ */
+export type CustomRuleEnabledState = 'Disabled' | 'Enabled';
+
+/**
+ * Defines values for RuleType.
+ * Possible values include: 'MatchRule', 'RateLimitRule'
+ * @readonly
+ * @enum {string}
+ */
+export type RuleType = 'MatchRule' | 'RateLimitRule';
+
+/**
+ * Defines values for MatchVariable.
+ * Possible values include: 'RemoteAddr', 'RequestMethod', 'QueryString', 'PostArgs', 'RequestUri',
+ * 'RequestHeader', 'RequestBody', 'Cookies'
+ * @readonly
+ * @enum {string}
+ */
+export type MatchVariable = 'RemoteAddr' | 'RequestMethod' | 'QueryString' | 'PostArgs' | 'RequestUri' | 'RequestHeader' | 'RequestBody' | 'Cookies';
+
+/**
+ * Defines values for Operator.
+ * Possible values include: 'Any', 'IPMatch', 'GeoMatch', 'Equal', 'Contains', 'LessThan',
+ * 'GreaterThan', 'LessThanOrEqual', 'GreaterThanOrEqual', 'BeginsWith', 'EndsWith', 'RegEx'
+ * @readonly
+ * @enum {string}
+ */
+export type Operator = 'Any' | 'IPMatch' | 'GeoMatch' | 'Equal' | 'Contains' | 'LessThan' | 'GreaterThan' | 'LessThanOrEqual' | 'GreaterThanOrEqual' | 'BeginsWith' | 'EndsWith' | 'RegEx';
+
+/**
+ * Defines values for TransformType.
+ * Possible values include: 'Lowercase', 'Uppercase', 'Trim', 'UrlDecode', 'UrlEncode',
+ * 'RemoveNulls'
+ * @readonly
+ * @enum {string}
+ */
+export type TransformType = 'Lowercase' | 'Uppercase' | 'Trim' | 'UrlDecode' | 'UrlEncode' | 'RemoveNulls';
+
+/**
+ * Defines values for ActionType.
+ * Possible values include: 'Allow', 'Block', 'Log', 'Redirect'
+ * @readonly
+ * @enum {string}
+ */
+export type ActionType = 'Allow' | 'Block' | 'Log' | 'Redirect';
+
+/**
+ * Defines values for ManagedRuleEnabledState.
+ * Possible values include: 'Disabled', 'Enabled'
+ * @readonly
+ * @enum {string}
+ */
+export type ManagedRuleEnabledState = 'Disabled' | 'Enabled';
+
+/**
+ * Defines values for PolicyResourceState.
+ * Possible values include: 'Creating', 'Enabling', 'Enabled', 'Disabling', 'Disabled', 'Deleting'
+ * @readonly
+ * @enum {string}
+ */
+export type PolicyResourceState = 'Creating' | 'Enabling' | 'Enabled' | 'Disabling' | 'Disabled' | 'Deleting';
+
+/**
+ * Contains response data for the checkFrontDoorNameAvailability operation.
+ */
+export type CheckFrontDoorNameAvailabilityResponse = CheckNameAvailabilityOutput & {
+ /**
+ * 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: CheckNameAvailabilityOutput;
+ };
+};
+
+/**
+ * Contains response data for the checkFrontDoorNameAvailabilityWithSubscription operation.
+ */
+export type CheckFrontDoorNameAvailabilityWithSubscriptionResponse = CheckNameAvailabilityOutput & {
+ /**
+ * 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: CheckNameAvailabilityOutput;
+ };
+};
+
+/**
+ * Contains response data for the list operation.
+ */
+export type FrontDoorsListResponse = FrontDoorListResult & {
+ /**
+ * 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: FrontDoorListResult;
+ };
+};
+
+/**
+ * Contains response data for the listByResourceGroup operation.
+ */
+export type FrontDoorsListByResourceGroupResponse = FrontDoorListResult & {
+ /**
+ * 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: FrontDoorListResult;
+ };
+};
+
+/**
+ * Contains response data for the get operation.
+ */
+export type FrontDoorsGetResponse = FrontDoor & {
+ /**
+ * 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: FrontDoor;
+ };
+};
+
+/**
+ * Contains response data for the createOrUpdate operation.
+ */
+export type FrontDoorsCreateOrUpdateResponse = FrontDoor & {
+ /**
+ * 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: FrontDoor;
+ };
+};
+
+/**
+ * Contains response data for the validateCustomDomain operation.
+ */
+export type FrontDoorsValidateCustomDomainResponse = ValidateCustomDomainOutput & {
+ /**
+ * 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: ValidateCustomDomainOutput;
+ };
+};
+
+/**
+ * Contains response data for the beginCreateOrUpdate operation.
+ */
+export type FrontDoorsBeginCreateOrUpdateResponse = FrontDoor & {
+ /**
+ * 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: FrontDoor;
+ };
+};
+
+/**
+ * Contains response data for the listNext operation.
+ */
+export type FrontDoorsListNextResponse = FrontDoorListResult & {
+ /**
+ * 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: FrontDoorListResult;
+ };
+};
+
+/**
+ * Contains response data for the listByResourceGroupNext operation.
+ */
+export type FrontDoorsListByResourceGroupNextResponse = FrontDoorListResult & {
+ /**
+ * 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: FrontDoorListResult;
+ };
+};
+
+/**
+ * Contains response data for the listByFrontDoor operation.
+ */
+export type RoutingRulesListByFrontDoorResponse = RoutingRuleListResult & {
+ /**
+ * 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: RoutingRuleListResult;
+ };
+};
+
+/**
+ * Contains response data for the get operation.
+ */
+export type RoutingRulesGetResponse = RoutingRule & {
+ /**
+ * 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: RoutingRule;
+ };
+};
+
+/**
+ * Contains response data for the createOrUpdate operation.
+ */
+export type RoutingRulesCreateOrUpdateResponse = RoutingRule & {
+ /**
+ * 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: RoutingRule;
+ };
+};
+
+/**
+ * Contains response data for the beginCreateOrUpdate operation.
+ */
+export type RoutingRulesBeginCreateOrUpdateResponse = RoutingRule & {
+ /**
+ * 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: RoutingRule;
+ };
+};
+
+/**
+ * Contains response data for the listByFrontDoorNext operation.
+ */
+export type RoutingRulesListByFrontDoorNextResponse = RoutingRuleListResult & {
+ /**
+ * 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: RoutingRuleListResult;
+ };
+};
+
+/**
+ * Contains response data for the listByFrontDoor operation.
+ */
+export type HealthProbeSettingsListByFrontDoorResponse = HealthProbeSettingsListResult & {
+ /**
+ * 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: HealthProbeSettingsListResult;
+ };
+};
+
+/**
+ * Contains response data for the get operation.
+ */
+export type HealthProbeSettingsGetResponse = HealthProbeSettingsModel & {
+ /**
+ * 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: HealthProbeSettingsModel;
+ };
+};
+
+/**
+ * Contains response data for the createOrUpdate operation.
+ */
+export type HealthProbeSettingsCreateOrUpdateResponse = HealthProbeSettingsModel & {
+ /**
+ * 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: HealthProbeSettingsModel;
+ };
+};
+
+/**
+ * Contains response data for the beginCreateOrUpdate operation.
+ */
+export type HealthProbeSettingsBeginCreateOrUpdateResponse = HealthProbeSettingsModel & {
+ /**
+ * 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: HealthProbeSettingsModel;
+ };
+};
+
+/**
+ * Contains response data for the listByFrontDoorNext operation.
+ */
+export type HealthProbeSettingsListByFrontDoorNextResponse = HealthProbeSettingsListResult & {
+ /**
+ * 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: HealthProbeSettingsListResult;
+ };
+};
+
+/**
+ * Contains response data for the listByFrontDoor operation.
+ */
+export type LoadBalancingSettingsListByFrontDoorResponse = LoadBalancingSettingsListResult & {
+ /**
+ * 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: LoadBalancingSettingsListResult;
+ };
+};
+
+/**
+ * Contains response data for the get operation.
+ */
+export type LoadBalancingSettingsGetResponse = LoadBalancingSettingsModel & {
+ /**
+ * 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: LoadBalancingSettingsModel;
+ };
+};
+
+/**
+ * Contains response data for the createOrUpdate operation.
+ */
+export type LoadBalancingSettingsCreateOrUpdateResponse = LoadBalancingSettingsModel & {
+ /**
+ * 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: LoadBalancingSettingsModel;
+ };
+};
+
+/**
+ * Contains response data for the beginCreateOrUpdate operation.
+ */
+export type LoadBalancingSettingsBeginCreateOrUpdateResponse = LoadBalancingSettingsModel & {
+ /**
+ * 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: LoadBalancingSettingsModel;
+ };
+};
+
+/**
+ * Contains response data for the listByFrontDoorNext operation.
+ */
+export type LoadBalancingSettingsListByFrontDoorNextResponse = LoadBalancingSettingsListResult & {
+ /**
+ * 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: LoadBalancingSettingsListResult;
+ };
+};
+
+/**
+ * Contains response data for the listByFrontDoor operation.
+ */
+export type BackendPoolsListByFrontDoorResponse = BackendPoolListResult & {
+ /**
+ * 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: BackendPoolListResult;
+ };
+};
+
+/**
+ * Contains response data for the get operation.
+ */
+export type BackendPoolsGetResponse = BackendPool & {
+ /**
+ * 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: BackendPool;
+ };
+};
+
+/**
+ * Contains response data for the createOrUpdate operation.
+ */
+export type BackendPoolsCreateOrUpdateResponse = BackendPool & {
+ /**
+ * 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: BackendPool;
+ };
+};
+
+/**
+ * Contains response data for the beginCreateOrUpdate operation.
+ */
+export type BackendPoolsBeginCreateOrUpdateResponse = BackendPool & {
+ /**
+ * 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: BackendPool;
+ };
+};
+
+/**
+ * Contains response data for the listByFrontDoorNext operation.
+ */
+export type BackendPoolsListByFrontDoorNextResponse = BackendPoolListResult & {
+ /**
+ * 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: BackendPoolListResult;
+ };
+};
+
+/**
+ * Contains response data for the listByFrontDoor operation.
+ */
+export type FrontendEndpointsListByFrontDoorResponse = FrontendEndpointsListResult & {
+ /**
+ * 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: FrontendEndpointsListResult;
+ };
+};
+
+/**
+ * Contains response data for the get operation.
+ */
+export type FrontendEndpointsGetResponse = FrontendEndpoint & {
+ /**
+ * 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: FrontendEndpoint;
+ };
+};
+
+/**
+ * Contains response data for the createOrUpdate operation.
+ */
+export type FrontendEndpointsCreateOrUpdateResponse = FrontendEndpoint & {
+ /**
+ * 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: FrontendEndpoint;
+ };
+};
+
+/**
+ * Contains response data for the beginCreateOrUpdate operation.
+ */
+export type FrontendEndpointsBeginCreateOrUpdateResponse = FrontendEndpoint & {
+ /**
+ * 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: FrontendEndpoint;
+ };
+};
+
+/**
+ * Contains response data for the listByFrontDoorNext operation.
+ */
+export type FrontendEndpointsListByFrontDoorNextResponse = FrontendEndpointsListResult & {
+ /**
+ * 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: FrontendEndpointsListResult;
+ };
+};
+
+/**
+ * Contains response data for the list operation.
+ */
+export type PoliciesListResponse = WebApplicationFirewallPolicyList & {
+ /**
+ * 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: WebApplicationFirewallPolicyList;
+ };
+};
+
+/**
+ * Contains response data for the get operation.
+ */
+export type PoliciesGetResponse = WebApplicationFirewallPolicy & {
+ /**
+ * 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: WebApplicationFirewallPolicy;
+ };
+};
+
+/**
+ * Contains response data for the createOrUpdate operation.
+ */
+export type PoliciesCreateOrUpdateResponse = WebApplicationFirewallPolicy & {
+ /**
+ * 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: WebApplicationFirewallPolicy;
+ };
+};
+
+/**
+ * Contains response data for the beginCreateOrUpdate operation.
+ */
+export type PoliciesBeginCreateOrUpdateResponse = WebApplicationFirewallPolicy & {
+ /**
+ * 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: WebApplicationFirewallPolicy;
+ };
+};
+
+/**
+ * Contains response data for the listNext operation.
+ */
+export type PoliciesListNextResponse = WebApplicationFirewallPolicyList & {
+ /**
+ * 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: WebApplicationFirewallPolicyList;
+ };
+};
+
+/**
+ * Contains response data for the list operation.
+ */
+export type ManagedRuleSetsListResponse = ManagedRuleSetDefinitionList & {
+ /**
+ * 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: ManagedRuleSetDefinitionList;
+ };
+};
+
+/**
+ * Contains response data for the listNext operation.
+ */
+export type ManagedRuleSetsListNextResponse = ManagedRuleSetDefinitionList & {
+ /**
+ * 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: ManagedRuleSetDefinitionList;
+ };
+};
diff --git a/sdk/frontdoor/arm-frontdoor/lib/models/loadBalancingSettingsMappers.ts b/sdk/frontdoor/arm-frontdoor/lib/models/loadBalancingSettingsMappers.ts
new file mode 100644
index 000000000000..d588a25b8865
--- /dev/null
+++ b/sdk/frontdoor/arm-frontdoor/lib/models/loadBalancingSettingsMappers.ts
@@ -0,0 +1,47 @@
+/*
+ * 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 {
+ discriminators,
+ LoadBalancingSettingsListResult,
+ LoadBalancingSettingsModel,
+ SubResource,
+ BaseResource,
+ ErrorResponse,
+ RoutingRule,
+ RouteConfiguration,
+ HealthProbeSettingsModel,
+ BackendPool,
+ Backend,
+ FrontendEndpoint,
+ FrontendEndpointUpdateParametersWebApplicationFirewallPolicyLink,
+ CustomHttpsConfiguration,
+ KeyVaultCertificateSourceParametersVault,
+ ForwardingConfiguration,
+ CacheConfiguration,
+ RedirectConfiguration,
+ Resource,
+ WebApplicationFirewallPolicy,
+ PolicySettings,
+ CustomRuleList,
+ CustomRule,
+ MatchCondition,
+ ManagedRuleSetList,
+ ManagedRuleSet,
+ ManagedRuleGroupOverride,
+ ManagedRuleOverride,
+ FrontendEndpointLink,
+ ManagedRuleSetDefinition,
+ ManagedRuleGroupDefinition,
+ ManagedRuleDefinition,
+ FrontDoor,
+ BackendPoolsSettings
+} from "../models/mappers";
+
diff --git a/sdk/frontdoor/arm-frontdoor/lib/models/managedRuleSetsMappers.ts b/sdk/frontdoor/arm-frontdoor/lib/models/managedRuleSetsMappers.ts
new file mode 100644
index 000000000000..18a97a70c9af
--- /dev/null
+++ b/sdk/frontdoor/arm-frontdoor/lib/models/managedRuleSetsMappers.ts
@@ -0,0 +1,47 @@
+/*
+ * 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 {
+ discriminators,
+ ManagedRuleSetDefinitionList,
+ ManagedRuleSetDefinition,
+ Resource,
+ BaseResource,
+ ManagedRuleGroupDefinition,
+ ManagedRuleDefinition,
+ ErrorResponse,
+ FrontDoor,
+ RoutingRule,
+ SubResource,
+ RouteConfiguration,
+ LoadBalancingSettingsModel,
+ HealthProbeSettingsModel,
+ BackendPool,
+ Backend,
+ FrontendEndpoint,
+ FrontendEndpointUpdateParametersWebApplicationFirewallPolicyLink,
+ CustomHttpsConfiguration,
+ KeyVaultCertificateSourceParametersVault,
+ BackendPoolsSettings,
+ ForwardingConfiguration,
+ CacheConfiguration,
+ RedirectConfiguration,
+ WebApplicationFirewallPolicy,
+ PolicySettings,
+ CustomRuleList,
+ CustomRule,
+ MatchCondition,
+ ManagedRuleSetList,
+ ManagedRuleSet,
+ ManagedRuleGroupOverride,
+ ManagedRuleOverride,
+ FrontendEndpointLink
+} from "../models/mappers";
+
diff --git a/sdk/frontdoor/arm-frontdoor/lib/models/mappers.ts b/sdk/frontdoor/arm-frontdoor/lib/models/mappers.ts
new file mode 100644
index 000000000000..2ddfe23f83c3
--- /dev/null
+++ b/sdk/frontdoor/arm-frontdoor/lib/models/mappers.ts
@@ -0,0 +1,2071 @@
+/*
+ * 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 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"
+ }
+ },
+ location: {
+ serializedName: "location",
+ type: {
+ name: "String"
+ }
+ },
+ tags: {
+ serializedName: "tags",
+ type: {
+ name: "Dictionary",
+ value: {
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+ }
+ }
+};
+
+export const FrontDoor: msRest.CompositeMapper = {
+ serializedName: "FrontDoor",
+ type: {
+ name: "Composite",
+ className: "FrontDoor",
+ modelProperties: {
+ ...Resource.type.modelProperties,
+ friendlyName: {
+ serializedName: "properties.friendlyName",
+ type: {
+ name: "String"
+ }
+ },
+ routingRules: {
+ serializedName: "properties.routingRules",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "RoutingRule"
+ }
+ }
+ }
+ },
+ loadBalancingSettings: {
+ serializedName: "properties.loadBalancingSettings",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "LoadBalancingSettingsModel"
+ }
+ }
+ }
+ },
+ healthProbeSettings: {
+ serializedName: "properties.healthProbeSettings",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "HealthProbeSettingsModel"
+ }
+ }
+ }
+ },
+ backendPools: {
+ serializedName: "properties.backendPools",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "BackendPool"
+ }
+ }
+ }
+ },
+ frontendEndpoints: {
+ serializedName: "properties.frontendEndpoints",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "FrontendEndpoint"
+ }
+ }
+ }
+ },
+ backendPoolsSettings: {
+ serializedName: "properties.backendPoolsSettings",
+ type: {
+ name: "Composite",
+ className: "BackendPoolsSettings"
+ }
+ },
+ enabledState: {
+ serializedName: "properties.enabledState",
+ type: {
+ name: "String"
+ }
+ },
+ resourceState: {
+ serializedName: "properties.resourceState",
+ type: {
+ name: "String"
+ }
+ },
+ provisioningState: {
+ readOnly: true,
+ serializedName: "properties.provisioningState",
+ type: {
+ name: "String"
+ }
+ },
+ cname: {
+ readOnly: true,
+ serializedName: "properties.cname",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const SubResource: msRest.CompositeMapper = {
+ serializedName: "SubResource",
+ type: {
+ name: "Composite",
+ className: "SubResource",
+ modelProperties: {
+ id: {
+ serializedName: "id",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const RoutingRule: msRest.CompositeMapper = {
+ serializedName: "RoutingRule",
+ type: {
+ name: "Composite",
+ className: "RoutingRule",
+ modelProperties: {
+ ...SubResource.type.modelProperties,
+ frontendEndpoints: {
+ serializedName: "properties.frontendEndpoints",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "SubResource"
+ }
+ }
+ }
+ },
+ acceptedProtocols: {
+ serializedName: "properties.acceptedProtocols",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "String"
+ }
+ }
+ }
+ },
+ patternsToMatch: {
+ serializedName: "properties.patternsToMatch",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "String"
+ }
+ }
+ }
+ },
+ enabledState: {
+ serializedName: "properties.enabledState",
+ type: {
+ name: "String"
+ }
+ },
+ routeConfiguration: {
+ serializedName: "properties.routeConfiguration",
+ type: {
+ name: "Composite",
+ className: "RouteConfiguration"
+ }
+ },
+ resourceState: {
+ serializedName: "properties.resourceState",
+ type: {
+ name: "String"
+ }
+ },
+ name: {
+ serializedName: "name",
+ type: {
+ name: "String"
+ }
+ },
+ type: {
+ readOnly: true,
+ serializedName: "type",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const LoadBalancingSettingsModel: msRest.CompositeMapper = {
+ serializedName: "LoadBalancingSettingsModel",
+ type: {
+ name: "Composite",
+ className: "LoadBalancingSettingsModel",
+ modelProperties: {
+ ...SubResource.type.modelProperties,
+ sampleSize: {
+ serializedName: "properties.sampleSize",
+ type: {
+ name: "Number"
+ }
+ },
+ successfulSamplesRequired: {
+ serializedName: "properties.successfulSamplesRequired",
+ type: {
+ name: "Number"
+ }
+ },
+ additionalLatencyMilliseconds: {
+ serializedName: "properties.additionalLatencyMilliseconds",
+ type: {
+ name: "Number"
+ }
+ },
+ resourceState: {
+ serializedName: "properties.resourceState",
+ type: {
+ name: "String"
+ }
+ },
+ name: {
+ serializedName: "name",
+ type: {
+ name: "String"
+ }
+ },
+ type: {
+ readOnly: true,
+ serializedName: "type",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const HealthProbeSettingsModel: msRest.CompositeMapper = {
+ serializedName: "HealthProbeSettingsModel",
+ type: {
+ name: "Composite",
+ className: "HealthProbeSettingsModel",
+ modelProperties: {
+ ...SubResource.type.modelProperties,
+ path: {
+ serializedName: "properties.path",
+ type: {
+ name: "String"
+ }
+ },
+ protocol: {
+ serializedName: "properties.protocol",
+ type: {
+ name: "String"
+ }
+ },
+ intervalInSeconds: {
+ serializedName: "properties.intervalInSeconds",
+ type: {
+ name: "Number"
+ }
+ },
+ resourceState: {
+ serializedName: "properties.resourceState",
+ type: {
+ name: "String"
+ }
+ },
+ name: {
+ serializedName: "name",
+ type: {
+ name: "String"
+ }
+ },
+ type: {
+ readOnly: true,
+ serializedName: "type",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const BackendPool: msRest.CompositeMapper = {
+ serializedName: "BackendPool",
+ type: {
+ name: "Composite",
+ className: "BackendPool",
+ modelProperties: {
+ ...SubResource.type.modelProperties,
+ backends: {
+ serializedName: "properties.backends",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "Backend"
+ }
+ }
+ }
+ },
+ loadBalancingSettings: {
+ serializedName: "properties.loadBalancingSettings",
+ type: {
+ name: "Composite",
+ className: "SubResource"
+ }
+ },
+ healthProbeSettings: {
+ serializedName: "properties.healthProbeSettings",
+ type: {
+ name: "Composite",
+ className: "SubResource"
+ }
+ },
+ resourceState: {
+ serializedName: "properties.resourceState",
+ type: {
+ name: "String"
+ }
+ },
+ name: {
+ serializedName: "name",
+ type: {
+ name: "String"
+ }
+ },
+ type: {
+ readOnly: true,
+ serializedName: "type",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const KeyVaultCertificateSourceParametersVault: msRest.CompositeMapper = {
+ serializedName: "KeyVaultCertificateSourceParameters_vault",
+ type: {
+ name: "Composite",
+ className: "KeyVaultCertificateSourceParametersVault",
+ modelProperties: {
+ id: {
+ serializedName: "id",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const CustomHttpsConfiguration: msRest.CompositeMapper = {
+ serializedName: "CustomHttpsConfiguration",
+ type: {
+ name: "Composite",
+ className: "CustomHttpsConfiguration",
+ modelProperties: {
+ certificateSource: {
+ serializedName: "certificateSource",
+ type: {
+ name: "String"
+ }
+ },
+ protocolType: {
+ serializedName: "protocolType",
+ type: {
+ name: "String"
+ }
+ },
+ vault: {
+ serializedName: "keyVaultCertificateSourceParameters.vault",
+ type: {
+ name: "Composite",
+ className: "KeyVaultCertificateSourceParametersVault"
+ }
+ },
+ secretName: {
+ serializedName: "keyVaultCertificateSourceParameters.secretName",
+ type: {
+ name: "String"
+ }
+ },
+ secretVersion: {
+ serializedName: "keyVaultCertificateSourceParameters.secretVersion",
+ type: {
+ name: "String"
+ }
+ },
+ certificateType: {
+ serializedName: "frontDoorCertificateSourceParameters.certificateType",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const FrontendEndpoint: msRest.CompositeMapper = {
+ serializedName: "FrontendEndpoint",
+ type: {
+ name: "Composite",
+ className: "FrontendEndpoint",
+ modelProperties: {
+ ...SubResource.type.modelProperties,
+ hostName: {
+ serializedName: "properties.hostName",
+ type: {
+ name: "String"
+ }
+ },
+ sessionAffinityEnabledState: {
+ serializedName: "properties.sessionAffinityEnabledState",
+ type: {
+ name: "String"
+ }
+ },
+ sessionAffinityTtlSeconds: {
+ serializedName: "properties.sessionAffinityTtlSeconds",
+ type: {
+ name: "Number"
+ }
+ },
+ webApplicationFirewallPolicyLink: {
+ serializedName: "properties.webApplicationFirewallPolicyLink",
+ type: {
+ name: "Composite",
+ className: "FrontendEndpointUpdateParametersWebApplicationFirewallPolicyLink"
+ }
+ },
+ resourceState: {
+ serializedName: "properties.resourceState",
+ type: {
+ name: "String"
+ }
+ },
+ customHttpsProvisioningState: {
+ readOnly: true,
+ serializedName: "properties.customHttpsProvisioningState",
+ type: {
+ name: "String"
+ }
+ },
+ customHttpsProvisioningSubstate: {
+ readOnly: true,
+ serializedName: "properties.customHttpsProvisioningSubstate",
+ type: {
+ name: "String"
+ }
+ },
+ customHttpsConfiguration: {
+ readOnly: true,
+ serializedName: "properties.customHttpsConfiguration",
+ type: {
+ name: "Composite",
+ className: "CustomHttpsConfiguration"
+ }
+ },
+ name: {
+ serializedName: "name",
+ type: {
+ name: "String"
+ }
+ },
+ type: {
+ readOnly: true,
+ serializedName: "type",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const BackendPoolsSettings: msRest.CompositeMapper = {
+ serializedName: "BackendPoolsSettings",
+ type: {
+ name: "Composite",
+ className: "BackendPoolsSettings",
+ modelProperties: {
+ enforceCertificateNameCheck: {
+ serializedName: "enforceCertificateNameCheck",
+ defaultValue: 'Enabled',
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const FrontDoorUpdateParameters: msRest.CompositeMapper = {
+ serializedName: "FrontDoorUpdateParameters",
+ type: {
+ name: "Composite",
+ className: "FrontDoorUpdateParameters",
+ modelProperties: {
+ friendlyName: {
+ serializedName: "friendlyName",
+ type: {
+ name: "String"
+ }
+ },
+ routingRules: {
+ serializedName: "routingRules",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "RoutingRule"
+ }
+ }
+ }
+ },
+ loadBalancingSettings: {
+ serializedName: "loadBalancingSettings",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "LoadBalancingSettingsModel"
+ }
+ }
+ }
+ },
+ healthProbeSettings: {
+ serializedName: "healthProbeSettings",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "HealthProbeSettingsModel"
+ }
+ }
+ }
+ },
+ backendPools: {
+ serializedName: "backendPools",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "BackendPool"
+ }
+ }
+ }
+ },
+ frontendEndpoints: {
+ serializedName: "frontendEndpoints",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "FrontendEndpoint"
+ }
+ }
+ }
+ },
+ backendPoolsSettings: {
+ serializedName: "backendPoolsSettings",
+ type: {
+ name: "Composite",
+ className: "BackendPoolsSettings"
+ }
+ },
+ enabledState: {
+ serializedName: "enabledState",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const PurgeParameters: msRest.CompositeMapper = {
+ serializedName: "PurgeParameters",
+ type: {
+ name: "Composite",
+ className: "PurgeParameters",
+ modelProperties: {
+ contentPaths: {
+ required: true,
+ serializedName: "contentPaths",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+ }
+ }
+};
+
+export const RouteConfiguration: msRest.CompositeMapper = {
+ serializedName: "RouteConfiguration",
+ type: {
+ name: "Composite",
+ polymorphicDiscriminator: {
+ serializedName: "@odata.type",
+ clientName: "odatatype"
+ },
+ uberParent: "RouteConfiguration",
+ className: "RouteConfiguration",
+ modelProperties: {
+ odatatype: {
+ required: true,
+ serializedName: "@odata\\.type",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const RoutingRuleUpdateParameters: msRest.CompositeMapper = {
+ serializedName: "RoutingRuleUpdateParameters",
+ type: {
+ name: "Composite",
+ className: "RoutingRuleUpdateParameters",
+ modelProperties: {
+ frontendEndpoints: {
+ serializedName: "frontendEndpoints",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "SubResource"
+ }
+ }
+ }
+ },
+ acceptedProtocols: {
+ serializedName: "acceptedProtocols",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "String"
+ }
+ }
+ }
+ },
+ patternsToMatch: {
+ serializedName: "patternsToMatch",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "String"
+ }
+ }
+ }
+ },
+ enabledState: {
+ serializedName: "enabledState",
+ type: {
+ name: "String"
+ }
+ },
+ routeConfiguration: {
+ serializedName: "routeConfiguration",
+ type: {
+ name: "Composite",
+ className: "RouteConfiguration"
+ }
+ }
+ }
+ }
+};
+
+export const CacheConfiguration: msRest.CompositeMapper = {
+ serializedName: "CacheConfiguration",
+ type: {
+ name: "Composite",
+ className: "CacheConfiguration",
+ modelProperties: {
+ queryParameterStripDirective: {
+ serializedName: "queryParameterStripDirective",
+ type: {
+ name: "String"
+ }
+ },
+ dynamicCompression: {
+ serializedName: "dynamicCompression",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const ForwardingConfiguration: msRest.CompositeMapper = {
+ serializedName: "#Microsoft.Azure.FrontDoor.Models.FrontdoorForwardingConfiguration",
+ type: {
+ name: "Composite",
+ polymorphicDiscriminator: RouteConfiguration.type.polymorphicDiscriminator,
+ uberParent: "RouteConfiguration",
+ className: "ForwardingConfiguration",
+ modelProperties: {
+ ...RouteConfiguration.type.modelProperties,
+ customForwardingPath: {
+ serializedName: "customForwardingPath",
+ type: {
+ name: "String"
+ }
+ },
+ forwardingProtocol: {
+ serializedName: "forwardingProtocol",
+ type: {
+ name: "String"
+ }
+ },
+ cacheConfiguration: {
+ serializedName: "cacheConfiguration",
+ type: {
+ name: "Composite",
+ className: "CacheConfiguration"
+ }
+ },
+ backendPool: {
+ serializedName: "backendPool",
+ type: {
+ name: "Composite",
+ className: "SubResource"
+ }
+ }
+ }
+ }
+};
+
+export const RedirectConfiguration: msRest.CompositeMapper = {
+ serializedName: "#Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration",
+ type: {
+ name: "Composite",
+ polymorphicDiscriminator: RouteConfiguration.type.polymorphicDiscriminator,
+ uberParent: "RouteConfiguration",
+ className: "RedirectConfiguration",
+ modelProperties: {
+ ...RouteConfiguration.type.modelProperties,
+ redirectType: {
+ serializedName: "redirectType",
+ type: {
+ name: "String"
+ }
+ },
+ redirectProtocol: {
+ serializedName: "redirectProtocol",
+ type: {
+ name: "String"
+ }
+ },
+ customHost: {
+ serializedName: "customHost",
+ type: {
+ name: "String"
+ }
+ },
+ customPath: {
+ serializedName: "customPath",
+ type: {
+ name: "String"
+ }
+ },
+ customFragment: {
+ serializedName: "customFragment",
+ type: {
+ name: "String"
+ }
+ },
+ customQueryString: {
+ serializedName: "customQueryString",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const Backend: msRest.CompositeMapper = {
+ serializedName: "Backend",
+ type: {
+ name: "Composite",
+ className: "Backend",
+ modelProperties: {
+ address: {
+ serializedName: "address",
+ type: {
+ name: "String"
+ }
+ },
+ httpPort: {
+ serializedName: "httpPort",
+ constraints: {
+ InclusiveMaximum: 65535,
+ InclusiveMinimum: 1
+ },
+ type: {
+ name: "Number"
+ }
+ },
+ httpsPort: {
+ serializedName: "httpsPort",
+ constraints: {
+ InclusiveMaximum: 65535,
+ InclusiveMinimum: 1
+ },
+ type: {
+ name: "Number"
+ }
+ },
+ enabledState: {
+ serializedName: "enabledState",
+ type: {
+ name: "String"
+ }
+ },
+ priority: {
+ serializedName: "priority",
+ constraints: {
+ InclusiveMaximum: 5,
+ InclusiveMinimum: 1
+ },
+ type: {
+ name: "Number"
+ }
+ },
+ weight: {
+ serializedName: "weight",
+ constraints: {
+ InclusiveMaximum: 1000,
+ InclusiveMinimum: 1
+ },
+ type: {
+ name: "Number"
+ }
+ },
+ backendHostHeader: {
+ serializedName: "backendHostHeader",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const LoadBalancingSettingsUpdateParameters: msRest.CompositeMapper = {
+ serializedName: "LoadBalancingSettingsUpdateParameters",
+ type: {
+ name: "Composite",
+ className: "LoadBalancingSettingsUpdateParameters",
+ modelProperties: {
+ sampleSize: {
+ serializedName: "sampleSize",
+ type: {
+ name: "Number"
+ }
+ },
+ successfulSamplesRequired: {
+ serializedName: "successfulSamplesRequired",
+ type: {
+ name: "Number"
+ }
+ },
+ additionalLatencyMilliseconds: {
+ serializedName: "additionalLatencyMilliseconds",
+ type: {
+ name: "Number"
+ }
+ }
+ }
+ }
+};
+
+export const HealthProbeSettingsUpdateParameters: msRest.CompositeMapper = {
+ serializedName: "HealthProbeSettingsUpdateParameters",
+ type: {
+ name: "Composite",
+ className: "HealthProbeSettingsUpdateParameters",
+ modelProperties: {
+ path: {
+ serializedName: "path",
+ type: {
+ name: "String"
+ }
+ },
+ protocol: {
+ serializedName: "protocol",
+ type: {
+ name: "String"
+ }
+ },
+ intervalInSeconds: {
+ serializedName: "intervalInSeconds",
+ type: {
+ name: "Number"
+ }
+ }
+ }
+ }
+};
+
+export const BackendPoolUpdateParameters: msRest.CompositeMapper = {
+ serializedName: "BackendPoolUpdateParameters",
+ type: {
+ name: "Composite",
+ className: "BackendPoolUpdateParameters",
+ modelProperties: {
+ backends: {
+ serializedName: "backends",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "Backend"
+ }
+ }
+ }
+ },
+ loadBalancingSettings: {
+ serializedName: "loadBalancingSettings",
+ type: {
+ name: "Composite",
+ className: "SubResource"
+ }
+ },
+ healthProbeSettings: {
+ serializedName: "healthProbeSettings",
+ type: {
+ name: "Composite",
+ className: "SubResource"
+ }
+ }
+ }
+ }
+};
+
+export const FrontendEndpointUpdateParametersWebApplicationFirewallPolicyLink: msRest.CompositeMapper = {
+ serializedName: "FrontendEndpointUpdateParameters_webApplicationFirewallPolicyLink",
+ type: {
+ name: "Composite",
+ className: "FrontendEndpointUpdateParametersWebApplicationFirewallPolicyLink",
+ modelProperties: {
+ id: {
+ serializedName: "id",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const FrontendEndpointUpdateParameters: msRest.CompositeMapper = {
+ serializedName: "FrontendEndpointUpdateParameters",
+ type: {
+ name: "Composite",
+ className: "FrontendEndpointUpdateParameters",
+ modelProperties: {
+ hostName: {
+ serializedName: "hostName",
+ type: {
+ name: "String"
+ }
+ },
+ sessionAffinityEnabledState: {
+ serializedName: "sessionAffinityEnabledState",
+ type: {
+ name: "String"
+ }
+ },
+ sessionAffinityTtlSeconds: {
+ serializedName: "sessionAffinityTtlSeconds",
+ type: {
+ name: "Number"
+ }
+ },
+ webApplicationFirewallPolicyLink: {
+ serializedName: "webApplicationFirewallPolicyLink",
+ type: {
+ name: "Composite",
+ className: "FrontendEndpointUpdateParametersWebApplicationFirewallPolicyLink"
+ }
+ }
+ }
+ }
+};
+
+export const ValidateCustomDomainInput: msRest.CompositeMapper = {
+ serializedName: "ValidateCustomDomainInput",
+ type: {
+ name: "Composite",
+ className: "ValidateCustomDomainInput",
+ modelProperties: {
+ hostName: {
+ required: true,
+ serializedName: "hostName",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const ValidateCustomDomainOutput: msRest.CompositeMapper = {
+ serializedName: "ValidateCustomDomainOutput",
+ type: {
+ name: "Composite",
+ className: "ValidateCustomDomainOutput",
+ modelProperties: {
+ customDomainValidated: {
+ readOnly: true,
+ serializedName: "customDomainValidated",
+ type: {
+ name: "Boolean"
+ }
+ },
+ reason: {
+ readOnly: true,
+ serializedName: "reason",
+ type: {
+ name: "String"
+ }
+ },
+ message: {
+ readOnly: true,
+ serializedName: "message",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const ErrorResponse: msRest.CompositeMapper = {
+ serializedName: "ErrorResponse",
+ type: {
+ name: "Composite",
+ className: "ErrorResponse",
+ modelProperties: {
+ code: {
+ readOnly: true,
+ serializedName: "code",
+ type: {
+ name: "String"
+ }
+ },
+ message: {
+ readOnly: true,
+ serializedName: "message",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const CheckNameAvailabilityInput: msRest.CompositeMapper = {
+ serializedName: "CheckNameAvailabilityInput",
+ type: {
+ name: "Composite",
+ className: "CheckNameAvailabilityInput",
+ modelProperties: {
+ name: {
+ required: true,
+ serializedName: "name",
+ type: {
+ name: "String"
+ }
+ },
+ type: {
+ required: true,
+ serializedName: "type",
+ type: {
+ name: "Enum",
+ allowedValues: [
+ "Microsoft.Network/frontDoors",
+ "Microsoft.Network/frontDoors/frontendEndpoints"
+ ]
+ }
+ }
+ }
+ }
+};
+
+export const CheckNameAvailabilityOutput: msRest.CompositeMapper = {
+ serializedName: "CheckNameAvailabilityOutput",
+ type: {
+ name: "Composite",
+ className: "CheckNameAvailabilityOutput",
+ modelProperties: {
+ nameAvailability: {
+ readOnly: true,
+ serializedName: "nameAvailability",
+ type: {
+ name: "String"
+ }
+ },
+ reason: {
+ readOnly: true,
+ serializedName: "reason",
+ type: {
+ name: "String"
+ }
+ },
+ message: {
+ readOnly: true,
+ serializedName: "message",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const ErrorDetails: msRest.CompositeMapper = {
+ serializedName: "ErrorDetails",
+ type: {
+ name: "Composite",
+ className: "ErrorDetails",
+ modelProperties: {
+ code: {
+ serializedName: "code",
+ type: {
+ name: "String"
+ }
+ },
+ target: {
+ serializedName: "target",
+ type: {
+ name: "String"
+ }
+ },
+ message: {
+ serializedName: "message",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const ErrorModel: msRest.CompositeMapper = {
+ serializedName: "Error",
+ type: {
+ name: "Composite",
+ className: "ErrorModel",
+ modelProperties: {
+ code: {
+ serializedName: "code",
+ type: {
+ name: "String"
+ }
+ },
+ message: {
+ serializedName: "message",
+ type: {
+ name: "String"
+ }
+ },
+ target: {
+ serializedName: "target",
+ type: {
+ name: "String"
+ }
+ },
+ details: {
+ serializedName: "details",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "ErrorDetails"
+ }
+ }
+ }
+ },
+ innerError: {
+ serializedName: "innerError",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const AzureAsyncOperationResult: msRest.CompositeMapper = {
+ serializedName: "AzureAsyncOperationResult",
+ type: {
+ name: "Composite",
+ className: "AzureAsyncOperationResult",
+ modelProperties: {
+ status: {
+ serializedName: "status",
+ type: {
+ name: "String"
+ }
+ },
+ error: {
+ serializedName: "error",
+ type: {
+ name: "Composite",
+ className: "ErrorModel"
+ }
+ }
+ }
+ }
+};
+
+export const TagsObject: msRest.CompositeMapper = {
+ serializedName: "TagsObject",
+ type: {
+ name: "Composite",
+ className: "TagsObject",
+ modelProperties: {
+ tags: {
+ serializedName: "tags",
+ type: {
+ name: "Dictionary",
+ value: {
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+ }
+ }
+};
+
+export const PolicySettings: msRest.CompositeMapper = {
+ serializedName: "PolicySettings",
+ type: {
+ name: "Composite",
+ className: "PolicySettings",
+ modelProperties: {
+ enabledState: {
+ serializedName: "enabledState",
+ type: {
+ name: "String"
+ }
+ },
+ mode: {
+ serializedName: "mode",
+ type: {
+ name: "String"
+ }
+ },
+ redirectUrl: {
+ serializedName: "redirectUrl",
+ type: {
+ name: "String"
+ }
+ },
+ customBlockResponseStatusCode: {
+ serializedName: "customBlockResponseStatusCode",
+ type: {
+ name: "Number"
+ }
+ },
+ customBlockResponseBody: {
+ serializedName: "customBlockResponseBody",
+ constraints: {
+ Pattern: /^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=|[A-Za-z0-9+\/]{4})$/
+ },
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const MatchCondition: msRest.CompositeMapper = {
+ serializedName: "MatchCondition",
+ type: {
+ name: "Composite",
+ className: "MatchCondition",
+ modelProperties: {
+ matchVariable: {
+ required: true,
+ serializedName: "matchVariable",
+ type: {
+ name: "String"
+ }
+ },
+ selector: {
+ serializedName: "selector",
+ type: {
+ name: "String"
+ }
+ },
+ operator: {
+ required: true,
+ serializedName: "operator",
+ type: {
+ name: "String"
+ }
+ },
+ negateCondition: {
+ serializedName: "negateCondition",
+ type: {
+ name: "Boolean"
+ }
+ },
+ matchValue: {
+ required: true,
+ serializedName: "matchValue",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "String"
+ }
+ }
+ }
+ },
+ transforms: {
+ serializedName: "transforms",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+ }
+ }
+};
+
+export const CustomRule: msRest.CompositeMapper = {
+ serializedName: "CustomRule",
+ type: {
+ name: "Composite",
+ className: "CustomRule",
+ modelProperties: {
+ name: {
+ serializedName: "name",
+ constraints: {
+ MaxLength: 128
+ },
+ type: {
+ name: "String"
+ }
+ },
+ priority: {
+ required: true,
+ serializedName: "priority",
+ type: {
+ name: "Number"
+ }
+ },
+ enabledState: {
+ serializedName: "enabledState",
+ type: {
+ name: "String"
+ }
+ },
+ ruleType: {
+ required: true,
+ serializedName: "ruleType",
+ type: {
+ name: "String"
+ }
+ },
+ rateLimitDurationInMinutes: {
+ serializedName: "rateLimitDurationInMinutes",
+ type: {
+ name: "Number"
+ }
+ },
+ rateLimitThreshold: {
+ serializedName: "rateLimitThreshold",
+ type: {
+ name: "Number"
+ }
+ },
+ matchConditions: {
+ required: true,
+ serializedName: "matchConditions",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "MatchCondition"
+ }
+ }
+ }
+ },
+ action: {
+ required: true,
+ serializedName: "action",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const CustomRuleList: msRest.CompositeMapper = {
+ serializedName: "CustomRuleList",
+ type: {
+ name: "Composite",
+ className: "CustomRuleList",
+ modelProperties: {
+ rules: {
+ serializedName: "rules",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "CustomRule"
+ }
+ }
+ }
+ }
+ }
+ }
+};
+
+export const ManagedRuleOverride: msRest.CompositeMapper = {
+ serializedName: "ManagedRuleOverride",
+ type: {
+ name: "Composite",
+ className: "ManagedRuleOverride",
+ modelProperties: {
+ ruleId: {
+ required: true,
+ serializedName: "ruleId",
+ type: {
+ name: "String"
+ }
+ },
+ enabledState: {
+ serializedName: "enabledState",
+ type: {
+ name: "String"
+ }
+ },
+ action: {
+ serializedName: "action",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const ManagedRuleGroupOverride: msRest.CompositeMapper = {
+ serializedName: "ManagedRuleGroupOverride",
+ type: {
+ name: "Composite",
+ className: "ManagedRuleGroupOverride",
+ modelProperties: {
+ ruleGroupName: {
+ required: true,
+ serializedName: "ruleGroupName",
+ type: {
+ name: "String"
+ }
+ },
+ rules: {
+ serializedName: "rules",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "ManagedRuleOverride"
+ }
+ }
+ }
+ }
+ }
+ }
+};
+
+export const ManagedRuleSet: msRest.CompositeMapper = {
+ serializedName: "ManagedRuleSet",
+ type: {
+ name: "Composite",
+ className: "ManagedRuleSet",
+ modelProperties: {
+ ruleSetType: {
+ required: true,
+ serializedName: "ruleSetType",
+ type: {
+ name: "String"
+ }
+ },
+ ruleSetVersion: {
+ required: true,
+ serializedName: "ruleSetVersion",
+ type: {
+ name: "String"
+ }
+ },
+ ruleGroupOverrides: {
+ serializedName: "ruleGroupOverrides",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "ManagedRuleGroupOverride"
+ }
+ }
+ }
+ }
+ }
+ }
+};
+
+export const ManagedRuleSetList: msRest.CompositeMapper = {
+ serializedName: "ManagedRuleSetList",
+ type: {
+ name: "Composite",
+ className: "ManagedRuleSetList",
+ modelProperties: {
+ managedRuleSets: {
+ serializedName: "managedRuleSets",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "ManagedRuleSet"
+ }
+ }
+ }
+ }
+ }
+ }
+};
+
+export const FrontendEndpointLink: msRest.CompositeMapper = {
+ serializedName: "FrontendEndpointLink",
+ type: {
+ name: "Composite",
+ className: "FrontendEndpointLink",
+ modelProperties: {
+ id: {
+ serializedName: "id",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const WebApplicationFirewallPolicy: msRest.CompositeMapper = {
+ serializedName: "WebApplicationFirewallPolicy",
+ type: {
+ name: "Composite",
+ className: "WebApplicationFirewallPolicy",
+ modelProperties: {
+ ...Resource.type.modelProperties,
+ policySettings: {
+ serializedName: "properties.policySettings",
+ type: {
+ name: "Composite",
+ className: "PolicySettings"
+ }
+ },
+ customRules: {
+ serializedName: "properties.customRules",
+ type: {
+ name: "Composite",
+ className: "CustomRuleList"
+ }
+ },
+ managedRules: {
+ serializedName: "properties.managedRules",
+ type: {
+ name: "Composite",
+ className: "ManagedRuleSetList"
+ }
+ },
+ frontendEndpointLinks: {
+ readOnly: true,
+ serializedName: "properties.frontendEndpointLinks",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "FrontendEndpointLink"
+ }
+ }
+ }
+ },
+ provisioningState: {
+ readOnly: true,
+ serializedName: "properties.provisioningState",
+ type: {
+ name: "String"
+ }
+ },
+ resourceState: {
+ readOnly: true,
+ serializedName: "properties.resourceState",
+ type: {
+ name: "String"
+ }
+ },
+ etag: {
+ serializedName: "etag",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const ManagedRuleDefinition: msRest.CompositeMapper = {
+ serializedName: "ManagedRuleDefinition",
+ type: {
+ name: "Composite",
+ className: "ManagedRuleDefinition",
+ modelProperties: {
+ ruleId: {
+ readOnly: true,
+ serializedName: "ruleId",
+ type: {
+ name: "String"
+ }
+ },
+ description: {
+ readOnly: true,
+ serializedName: "description",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const ManagedRuleGroupDefinition: msRest.CompositeMapper = {
+ serializedName: "ManagedRuleGroupDefinition",
+ type: {
+ name: "Composite",
+ className: "ManagedRuleGroupDefinition",
+ modelProperties: {
+ ruleGroupName: {
+ readOnly: true,
+ serializedName: "ruleGroupName",
+ type: {
+ name: "String"
+ }
+ },
+ description: {
+ readOnly: true,
+ serializedName: "description",
+ type: {
+ name: "String"
+ }
+ },
+ rules: {
+ readOnly: true,
+ serializedName: "rules",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "ManagedRuleDefinition"
+ }
+ }
+ }
+ }
+ }
+ }
+};
+
+export const ManagedRuleSetDefinition: msRest.CompositeMapper = {
+ serializedName: "ManagedRuleSetDefinition",
+ type: {
+ name: "Composite",
+ className: "ManagedRuleSetDefinition",
+ modelProperties: {
+ ...Resource.type.modelProperties,
+ provisioningState: {
+ readOnly: true,
+ serializedName: "properties.provisioningState",
+ type: {
+ name: "String"
+ }
+ },
+ ruleSetType: {
+ readOnly: true,
+ serializedName: "properties.ruleSetType",
+ type: {
+ name: "String"
+ }
+ },
+ ruleSetVersion: {
+ readOnly: true,
+ serializedName: "properties.ruleSetVersion",
+ type: {
+ name: "String"
+ }
+ },
+ ruleGroups: {
+ readOnly: true,
+ serializedName: "properties.ruleGroups",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "ManagedRuleGroupDefinition"
+ }
+ }
+ }
+ }
+ }
+ }
+};
+
+export const FrontDoorListResult: msRest.CompositeMapper = {
+ serializedName: "FrontDoorListResult",
+ type: {
+ name: "Composite",
+ className: "FrontDoorListResult",
+ modelProperties: {
+ value: {
+ readOnly: true,
+ serializedName: "",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "FrontDoor"
+ }
+ }
+ }
+ },
+ nextLink: {
+ serializedName: "nextLink",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const RoutingRuleListResult: msRest.CompositeMapper = {
+ serializedName: "RoutingRuleListResult",
+ type: {
+ name: "Composite",
+ className: "RoutingRuleListResult",
+ modelProperties: {
+ value: {
+ readOnly: true,
+ serializedName: "",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "RoutingRule"
+ }
+ }
+ }
+ },
+ nextLink: {
+ serializedName: "nextLink",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const HealthProbeSettingsListResult: msRest.CompositeMapper = {
+ serializedName: "HealthProbeSettingsListResult",
+ type: {
+ name: "Composite",
+ className: "HealthProbeSettingsListResult",
+ modelProperties: {
+ value: {
+ readOnly: true,
+ serializedName: "",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "HealthProbeSettingsModel"
+ }
+ }
+ }
+ },
+ nextLink: {
+ serializedName: "nextLink",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const LoadBalancingSettingsListResult: msRest.CompositeMapper = {
+ serializedName: "LoadBalancingSettingsListResult",
+ type: {
+ name: "Composite",
+ className: "LoadBalancingSettingsListResult",
+ modelProperties: {
+ value: {
+ readOnly: true,
+ serializedName: "",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "LoadBalancingSettingsModel"
+ }
+ }
+ }
+ },
+ nextLink: {
+ serializedName: "nextLink",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const BackendPoolListResult: msRest.CompositeMapper = {
+ serializedName: "BackendPoolListResult",
+ type: {
+ name: "Composite",
+ className: "BackendPoolListResult",
+ modelProperties: {
+ value: {
+ readOnly: true,
+ serializedName: "",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "BackendPool"
+ }
+ }
+ }
+ },
+ nextLink: {
+ serializedName: "nextLink",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const FrontendEndpointsListResult: msRest.CompositeMapper = {
+ serializedName: "FrontendEndpointsListResult",
+ type: {
+ name: "Composite",
+ className: "FrontendEndpointsListResult",
+ modelProperties: {
+ value: {
+ readOnly: true,
+ serializedName: "",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "FrontendEndpoint"
+ }
+ }
+ }
+ },
+ nextLink: {
+ serializedName: "nextLink",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const WebApplicationFirewallPolicyList: msRest.CompositeMapper = {
+ serializedName: "WebApplicationFirewallPolicyList",
+ type: {
+ name: "Composite",
+ className: "WebApplicationFirewallPolicyList",
+ modelProperties: {
+ value: {
+ readOnly: true,
+ serializedName: "",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "WebApplicationFirewallPolicy"
+ }
+ }
+ }
+ },
+ nextLink: {
+ serializedName: "nextLink",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const ManagedRuleSetDefinitionList: msRest.CompositeMapper = {
+ serializedName: "ManagedRuleSetDefinitionList",
+ type: {
+ name: "Composite",
+ className: "ManagedRuleSetDefinitionList",
+ modelProperties: {
+ value: {
+ readOnly: true,
+ serializedName: "",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "ManagedRuleSetDefinition"
+ }
+ }
+ }
+ },
+ nextLink: {
+ serializedName: "nextLink",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const discriminators = {
+ 'RouteConfiguration' : RouteConfiguration,
+ 'RouteConfiguration.#Microsoft.Azure.FrontDoor.Models.FrontdoorForwardingConfiguration' : ForwardingConfiguration,
+ 'RouteConfiguration.#Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration' : RedirectConfiguration
+};
diff --git a/sdk/frontdoor/arm-frontdoor/lib/models/parameters.ts b/sdk/frontdoor/arm-frontdoor/lib/models/parameters.ts
new file mode 100644
index 000000000000..dc7c5bec48df
--- /dev/null
+++ b/sdk/frontdoor/arm-frontdoor/lib/models/parameters.ts
@@ -0,0 +1,185 @@
+/*
+ * 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 apiVersion0: msRest.OperationQueryParameter = {
+ parameterPath: "apiVersion",
+ mapper: {
+ required: true,
+ isConstant: true,
+ serializedName: "api-version",
+ defaultValue: '2019-04-01',
+ type: {
+ name: "String"
+ }
+ }
+};
+export const apiVersion1: msRest.OperationQueryParameter = {
+ parameterPath: "apiVersion",
+ mapper: {
+ required: true,
+ isConstant: true,
+ serializedName: "api-version",
+ defaultValue: '2019-03-01',
+ type: {
+ name: "String"
+ }
+ }
+};
+export const backendPoolName: msRest.OperationURLParameter = {
+ parameterPath: "backendPoolName",
+ mapper: {
+ required: true,
+ serializedName: "backendPoolName",
+ constraints: {
+ MaxLength: 90,
+ MinLength: 1,
+ Pattern: /^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$/
+ },
+ type: {
+ name: "String"
+ }
+ }
+};
+export const frontDoorName: msRest.OperationURLParameter = {
+ parameterPath: "frontDoorName",
+ mapper: {
+ required: true,
+ serializedName: "frontDoorName",
+ constraints: {
+ MaxLength: 64,
+ MinLength: 5,
+ Pattern: /^[a-zA-Z0-9]+([-a-zA-Z0-9]?[a-zA-Z0-9])*$/
+ },
+ type: {
+ name: "String"
+ }
+ }
+};
+export const frontendEndpointName: msRest.OperationURLParameter = {
+ parameterPath: "frontendEndpointName",
+ mapper: {
+ required: true,
+ serializedName: "frontendEndpointName",
+ constraints: {
+ MaxLength: 255,
+ MinLength: 1,
+ Pattern: /^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$/
+ },
+ type: {
+ name: "String"
+ }
+ }
+};
+export const healthProbeSettingsName: msRest.OperationURLParameter = {
+ parameterPath: "healthProbeSettingsName",
+ mapper: {
+ required: true,
+ serializedName: "healthProbeSettingsName",
+ constraints: {
+ MaxLength: 90,
+ MinLength: 1,
+ Pattern: /^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$/
+ },
+ type: {
+ name: "String"
+ }
+ }
+};
+export const loadBalancingSettingsName: msRest.OperationURLParameter = {
+ parameterPath: "loadBalancingSettingsName",
+ mapper: {
+ required: true,
+ serializedName: "loadBalancingSettingsName",
+ constraints: {
+ MaxLength: 90,
+ MinLength: 1,
+ Pattern: /^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$/
+ },
+ type: {
+ name: "String"
+ }
+ }
+};
+export const nextPageLink: msRest.OperationURLParameter = {
+ parameterPath: "nextPageLink",
+ mapper: {
+ required: true,
+ serializedName: "nextLink",
+ type: {
+ name: "String"
+ }
+ },
+ skipEncoding: true
+};
+export const policyName: msRest.OperationURLParameter = {
+ parameterPath: "policyName",
+ mapper: {
+ required: true,
+ serializedName: "policyName",
+ constraints: {
+ MaxLength: 128
+ },
+ type: {
+ name: "String"
+ }
+ }
+};
+export const resourceGroupName: msRest.OperationURLParameter = {
+ parameterPath: "resourceGroupName",
+ mapper: {
+ required: true,
+ serializedName: "resourceGroupName",
+ constraints: {
+ MaxLength: 80,
+ MinLength: 1,
+ Pattern: /^[a-zA-Z0-9_\-\(\)\.]*[^\.]$/
+ },
+ type: {
+ name: "String"
+ }
+ }
+};
+export const routingRuleName: msRest.OperationURLParameter = {
+ parameterPath: "routingRuleName",
+ mapper: {
+ required: true,
+ serializedName: "routingRuleName",
+ constraints: {
+ MaxLength: 90,
+ MinLength: 1,
+ Pattern: /^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$/
+ },
+ type: {
+ name: "String"
+ }
+ }
+};
+export const subscriptionId: msRest.OperationURLParameter = {
+ parameterPath: "subscriptionId",
+ mapper: {
+ required: true,
+ serializedName: "subscriptionId",
+ type: {
+ name: "String"
+ }
+ }
+};
diff --git a/sdk/frontdoor/arm-frontdoor/lib/models/policiesMappers.ts b/sdk/frontdoor/arm-frontdoor/lib/models/policiesMappers.ts
new file mode 100644
index 000000000000..3b8194aefe1b
--- /dev/null
+++ b/sdk/frontdoor/arm-frontdoor/lib/models/policiesMappers.ts
@@ -0,0 +1,48 @@
+/*
+ * 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 {
+ discriminators,
+ WebApplicationFirewallPolicyList,
+ WebApplicationFirewallPolicy,
+ Resource,
+ BaseResource,
+ PolicySettings,
+ CustomRuleList,
+ CustomRule,
+ MatchCondition,
+ ManagedRuleSetList,
+ ManagedRuleSet,
+ ManagedRuleGroupOverride,
+ ManagedRuleOverride,
+ FrontendEndpointLink,
+ ErrorResponse,
+ CloudError,
+ FrontDoor,
+ RoutingRule,
+ SubResource,
+ RouteConfiguration,
+ LoadBalancingSettingsModel,
+ HealthProbeSettingsModel,
+ BackendPool,
+ Backend,
+ FrontendEndpoint,
+ FrontendEndpointUpdateParametersWebApplicationFirewallPolicyLink,
+ CustomHttpsConfiguration,
+ KeyVaultCertificateSourceParametersVault,
+ BackendPoolsSettings,
+ ForwardingConfiguration,
+ CacheConfiguration,
+ RedirectConfiguration,
+ ManagedRuleSetDefinition,
+ ManagedRuleGroupDefinition,
+ ManagedRuleDefinition
+} from "../models/mappers";
+
diff --git a/sdk/frontdoor/arm-frontdoor/lib/models/routingRulesMappers.ts b/sdk/frontdoor/arm-frontdoor/lib/models/routingRulesMappers.ts
new file mode 100644
index 000000000000..9d949c86b868
--- /dev/null
+++ b/sdk/frontdoor/arm-frontdoor/lib/models/routingRulesMappers.ts
@@ -0,0 +1,47 @@
+/*
+ * 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 {
+ discriminators,
+ RoutingRuleListResult,
+ RoutingRule,
+ SubResource,
+ BaseResource,
+ RouteConfiguration,
+ ErrorResponse,
+ LoadBalancingSettingsModel,
+ HealthProbeSettingsModel,
+ BackendPool,
+ Backend,
+ FrontendEndpoint,
+ FrontendEndpointUpdateParametersWebApplicationFirewallPolicyLink,
+ CustomHttpsConfiguration,
+ KeyVaultCertificateSourceParametersVault,
+ ForwardingConfiguration,
+ CacheConfiguration,
+ RedirectConfiguration,
+ Resource,
+ WebApplicationFirewallPolicy,
+ PolicySettings,
+ CustomRuleList,
+ CustomRule,
+ MatchCondition,
+ ManagedRuleSetList,
+ ManagedRuleSet,
+ ManagedRuleGroupOverride,
+ ManagedRuleOverride,
+ FrontendEndpointLink,
+ ManagedRuleSetDefinition,
+ ManagedRuleGroupDefinition,
+ ManagedRuleDefinition,
+ FrontDoor,
+ BackendPoolsSettings
+} from "../models/mappers";
+
diff --git a/sdk/frontdoor/arm-frontdoor/lib/operations/backendPools.ts b/sdk/frontdoor/arm-frontdoor/lib/operations/backendPools.ts
new file mode 100644
index 000000000000..ecd3e403bb94
--- /dev/null
+++ b/sdk/frontdoor/arm-frontdoor/lib/operations/backendPools.ts
@@ -0,0 +1,332 @@
+/*
+ * 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/backendPoolsMappers";
+import * as Parameters from "../models/parameters";
+import { FrontDoorManagementClientContext } from "../frontDoorManagementClientContext";
+
+/** Class representing a BackendPools. */
+export class BackendPools {
+ private readonly client: FrontDoorManagementClientContext;
+
+ /**
+ * Create a BackendPools.
+ * @param {FrontDoorManagementClientContext} client Reference to the service client.
+ */
+ constructor(client: FrontDoorManagementClientContext) {
+ this.client = client;
+ }
+
+ /**
+ * Lists all of the Backend Pools within a Front Door.
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ listByFrontDoor(resourceGroupName: string, frontDoorName: string, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param callback The callback
+ */
+ listByFrontDoor(resourceGroupName: string, frontDoorName: string, callback: msRest.ServiceCallback): void;
+ /**
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ listByFrontDoor(resourceGroupName: string, frontDoorName: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ listByFrontDoor(resourceGroupName: string, frontDoorName: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ resourceGroupName,
+ frontDoorName,
+ options
+ },
+ listByFrontDoorOperationSpec,
+ callback) as Promise;
+ }
+
+ /**
+ * Gets a Backend Pool with the specified Pool name within the specified Front Door.
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param backendPoolName Name of the Backend Pool which is unique within the Front Door.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ get(resourceGroupName: string, frontDoorName: string, backendPoolName: string, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param backendPoolName Name of the Backend Pool which is unique within the Front Door.
+ * @param callback The callback
+ */
+ get(resourceGroupName: string, frontDoorName: string, backendPoolName: string, callback: msRest.ServiceCallback): void;
+ /**
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param backendPoolName Name of the Backend Pool which is unique within the Front Door.
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ get(resourceGroupName: string, frontDoorName: string, backendPoolName: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ get(resourceGroupName: string, frontDoorName: string, backendPoolName: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ resourceGroupName,
+ frontDoorName,
+ backendPoolName,
+ options
+ },
+ getOperationSpec,
+ callback) as Promise;
+ }
+
+ /**
+ * Creates a new Backend Pool with the specified Pool name within the specified Front Door.
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param backendPoolName Name of the Backend Pool which is unique within the Front Door.
+ * @param backendPoolParameters Backend Pool properties needed to create a new Pool.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ createOrUpdate(resourceGroupName: string, frontDoorName: string, backendPoolName: string, backendPoolParameters: Models.BackendPool, options?: msRest.RequestOptionsBase): Promise {
+ return this.beginCreateOrUpdate(resourceGroupName,frontDoorName,backendPoolName,backendPoolParameters,options)
+ .then(lroPoller => lroPoller.pollUntilFinished()) as Promise;
+ }
+
+ /**
+ * Deletes an existing Backend Pool with the specified parameters.
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param backendPoolName Name of the Backend Pool which is unique within the Front Door.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ deleteMethod(resourceGroupName: string, frontDoorName: string, backendPoolName: string, options?: msRest.RequestOptionsBase): Promise {
+ return this.beginDeleteMethod(resourceGroupName,frontDoorName,backendPoolName,options)
+ .then(lroPoller => lroPoller.pollUntilFinished());
+ }
+
+ /**
+ * Creates a new Backend Pool with the specified Pool name within the specified Front Door.
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param backendPoolName Name of the Backend Pool which is unique within the Front Door.
+ * @param backendPoolParameters Backend Pool properties needed to create a new Pool.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ beginCreateOrUpdate(resourceGroupName: string, frontDoorName: string, backendPoolName: string, backendPoolParameters: Models.BackendPool, options?: msRest.RequestOptionsBase): Promise {
+ return this.client.sendLRORequest(
+ {
+ resourceGroupName,
+ frontDoorName,
+ backendPoolName,
+ backendPoolParameters,
+ options
+ },
+ beginCreateOrUpdateOperationSpec,
+ options);
+ }
+
+ /**
+ * Deletes an existing Backend Pool with the specified parameters.
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param backendPoolName Name of the Backend Pool which is unique within the Front Door.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ beginDeleteMethod(resourceGroupName: string, frontDoorName: string, backendPoolName: string, options?: msRest.RequestOptionsBase): Promise {
+ return this.client.sendLRORequest(
+ {
+ resourceGroupName,
+ frontDoorName,
+ backendPoolName,
+ options
+ },
+ beginDeleteMethodOperationSpec,
+ options);
+ }
+
+ /**
+ * Lists all of the Backend Pools within a Front Door.
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ listByFrontDoorNext(nextPageLink: string, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @param callback The callback
+ */
+ listByFrontDoorNext(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
+ */
+ listByFrontDoorNext(nextPageLink: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ listByFrontDoorNext(nextPageLink: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ nextPageLink,
+ options
+ },
+ listByFrontDoorNextOperationSpec,
+ callback) as Promise;
+ }
+}
+
+// Operation Specifications
+const serializer = new msRest.Serializer(Mappers);
+const listByFrontDoorOperationSpec: msRest.OperationSpec = {
+ httpMethod: "GET",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}/backendPools",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.frontDoorName
+ ],
+ queryParameters: [
+ Parameters.apiVersion0
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.BackendPoolListResult
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const getOperationSpec: msRest.OperationSpec = {
+ httpMethod: "GET",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}/backendPools/{backendPoolName}",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.frontDoorName,
+ Parameters.backendPoolName
+ ],
+ queryParameters: [
+ Parameters.apiVersion0
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.BackendPool
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const beginCreateOrUpdateOperationSpec: msRest.OperationSpec = {
+ httpMethod: "PUT",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}/backendPools/{backendPoolName}",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.frontDoorName,
+ Parameters.backendPoolName
+ ],
+ queryParameters: [
+ Parameters.apiVersion0
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ requestBody: {
+ parameterPath: "backendPoolParameters",
+ mapper: {
+ ...Mappers.BackendPool,
+ required: true
+ }
+ },
+ responses: {
+ 200: {
+ bodyMapper: Mappers.BackendPool
+ },
+ 201: {
+ bodyMapper: Mappers.BackendPool
+ },
+ 202: {
+ bodyMapper: Mappers.BackendPool
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const beginDeleteMethodOperationSpec: msRest.OperationSpec = {
+ httpMethod: "DELETE",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}/backendPools/{backendPoolName}",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.frontDoorName,
+ Parameters.backendPoolName
+ ],
+ queryParameters: [
+ Parameters.apiVersion0
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 202: {},
+ 204: {},
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const listByFrontDoorNextOperationSpec: msRest.OperationSpec = {
+ httpMethod: "GET",
+ baseUrl: "https://management.azure.com",
+ path: "{nextLink}",
+ urlParameters: [
+ Parameters.nextPageLink
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.BackendPoolListResult
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
diff --git a/sdk/frontdoor/arm-frontdoor/lib/operations/endpoints.ts b/sdk/frontdoor/arm-frontdoor/lib/operations/endpoints.ts
new file mode 100644
index 000000000000..3a1978429a63
--- /dev/null
+++ b/sdk/frontdoor/arm-frontdoor/lib/operations/endpoints.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 msRestAzure from "@azure/ms-rest-azure-js";
+import * as Models from "../models";
+import * as Mappers from "../models/endpointsMappers";
+import * as Parameters from "../models/parameters";
+import { FrontDoorManagementClientContext } from "../frontDoorManagementClientContext";
+
+/** Class representing a Endpoints. */
+export class Endpoints {
+ private readonly client: FrontDoorManagementClientContext;
+
+ /**
+ * Create a Endpoints.
+ * @param {FrontDoorManagementClientContext} client Reference to the service client.
+ */
+ constructor(client: FrontDoorManagementClientContext) {
+ this.client = client;
+ }
+
+ /**
+ * Removes a content from Front Door.
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param contentFilePaths The path to the content to be purged. Path can be a full URL, e.g.
+ * '/pictures/city.png' which removes a single file, or a directory with a wildcard, e.g.
+ * '/pictures/*' which removes all folders and files in the directory.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ purgeContent(resourceGroupName: string, frontDoorName: string, contentFilePaths: Models.PurgeParameters, options?: msRest.RequestOptionsBase): Promise {
+ return this.beginPurgeContent(resourceGroupName,frontDoorName,contentFilePaths,options)
+ .then(lroPoller => lroPoller.pollUntilFinished());
+ }
+
+ /**
+ * Removes a content from Front Door.
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param contentFilePaths The path to the content to be purged. Path can be a full URL, e.g.
+ * '/pictures/city.png' which removes a single file, or a directory with a wildcard, e.g.
+ * '/pictures/*' which removes all folders and files in the directory.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ beginPurgeContent(resourceGroupName: string, frontDoorName: string, contentFilePaths: Models.PurgeParameters, options?: msRest.RequestOptionsBase): Promise {
+ return this.client.sendLRORequest(
+ {
+ resourceGroupName,
+ frontDoorName,
+ contentFilePaths,
+ options
+ },
+ beginPurgeContentOperationSpec,
+ options);
+ }
+}
+
+// Operation Specifications
+const serializer = new msRest.Serializer(Mappers);
+const beginPurgeContentOperationSpec: msRest.OperationSpec = {
+ httpMethod: "POST",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}/purge",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.frontDoorName
+ ],
+ queryParameters: [
+ Parameters.apiVersion0
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ requestBody: {
+ parameterPath: "contentFilePaths",
+ mapper: {
+ ...Mappers.PurgeParameters,
+ required: true
+ }
+ },
+ responses: {
+ 200: {},
+ 202: {},
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
diff --git a/sdk/frontdoor/arm-frontdoor/lib/operations/frontDoors.ts b/sdk/frontdoor/arm-frontdoor/lib/operations/frontDoors.ts
new file mode 100644
index 000000000000..431c22010528
--- /dev/null
+++ b/sdk/frontdoor/arm-frontdoor/lib/operations/frontDoors.ts
@@ -0,0 +1,481 @@
+/*
+ * 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/frontDoorsMappers";
+import * as Parameters from "../models/parameters";
+import { FrontDoorManagementClientContext } from "../frontDoorManagementClientContext";
+
+/** Class representing a FrontDoors. */
+export class FrontDoors {
+ private readonly client: FrontDoorManagementClientContext;
+
+ /**
+ * Create a FrontDoors.
+ * @param {FrontDoorManagementClientContext} client Reference to the service client.
+ */
+ constructor(client: FrontDoorManagementClientContext) {
+ this.client = client;
+ }
+
+ /**
+ * Lists all of the Front Doors within an Azure subscription.
+ * @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 Front Doors within a resource group under a subscription.
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ listByResourceGroup(resourceGroupName: string, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param callback The callback
+ */
+ listByResourceGroup(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
+ */
+ listByResourceGroup(resourceGroupName: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ listByResourceGroup(resourceGroupName: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ resourceGroupName,
+ options
+ },
+ listByResourceGroupOperationSpec,
+ callback) as Promise;
+ }
+
+ /**
+ * Gets a Front Door with the specified Front Door name under the specified subscription and
+ * resource group.
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ get(resourceGroupName: string, frontDoorName: string, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param callback The callback
+ */
+ get(resourceGroupName: string, frontDoorName: string, callback: msRest.ServiceCallback): void;
+ /**
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ get(resourceGroupName: string, frontDoorName: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ get(resourceGroupName: string, frontDoorName: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ resourceGroupName,
+ frontDoorName,
+ options
+ },
+ getOperationSpec,
+ callback) as Promise;
+ }
+
+ /**
+ * Creates a new Front Door with a Front Door name under the specified subscription and resource
+ * group.
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param frontDoorParameters Front Door properties needed to create a new Front Door.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ createOrUpdate(resourceGroupName: string, frontDoorName: string, frontDoorParameters: Models.FrontDoor, options?: msRest.RequestOptionsBase): Promise {
+ return this.beginCreateOrUpdate(resourceGroupName,frontDoorName,frontDoorParameters,options)
+ .then(lroPoller => lroPoller.pollUntilFinished()) as Promise;
+ }
+
+ /**
+ * Deletes an existing Front Door with the specified parameters.
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ deleteMethod(resourceGroupName: string, frontDoorName: string, options?: msRest.RequestOptionsBase): Promise {
+ return this.beginDeleteMethod(resourceGroupName,frontDoorName,options)
+ .then(lroPoller => lroPoller.pollUntilFinished());
+ }
+
+ /**
+ * Validates the custom domain mapping to ensure it maps to the correct Front Door endpoint in DNS.
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param customDomainProperties Custom domain to be validated.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ validateCustomDomain(resourceGroupName: string, frontDoorName: string, customDomainProperties: Models.ValidateCustomDomainInput, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param customDomainProperties Custom domain to be validated.
+ * @param callback The callback
+ */
+ validateCustomDomain(resourceGroupName: string, frontDoorName: string, customDomainProperties: Models.ValidateCustomDomainInput, callback: msRest.ServiceCallback): void;
+ /**
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param customDomainProperties Custom domain to be validated.
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ validateCustomDomain(resourceGroupName: string, frontDoorName: string, customDomainProperties: Models.ValidateCustomDomainInput, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ validateCustomDomain(resourceGroupName: string, frontDoorName: string, customDomainProperties: Models.ValidateCustomDomainInput, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ resourceGroupName,
+ frontDoorName,
+ customDomainProperties,
+ options
+ },
+ validateCustomDomainOperationSpec,
+ callback) as Promise;
+ }
+
+ /**
+ * Creates a new Front Door with a Front Door name under the specified subscription and resource
+ * group.
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param frontDoorParameters Front Door properties needed to create a new Front Door.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ beginCreateOrUpdate(resourceGroupName: string, frontDoorName: string, frontDoorParameters: Models.FrontDoor, options?: msRest.RequestOptionsBase): Promise {
+ return this.client.sendLRORequest(
+ {
+ resourceGroupName,
+ frontDoorName,
+ frontDoorParameters,
+ options
+ },
+ beginCreateOrUpdateOperationSpec,
+ options);
+ }
+
+ /**
+ * Deletes an existing Front Door with the specified parameters.
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ beginDeleteMethod(resourceGroupName: string, frontDoorName: string, options?: msRest.RequestOptionsBase): Promise {
+ return this.client.sendLRORequest(
+ {
+ resourceGroupName,
+ frontDoorName,
+ options
+ },
+ beginDeleteMethodOperationSpec,
+ options);
+ }
+
+ /**
+ * Lists all of the Front Doors within an Azure subscription.
+ * @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;
+ }
+
+ /**
+ * Lists all of the Front Doors within a resource group under a subscription.
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ listByResourceGroupNext(nextPageLink: string, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @param callback The callback
+ */
+ listByResourceGroupNext(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
+ */
+ listByResourceGroupNext(nextPageLink: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ listByResourceGroupNext(nextPageLink: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ nextPageLink,
+ options
+ },
+ listByResourceGroupNextOperationSpec,
+ callback) as Promise;
+ }
+}
+
+// Operation Specifications
+const serializer = new msRest.Serializer(Mappers);
+const listOperationSpec: msRest.OperationSpec = {
+ httpMethod: "GET",
+ path: "subscriptions/{subscriptionId}/providers/Microsoft.Network/frontDoors",
+ urlParameters: [
+ Parameters.subscriptionId
+ ],
+ queryParameters: [
+ Parameters.apiVersion0
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.FrontDoorListResult
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const listByResourceGroupOperationSpec: msRest.OperationSpec = {
+ httpMethod: "GET",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName
+ ],
+ queryParameters: [
+ Parameters.apiVersion0
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.FrontDoorListResult
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const getOperationSpec: msRest.OperationSpec = {
+ httpMethod: "GET",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.frontDoorName
+ ],
+ queryParameters: [
+ Parameters.apiVersion0
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.FrontDoor
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const validateCustomDomainOperationSpec: msRest.OperationSpec = {
+ httpMethod: "POST",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}/validateCustomDomain",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.frontDoorName
+ ],
+ queryParameters: [
+ Parameters.apiVersion0
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ requestBody: {
+ parameterPath: "customDomainProperties",
+ mapper: {
+ ...Mappers.ValidateCustomDomainInput,
+ required: true
+ }
+ },
+ responses: {
+ 200: {
+ bodyMapper: Mappers.ValidateCustomDomainOutput
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const beginCreateOrUpdateOperationSpec: msRest.OperationSpec = {
+ httpMethod: "PUT",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.frontDoorName
+ ],
+ queryParameters: [
+ Parameters.apiVersion0
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ requestBody: {
+ parameterPath: "frontDoorParameters",
+ mapper: {
+ ...Mappers.FrontDoor,
+ required: true
+ }
+ },
+ responses: {
+ 200: {
+ bodyMapper: Mappers.FrontDoor
+ },
+ 201: {
+ bodyMapper: Mappers.FrontDoor
+ },
+ 202: {
+ bodyMapper: Mappers.FrontDoor
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const beginDeleteMethodOperationSpec: msRest.OperationSpec = {
+ httpMethod: "DELETE",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.frontDoorName
+ ],
+ queryParameters: [
+ Parameters.apiVersion0
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 202: {},
+ 204: {},
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const listNextOperationSpec: msRest.OperationSpec = {
+ httpMethod: "GET",
+ baseUrl: "https://management.azure.com",
+ path: "{nextLink}",
+ urlParameters: [
+ Parameters.nextPageLink
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.FrontDoorListResult
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const listByResourceGroupNextOperationSpec: msRest.OperationSpec = {
+ httpMethod: "GET",
+ baseUrl: "https://management.azure.com",
+ path: "{nextLink}",
+ urlParameters: [
+ Parameters.nextPageLink
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.FrontDoorListResult
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
diff --git a/sdk/frontdoor/arm-frontdoor/lib/operations/frontendEndpoints.ts b/sdk/frontdoor/arm-frontdoor/lib/operations/frontendEndpoints.ts
new file mode 100644
index 000000000000..d3c804a5ca5f
--- /dev/null
+++ b/sdk/frontdoor/arm-frontdoor/lib/operations/frontendEndpoints.ts
@@ -0,0 +1,458 @@
+/*
+ * 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/frontendEndpointsMappers";
+import * as Parameters from "../models/parameters";
+import { FrontDoorManagementClientContext } from "../frontDoorManagementClientContext";
+
+/** Class representing a FrontendEndpoints. */
+export class FrontendEndpoints {
+ private readonly client: FrontDoorManagementClientContext;
+
+ /**
+ * Create a FrontendEndpoints.
+ * @param {FrontDoorManagementClientContext} client Reference to the service client.
+ */
+ constructor(client: FrontDoorManagementClientContext) {
+ this.client = client;
+ }
+
+ /**
+ * Lists all of the frontend endpoints within a Front Door.
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ listByFrontDoor(resourceGroupName: string, frontDoorName: string, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param callback The callback
+ */
+ listByFrontDoor(resourceGroupName: string, frontDoorName: string, callback: msRest.ServiceCallback): void;
+ /**
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ listByFrontDoor(resourceGroupName: string, frontDoorName: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ listByFrontDoor(resourceGroupName: string, frontDoorName: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ resourceGroupName,
+ frontDoorName,
+ options
+ },
+ listByFrontDoorOperationSpec,
+ callback) as Promise;
+ }
+
+ /**
+ * Gets a Frontend endpoint with the specified name within the specified Front Door.
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param frontendEndpointName Name of the Frontend endpoint which is unique within the Front Door.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ get(resourceGroupName: string, frontDoorName: string, frontendEndpointName: string, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param frontendEndpointName Name of the Frontend endpoint which is unique within the Front Door.
+ * @param callback The callback
+ */
+ get(resourceGroupName: string, frontDoorName: string, frontendEndpointName: string, callback: msRest.ServiceCallback): void;
+ /**
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param frontendEndpointName Name of the Frontend endpoint which is unique within the Front Door.
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ get(resourceGroupName: string, frontDoorName: string, frontendEndpointName: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ get(resourceGroupName: string, frontDoorName: string, frontendEndpointName: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ resourceGroupName,
+ frontDoorName,
+ frontendEndpointName,
+ options
+ },
+ getOperationSpec,
+ callback) as Promise;
+ }
+
+ /**
+ * Creates a new frontend endpoint with the specified host name within the specified Front Door.
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param frontendEndpointName Name of the Frontend endpoint which is unique within the Front Door.
+ * @param frontendEndpointParameters Frontend endpoint properties needed to create a new endpoint.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ createOrUpdate(resourceGroupName: string, frontDoorName: string, frontendEndpointName: string, frontendEndpointParameters: Models.FrontendEndpoint, options?: msRest.RequestOptionsBase): Promise {
+ return this.beginCreateOrUpdate(resourceGroupName,frontDoorName,frontendEndpointName,frontendEndpointParameters,options)
+ .then(lroPoller => lroPoller.pollUntilFinished()) as Promise;
+ }
+
+ /**
+ * Deletes an existing frontend endpoint with the specified parameters.
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param frontendEndpointName Name of the Frontend endpoint which is unique within the Front Door.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ deleteMethod(resourceGroupName: string, frontDoorName: string, frontendEndpointName: string, options?: msRest.RequestOptionsBase): Promise {
+ return this.beginDeleteMethod(resourceGroupName,frontDoorName,frontendEndpointName,options)
+ .then(lroPoller => lroPoller.pollUntilFinished());
+ }
+
+ /**
+ * Enables a frontendEndpoint for HTTPS traffic
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param frontendEndpointName Name of the Frontend endpoint which is unique within the Front Door.
+ * @param customHttpsConfiguration The configuration specifying how to enable HTTPS
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ enableHttps(resourceGroupName: string, frontDoorName: string, frontendEndpointName: string, customHttpsConfiguration: Models.CustomHttpsConfiguration, options?: msRest.RequestOptionsBase): Promise {
+ return this.beginEnableHttps(resourceGroupName,frontDoorName,frontendEndpointName,customHttpsConfiguration,options)
+ .then(lroPoller => lroPoller.pollUntilFinished());
+ }
+
+ /**
+ * Disables a frontendEndpoint for HTTPS traffic
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param frontendEndpointName Name of the Frontend endpoint which is unique within the Front Door.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ disableHttps(resourceGroupName: string, frontDoorName: string, frontendEndpointName: string, options?: msRest.RequestOptionsBase): Promise {
+ return this.beginDisableHttps(resourceGroupName,frontDoorName,frontendEndpointName,options)
+ .then(lroPoller => lroPoller.pollUntilFinished());
+ }
+
+ /**
+ * Creates a new frontend endpoint with the specified host name within the specified Front Door.
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param frontendEndpointName Name of the Frontend endpoint which is unique within the Front Door.
+ * @param frontendEndpointParameters Frontend endpoint properties needed to create a new endpoint.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ beginCreateOrUpdate(resourceGroupName: string, frontDoorName: string, frontendEndpointName: string, frontendEndpointParameters: Models.FrontendEndpoint, options?: msRest.RequestOptionsBase): Promise {
+ return this.client.sendLRORequest(
+ {
+ resourceGroupName,
+ frontDoorName,
+ frontendEndpointName,
+ frontendEndpointParameters,
+ options
+ },
+ beginCreateOrUpdateOperationSpec,
+ options);
+ }
+
+ /**
+ * Deletes an existing frontend endpoint with the specified parameters.
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param frontendEndpointName Name of the Frontend endpoint which is unique within the Front Door.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ beginDeleteMethod(resourceGroupName: string, frontDoorName: string, frontendEndpointName: string, options?: msRest.RequestOptionsBase): Promise {
+ return this.client.sendLRORequest(
+ {
+ resourceGroupName,
+ frontDoorName,
+ frontendEndpointName,
+ options
+ },
+ beginDeleteMethodOperationSpec,
+ options);
+ }
+
+ /**
+ * Enables a frontendEndpoint for HTTPS traffic
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param frontendEndpointName Name of the Frontend endpoint which is unique within the Front Door.
+ * @param customHttpsConfiguration The configuration specifying how to enable HTTPS
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ beginEnableHttps(resourceGroupName: string, frontDoorName: string, frontendEndpointName: string, customHttpsConfiguration: Models.CustomHttpsConfiguration, options?: msRest.RequestOptionsBase): Promise {
+ return this.client.sendLRORequest(
+ {
+ resourceGroupName,
+ frontDoorName,
+ frontendEndpointName,
+ customHttpsConfiguration,
+ options
+ },
+ beginEnableHttpsOperationSpec,
+ options);
+ }
+
+ /**
+ * Disables a frontendEndpoint for HTTPS traffic
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param frontendEndpointName Name of the Frontend endpoint which is unique within the Front Door.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ beginDisableHttps(resourceGroupName: string, frontDoorName: string, frontendEndpointName: string, options?: msRest.RequestOptionsBase): Promise {
+ return this.client.sendLRORequest(
+ {
+ resourceGroupName,
+ frontDoorName,
+ frontendEndpointName,
+ options
+ },
+ beginDisableHttpsOperationSpec,
+ options);
+ }
+
+ /**
+ * Lists all of the frontend endpoints within a Front Door.
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ listByFrontDoorNext(nextPageLink: string, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @param callback The callback
+ */
+ listByFrontDoorNext(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
+ */
+ listByFrontDoorNext(nextPageLink: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ listByFrontDoorNext(nextPageLink: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ nextPageLink,
+ options
+ },
+ listByFrontDoorNextOperationSpec,
+ callback) as Promise;
+ }
+}
+
+// Operation Specifications
+const serializer = new msRest.Serializer(Mappers);
+const listByFrontDoorOperationSpec: msRest.OperationSpec = {
+ httpMethod: "GET",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}/frontendEndpoints",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.frontDoorName
+ ],
+ queryParameters: [
+ Parameters.apiVersion0
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.FrontendEndpointsListResult
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const getOperationSpec: msRest.OperationSpec = {
+ httpMethod: "GET",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}/frontendEndpoints/{frontendEndpointName}",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.frontDoorName,
+ Parameters.frontendEndpointName
+ ],
+ queryParameters: [
+ Parameters.apiVersion0
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.FrontendEndpoint
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const beginCreateOrUpdateOperationSpec: msRest.OperationSpec = {
+ httpMethod: "PUT",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}/frontendEndpoints/{frontendEndpointName}",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.frontDoorName,
+ Parameters.frontendEndpointName
+ ],
+ queryParameters: [
+ Parameters.apiVersion0
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ requestBody: {
+ parameterPath: "frontendEndpointParameters",
+ mapper: {
+ ...Mappers.FrontendEndpoint,
+ required: true
+ }
+ },
+ responses: {
+ 200: {
+ bodyMapper: Mappers.FrontendEndpoint
+ },
+ 201: {
+ bodyMapper: Mappers.FrontendEndpoint
+ },
+ 202: {
+ bodyMapper: Mappers.FrontendEndpoint
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const beginDeleteMethodOperationSpec: msRest.OperationSpec = {
+ httpMethod: "DELETE",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}/frontendEndpoints/{frontendEndpointName}",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.frontDoorName,
+ Parameters.frontendEndpointName
+ ],
+ queryParameters: [
+ Parameters.apiVersion0
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 202: {},
+ 204: {},
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const beginEnableHttpsOperationSpec: msRest.OperationSpec = {
+ httpMethod: "POST",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}/frontendEndpoints/{frontendEndpointName}/enableHttps",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.frontDoorName,
+ Parameters.frontendEndpointName
+ ],
+ queryParameters: [
+ Parameters.apiVersion0
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ requestBody: {
+ parameterPath: "customHttpsConfiguration",
+ mapper: {
+ ...Mappers.CustomHttpsConfiguration,
+ required: true
+ }
+ },
+ responses: {
+ 200: {},
+ 202: {},
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const beginDisableHttpsOperationSpec: msRest.OperationSpec = {
+ httpMethod: "POST",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}/frontendEndpoints/{frontendEndpointName}/disableHttps",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.frontDoorName,
+ Parameters.frontendEndpointName
+ ],
+ queryParameters: [
+ Parameters.apiVersion0
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {},
+ 202: {},
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const listByFrontDoorNextOperationSpec: msRest.OperationSpec = {
+ httpMethod: "GET",
+ baseUrl: "https://management.azure.com",
+ path: "{nextLink}",
+ urlParameters: [
+ Parameters.nextPageLink
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.FrontendEndpointsListResult
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
diff --git a/sdk/frontdoor/arm-frontdoor/lib/operations/healthProbeSettings.ts b/sdk/frontdoor/arm-frontdoor/lib/operations/healthProbeSettings.ts
new file mode 100644
index 000000000000..b8fe394f648c
--- /dev/null
+++ b/sdk/frontdoor/arm-frontdoor/lib/operations/healthProbeSettings.ts
@@ -0,0 +1,341 @@
+/*
+ * 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/healthProbeSettingsMappers";
+import * as Parameters from "../models/parameters";
+import { FrontDoorManagementClientContext } from "../frontDoorManagementClientContext";
+
+/** Class representing a HealthProbeSettings. */
+export class HealthProbeSettings {
+ private readonly client: FrontDoorManagementClientContext;
+
+ /**
+ * Create a HealthProbeSettings.
+ * @param {FrontDoorManagementClientContext} client Reference to the service client.
+ */
+ constructor(client: FrontDoorManagementClientContext) {
+ this.client = client;
+ }
+
+ /**
+ * Lists all of the HealthProbeSettings within a Front Door.
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ listByFrontDoor(resourceGroupName: string, frontDoorName: string, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param callback The callback
+ */
+ listByFrontDoor(resourceGroupName: string, frontDoorName: string, callback: msRest.ServiceCallback): void;
+ /**
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ listByFrontDoor(resourceGroupName: string, frontDoorName: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ listByFrontDoor(resourceGroupName: string, frontDoorName: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ resourceGroupName,
+ frontDoorName,
+ options
+ },
+ listByFrontDoorOperationSpec,
+ callback) as Promise;
+ }
+
+ /**
+ * Gets a HealthProbeSettings with the specified Rule name within the specified Front Door.
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param healthProbeSettingsName Name of the health probe settings which is unique within the
+ * Front Door.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ get(resourceGroupName: string, frontDoorName: string, healthProbeSettingsName: string, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param healthProbeSettingsName Name of the health probe settings which is unique within the
+ * Front Door.
+ * @param callback The callback
+ */
+ get(resourceGroupName: string, frontDoorName: string, healthProbeSettingsName: string, callback: msRest.ServiceCallback): void;
+ /**
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param healthProbeSettingsName Name of the health probe settings which is unique within the
+ * Front Door.
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ get(resourceGroupName: string, frontDoorName: string, healthProbeSettingsName: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ get(resourceGroupName: string, frontDoorName: string, healthProbeSettingsName: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ resourceGroupName,
+ frontDoorName,
+ healthProbeSettingsName,
+ options
+ },
+ getOperationSpec,
+ callback) as Promise;
+ }
+
+ /**
+ * Creates a new HealthProbeSettings with the specified Rule name within the specified Front Door.
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param healthProbeSettingsName Name of the health probe settings which is unique within the
+ * Front Door.
+ * @param healthProbeSettingsParameters HealthProbeSettings properties needed to create a new Front
+ * Door.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ createOrUpdate(resourceGroupName: string, frontDoorName: string, healthProbeSettingsName: string, healthProbeSettingsParameters: Models.HealthProbeSettingsModel, options?: msRest.RequestOptionsBase): Promise {
+ return this.beginCreateOrUpdate(resourceGroupName,frontDoorName,healthProbeSettingsName,healthProbeSettingsParameters,options)
+ .then(lroPoller => lroPoller.pollUntilFinished()) as Promise;
+ }
+
+ /**
+ * Deletes an existing HealthProbeSettings with the specified parameters.
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param healthProbeSettingsName Name of the health probe settings which is unique within the
+ * Front Door.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ deleteMethod(resourceGroupName: string, frontDoorName: string, healthProbeSettingsName: string, options?: msRest.RequestOptionsBase): Promise {
+ return this.beginDeleteMethod(resourceGroupName,frontDoorName,healthProbeSettingsName,options)
+ .then(lroPoller => lroPoller.pollUntilFinished());
+ }
+
+ /**
+ * Creates a new HealthProbeSettings with the specified Rule name within the specified Front Door.
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param healthProbeSettingsName Name of the health probe settings which is unique within the
+ * Front Door.
+ * @param healthProbeSettingsParameters HealthProbeSettings properties needed to create a new Front
+ * Door.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ beginCreateOrUpdate(resourceGroupName: string, frontDoorName: string, healthProbeSettingsName: string, healthProbeSettingsParameters: Models.HealthProbeSettingsModel, options?: msRest.RequestOptionsBase): Promise {
+ return this.client.sendLRORequest(
+ {
+ resourceGroupName,
+ frontDoorName,
+ healthProbeSettingsName,
+ healthProbeSettingsParameters,
+ options
+ },
+ beginCreateOrUpdateOperationSpec,
+ options);
+ }
+
+ /**
+ * Deletes an existing HealthProbeSettings with the specified parameters.
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param healthProbeSettingsName Name of the health probe settings which is unique within the
+ * Front Door.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ beginDeleteMethod(resourceGroupName: string, frontDoorName: string, healthProbeSettingsName: string, options?: msRest.RequestOptionsBase): Promise {
+ return this.client.sendLRORequest(
+ {
+ resourceGroupName,
+ frontDoorName,
+ healthProbeSettingsName,
+ options
+ },
+ beginDeleteMethodOperationSpec,
+ options);
+ }
+
+ /**
+ * Lists all of the HealthProbeSettings within a Front Door.
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ listByFrontDoorNext(nextPageLink: string, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @param callback The callback
+ */
+ listByFrontDoorNext(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
+ */
+ listByFrontDoorNext(nextPageLink: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ listByFrontDoorNext(nextPageLink: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ nextPageLink,
+ options
+ },
+ listByFrontDoorNextOperationSpec,
+ callback) as Promise;
+ }
+}
+
+// Operation Specifications
+const serializer = new msRest.Serializer(Mappers);
+const listByFrontDoorOperationSpec: msRest.OperationSpec = {
+ httpMethod: "GET",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}/healthProbeSettings",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.frontDoorName
+ ],
+ queryParameters: [
+ Parameters.apiVersion0
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.HealthProbeSettingsListResult
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const getOperationSpec: msRest.OperationSpec = {
+ httpMethod: "GET",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}/healthProbeSettings/{healthProbeSettingsName}",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.frontDoorName,
+ Parameters.healthProbeSettingsName
+ ],
+ queryParameters: [
+ Parameters.apiVersion0
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.HealthProbeSettingsModel
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const beginCreateOrUpdateOperationSpec: msRest.OperationSpec = {
+ httpMethod: "PUT",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}/healthProbeSettings/{healthProbeSettingsName}",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.frontDoorName,
+ Parameters.healthProbeSettingsName
+ ],
+ queryParameters: [
+ Parameters.apiVersion0
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ requestBody: {
+ parameterPath: "healthProbeSettingsParameters",
+ mapper: {
+ ...Mappers.HealthProbeSettingsModel,
+ required: true
+ }
+ },
+ responses: {
+ 200: {
+ bodyMapper: Mappers.HealthProbeSettingsModel
+ },
+ 201: {
+ bodyMapper: Mappers.HealthProbeSettingsModel
+ },
+ 202: {
+ bodyMapper: Mappers.HealthProbeSettingsModel
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const beginDeleteMethodOperationSpec: msRest.OperationSpec = {
+ httpMethod: "DELETE",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}/healthProbeSettings/{healthProbeSettingsName}",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.frontDoorName,
+ Parameters.healthProbeSettingsName
+ ],
+ queryParameters: [
+ Parameters.apiVersion0
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 202: {},
+ 204: {},
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const listByFrontDoorNextOperationSpec: msRest.OperationSpec = {
+ httpMethod: "GET",
+ baseUrl: "https://management.azure.com",
+ path: "{nextLink}",
+ urlParameters: [
+ Parameters.nextPageLink
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.HealthProbeSettingsListResult
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
diff --git a/sdk/frontdoor/arm-frontdoor/lib/operations/index.ts b/sdk/frontdoor/arm-frontdoor/lib/operations/index.ts
new file mode 100644
index 000000000000..d95c0f0425f1
--- /dev/null
+++ b/sdk/frontdoor/arm-frontdoor/lib/operations/index.ts
@@ -0,0 +1,19 @@
+/*
+ * 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 "./frontDoors";
+export * from "./routingRules";
+export * from "./healthProbeSettings";
+export * from "./loadBalancingSettings";
+export * from "./backendPools";
+export * from "./frontendEndpoints";
+export * from "./endpoints";
+export * from "./policies";
+export * from "./managedRuleSets";
diff --git a/sdk/frontdoor/arm-frontdoor/lib/operations/loadBalancingSettings.ts b/sdk/frontdoor/arm-frontdoor/lib/operations/loadBalancingSettings.ts
new file mode 100644
index 000000000000..012071cdbe5b
--- /dev/null
+++ b/sdk/frontdoor/arm-frontdoor/lib/operations/loadBalancingSettings.ts
@@ -0,0 +1,343 @@
+/*
+ * 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/loadBalancingSettingsMappers";
+import * as Parameters from "../models/parameters";
+import { FrontDoorManagementClientContext } from "../frontDoorManagementClientContext";
+
+/** Class representing a LoadBalancingSettings. */
+export class LoadBalancingSettings {
+ private readonly client: FrontDoorManagementClientContext;
+
+ /**
+ * Create a LoadBalancingSettings.
+ * @param {FrontDoorManagementClientContext} client Reference to the service client.
+ */
+ constructor(client: FrontDoorManagementClientContext) {
+ this.client = client;
+ }
+
+ /**
+ * Lists all of the LoadBalancingSettings within a Front Door.
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ listByFrontDoor(resourceGroupName: string, frontDoorName: string, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param callback The callback
+ */
+ listByFrontDoor(resourceGroupName: string, frontDoorName: string, callback: msRest.ServiceCallback): void;
+ /**
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ listByFrontDoor(resourceGroupName: string, frontDoorName: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ listByFrontDoor(resourceGroupName: string, frontDoorName: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ resourceGroupName,
+ frontDoorName,
+ options
+ },
+ listByFrontDoorOperationSpec,
+ callback) as Promise;
+ }
+
+ /**
+ * Gets a LoadBalancingSettings with the specified Rule name within the specified Front Door.
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param loadBalancingSettingsName Name of the load balancing settings which is unique within the
+ * Front Door.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ get(resourceGroupName: string, frontDoorName: string, loadBalancingSettingsName: string, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param loadBalancingSettingsName Name of the load balancing settings which is unique within the
+ * Front Door.
+ * @param callback The callback
+ */
+ get(resourceGroupName: string, frontDoorName: string, loadBalancingSettingsName: string, callback: msRest.ServiceCallback): void;
+ /**
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param loadBalancingSettingsName Name of the load balancing settings which is unique within the
+ * Front Door.
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ get(resourceGroupName: string, frontDoorName: string, loadBalancingSettingsName: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ get(resourceGroupName: string, frontDoorName: string, loadBalancingSettingsName: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ resourceGroupName,
+ frontDoorName,
+ loadBalancingSettingsName,
+ options
+ },
+ getOperationSpec,
+ callback) as Promise;
+ }
+
+ /**
+ * Creates a new LoadBalancingSettings with the specified Rule name within the specified Front
+ * Door.
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param loadBalancingSettingsName Name of the load balancing settings which is unique within the
+ * Front Door.
+ * @param loadBalancingSettingsParameters LoadBalancingSettings properties needed to create a new
+ * Front Door.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ createOrUpdate(resourceGroupName: string, frontDoorName: string, loadBalancingSettingsName: string, loadBalancingSettingsParameters: Models.LoadBalancingSettingsModel, options?: msRest.RequestOptionsBase): Promise {
+ return this.beginCreateOrUpdate(resourceGroupName,frontDoorName,loadBalancingSettingsName,loadBalancingSettingsParameters,options)
+ .then(lroPoller => lroPoller.pollUntilFinished()) as Promise;
+ }
+
+ /**
+ * Deletes an existing LoadBalancingSettings with the specified parameters.
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param loadBalancingSettingsName Name of the load balancing settings which is unique within the
+ * Front Door.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ deleteMethod(resourceGroupName: string, frontDoorName: string, loadBalancingSettingsName: string, options?: msRest.RequestOptionsBase): Promise {
+ return this.beginDeleteMethod(resourceGroupName,frontDoorName,loadBalancingSettingsName,options)
+ .then(lroPoller => lroPoller.pollUntilFinished());
+ }
+
+ /**
+ * Creates a new LoadBalancingSettings with the specified Rule name within the specified Front
+ * Door.
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param loadBalancingSettingsName Name of the load balancing settings which is unique within the
+ * Front Door.
+ * @param loadBalancingSettingsParameters LoadBalancingSettings properties needed to create a new
+ * Front Door.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ beginCreateOrUpdate(resourceGroupName: string, frontDoorName: string, loadBalancingSettingsName: string, loadBalancingSettingsParameters: Models.LoadBalancingSettingsModel, options?: msRest.RequestOptionsBase): Promise {
+ return this.client.sendLRORequest(
+ {
+ resourceGroupName,
+ frontDoorName,
+ loadBalancingSettingsName,
+ loadBalancingSettingsParameters,
+ options
+ },
+ beginCreateOrUpdateOperationSpec,
+ options);
+ }
+
+ /**
+ * Deletes an existing LoadBalancingSettings with the specified parameters.
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param frontDoorName Name of the Front Door which is globally unique.
+ * @param loadBalancingSettingsName Name of the load balancing settings which is unique within the
+ * Front Door.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ beginDeleteMethod(resourceGroupName: string, frontDoorName: string, loadBalancingSettingsName: string, options?: msRest.RequestOptionsBase): Promise {
+ return this.client.sendLRORequest(
+ {
+ resourceGroupName,
+ frontDoorName,
+ loadBalancingSettingsName,
+ options
+ },
+ beginDeleteMethodOperationSpec,
+ options);
+ }
+
+ /**
+ * Lists all of the LoadBalancingSettings within a Front Door.
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ listByFrontDoorNext(nextPageLink: string, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @param callback The callback
+ */
+ listByFrontDoorNext(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
+ */
+ listByFrontDoorNext(nextPageLink: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ listByFrontDoorNext(nextPageLink: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ nextPageLink,
+ options
+ },
+ listByFrontDoorNextOperationSpec,
+ callback) as Promise;
+ }
+}
+
+// Operation Specifications
+const serializer = new msRest.Serializer(Mappers);
+const listByFrontDoorOperationSpec: msRest.OperationSpec = {
+ httpMethod: "GET",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}/loadBalancingSettings",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.frontDoorName
+ ],
+ queryParameters: [
+ Parameters.apiVersion0
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.LoadBalancingSettingsListResult
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const getOperationSpec: msRest.OperationSpec = {
+ httpMethod: "GET",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}/loadBalancingSettings/{loadBalancingSettingsName}",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.frontDoorName,
+ Parameters.loadBalancingSettingsName
+ ],
+ queryParameters: [
+ Parameters.apiVersion0
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.LoadBalancingSettingsModel
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const beginCreateOrUpdateOperationSpec: msRest.OperationSpec = {
+ httpMethod: "PUT",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}/loadBalancingSettings/{loadBalancingSettingsName}",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.frontDoorName,
+ Parameters.loadBalancingSettingsName
+ ],
+ queryParameters: [
+ Parameters.apiVersion0
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ requestBody: {
+ parameterPath: "loadBalancingSettingsParameters",
+ mapper: {
+ ...Mappers.LoadBalancingSettingsModel,
+ required: true
+ }
+ },
+ responses: {
+ 200: {
+ bodyMapper: Mappers.LoadBalancingSettingsModel
+ },
+ 201: {
+ bodyMapper: Mappers.LoadBalancingSettingsModel
+ },
+ 202: {
+ bodyMapper: Mappers.LoadBalancingSettingsModel
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const beginDeleteMethodOperationSpec: msRest.OperationSpec = {
+ httpMethod: "DELETE",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}/loadBalancingSettings/{loadBalancingSettingsName}",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.frontDoorName,
+ Parameters.loadBalancingSettingsName
+ ],
+ queryParameters: [
+ Parameters.apiVersion0
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 202: {},
+ 204: {},
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const listByFrontDoorNextOperationSpec: msRest.OperationSpec = {
+ httpMethod: "GET",
+ baseUrl: "https://management.azure.com",
+ path: "{nextLink}",
+ urlParameters: [
+ Parameters.nextPageLink
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.LoadBalancingSettingsListResult
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
diff --git a/sdk/frontdoor/arm-frontdoor/lib/operations/managedRuleSets.ts b/sdk/frontdoor/arm-frontdoor/lib/operations/managedRuleSets.ts
new file mode 100644
index 000000000000..9e6607069fb0
--- /dev/null
+++ b/sdk/frontdoor/arm-frontdoor/lib/operations/managedRuleSets.ts
@@ -0,0 +1,126 @@
+/*
+ * 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/managedRuleSetsMappers";
+import * as Parameters from "../models/parameters";
+import { FrontDoorManagementClientContext } from "../frontDoorManagementClientContext";
+
+/** Class representing a ManagedRuleSets. */
+export class ManagedRuleSets {
+ private readonly client: FrontDoorManagementClientContext;
+
+ /**
+ * Create a ManagedRuleSets.
+ * @param {FrontDoorManagementClientContext} client Reference to the service client.
+ */
+ constructor(client: FrontDoorManagementClientContext) {
+ this.client = client;
+ }
+
+ /**
+ * Lists all available managed rule sets.
+ * @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 available managed rule sets.
+ * @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}/providers/Microsoft.Network/FrontDoorWebApplicationFirewallManagedRuleSets",
+ urlParameters: [
+ Parameters.subscriptionId
+ ],
+ queryParameters: [
+ Parameters.apiVersion1
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.ManagedRuleSetDefinitionList
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const listNextOperationSpec: msRest.OperationSpec = {
+ httpMethod: "GET",
+ baseUrl: "https://management.azure.com",
+ path: "{nextLink}",
+ urlParameters: [
+ Parameters.nextPageLink
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.ManagedRuleSetDefinitionList
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
diff --git a/sdk/frontdoor/arm-frontdoor/lib/operations/policies.ts b/sdk/frontdoor/arm-frontdoor/lib/operations/policies.ts
new file mode 100644
index 000000000000..e84cd10454ac
--- /dev/null
+++ b/sdk/frontdoor/arm-frontdoor/lib/operations/policies.ts
@@ -0,0 +1,315 @@
+/*
+ * 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/policiesMappers";
+import * as Parameters from "../models/parameters";
+import { FrontDoorManagementClientContext } from "../frontDoorManagementClientContext";
+
+/** Class representing a Policies. */
+export class Policies {
+ private readonly client: FrontDoorManagementClientContext;
+
+ /**
+ * Create a Policies.
+ * @param {FrontDoorManagementClientContext} client Reference to the service client.
+ */
+ constructor(client: FrontDoorManagementClientContext) {
+ this.client = client;
+ }
+
+ /**
+ * Lists all of the protection policies within 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