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): void; + /** + * @param resourceGroupName Name of the Resource group within the Azure subscription. + * @param options The optional parameters + * @param callback The callback + */ + list(resourceGroupName: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void; + list(resourceGroupName: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise { + return this.client.sendOperationRequest( + { + resourceGroupName, + options + }, + listOperationSpec, + callback) as Promise; + } + + /** + * Retrieve protection policy with specified name within a resource group. + * @param resourceGroupName Name of the Resource group within the Azure subscription. + * @param policyName The name of the Web Application Firewall Policy. + * @param [options] The optional parameters + * @returns Promise + */ + get(resourceGroupName: string, policyName: string, options?: msRest.RequestOptionsBase): Promise; + /** + * @param resourceGroupName Name of the Resource group within the Azure subscription. + * @param policyName The name of the Web Application Firewall Policy. + * @param callback The callback + */ + get(resourceGroupName: string, policyName: string, callback: msRest.ServiceCallback): void; + /** + * @param resourceGroupName Name of the Resource group within the Azure subscription. + * @param policyName The name of the Web Application Firewall Policy. + * @param options The optional parameters + * @param callback The callback + */ + get(resourceGroupName: string, policyName: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void; + get(resourceGroupName: string, policyName: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise { + return this.client.sendOperationRequest( + { + resourceGroupName, + policyName, + options + }, + getOperationSpec, + callback) as Promise; + } + + /** + * Create or update policy with specified rule set name within a resource group. + * @param resourceGroupName Name of the Resource group within the Azure subscription. + * @param policyName The name of the Web Application Firewall Policy. + * @param parameters Policy to be created. + * @param [options] The optional parameters + * @returns Promise + */ + createOrUpdate(resourceGroupName: string, policyName: string, parameters: Models.WebApplicationFirewallPolicy, options?: msRest.RequestOptionsBase): Promise { + return this.beginCreateOrUpdate(resourceGroupName,policyName,parameters,options) + .then(lroPoller => lroPoller.pollUntilFinished()) as Promise; + } + + /** + * Deletes Policy + * @param resourceGroupName Name of the Resource group within the Azure subscription. + * @param policyName The name of the Web Application Firewall Policy. + * @param [options] The optional parameters + * @returns Promise + */ + deleteMethod(resourceGroupName: string, policyName: string, options?: msRest.RequestOptionsBase): Promise { + return this.beginDeleteMethod(resourceGroupName,policyName,options) + .then(lroPoller => lroPoller.pollUntilFinished()); + } + + /** + * Create or update policy with specified rule set name within a resource group. + * @param resourceGroupName Name of the Resource group within the Azure subscription. + * @param policyName The name of the Web Application Firewall Policy. + * @param parameters Policy to be created. + * @param [options] The optional parameters + * @returns Promise + */ + beginCreateOrUpdate(resourceGroupName: string, policyName: string, parameters: Models.WebApplicationFirewallPolicy, options?: msRest.RequestOptionsBase): Promise { + return this.client.sendLRORequest( + { + resourceGroupName, + policyName, + parameters, + options + }, + beginCreateOrUpdateOperationSpec, + options); + } + + /** + * Deletes Policy + * @param resourceGroupName Name of the Resource group within the Azure subscription. + * @param policyName The name of the Web Application Firewall Policy. + * @param [options] The optional parameters + * @returns Promise + */ + beginDeleteMethod(resourceGroupName: string, policyName: string, options?: msRest.RequestOptionsBase): Promise { + return this.client.sendLRORequest( + { + resourceGroupName, + policyName, + options + }, + beginDeleteMethodOperationSpec, + options); + } + + /** + * Lists all of the protection policies within a resource group. + * @param nextPageLink The NextLink from the previous successful call to List operation. + * @param [options] The optional parameters + * @returns Promise + */ + listNext(nextPageLink: string, options?: msRest.RequestOptionsBase): Promise; + /** + * @param nextPageLink The NextLink from the previous successful call to List operation. + * @param callback The callback + */ + listNext(nextPageLink: string, callback: msRest.ServiceCallback): void; + /** + * @param nextPageLink The NextLink from the previous successful call to List operation. + * @param options The optional parameters + * @param callback The callback + */ + listNext(nextPageLink: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void; + listNext(nextPageLink: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise { + return this.client.sendOperationRequest( + { + nextPageLink, + options + }, + listNextOperationSpec, + callback) as Promise; + } +} + +// Operation Specifications +const serializer = new msRest.Serializer(Mappers); +const listOperationSpec: msRest.OperationSpec = { + httpMethod: "GET", + path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/FrontDoorWebApplicationFirewallPolicies", + urlParameters: [ + Parameters.resourceGroupName, + Parameters.subscriptionId + ], + queryParameters: [ + Parameters.apiVersion1 + ], + headerParameters: [ + Parameters.acceptLanguage + ], + responses: { + 200: { + bodyMapper: Mappers.WebApplicationFirewallPolicyList + }, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + serializer +}; + +const getOperationSpec: msRest.OperationSpec = { + httpMethod: "GET", + path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/FrontDoorWebApplicationFirewallPolicies/{policyName}", + urlParameters: [ + Parameters.resourceGroupName, + Parameters.policyName, + Parameters.subscriptionId + ], + queryParameters: [ + Parameters.apiVersion1 + ], + headerParameters: [ + Parameters.acceptLanguage + ], + responses: { + 200: { + bodyMapper: Mappers.WebApplicationFirewallPolicy + }, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + serializer +}; + +const beginCreateOrUpdateOperationSpec: msRest.OperationSpec = { + httpMethod: "PUT", + path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/FrontDoorWebApplicationFirewallPolicies/{policyName}", + urlParameters: [ + Parameters.resourceGroupName, + Parameters.policyName, + Parameters.subscriptionId + ], + queryParameters: [ + Parameters.apiVersion1 + ], + headerParameters: [ + Parameters.acceptLanguage + ], + requestBody: { + parameterPath: "parameters", + mapper: { + ...Mappers.WebApplicationFirewallPolicy, + required: true + } + }, + responses: { + 200: { + bodyMapper: Mappers.WebApplicationFirewallPolicy + }, + 201: { + bodyMapper: Mappers.WebApplicationFirewallPolicy + }, + 202: { + bodyMapper: Mappers.WebApplicationFirewallPolicy + }, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + serializer +}; + +const beginDeleteMethodOperationSpec: msRest.OperationSpec = { + httpMethod: "DELETE", + path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/FrontDoorWebApplicationFirewallPolicies/{policyName}", + urlParameters: [ + Parameters.resourceGroupName, + Parameters.policyName, + Parameters.subscriptionId + ], + queryParameters: [ + Parameters.apiVersion1 + ], + headerParameters: [ + Parameters.acceptLanguage + ], + responses: { + 200: {}, + 202: {}, + 204: {}, + default: { + bodyMapper: Mappers.CloudError + } + }, + serializer +}; + +const listNextOperationSpec: msRest.OperationSpec = { + httpMethod: "GET", + baseUrl: "https://management.azure.com", + path: "{nextLink}", + urlParameters: [ + Parameters.nextPageLink + ], + headerParameters: [ + Parameters.acceptLanguage + ], + responses: { + 200: { + bodyMapper: Mappers.WebApplicationFirewallPolicyList + }, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + serializer +}; diff --git a/sdk/frontdoor/arm-frontdoor/lib/operations/routingRules.ts b/sdk/frontdoor/arm-frontdoor/lib/operations/routingRules.ts new file mode 100644 index 000000000000..a2078ce78e2e --- /dev/null +++ b/sdk/frontdoor/arm-frontdoor/lib/operations/routingRules.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/routingRulesMappers"; +import * as Parameters from "../models/parameters"; +import { FrontDoorManagementClientContext } from "../frontDoorManagementClientContext"; + +/** Class representing a RoutingRules. */ +export class RoutingRules { + private readonly client: FrontDoorManagementClientContext; + + /** + * Create a RoutingRules. + * @param {FrontDoorManagementClientContext} client Reference to the service client. + */ + constructor(client: FrontDoorManagementClientContext) { + this.client = client; + } + + /** + * Lists all of the Routing Rules 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 Routing Rule 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 routingRuleName Name of the Routing Rule which is unique within the Front Door. + * @param [options] The optional parameters + * @returns Promise + */ + get(resourceGroupName: string, frontDoorName: string, routingRuleName: 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 routingRuleName Name of the Routing Rule which is unique within the Front Door. + * @param callback The callback + */ + get(resourceGroupName: string, frontDoorName: string, routingRuleName: 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 routingRuleName Name of the Routing Rule which is unique within the Front Door. + * @param options The optional parameters + * @param callback The callback + */ + get(resourceGroupName: string, frontDoorName: string, routingRuleName: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void; + get(resourceGroupName: string, frontDoorName: string, routingRuleName: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise { + return this.client.sendOperationRequest( + { + resourceGroupName, + frontDoorName, + routingRuleName, + options + }, + getOperationSpec, + callback) as Promise; + } + + /** + * Creates a new Routing Rule 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 routingRuleName Name of the Routing Rule which is unique within the Front Door. + * @param routingRuleParameters Routing Rule properties needed to create a new Front Door. + * @param [options] The optional parameters + * @returns Promise + */ + createOrUpdate(resourceGroupName: string, frontDoorName: string, routingRuleName: string, routingRuleParameters: Models.RoutingRule, options?: msRest.RequestOptionsBase): Promise { + return this.beginCreateOrUpdate(resourceGroupName,frontDoorName,routingRuleName,routingRuleParameters,options) + .then(lroPoller => lroPoller.pollUntilFinished()) as Promise; + } + + /** + * Deletes an existing Routing Rule 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 routingRuleName Name of the Routing Rule which is unique within the Front Door. + * @param [options] The optional parameters + * @returns Promise + */ + deleteMethod(resourceGroupName: string, frontDoorName: string, routingRuleName: string, options?: msRest.RequestOptionsBase): Promise { + return this.beginDeleteMethod(resourceGroupName,frontDoorName,routingRuleName,options) + .then(lroPoller => lroPoller.pollUntilFinished()); + } + + /** + * Creates a new Routing Rule 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 routingRuleName Name of the Routing Rule which is unique within the Front Door. + * @param routingRuleParameters Routing Rule properties needed to create a new Front Door. + * @param [options] The optional parameters + * @returns Promise + */ + beginCreateOrUpdate(resourceGroupName: string, frontDoorName: string, routingRuleName: string, routingRuleParameters: Models.RoutingRule, options?: msRest.RequestOptionsBase): Promise { + return this.client.sendLRORequest( + { + resourceGroupName, + frontDoorName, + routingRuleName, + routingRuleParameters, + options + }, + beginCreateOrUpdateOperationSpec, + options); + } + + /** + * Deletes an existing Routing Rule 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 routingRuleName Name of the Routing Rule which is unique within the Front Door. + * @param [options] The optional parameters + * @returns Promise + */ + beginDeleteMethod(resourceGroupName: string, frontDoorName: string, routingRuleName: string, options?: msRest.RequestOptionsBase): Promise { + return this.client.sendLRORequest( + { + resourceGroupName, + frontDoorName, + routingRuleName, + options + }, + beginDeleteMethodOperationSpec, + options); + } + + /** + * Lists all of the Routing Rules 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}/routingRules", + urlParameters: [ + Parameters.subscriptionId, + Parameters.resourceGroupName, + Parameters.frontDoorName + ], + queryParameters: [ + Parameters.apiVersion0 + ], + headerParameters: [ + Parameters.acceptLanguage + ], + responses: { + 200: { + bodyMapper: Mappers.RoutingRuleListResult + }, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + serializer +}; + +const getOperationSpec: msRest.OperationSpec = { + httpMethod: "GET", + path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}/routingRules/{routingRuleName}", + urlParameters: [ + Parameters.subscriptionId, + Parameters.resourceGroupName, + Parameters.frontDoorName, + Parameters.routingRuleName + ], + queryParameters: [ + Parameters.apiVersion0 + ], + headerParameters: [ + Parameters.acceptLanguage + ], + responses: { + 200: { + bodyMapper: Mappers.RoutingRule + }, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + serializer +}; + +const beginCreateOrUpdateOperationSpec: msRest.OperationSpec = { + httpMethod: "PUT", + path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}/routingRules/{routingRuleName}", + urlParameters: [ + Parameters.subscriptionId, + Parameters.resourceGroupName, + Parameters.frontDoorName, + Parameters.routingRuleName + ], + queryParameters: [ + Parameters.apiVersion0 + ], + headerParameters: [ + Parameters.acceptLanguage + ], + requestBody: { + parameterPath: "routingRuleParameters", + mapper: { + ...Mappers.RoutingRule, + required: true + } + }, + responses: { + 200: { + bodyMapper: Mappers.RoutingRule + }, + 201: { + bodyMapper: Mappers.RoutingRule + }, + 202: { + bodyMapper: Mappers.RoutingRule + }, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + serializer +}; + +const beginDeleteMethodOperationSpec: msRest.OperationSpec = { + httpMethod: "DELETE", + path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}/routingRules/{routingRuleName}", + urlParameters: [ + Parameters.subscriptionId, + Parameters.resourceGroupName, + Parameters.frontDoorName, + Parameters.routingRuleName + ], + 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.RoutingRuleListResult + }, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + serializer +}; diff --git a/sdk/frontdoor/arm-frontdoor/package.json b/sdk/frontdoor/arm-frontdoor/package.json new file mode 100644 index 000000000000..8c23b3e50013 --- /dev/null +++ b/sdk/frontdoor/arm-frontdoor/package.json @@ -0,0 +1,56 @@ +{ + "name": "@azure/arm-frontdoor", + "author": "Microsoft Corporation", + "description": "FrontDoorManagementClient Library with typescript type definitions for node.js and browser.", + "version": "3.1.0", + "dependencies": { + "@azure/ms-rest-azure-js": "^1.2.0", + "@azure/ms-rest-js": "^1.2.0", + "tslib": "^1.9.3" + }, + "keywords": [ + "node", + "azure", + "typescript", + "browser", + "isomorphic" + ], + "license": "MIT", + "main": "./dist/arm-frontdoor.js", + "module": "./esm/frontDoorManagementClient.js", + "types": "./esm/frontDoorManagementClient.d.ts", + "devDependencies": { + "typescript": "^3.1.1", + "rollup": "^0.66.2", + "rollup-plugin-node-resolve": "^3.4.0", + "rollup-plugin-sourcemaps": "^0.4.2", + "uglify-js": "^3.4.9" + }, + "homepage": "https://github.com/azure/azure-sdk-for-js", + "repository": { + "type": "git", + "url": "https://github.com/azure/azure-sdk-for-js.git" + }, + "bugs": { + "url": "https://github.com/azure/azure-sdk-for-js/issues" + }, + "files": [ + "dist/**/*.js", + "dist/**/*.js.map", + "dist/**/*.d.ts", + "dist/**/*.d.ts.map", + "esm/**/*.js", + "esm/**/*.js.map", + "esm/**/*.d.ts", + "esm/**/*.d.ts.map", + "lib/**/*.ts", + "rollup.config.js", + "tsconfig.json" + ], + "scripts": { + "build": "tsc && rollup -c rollup.config.js && npm run minify", + "minify": "uglifyjs -c -m --comments --source-map \"content='./dist/arm-frontdoor.js.map'\" -o ./dist/arm-frontdoor.min.js ./dist/arm-frontdoor.js", + "prepack": "npm install && npm run build" + }, + "sideEffects": false +} diff --git a/sdk/frontdoor/arm-frontdoor/rollup.config.js b/sdk/frontdoor/arm-frontdoor/rollup.config.js new file mode 100644 index 000000000000..b29ebeda2944 --- /dev/null +++ b/sdk/frontdoor/arm-frontdoor/rollup.config.js @@ -0,0 +1,37 @@ +import rollup from "rollup"; +import nodeResolve from "rollup-plugin-node-resolve"; +import sourcemaps from "rollup-plugin-sourcemaps"; + +/** + * @type {rollup.RollupFileOptions} + */ +const config = { + input: "./esm/frontDoorManagementClient.js", + external: [ + "@azure/ms-rest-js", + "@azure/ms-rest-azure-js" + ], + output: { + file: "./dist/arm-frontdoor.js", + format: "umd", + name: "Azure.ArmFrontdoor", + sourcemap: true, + globals: { + "@azure/ms-rest-js": "msRest", + "@azure/ms-rest-azure-js": "msRestAzure" + }, + banner: `/* + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is regenerated. + */` + }, + plugins: [ + nodeResolve({ module: true }), + sourcemaps() + ] +}; + +export default config; diff --git a/sdk/frontdoor/arm-frontdoor/tsconfig.json b/sdk/frontdoor/arm-frontdoor/tsconfig.json new file mode 100644 index 000000000000..51ea90961ce5 --- /dev/null +++ b/sdk/frontdoor/arm-frontdoor/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "es6", + "moduleResolution": "node", + "strict": true, + "target": "es5", + "sourceMap": true, + "declarationMap": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "forceConsistentCasingInFileNames": true, + "lib": ["es6"], + "declaration": true, + "outDir": "./esm", + "importHelpers": true + }, + "include": ["./lib/**/*.ts"], + "exclude": ["node_modules"] +}