diff --git a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/README.md b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/README.md
new file mode 100644
index 000000000000..3c951a6dac88
--- /dev/null
+++ b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/README.md
@@ -0,0 +1,20 @@
+# Public Preview API specification for Frontdoor Azure Resource
+
+This directory contains preview schema specifications for the new Front Door Azure Resource. The API will be added to support Front Door on Azure Resource Manager.
+
+The base swagger document for new features in this preview: [FrontDoor.json](./FrontDoor.json)
+
+## Overview
+The Front Door ARM API supports CRUD functionality on four objects in the resource schema:
+`Frontdoor`, a collection of child objects `BackendPool`, a collection of child objects `FrontendEndpoints` and the primary child object `RoutingRule`, which each reference one `BackendPool` and `FrontendEndpoints` . Each routing rule encapsulates
+all of the settings needed to configure the AzureFD backend infrastructure to set up a
+reverse-proxy route to accelerate traffic, detect backend availability,
+and balance between healthy members of the pool.
+
+## Generated object-model UML diagram
+This diagram is generated from the swagger spec by "[`oav`](https://github.com/Azure/oav) `generate-uml`"
+
+
+## Swagger and JSON specification reference and tools
+ * [OpenAPI specification v2.0 (aka Swagger 2.0)](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md)
+ * [Swagger.io online editor](https://editor.swagger.io/)
diff --git a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/assets/frontdoor.svg b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/assets/frontdoor.svg
new file mode 100644
index 000000000000..2806bba823df
--- /dev/null
+++ b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/assets/frontdoor.svg
@@ -0,0 +1,668 @@
+
+
+
+
+
diff --git a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/CheckFrontdoorNameAvailability.json b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/CheckFrontdoorNameAvailability.json
new file mode 100644
index 000000000000..9973137c0746
--- /dev/null
+++ b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/CheckFrontdoorNameAvailability.json
@@ -0,0 +1,18 @@
+{
+ "parameters": {
+ "api-version": "2018-08-01",
+ "checkFrontDoorNameAvailabilityInput": {
+ "name": "sampleName",
+ "type": "Microsoft.Network/FrontDoors"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "nameAvailability": "Unavailable",
+ "reason": "Name is already in use",
+ "message": "Name not available"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/CheckFrontdoorNameAvailabilityWithSubscription.json b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/CheckFrontdoorNameAvailabilityWithSubscription.json
new file mode 100644
index 000000000000..103b5a68ee66
--- /dev/null
+++ b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/CheckFrontdoorNameAvailabilityWithSubscription.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "api-version": "2018-08-01",
+ "subscriptionId": "subid",
+ "checkFrontDoorNameAvailabilityInput": {
+ "name": "sampleName",
+ "type": "Microsoft.Network/FrontDoors/frontendEndpoints"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "nameAvailability": "Unavailable",
+ "reason": "Name is already in use",
+ "message": "Name not available"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorBackendPoolCreate.json b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorBackendPoolCreate.json
new file mode 100644
index 000000000000..3abdb902482f
--- /dev/null
+++ b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorBackendPoolCreate.json
@@ -0,0 +1,165 @@
+{
+ "parameters": {
+ "api-version": "2018-08-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "frontDoorName": "frontDoor1",
+ "backendPoolName": "backendPool1",
+ "backendPoolParameters": {
+ "name": "backendPool1",
+ "properties": {
+ "backends": [
+ {
+ "address": "w3.contoso.com",
+ "httpPort": 80,
+ "httpsPort": 443,
+ "weight": 1,
+ "priority": 2
+ },
+ {
+ "address": "contoso.com.website-us-west-2.othercloud.net",
+ "httpPort": 80,
+ "httpsPort": 443,
+ "weight": 2,
+ "priority": 1
+ },
+ {
+ "address": "contoso1.azurewebsites.net",
+ "httpPort": 80,
+ "httpsPort": 443,
+ "weight": 1,
+ "priority": 1
+ }
+ ],
+ "loadBalancingSettings": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/loadBalancingSettings/loadBalancingSettings1"
+ },
+ "healthProbeSettings": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/healthProbeSettings/healthProbeSettings1"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/backendPools/backendPool1",
+ "name": "backendPool1",
+ "properties": {
+ "backends": [
+ {
+ "address": "w3.contoso.com",
+ "httpPort": 80,
+ "httpsPort": 443,
+ "enabledState": "Enabled",
+ "weight": 1,
+ "priority": 2
+ },
+ {
+ "address": "contoso.com.website-us-west-2.othercloud.net",
+ "httpPort": 80,
+ "httpsPort": 443,
+ "enabledState": "Enabled",
+ "weight": 2,
+ "priority": 1
+ },
+ {
+ "address": "contoso1.azurewebsites.net",
+ "httpPort": 80,
+ "httpsPort": 443,
+ "enabledState": "Enabled",
+ "weight": 1,
+ "priority": 1
+ }
+ ],
+ "loadBalancingSettings": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/loadBalancingSettings/loadBalancingSettings1"
+ },
+ "healthProbeSettings": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/healthProbeSettings/healthProbeSettings1"
+ }
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/backendPools/backendPool1",
+ "name": "backendPool1",
+ "properties": {
+ "backends": [
+ {
+ "address": "w3.contoso.com",
+ "httpPort": 80,
+ "httpsPort": 443,
+ "enabledState": "Enabled",
+ "weight": 1,
+ "priority": 2
+ },
+ {
+ "address": "contoso.com.website-us-west-2.othercloud.net",
+ "httpPort": 80,
+ "httpsPort": 443,
+ "enabledState": "Enabled",
+ "weight": 2,
+ "priority": 1
+ },
+ {
+ "address": "contoso1.azurewebsites.net",
+ "httpPort": 80,
+ "httpsPort": 443,
+ "enabledState": "Enabled",
+ "weight": 1,
+ "priority": 1
+ }
+ ],
+ "loadBalancingSettings": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/loadBalancingSettings/loadBalancingSettings1"
+ },
+ "healthProbeSettings": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/healthProbeSettings/healthProbeSettings1"
+ }
+ }
+ }
+ },
+ "202": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/backendPools/backendPool1",
+ "name": "backendPool1",
+ "properties": {
+ "backends": [
+ {
+ "address": "w3.contoso.com",
+ "httpPort": 80,
+ "httpsPort": 443,
+ "enabledState": "Enabled",
+ "weight": 1,
+ "priority": 2
+ },
+ {
+ "address": "contoso.com.website-us-west-2.othercloud.net",
+ "httpPort": 80,
+ "httpsPort": 443,
+ "enabledState": "Enabled",
+ "weight": 2,
+ "priority": 1
+ },
+ {
+ "address": "contoso1.azurewebsites.net",
+ "httpPort": 80,
+ "httpsPort": 443,
+ "enabledState": "Enabled",
+ "weight": 1,
+ "priority": 1
+ }
+ ],
+ "loadBalancingSettings": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/loadBalancingSettings/loadBalancingSettings1"
+ },
+ "healthProbeSettings": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/healthProbeSettings/healthProbeSettings1"
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorBackendPoolDelete.json b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorBackendPoolDelete.json
new file mode 100644
index 000000000000..8b5f44e395ba
--- /dev/null
+++ b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorBackendPoolDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2018-08-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "frontDoorName": "frontDoor1",
+ "backendPoolName": "backendPool1"
+ },
+ "responses": {
+ "202": {},
+ "204": {}
+ }
+}
\ No newline at end of file
diff --git a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorBackendPoolGet.json b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorBackendPoolGet.json
new file mode 100644
index 000000000000..79e15f71c0ae
--- /dev/null
+++ b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorBackendPoolGet.json
@@ -0,0 +1,51 @@
+{
+ "parameters": {
+ "api-version": "2018-08-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "frontDoorName": "frontDoor1",
+ "backendPoolName": "backendPool1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/backendPools/backendPool1",
+ "name": "backendPool1",
+ "properties": {
+ "backends": [
+ {
+ "address": "w3.contoso.com",
+ "httpPort": 80,
+ "httpsPort": 443,
+ "enabledState": "Enabled",
+ "weight": 1,
+ "priority": 2
+ },
+ {
+ "address": "contoso.com.website-us-west-2.othercloud.net",
+ "httpPort": 80,
+ "httpsPort": 443,
+ "enabledState": "Enabled",
+ "weight": 2,
+ "priority": 1
+ },
+ {
+ "address": "contoso1.azurewebsites.net",
+ "httpPort": 80,
+ "httpsPort": 443,
+ "enabledState": "Enabled",
+ "weight": 1,
+ "priority": 1
+ }
+ ],
+ "loadBalancingSettings": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/loadBalancingSettings/loadBalancingSettings1"
+ },
+ "healthProbeSettings": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/healthProbeSettings/healthProbeSettings1"
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorBackendPoolList.json b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorBackendPoolList.json
new file mode 100644
index 000000000000..2f426ab29ada
--- /dev/null
+++ b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorBackendPoolList.json
@@ -0,0 +1,54 @@
+{
+ "parameters": {
+ "api-version": "2018-08-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "frontDoorName": "frontDoor1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/backendPools/backendPool1",
+ "name": "backendPool1",
+ "properties": {
+ "backends": [
+ {
+ "address": "w3.contoso.com",
+ "httpPort": 80,
+ "httpsPort": 443,
+ "enabledState": "Enabled",
+ "weight": 1,
+ "priority": 2
+ },
+ {
+ "address": "contoso.com.website-us-west-2.othercloud.net",
+ "httpPort": 80,
+ "httpsPort": 443,
+ "enabledState": "Enabled",
+ "weight": 2,
+ "priority": 1
+ },
+ {
+ "address": "contoso1.azurewebsites.net",
+ "httpPort": 80,
+ "httpsPort": 443,
+ "enabledState": "Enabled",
+ "weight": 1,
+ "priority": 1
+ }
+ ],
+ "loadBalancingSettings": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/loadBalancingSettings/loadBalancingSettings1"
+ },
+ "healthProbeSettings": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/healthProbeSettings/healthProbeSettings1"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorCreate.json b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorCreate.json
new file mode 100644
index 000000000000..8b1edc0c95b0
--- /dev/null
+++ b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorCreate.json
@@ -0,0 +1,498 @@
+{
+ "parameters": {
+ "api-version": "2018-08-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "frontDoorName": "frontDoor1",
+ "frontDoorParameters": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1",
+ "location": "westus",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "properties": {
+ "routingRules": [
+ {
+ "name": "routingRule1",
+ "properties": {
+ "frontendEndpoints": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/frontendEndpoint1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/default"
+ }
+ ],
+ "acceptedProtocols": [
+ "Http"
+ ],
+ "patternsToMatch": [
+ "/*"
+ ],
+ "backendPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/backendPools/backendPool1"
+ },
+ "enabledState": "Enabled"
+ }
+ }
+ ],
+ "healthProbeSettings": [
+ {
+ "name": "healthProbeSettings1",
+ "properties": {
+ "path": "/",
+ "protocol": "Http",
+ "intervalInSeconds": 120
+ }
+ }
+ ],
+ "loadBalancingSettings": [
+ {
+ "name": "loadBalancingSettings1",
+ "properties": {
+ "sampleSize": 4,
+ "successfulSamplesRequired": 2
+ }
+ }
+ ],
+ "backendPools": [
+ {
+ "name": "backendPool1",
+ "properties": {
+ "backends": [
+ {
+ "address": "w3.contoso.com",
+ "httpPort": 80,
+ "httpsPort": 443,
+ "weight": 1,
+ "priority": 2
+ },
+ {
+ "address": "contoso.com.website-us-west-2.othercloud.net",
+ "httpPort": 80,
+ "httpsPort": 443,
+ "weight": 2,
+ "priority": 1
+ },
+ {
+ "address": "contoso1.azurewebsites.net",
+ "httpPort": 80,
+ "httpsPort": 443,
+ "weight": 1,
+ "priority": 1
+ }
+ ],
+ "loadBalancingSettings": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/loadBalancingSettings/loadBalancingSettings1"
+ },
+ "healthProbeSettings": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/healthProbeSettings/healthProbeSettings1"
+ }
+ }
+ }
+ ],
+ "frontendEndpoints": [
+ {
+ "name": "frontendEndpoint1",
+ "properties": {
+ "hostName": "www.contoso.com",
+ "sessionAffinityEnabledState": "Enabled",
+ "sessionAffinityTtlSeconds": 60,
+ "webApplicationFirewallPolicyLink": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoorWebApplicationFirewallPolicies/policy1"
+ }
+ }
+ },
+ {
+ "name": "default",
+ "properties": {
+ "hostName": "frontDoor1.azurefd.net"
+ }
+ }
+ ],
+ "enabledState": "Enabled"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1",
+ "name": "frontDoor1",
+ "type": "Microsoft.Network/frontDoor",
+ "location": "westus",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "properties": {
+ "routingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/routingRules/routingRule1",
+ "name": "routingRule1",
+ "properties": {
+ "frontendEndpoints": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/frontendEndpoint1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/default"
+ }
+ ],
+ "acceptedProtocols": [
+ "Http"
+ ],
+ "patternsToMatch": [
+ "/*"
+ ],
+ "customForwardingPath": "",
+ "forwardingProtocol": "MatchRequest",
+ "backendPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/backendPools/backendPool1"
+ },
+ "enabledState": "Enabled"
+ }
+ }
+ ],
+ "healthProbeSettings": [
+ {
+ "name": "healthProbeSettings1",
+ "properties": {
+ "path": "/",
+ "protocol": "Http",
+ "intervalInSeconds": 120
+ }
+ }
+ ],
+ "loadBalancingSettings": [
+ {
+ "name": "loadBalancingSettings1",
+ "properties": {
+ "sampleSize": 4,
+ "successfulSamplesRequired": 2
+ }
+ }
+ ],
+ "backendPools": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/backendPools/backendPool1",
+ "name": "backendPool1",
+ "properties": {
+ "backends": [
+ {
+ "address": "w3.contoso.com",
+ "httpPort": 80,
+ "httpsPort": 443,
+ "enabledState": "Enabled",
+ "weight": 1,
+ "priority": 2
+ },
+ {
+ "address": "contoso.com.website-us-west-2.othercloud.net",
+ "httpPort": 80,
+ "httpsPort": 443,
+ "enabledState": "Enabled",
+ "weight": 2,
+ "priority": 1
+ },
+ {
+ "address": "contoso1.azurewebsites.net",
+ "httpPort": 80,
+ "httpsPort": 443,
+ "enabledState": "Enabled",
+ "weight": 1,
+ "priority": 1
+ }
+ ],
+ "loadBalancingSettings": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/loadBalancingSettings/loadBalancingSettings1"
+ },
+ "healthProbeSettings": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/healthProbeSettings/healthProbeSettings1"
+ }
+ }
+ }
+ ],
+ "frontendEndpoints": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/frontendEndpoint1",
+ "name": "frontendEndpoint1",
+ "properties": {
+ "hostName": "www.contoso.com",
+ "sessionAffinityEnabledState": "Enabled",
+ "sessionAffinityTtlSeconds": 60,
+ "webApplicationFirewallPolicyLink": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoorWebApplicationFirewallPolicies/policy1"
+ }
+ }
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/default",
+ "name": "default",
+ "properties": {
+ "hostName": "frontDoor1.azurefd.net"
+ }
+ }
+ ],
+ "enabledState": "Enabled",
+ "resourceState": "Creating",
+ "provisioningState": "Succeeded",
+ "cname": "frontDoor1.azurefd.net"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1",
+ "name": "frontDoor1",
+ "type": "Microsoft.Network/frontDoor",
+ "location": "westus",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "properties": {
+ "routingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/routingRules/routingRule1",
+ "name": "routingRule1",
+ "properties": {
+ "frontendEndpoints": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/frontendEndpoint1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/default"
+ }
+ ],
+ "acceptedProtocols": [
+ "Http"
+ ],
+ "patternsToMatch": [
+ "/*"
+ ],
+ "customForwardingPath": "",
+ "forwardingProtocol": "MatchRequest",
+ "backendPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/backendPools/backendPool1"
+ },
+ "enabledState": "Enabled"
+ }
+ }
+ ],
+ "healthProbeSettings": [
+ {
+ "name": "healthProbeSettings1",
+ "properties": {
+ "path": "/",
+ "protocol": "Http",
+ "intervalInSeconds": 120
+ }
+ }
+ ],
+ "loadBalancingSettings": [
+ {
+ "name": "loadBalancingSettings1",
+ "properties": {
+ "sampleSize": 4,
+ "successfulSamplesRequired": 2
+ }
+ }
+ ],
+ "backendPools": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/backendPools/backendPool1",
+ "name": "backendPool1",
+ "properties": {
+ "backends": [
+ {
+ "address": "w3.contoso.com",
+ "httpPort": 80,
+ "httpsPort": 443,
+ "enabledState": "Enabled",
+ "weight": 1,
+ "priority": 2
+ },
+ {
+ "address": "contoso.com.website-us-west-2.othercloud.net",
+ "httpPort": 80,
+ "httpsPort": 443,
+ "enabledState": "Enabled",
+ "weight": 2,
+ "priority": 1
+ },
+ {
+ "address": "contoso1.azurewebsites.net",
+ "httpPort": 80,
+ "httpsPort": 443,
+ "enabledState": "Enabled",
+ "weight": 1,
+ "priority": 1
+ }
+ ],
+ "loadBalancingSettings": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/loadBalancingSettings/loadBalancingSettings1"
+ },
+ "healthProbeSettings": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/healthProbeSettings/healthProbeSettings1"
+ }
+ }
+ }
+ ],
+ "frontendEndpoints": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/frontendEndpoint1",
+ "name": "frontendEndpoint1",
+ "properties": {
+ "hostName": "www.contoso.com",
+ "sessionAffinityEnabledState": "Enabled",
+ "sessionAffinityTtlSeconds": 60,
+ "webApplicationFirewallPolicyLink": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoorWebApplicationFirewallPolicies/policy1"
+ }
+ }
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/default",
+ "name": "default",
+ "properties": {
+ "hostName": "frontDoor1.azurefd.net"
+ }
+ }
+ ],
+ "enabledState": "Enabled",
+ "resourceState": "Creating",
+ "provisioningState": "Provisioning",
+ "cname": "frontDoor1.azurefd.net"
+ }
+ }
+ },
+ "202": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1",
+ "name": "frontDoor1",
+ "type": "Microsoft.Network/frontDoor",
+ "location": "westus",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "properties": {
+ "routingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/routingRules/routingRule1",
+ "name": "routingRule1",
+ "properties": {
+ "frontendEndpoints": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/frontendEndpoint1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/default"
+ }
+ ],
+ "acceptedProtocols": [
+ "Http"
+ ],
+ "patternsToMatch": [
+ "/*"
+ ],
+ "customForwardingPath": "",
+ "forwardingProtocol": "MatchRequest",
+ "backendPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/backendPools/backendPool1"
+ },
+ "enabledState": "Enabled"
+ }
+ }
+ ],
+ "healthProbeSettings": [
+ {
+ "name": "healthProbeSettings1",
+ "properties": {
+ "path": "/",
+ "protocol": "Http",
+ "intervalInSeconds": 120
+ }
+ }
+ ],
+ "loadBalancingSettings": [
+ {
+ "name": "loadBalancingSettings1",
+ "properties": {
+ "sampleSize": 4,
+ "successfulSamplesRequired": 2
+ }
+ }
+ ],
+ "backendPools": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/backendPools/backendPool1",
+ "name": "backendPool1",
+ "properties": {
+ "backends": [
+ {
+ "address": "w3.contoso.com",
+ "httpPort": 80,
+ "httpsPort": 443,
+ "enabledState": "Enabled",
+ "weight": 1,
+ "priority": 2
+ },
+ {
+ "address": "contoso.com.website-us-west-2.othercloud.net",
+ "httpPort": 80,
+ "httpsPort": 443,
+ "enabledState": "Enabled",
+ "weight": 2,
+ "priority": 1
+ },
+ {
+ "address": "contoso1.azurewebsites.net",
+ "httpPort": 80,
+ "httpsPort": 443,
+ "enabledState": "Enabled",
+ "weight": 1,
+ "priority": 1
+ }
+ ],
+ "loadBalancingSettings": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/loadBalancingSettings/loadBalancingSettings1"
+ },
+ "healthProbeSettings": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/healthProbeSettings/healthProbeSettings1"
+ }
+ }
+ }
+ ],
+ "frontendEndpoints": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/frontendEndpoint1",
+ "name": "frontendEndpoint1",
+ "properties": {
+ "hostName": "www.contoso.com",
+ "sessionAffinityEnabledState": "Enabled",
+ "sessionAffinityTtlSeconds": 60,
+ "webApplicationFirewallPolicyLink": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoorWebApplicationFirewallPolicies/policy1"
+ }
+ }
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/default",
+ "name": "default",
+ "properties": {
+ "hostName": "frontDoor1.azurefd.net"
+ }
+ }
+ ],
+ "enabledState": "Enabled",
+ "resourceState": "Creating",
+ "provisioningState": "Provisioning",
+ "cname": "frontDoor1.azurefd.net"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorDelete.json b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorDelete.json
new file mode 100644
index 000000000000..6e9961c0e028
--- /dev/null
+++ b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorDelete.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "api-version": "2018-08-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "frontDoorName": "frontDoor1"
+ },
+ "responses": {
+ "202": {},
+ "204": {}
+ }
+}
\ No newline at end of file
diff --git a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorDisableHttps.json b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorDisableHttps.json
new file mode 100644
index 000000000000..1d3f83034e90
--- /dev/null
+++ b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorDisableHttps.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2018-08-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "frontDoorName": "frontDoor1",
+ "frontendEndpointName": "frontendEndpoint1"
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
\ No newline at end of file
diff --git a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorEnableHttps.json b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorEnableHttps.json
new file mode 100644
index 000000000000..55b8fca5dbff
--- /dev/null
+++ b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorEnableHttps.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "api-version": "2018-08-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "frontDoorName": "frontDoor1",
+ "frontendEndpointName": "frontendEndpoint1",
+ "customHttpsConfiguration": {
+ "certificateSource": "AzureKeyVault",
+ "protocolType": "ServerNameIndication",
+ "keyVaultCertificateSourceParameters": {
+ "vault": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.KeyVault/vaults/vault1"
+ },
+ "secretName": "secret1",
+ "secretVersion": "00000000-0000-0000-0000-000000000000"
+ }
+ }
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
\ No newline at end of file
diff --git a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorFrontendEndpointCreate.json b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorFrontendEndpointCreate.json
new file mode 100644
index 000000000000..94ce8a80fd6f
--- /dev/null
+++ b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorFrontendEndpointCreate.json
@@ -0,0 +1,64 @@
+{
+ "parameters": {
+ "api-version": "2018-08-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "frontDoorName": "frontDoor1",
+ "frontendEndpointName": "frontDoorEndpoint1",
+ "frontendEndpointParameters": {
+ "name": "frontendEndpoint1",
+ "properties": {
+ "hostName": "www.contoso.com",
+ "sessionAffinityEnabledState": "Enabled",
+ "sessionAffinityTtlSeconds": 60,
+ "webApplicationFirewallPolicyLink": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoorWebApplicationFirewallPolicies/policy1"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/frontendEndpoint1",
+ "name": "frontendEndpoint1",
+ "properties": {
+ "hostName": "www.contoso.com",
+ "sessionAffinityEnabledState": "Enabled",
+ "sessionAffinityTtlSeconds": 60,
+ "webApplicationFirewallPolicyLink": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoorWebApplicationFirewallPolicies/policy1"
+ }
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/frontendEndpoint1",
+ "name": "frontendEndpoint1",
+ "properties": {
+ "hostName": "www.contoso.com",
+ "sessionAffinityEnabledState": "Enabled",
+ "sessionAffinityTtlSeconds": 60,
+ "webApplicationFirewallPolicyLink": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoorWebApplicationFirewallPolicies/policy1"
+ }
+ }
+ }
+ },
+ "202": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/frontendEndpoint1",
+ "name": "frontendEndpoint1",
+ "properties": {
+ "hostName": "www.contoso.com",
+ "sessionAffinityEnabledState": "Enabled",
+ "sessionAffinityTtlSeconds": 60,
+ "webApplicationFirewallPolicyLink": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoorWebApplicationFirewallPolicies/policy1"
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorFrontendEndpointDelete.json b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorFrontendEndpointDelete.json
new file mode 100644
index 000000000000..7031bd344045
--- /dev/null
+++ b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorFrontendEndpointDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2018-08-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "frontDoorName": "frontDoor1",
+ "frontendEndpointName": "frontendEndpoint1"
+ },
+ "responses": {
+ "202": {},
+ "204": {}
+ }
+}
\ No newline at end of file
diff --git a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorFrontendEndpointGet.json b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorFrontendEndpointGet.json
new file mode 100644
index 000000000000..3123998c99f9
--- /dev/null
+++ b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorFrontendEndpointGet.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "api-version": "2018-08-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "frontDoorName": "frontDoor1",
+ "frontendEndpointName": "frontendEndpoint1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/frontendEndpoint1",
+ "name": "frontendEndpoint1",
+ "properties": {
+ "hostName": "www.contoso.com",
+ "sessionAffinityEnabledState": "Enabled",
+ "sessionAffinityTtlSeconds": 60,
+ "webApplicationFirewallPolicyLink": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoorWebApplicationFirewallPolicies/policy1"
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorFrontendEndpointList.json b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorFrontendEndpointList.json
new file mode 100644
index 000000000000..27d02aa8d281
--- /dev/null
+++ b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorFrontendEndpointList.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "api-version": "2018-08-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "frontDoorName": "frontDoor1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/frontendEndpoint1",
+ "name": "frontendEndpoint1",
+ "properties": {
+ "hostName": "www.contoso.com",
+ "sessionAffinityEnabledState": "Enabled",
+ "sessionAffinityTtlSeconds": 60,
+ "webApplicationFirewallPolicyLink": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoorWebApplicationFirewallPolicies/policy1"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorGet.json b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorGet.json
new file mode 100644
index 000000000000..87c6c30a6625
--- /dev/null
+++ b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorGet.json
@@ -0,0 +1,136 @@
+{
+ "parameters": {
+ "api-version": "2018-08-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "frontDoorName": "frontDoor1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1",
+ "name": "frontDoor1",
+ "type": "Microsoft.Network/frontDoor",
+ "location": "westus",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "properties": {
+ "routingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/routingRules/routingRule1",
+ "name": "routingRule1",
+ "properties": {
+ "frontendEndpoints": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/frontendEndpoint1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/default"
+ }
+ ],
+ "acceptedProtocols": [
+ "Http"
+ ],
+ "patternsToMatch": [
+ "/*"
+ ],
+ "customForwardingPath": "",
+ "forwardingProtocol": "MatchRequest",
+ "backendPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/backendPools/backendPool1"
+ },
+ "enabledState": "Enabled"
+ }
+ }
+ ],
+ "healthProbeSettings": [
+ {
+ "name": "healthProbeSettings1",
+ "properties": {
+ "path": "/",
+ "protocol": "Http",
+ "intervalInSeconds": 120
+ }
+ }
+ ],
+ "loadBalancingSettings": [
+ {
+ "name": "loadBalancingSettings1",
+ "properties": {
+ "sampleSize": 4,
+ "successfulSamplesRequired": 2
+ }
+ }
+ ],
+ "backendPools": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/backendPools/backendPool1",
+ "name": "backendPool1",
+ "properties": {
+ "backends": [
+ {
+ "address": "w3.contoso.com",
+ "httpPort": 80,
+ "httpsPort": 443,
+ "enabledState": "Enabled",
+ "weight": 1,
+ "priority": 2
+ },
+ {
+ "address": "contoso.com.website-us-west-2.othercloud.net",
+ "httpPort": 80,
+ "httpsPort": 443,
+ "enabledState": "Enabled",
+ "weight": 2,
+ "priority": 1
+ },
+ {
+ "address": "contoso1.azurewebsites.net",
+ "httpPort": 80,
+ "httpsPort": 443,
+ "enabledState": "Enabled",
+ "weight": 1,
+ "priority": 1
+ }
+ ],
+ "loadBalancingSettings": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/loadBalancingSettings/loadBalancingSettings1"
+ },
+ "healthProbeSettings": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/healthProbeSettings/healthProbeSettings1"
+ }
+ }
+ }
+ ],
+ "frontendEndpoints": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/frontendEndpoint1",
+ "name": "frontendEndpoint1",
+ "properties": {
+ "hostName": "www.contoso.com",
+ "sessionAffinityEnabledState": "Enabled",
+ "sessionAffinityTtlSeconds": 60,
+ "webApplicationFirewallPolicyLink": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoorWebApplicationFirewallPolicies/policy1"
+ }
+ }
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/default",
+ "name": "default",
+ "properties": {
+ "hostName": "frontDoor1.azurefd.net"
+ }
+ }
+ ],
+ "enabledState": "Enabled",
+ "resourceState": "Enabled",
+ "provisioningState": "Succeeded",
+ "cname": "frontDoor1.azurefd.net"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorHealthProbeSettingsCreate.json b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorHealthProbeSettingsCreate.json
new file mode 100644
index 000000000000..0ec68f16caa3
--- /dev/null
+++ b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorHealthProbeSettingsCreate.json
@@ -0,0 +1,52 @@
+{
+ "parameters": {
+ "api-version": "2018-08-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "frontDoorName": "frontDoor1",
+ "healthProbeSettingsName": "healthProbeSettings1",
+ "healthProbeSettingsParameters": {
+ "name": "healthProbeSettings1",
+ "properties": {
+ "path": "/",
+ "protocol": "Http",
+ "intervalInSeconds": 120
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/healthProbeSettings/healthProbeSettings1",
+ "name": "healthProbeSettings1",
+ "properties": {
+ "path": "/",
+ "protocol": "Http",
+ "intervalInSeconds": 120
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/healthProbeSettings/healthProbeSettings1",
+ "name": "healthProbeSettings1",
+ "properties": {
+ "path": "/",
+ "protocol": "Http",
+ "intervalInSeconds": 120
+ }
+ }
+ },
+ "202": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/healthProbeSettings/healthProbeSettings1",
+ "name": "healthProbeSettings1",
+ "properties": {
+ "path": "/",
+ "protocol": "Http",
+ "intervalInSeconds": 120
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorHealthProbeSettingsDelete.json b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorHealthProbeSettingsDelete.json
new file mode 100644
index 000000000000..7446d89fe880
--- /dev/null
+++ b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorHealthProbeSettingsDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2018-08-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "frontDoorName": "frontDoor1",
+ "healthProbeSettingsName": "healthProbeSettings1"
+ },
+ "responses": {
+ "202": {},
+ "204": {}
+ }
+}
\ No newline at end of file
diff --git a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorHealthProbeSettingsGet.json b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorHealthProbeSettingsGet.json
new file mode 100644
index 000000000000..a7fa09954a24
--- /dev/null
+++ b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorHealthProbeSettingsGet.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "api-version": "2018-08-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "frontDoorName": "frontDoor1",
+ "healthProbeSettingsName": "healthProbeSettings1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/healthProbeSettings/healthProbeSettings1",
+ "name": "healthProbeSettings1",
+ "properties": {
+ "path": "/",
+ "protocol": "Http",
+ "intervalInSeconds": 120
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorHealthProbeSettingsList.json b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorHealthProbeSettingsList.json
new file mode 100644
index 000000000000..ba9c0c3c37be
--- /dev/null
+++ b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorHealthProbeSettingsList.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "api-version": "2018-08-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "frontDoorName": "frontDoor1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/healthProbeSettings/healthProbeSettings1",
+ "name": "healthProbeSettings1",
+ "properties": {
+ "path": "/",
+ "protocol": "Http",
+ "intervalInSeconds": 120
+ }
+ }
+ ]
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorList.json b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorList.json
new file mode 100644
index 000000000000..a7cc41d1ac36
--- /dev/null
+++ b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorList.json
@@ -0,0 +1,139 @@
+{
+ "parameters": {
+ "api-version": "2018-08-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1",
+ "name": "frontDoor1",
+ "type": "Microsoft.Network/frontDoor",
+ "location": "westus",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "properties": {
+ "routingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/routingRules/routingRule1",
+ "name": "routingRule1",
+ "properties": {
+ "frontendEndpoints": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/frontendEndpoint1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/default"
+ }
+ ],
+ "acceptedProtocols": [
+ "Http"
+ ],
+ "patternsToMatch": [
+ "/*"
+ ],
+ "customForwardingPath": "",
+ "forwardingProtocol": "MatchRequest",
+ "backendPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/backendPools/backendPool1"
+ },
+ "enabledState": "Enabled"
+ }
+ }
+ ],
+ "healthProbeSettings": [
+ {
+ "name": "healthProbeSettings1",
+ "properties": {
+ "path": "/",
+ "protocol": "Http",
+ "intervalInSeconds": 120
+ }
+ }
+ ],
+ "loadBalancingSettings": [
+ {
+ "name": "loadBalancingSettings1",
+ "properties": {
+ "sampleSize": 4,
+ "successfulSamplesRequired": 2
+ }
+ }
+ ],
+ "backendPools": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/backendPools/backendPool1",
+ "name": "backendPool1",
+ "properties": {
+ "backends": [
+ {
+ "address": "w3.contoso.com",
+ "httpPort": 80,
+ "httpsPort": 443,
+ "enabledState": "Enabled",
+ "weight": 1,
+ "priority": 2
+ },
+ {
+ "address": "contoso.com.website-us-west-2.othercloud.net",
+ "httpPort": 80,
+ "httpsPort": 443,
+ "enabledState": "Enabled",
+ "weight": 2,
+ "priority": 1
+ },
+ {
+ "address": "contoso1.azurewebsites.net",
+ "httpPort": 80,
+ "httpsPort": 443,
+ "enabledState": "Enabled",
+ "weight": 1,
+ "priority": 1
+ }
+ ],
+ "loadBalancingSettings": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/loadBalancingSettings/loadBalancingSettings1"
+ },
+ "healthProbeSettings": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/healthProbeSettings/healthProbeSettings1"
+ }
+ }
+ }
+ ],
+ "frontendEndpoints": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/frontendEndpoint1",
+ "name": "frontendEndpoint1",
+ "properties": {
+ "hostName": "www.contoso.com",
+ "sessionAffinityEnabledState": "Enabled",
+ "sessionAffinityTtlSeconds": 60,
+ "webApplicationFirewallPolicyLink": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoorWebApplicationFirewallPolicies/policy1"
+ }
+ }
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/default",
+ "name": "default",
+ "properties": {
+ "hostName": "frontDoor1.azurefd.net"
+ }
+ }
+ ],
+ "enabledState": "Enabled",
+ "resourceState": "Enabled",
+ "provisioningState": "Succeeded",
+ "cname": "frontDoor1.azurefd.net"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorListAll.json b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorListAll.json
new file mode 100644
index 000000000000..79272b3dcd5c
--- /dev/null
+++ b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorListAll.json
@@ -0,0 +1,138 @@
+{
+ "parameters": {
+ "api-version": "2018-08-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1",
+ "name": "frontDoor1",
+ "type": "Microsoft.Network/frontDoor",
+ "location": "westus",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "properties": {
+ "routingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/routingRules/routingRule1",
+ "name": "routingRule1",
+ "properties": {
+ "frontendEndpoints": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/frontendEndpoint1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/default"
+ }
+ ],
+ "acceptedProtocols": [
+ "Http"
+ ],
+ "patternsToMatch": [
+ "/*"
+ ],
+ "customForwardingPath": "",
+ "forwardingProtocol": "MatchRequest",
+ "backendPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/backendPools/backendPool1"
+ },
+ "enabledState": "Enabled"
+ }
+ }
+ ],
+ "healthProbeSettings": [
+ {
+ "name": "healthProbeSettings1",
+ "properties": {
+ "path": "/",
+ "protocol": "Http",
+ "intervalInSeconds": 120
+ }
+ }
+ ],
+ "loadBalancingSettings": [
+ {
+ "name": "loadBalancingSettings1",
+ "properties": {
+ "sampleSize": 4,
+ "successfulSamplesRequired": 2
+ }
+ }
+ ],
+ "backendPools": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/backendPools/backendPool1",
+ "name": "backendPool1",
+ "properties": {
+ "backends": [
+ {
+ "address": "w3.contoso.com",
+ "httpPort": 80,
+ "httpsPort": 443,
+ "enabledState": "Enabled",
+ "weight": 1,
+ "priority": 2
+ },
+ {
+ "address": "contoso.com.website-us-west-2.othercloud.net",
+ "httpPort": 80,
+ "httpsPort": 443,
+ "enabledState": "Enabled",
+ "weight": 2,
+ "priority": 1
+ },
+ {
+ "address": "contoso1.azurewebsites.net",
+ "httpPort": 80,
+ "httpsPort": 443,
+ "enabledState": "Enabled",
+ "weight": 1,
+ "priority": 1
+ }
+ ],
+ "loadBalancingSettings": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/loadBalancingSettings/loadBalancingSettings1"
+ },
+ "healthProbeSettings": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/healthProbeSettings/healthProbeSettings1"
+ }
+ }
+ }
+ ],
+ "frontendEndpoints": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/frontendEndpoint1",
+ "name": "frontendEndpoint1",
+ "properties": {
+ "hostName": "www.contoso.com",
+ "sessionAffinityEnabledState": "Enabled",
+ "sessionAffinityTtlSeconds": 60,
+ "webApplicationFirewallPolicyLink": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoorWebApplicationFirewallPolicies/policy1"
+ }
+ }
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/default",
+ "name": "default",
+ "properties": {
+ "hostName": "frontDoor1.azurefd.net"
+ }
+ }
+ ],
+ "enabledState": "Enabled",
+ "resourceState": "Enabled",
+ "provisioningState": "Succeeded",
+ "cname": "frontDoor1.azurefd.net"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorLoadBalancingSettingsCreate.json b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorLoadBalancingSettingsCreate.json
new file mode 100644
index 000000000000..53e73303a122
--- /dev/null
+++ b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorLoadBalancingSettingsCreate.json
@@ -0,0 +1,48 @@
+{
+ "parameters": {
+ "api-version": "2018-08-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "frontDoorName": "frontDoor1",
+ "loadBalancingSettingsName": "loadBalancingSettings1",
+ "loadBalancingSettingsParameters": {
+ "name": "loadBalancingSettings1",
+ "properties": {
+ "sampleSize": 4,
+ "successfulSamplesRequired": 2
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/loadBalancingSettings/loadbalancingSettings1",
+ "name": "loadBalancingSettings1",
+ "properties": {
+ "sampleSize": 4,
+ "successfulSamplesRequired": 2
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/loadBalancingSettings/loadbalancingSettings1",
+ "name": "loadBalancingSettings1",
+ "properties": {
+ "sampleSize": 4,
+ "successfulSamplesRequired": 2
+ }
+ }
+ },
+ "202": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/loadBalancingSettings/loadbalancingSettings1",
+ "name": "loadBalancingSettings1",
+ "properties": {
+ "sampleSize": 4,
+ "successfulSamplesRequired": 2
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorLoadBalancingSettingsDelete.json b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorLoadBalancingSettingsDelete.json
new file mode 100644
index 000000000000..924b66a7fa90
--- /dev/null
+++ b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorLoadBalancingSettingsDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2018-08-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "frontDoorName": "frontDoor1",
+ "loadBalancingSettingsName": "loadBalancingSettings1"
+ },
+ "responses": {
+ "202": {},
+ "204": {}
+ }
+}
\ No newline at end of file
diff --git a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorLoadBalancingSettingsGet.json b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorLoadBalancingSettingsGet.json
new file mode 100644
index 000000000000..e2cf444e945f
--- /dev/null
+++ b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorLoadBalancingSettingsGet.json
@@ -0,0 +1,21 @@
+{
+ "parameters": {
+ "api-version": "2018-08-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "frontDoorName": "frontDoor1",
+ "loadBalancingSettingsName": "loadBalancingSettings1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/loadBalancingSettings/loadbalancingSettings1",
+ "name": "loadBalancingSettings1",
+ "properties": {
+ "sampleSize": 4,
+ "successfulSamplesRequired": 2
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorLoadBalancingSettingsList.json b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorLoadBalancingSettingsList.json
new file mode 100644
index 000000000000..849653c5d422
--- /dev/null
+++ b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorLoadBalancingSettingsList.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "api-version": "2018-08-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "frontDoorName": "frontDoor1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/loadBalancingSettings/loadbalancingSettings1",
+ "name": "loadBalancingSettings1",
+ "properties": {
+ "sampleSize": 4,
+ "successfulSamplesRequired": 2
+ }
+ }
+ ]
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorOperationsList.json b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorOperationsList.json
new file mode 100644
index 000000000000..d6458ecf0c4d
--- /dev/null
+++ b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorOperationsList.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2017-10-12"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ ]
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorPurgeContent.json b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorPurgeContent.json
new file mode 100644
index 000000000000..42c1dc249316
--- /dev/null
+++ b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorPurgeContent.json
@@ -0,0 +1,18 @@
+{
+ "parameters": {
+ "api-version": "2018-08-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "frontDoorName": "frontDoor1",
+ "contentFilePaths": {
+ "contentPaths": [
+ "/pictures.aspx",
+ "/pictures/*"
+ ]
+ }
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
\ No newline at end of file
diff --git a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorRoutingRuleCreate.json b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorRoutingRuleCreate.json
new file mode 100644
index 000000000000..28dd17dd3aba
--- /dev/null
+++ b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorRoutingRuleCreate.json
@@ -0,0 +1,118 @@
+{
+ "parameters": {
+ "api-version": "2018-08-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "frontDoorName": "frontDoor1",
+ "routingRuleName": "routingRule1",
+ "routingRuleParameters": {
+ "name": "routingRule1",
+ "properties": {
+ "frontendEndpoints": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/frontendEndpoint1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/default"
+ }
+ ],
+ "acceptedProtocols": [
+ "Http"
+ ],
+ "patternsToMatch": [
+ "/*"
+ ],
+ "backendPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/backendPools/backendPool1"
+ },
+ "enabledState": "Enabled"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/routingRule1",
+ "name": "routingRule1",
+ "properties": {
+ "frontendEndpoints": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/frontendEndpoint1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/default"
+ }
+ ],
+ "acceptedProtocols": [
+ "Http"
+ ],
+ "patternsToMatch": [
+ "/*"
+ ],
+ "customForwardingPath": "",
+ "forwardingProtocol": "MatchRequest",
+ "backendPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/backendPools/backendPool1"
+ },
+ "enabledState": "Enabled"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/routingRule1",
+ "name": "routingRule1",
+ "properties": {
+ "frontendEndpoints": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/frontendEndpoint1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/default"
+ }
+ ],
+ "acceptedProtocols": [
+ "Http"
+ ],
+ "patternsToMatch": [
+ "/*"
+ ],
+ "customForwardingPath": "",
+ "forwardingProtocol": "MatchRequest",
+ "backendPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/backendPools/backendPool1"
+ },
+ "enabledState": "Enabled"
+ }
+ }
+ },
+ "202": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/routingRule1",
+ "name": "routingRule1",
+ "properties": {
+ "frontendEndpoints": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/frontendEndpoint1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/default"
+ }
+ ],
+ "acceptedProtocols": [
+ "Http"
+ ],
+ "patternsToMatch": [
+ "/*"
+ ],
+ "customForwardingPath": "",
+ "forwardingProtocol": "MatchRequest",
+ "backendPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/backendPools/backendPool1"
+ },
+ "enabledState": "Enabled"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorRoutingRuleDelete.json b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorRoutingRuleDelete.json
new file mode 100644
index 000000000000..c8821d30d2de
--- /dev/null
+++ b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorRoutingRuleDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2018-08-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "frontDoorName": "frontDoor1",
+ "routingRuleName": "routingRule1"
+ },
+ "responses": {
+ "202": {},
+ "204": {}
+ }
+}
\ No newline at end of file
diff --git a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorRoutingRuleGet.json b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorRoutingRuleGet.json
new file mode 100644
index 000000000000..a934c896885a
--- /dev/null
+++ b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorRoutingRuleGet.json
@@ -0,0 +1,39 @@
+{
+ "parameters": {
+ "api-version": "2018-08-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "frontDoorName": "frontDoor1",
+ "routingRuleName": "routingRule1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/routingRule1",
+ "name": "routingRule1",
+ "properties": {
+ "frontendEndpoints": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/frontendEndpoint1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/default"
+ }
+ ],
+ "acceptedProtocols": [
+ "Http"
+ ],
+ "patternsToMatch": [
+ "/*"
+ ],
+ "customForwardingPath": "",
+ "forwardingProtocol": "MatchRequest",
+ "backendPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/backendPools/backendPool1"
+ },
+ "enabledState": "Enabled"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorRoutingRuleList.json b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorRoutingRuleList.json
new file mode 100644
index 000000000000..fc965eae8562
--- /dev/null
+++ b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorRoutingRuleList.json
@@ -0,0 +1,42 @@
+{
+ "parameters": {
+ "api-version": "2018-08-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "frontDoorName": "frontDoor1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/routingRule1",
+ "name": "routingRule1",
+ "properties": {
+ "frontendEndpoints": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/frontendEndpoint1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/default"
+ }
+ ],
+ "acceptedProtocols": [
+ "Http"
+ ],
+ "patternsToMatch": [
+ "/*"
+ ],
+ "customForwardingPath": "",
+ "forwardingProtocol": "MatchRequest",
+ "backendPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/backendPools/backendPool1"
+ },
+ "enabledState": "Enabled"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorValidateCustomDomain.json b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorValidateCustomDomain.json
new file mode 100644
index 000000000000..58458eb87b23
--- /dev/null
+++ b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorValidateCustomDomain.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "api-version": "2018-08-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "frontDoorName": "frontDoor1",
+ "customDomainProperties": {
+ "hostname": "www.someDomain.com"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "customDomainValidated": true,
+ "message": null,
+ "reason": null
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/WafListPolicies.json b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/WafListPolicies.json
new file mode 100644
index 000000000000..7574369b813a
--- /dev/null
+++ b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/WafListPolicies.json
@@ -0,0 +1,106 @@
+{
+ "parameters": {
+ "api-version": "2018-08-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "Policy1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/FrontDoorWebApplicationFirewallPolicies/Policy1",
+ "type": "Microsoft.Network/frontdoorwebapplicationfirewallpolicies",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "location": "WestUs",
+ "properties": {
+ "resourceState": "Enabled",
+ "provisioningState": "Succeeded",
+ "policySettings": {
+ "enabledState": "Enabled",
+ "mode": "Prevention"
+ },
+ "customRules": {
+ "rules": [
+ {
+ "name": "Rule1",
+ "priority": 1,
+ "ruleType": "RateLimitRule",
+ "rateLimitDurationInMinutes": 0,
+ "rateLimitThreshold": 1000,
+ "matchConditions": [
+ {
+ "matchVariable": "RemoteAddr",
+ "selector": null,
+ "operator": "IPMatch",
+ "negateCondition": false,
+ "matchValue": [
+ "192.168.1.0/24",
+ "10.0.0.0/24"
+ ]
+ }
+ ],
+ "action": "Block",
+ "transforms": []
+ },
+ {
+ "name": "Rule2",
+ "priority": 2,
+ "ruleType": "MatchRule",
+ "rateLimitDurationInMinutes": 0,
+ "rateLimitThreshold": 0,
+ "matchConditions": [
+ {
+ "matchVariable": "RemoteAddr",
+ "selector": null,
+ "operator": "GeoMatch",
+ "negateCondition": false,
+ "matchValue": [
+ "CH"
+ ]
+ },
+ {
+ "matchVariable": "RequestHeader",
+ "selector": "UserAgent",
+ "operator": "Contains",
+ "negateCondition": false,
+ "matchValue": [
+ "Windows"
+ ]
+ }
+ ],
+ "action": "Block",
+ "transforms": []
+ }
+ ]
+ },
+ "managedRules": {
+ "ruleSets": [
+ {
+ "priority": 1,
+ "version": 0,
+ "ruleSetType": "AzureManagedRuleSet",
+ "ruleGroupOverrides": [
+ {
+ "ruleGroupOverride": "SqlInjection",
+ "action": "Block"
+ },
+ {
+ "ruleGroupOverride": "XSS",
+ "action": "Log"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/WafPolicyCreateOrUpdate.json b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/WafPolicyCreateOrUpdate.json
new file mode 100644
index 000000000000..bda48507b49e
--- /dev/null
+++ b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/WafPolicyCreateOrUpdate.json
@@ -0,0 +1,262 @@
+{
+ "parameters": {
+ "api-version": "2018-08-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "policyName": "Policy1",
+ "parameters": {
+ "properties": {
+ "customRules": {
+ "rules": [
+ {
+ "name": "Rule1",
+ "priority": 1,
+ "ruleType": "RateLimitRule",
+ "rateLimitThreshold": 1000,
+ "matchConditions": [
+ {
+ "matchVariable": "RemoteAddr",
+ "operator": "IPMatch",
+ "matchValue": [
+ "192.168.1.0/24",
+ "10.0.0.0/24"
+ ]
+ }
+ ],
+ "action": "Block"
+ },
+ {
+ "name": "Rule2",
+ "priority": 2,
+ "ruleType": "MatchRule",
+ "matchConditions": [
+ {
+ "matchVariable": "RemoteAddr",
+ "operator": "GeoMatch",
+ "matchValue": [
+ "CH"
+ ]
+ },
+ {
+ "matchVariable": "RequestHeader",
+ "operator": "Contains",
+ "selector": "UserAgent",
+ "matchValue": [
+ "Windows"
+ ]
+ }
+ ],
+ "action": "Block"
+ }
+ ]
+ },
+ "managedRules": {
+ "ruleSets": [
+ {
+ "ruleSetType": "AzureManagedRuleSet",
+ "priority": 1,
+ "ruleGroupOverrides": [
+ {
+ "ruleGroupOverride": "SqlInjection",
+ "action": "Block"
+ },
+ {
+ "ruleGroupOverride": "XSS",
+ "action": "Log"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "Policy1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/FrontDoorWebApplicationFirewallPolicies/Policy1",
+ "type": "Microsoft.Network/frontdoorwebapplicationfirewallpolicies",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "location": "WestUs",
+ "properties": {
+ "resourceState": "Enabled",
+ "provisioningState": "Succeeded",
+ "policySettings": {
+ "enabledState": "Enabled",
+ "mode": "Prevention"
+ },
+ "customRules": {
+ "rules": [
+ {
+ "name": "Rule1",
+ "priority": 1,
+ "ruleType": "RateLimitRule",
+ "rateLimitDurationInMinutes": 0,
+ "rateLimitThreshold": 1000,
+ "matchConditions": [
+ {
+ "matchVariable": "RemoteAddr",
+ "selector": null,
+ "operator": "IPMatch",
+ "negateCondition": false,
+ "matchValue": [
+ "192.168.1.0/24",
+ "10.0.0.0/24"
+ ]
+ }
+ ],
+ "action": "Block",
+ "transforms": []
+ },
+ {
+ "name": "Rule2",
+ "priority": 2,
+ "ruleType": "MatchRule",
+ "rateLimitDurationInMinutes": 0,
+ "rateLimitThreshold": 0,
+ "matchConditions": [
+ {
+ "matchVariable": "RemoteAddr",
+ "selector": null,
+ "operator": "GeoMatch",
+ "negateCondition": false,
+ "matchValue": [
+ "CH"
+ ]
+ },
+ {
+ "matchVariable": "RequestHeader",
+ "selector": "UserAgent",
+ "operator": "Contains",
+ "negateCondition": false,
+ "matchValue": [
+ "Windows"
+ ]
+ }
+ ],
+ "action": "Block",
+ "transforms": []
+ }
+ ]
+ },
+ "managedRules": {
+ "ruleSets": [
+ {
+ "priority": 1,
+ "version": 0,
+ "ruleSetType": "AzureManagedRuleSet",
+ "ruleGroupOverrides": [
+ {
+ "ruleGroupOverride": "SqlInjection",
+ "action": "Block"
+ },
+ {
+ "ruleGroupOverride": "XSS",
+ "action": "Log"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "Policy1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/FrontDoorWebApplicationFirewallPolicies/Policy1",
+ "type": "Microsoft.Network/frontdoorwebapplicationfirewallpolicies",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "location": "WestUs",
+ "properties": {
+ "resourceState": "Enabled",
+ "provisioningState": "Succeeded",
+ "policySettings": {
+ "enabledState": "Enabled",
+ "mode": "Prevention"
+ },
+ "customRules": {
+ "rules": [
+ {
+ "name": "Rule1",
+ "priority": 1,
+ "ruleType": "RateLimitRule",
+ "rateLimitDurationInMinutes": 0,
+ "rateLimitThreshold": 1000,
+ "matchConditions": [
+ {
+ "matchVariable": "RemoteAddr",
+ "selector": null,
+ "operator": "IPMatch",
+ "negateCondition": false,
+ "matchValue": [
+ "192.168.1.0/24",
+ "10.0.0.0/24"
+ ]
+ }
+ ],
+ "action": "Block",
+ "transforms": []
+ },
+ {
+ "name": "Rule2",
+ "priority": 2,
+ "ruleType": "MatchRule",
+ "rateLimitDurationInMinutes": 0,
+ "rateLimitThreshold": 0,
+ "matchConditions": [
+ {
+ "matchVariable": "RemoteAddr",
+ "selector": null,
+ "operator": "GeoMatch",
+ "negateCondition": false,
+ "matchValue": [
+ "CH"
+ ]
+ },
+ {
+ "matchVariable": "RequestHeader",
+ "selector": "UserAgent",
+ "operator": "Contains",
+ "negateCondition": false,
+ "matchValue": [
+ "Windows"
+ ]
+ }
+ ],
+ "action": "Block",
+ "transforms": []
+ }
+ ]
+ },
+ "managedRules": {
+ "ruleSets": [
+ {
+ "priority": 1,
+ "version": 0,
+ "ruleSetType": "AzureManagedRuleSet",
+ "ruleGroupOverrides": [
+ {
+ "ruleGroupOverride": "SqlInjection",
+ "action": "Block"
+ },
+ {
+ "ruleGroupOverride": "XSS",
+ "action": "Log"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/WafPolicyDelete.json b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/WafPolicyDelete.json
new file mode 100644
index 000000000000..c008a5ee70ec
--- /dev/null
+++ b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/WafPolicyDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2018-08-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "policyName": "Policy1"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
\ No newline at end of file
diff --git a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/WafPolicyGet.json b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/WafPolicyGet.json
new file mode 100644
index 000000000000..bc8c0bd0ccbd
--- /dev/null
+++ b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/WafPolicyGet.json
@@ -0,0 +1,103 @@
+{
+ "parameters": {
+ "api-version": "2018-08-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "policyName": "Policy1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "Policy1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/FrontDoorWebApplicationFirewallPolicies/Policy1",
+ "type": "Microsoft.Network/frontdoorwebapplicationfirewallpolicies",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "location": "WestUs",
+ "properties": {
+ "resourceState": "Enabled",
+ "provisioningState": "Succeeded",
+ "policySettings": {
+ "enabledState": "Enabled",
+ "mode": "Prevention"
+ },
+ "customRules": {
+ "rules": [
+ {
+ "name": "Rule1",
+ "priority": 1,
+ "ruleType": "RateLimitRule",
+ "rateLimitDurationInMinutes": 0,
+ "rateLimitThreshold": 1000,
+ "matchConditions": [
+ {
+ "matchVariable": "RemoteAddr",
+ "selector": null,
+ "operator": "IPMatch",
+ "negateCondition": false,
+ "matchValue": [
+ "192.168.1.0/24",
+ "10.0.0.0/24"
+ ]
+ }
+ ],
+ "action": "Block",
+ "transforms": []
+ },
+ {
+ "name": "Rule2",
+ "priority": 2,
+ "ruleType": "MatchRule",
+ "rateLimitDurationInMinutes": 0,
+ "rateLimitThreshold": 0,
+ "matchConditions": [
+ {
+ "matchVariable": "RemoteAddr",
+ "selector": null,
+ "operator": "GeoMatch",
+ "negateCondition": false,
+ "matchValue": [
+ "CH"
+ ]
+ },
+ {
+ "matchVariable": "RequestHeader",
+ "selector": "UserAgent",
+ "operator": "Contains",
+ "negateCondition": false,
+ "matchValue": [
+ "Windows"
+ ]
+ }
+ ],
+ "action": "Block",
+ "transforms": []
+ }
+ ]
+ },
+ "managedRules": {
+ "ruleSets": [
+ {
+ "priority": 1,
+ "version": 0,
+ "ruleSetType": "AzureManagedRuleSet",
+ "ruleGroupOverrides": [
+ {
+ "ruleGroupOverride": "SqlInjection",
+ "action": "Block"
+ },
+ {
+ "ruleGroupOverride": "XSS",
+ "action": "Log"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/frontdoor.json b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/frontdoor.json
new file mode 100644
index 000000000000..48ae71f9be9d
--- /dev/null
+++ b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/frontdoor.json
@@ -0,0 +1,2553 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2018-08-01",
+ "title": "FrontDoorManagementClient",
+ "description": "Use these APIs to manage Azure Front Door resources through the Azure Resource Manager. You must make sure that requests made to these resources are secure."
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "security": [
+ {
+ "azure_auth": [
+ "user_impersonation"
+ ]
+ }
+ ],
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Azure Active Directory OAuth2 Flow",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
+ "paths": {
+ "/providers/Microsoft.Network/checkFrontDoorNameAvailability": {
+ "post": {
+ "tags": [
+ "CheckFrontDoorNameAvailability"
+ ],
+ "description": "Check the availability of a Front Door resource name.",
+ "operationId": "CheckFrontDoorNameAvailability",
+ "x-ms-examples": {
+ "CheckNameAvailability": {
+ "$ref": "./examples/CheckFrontdoorNameAvailability.json"
+ }
+ },
+ "parameters": [
+ {
+ "name": "checkFrontDoorNameAvailabilityInput",
+ "in": "body",
+ "description": "Input to check.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CheckNameAvailabilityInput"
+ }
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/CheckNameAvailabilityOutput"
+ }
+ },
+ "default": {
+ "description": "Front Door error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/checkFrontDoorNameAvailability": {
+ "post": {
+ "tags": [
+ "CheckFrontDoorNameAvailabilityWithSubscription"
+ ],
+ "description": "Check the availability of a Front Door subdomain.",
+ "operationId": "CheckFrontDoorNameAvailabilityWithSubscription",
+ "x-ms-examples": {
+ "CheckNameAvailabilityWithSubscription": {
+ "$ref": "./examples/CheckFrontdoorNameAvailabilityWithSubscription.json"
+ }
+ },
+ "parameters": [
+ {
+ "name": "checkFrontDoorNameAvailabilityInput",
+ "in": "body",
+ "description": "Input to check.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CheckNameAvailabilityInput"
+ }
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/CheckNameAvailabilityOutput"
+ }
+ },
+ "default": {
+ "description": "Front Door error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/frontDoors": {
+ "get": {
+ "tags": [
+ "FrontDoors"
+ ],
+ "description": "Lists all of the Front Doors within an Azure subscription.",
+ "operationId": "FrontDoors_List",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/FrontDoorListResult"
+ }
+ },
+ "default": {
+ "description": "Front Door error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "List all Front Doors": {
+ "$ref": "./examples/FrontdoorListAll.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors": {
+ "get": {
+ "tags": [
+ "FrontDoors"
+ ],
+ "description": "Lists all of the Front Doors within a resource group under a subscription.",
+ "operationId": "FrontDoors_ListByResourceGroup",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/FrontDoorListResult"
+ }
+ },
+ "default": {
+ "description": "Front Door error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "List Front Doors in a Resource Group": {
+ "$ref": "./examples/FrontdoorList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}": {
+ "get": {
+ "tags": [
+ "FrontDoors"
+ ],
+ "description": "Gets a Front Door with the specified Front Door name under the specified subscription and resource group.",
+ "operationId": "FrontDoors_Get",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/frontDoorNameParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/FrontDoor"
+ }
+ },
+ "default": {
+ "description": "Front Door error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Front Door": {
+ "$ref": "./examples/FrontdoorGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "FrontDoors"
+ ],
+ "description": "Creates a new Front Door with a Front Door name under the specified subscription and resource group.",
+ "operationId": "FrontDoors_CreateOrUpdate",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/frontDoorNameParameter"
+ },
+ {
+ "description": "Front Door properties needed to create a new Front Door.",
+ "in": "body",
+ "name": "frontDoorParameters",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/FrontDoor"
+ }
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/FrontDoor"
+ }
+ },
+ "201": {
+ "description": "Created. The request has been fulfilled and a new Front Door has been created.",
+ "schema": {
+ "$ref": "#/definitions/FrontDoor"
+ }
+ },
+ "202": {
+ "description": "Accepted. The request has been accepted for processing and the operation will complete asynchronously.",
+ "schema": {
+ "$ref": "#/definitions/FrontDoor"
+ }
+ },
+ "default": {
+ "description": "Front Door error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create or update specific Front Door": {
+ "$ref": "./examples/FrontdoorCreate.json"
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "delete": {
+ "tags": [
+ "FrontDoors"
+ ],
+ "description": "Deletes an existing Front Door with the specified parameters.",
+ "operationId": "FrontDoors_Delete",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/frontDoorNameParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted. The request has been accepted for processing and the operation will complete asynchronously."
+ },
+ "204": {
+ "description": "No Content. The request has been accepted but the Front Door was not found."
+ },
+ "default": {
+ "description": "Front Door error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete Front Door": {
+ "$ref": "./examples/FrontdoorDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}/routingRules": {
+ "get": {
+ "tags": [
+ "FrontDoors"
+ ],
+ "description": "Lists all of the Routing Rules within a Front Door.",
+ "operationId": "RoutingRules_ListByFrontDoor",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/frontDoorNameParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/RoutingRuleListResult"
+ }
+ },
+ "default": {
+ "description": "Front Door error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "List Routing Rules in a Front Door": {
+ "$ref": "./examples/FrontdoorRoutingRuleList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}/routingRules/{routingRuleName}": {
+ "get": {
+ "tags": [
+ "FrontDoors"
+ ],
+ "description": "Gets a Routing Rule with the specified Rule name within the specified Front Door.",
+ "operationId": "RoutingRules_Get",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/frontDoorNameParameter"
+ },
+ {
+ "$ref": "#/parameters/routingRuleNameParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/RoutingRule"
+ }
+ },
+ "default": {
+ "description": "Front Door error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Routing Rule": {
+ "$ref": "./examples/FrontdoorRoutingRuleGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "FrontDoors"
+ ],
+ "description": "Creates a new Routing Rule with the specified Rule name within the specified Front Door.",
+ "operationId": "RoutingRules_CreateOrUpdate",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/frontDoorNameParameter"
+ },
+ {
+ "$ref": "#/parameters/routingRuleNameParameter"
+ },
+ {
+ "description": "Routing Rule properties needed to create a new Front Door.",
+ "in": "body",
+ "name": "routingRuleParameters",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/RoutingRule"
+ }
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/RoutingRule"
+ }
+ },
+ "201": {
+ "description": "Created. The request has been fulfilled and a new RoutingRule has been created.",
+ "schema": {
+ "$ref": "#/definitions/RoutingRule"
+ }
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously.",
+ "schema": {
+ "$ref": "#/definitions/RoutingRule"
+ }
+ },
+ "default": {
+ "description": "Front Door error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create or update specific Routing Rule": {
+ "$ref": "./examples/FrontdoorRoutingRuleCreate.json"
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "delete": {
+ "tags": [
+ "FrontDoors"
+ ],
+ "description": "Deletes an existing Routing Rule with the specified parameters.",
+ "operationId": "RoutingRules_Delete",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/frontDoorNameParameter"
+ },
+ {
+ "$ref": "#/parameters/routingRuleNameParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted. The request has been accepted for processing and the operation will complete asynchronously."
+ },
+ "204": {
+ "description": "No Content. The request has been accepted but the Routing Rule was not found."
+ },
+ "default": {
+ "description": "Front Door error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete Routing Rule": {
+ "$ref": "./examples/FrontdoorRoutingRuleDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}/healthProbeSettings": {
+ "get": {
+ "tags": [
+ "FrontDoors"
+ ],
+ "description": "Lists all of the HealthProbeSettings within a Front Door.",
+ "operationId": "HealthProbeSettings_ListByFrontDoor",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/frontDoorNameParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/HealthProbeSettingsListResult"
+ }
+ },
+ "default": {
+ "description": "Front Door error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "List HealthProbeSettings in a Front Door": {
+ "$ref": "./examples/FrontdoorHealthProbeSettingsList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}/healthProbeSettings/{healthProbeSettingsName}": {
+ "get": {
+ "tags": [
+ "FrontDoors"
+ ],
+ "description": "Gets a HealthProbeSettings with the specified Rule name within the specified Front Door.",
+ "operationId": "HealthProbeSettings_Get",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/frontDoorNameParameter"
+ },
+ {
+ "$ref": "#/parameters/healthProbeSettingsNameParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/HealthProbeSettingsModel"
+ }
+ },
+ "default": {
+ "description": "Front Door error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get HealthProbeSettings": {
+ "$ref": "./examples/FrontdoorHealthProbeSettingsGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "FrontDoors"
+ ],
+ "description": "Creates a new HealthProbeSettings with the specified Rule name within the specified Front Door.",
+ "operationId": "HealthProbeSettings_CreateOrUpdate",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/frontDoorNameParameter"
+ },
+ {
+ "$ref": "#/parameters/healthProbeSettingsNameParameter"
+ },
+ {
+ "description": "HealthProbeSettings properties needed to create a new Front Door.",
+ "in": "body",
+ "name": "healthProbeSettingsParameters",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/HealthProbeSettingsModel"
+ }
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/HealthProbeSettingsModel"
+ }
+ },
+ "201": {
+ "description": "Created. The request has been fulfilled and a new HealthProbeSettings has been created.",
+ "schema": {
+ "$ref": "#/definitions/HealthProbeSettingsModel"
+ }
+ },
+ "202": {
+ "description": "Accepted. The request has been accepted for processing and the operation will complete asynchronously.",
+ "schema": {
+ "$ref": "#/definitions/HealthProbeSettingsModel"
+ }
+ },
+ "default": {
+ "description": "Front Door error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create or update specific HealthProbeSettings": {
+ "$ref": "./examples/FrontdoorHealthProbeSettingsCreate.json"
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "delete": {
+ "tags": [
+ "FrontDoors"
+ ],
+ "description": "Deletes an existing HealthProbeSettings with the specified parameters.",
+ "operationId": "HealthProbeSettings_Delete",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/frontDoorNameParameter"
+ },
+ {
+ "$ref": "#/parameters/healthProbeSettingsNameParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted. The request has been accepted for processing and the operation will complete asynchronously."
+ },
+ "204": {
+ "description": "No Content. The request has been accepted but the HealthProbeSettings was not found."
+ },
+ "default": {
+ "description": "Front Door error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete HealthProbeSettings": {
+ "$ref": "./examples/FrontdoorHealthProbeSettingsDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}/loadBalancingSettings": {
+ "get": {
+ "tags": [
+ "FrontDoors"
+ ],
+ "description": "Lists all of the LoadBalancingSettings within a Front Door.",
+ "operationId": "LoadBalancingSettings_ListByFrontDoor",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/frontDoorNameParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/LoadBalancingSettingsListResult"
+ }
+ },
+ "default": {
+ "description": "Front Door error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "List LoadBalancingSettings in a Front Door": {
+ "$ref": "./examples/FrontdoorLoadBalancingSettingsList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}/loadBalancingSettings/{loadBalancingSettingsName}": {
+ "get": {
+ "tags": [
+ "FrontDoors"
+ ],
+ "description": "Gets a LoadBalancingSettings with the specified Rule name within the specified Front Door.",
+ "operationId": "LoadBalancingSettings_Get",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/frontDoorNameParameter"
+ },
+ {
+ "$ref": "#/parameters/loadBalancingSettingsNameParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/LoadBalancingSettingsModel"
+ }
+ },
+ "default": {
+ "description": "Front Door error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get LoadBalancingSettings": {
+ "$ref": "./examples/FrontdoorLoadBalancingSettingsGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "FrontDoors"
+ ],
+ "description": "Creates a new LoadBalancingSettings with the specified Rule name within the specified Front Door.",
+ "operationId": "LoadBalancingSettings_CreateOrUpdate",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/frontDoorNameParameter"
+ },
+ {
+ "$ref": "#/parameters/loadBalancingSettingsNameParameter"
+ },
+ {
+ "description": "LoadBalancingSettings properties needed to create a new Front Door.",
+ "in": "body",
+ "name": "loadBalancingSettingsParameters",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/LoadBalancingSettingsModel"
+ }
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/LoadBalancingSettingsModel"
+ }
+ },
+ "201": {
+ "description": "Created. The request has been fulfilled and a new LoadBalancingSettings has been created.",
+ "schema": {
+ "$ref": "#/definitions/LoadBalancingSettingsModel"
+ }
+ },
+ "202": {
+ "description": "Accepted. The request has been accepted for processing and the operation will complete asynchronously.",
+ "schema": {
+ "$ref": "#/definitions/LoadBalancingSettingsModel"
+ }
+ },
+ "default": {
+ "description": "Front Door error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create or update specific LoadBalancingSettings": {
+ "$ref": "./examples/FrontdoorLoadBalancingSettingsCreate.json"
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "delete": {
+ "tags": [
+ "FrontDoors"
+ ],
+ "description": "Deletes an existing LoadBalancingSettings with the specified parameters.",
+ "operationId": "LoadBalancingSettings_Delete",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/frontDoorNameParameter"
+ },
+ {
+ "$ref": "#/parameters/loadBalancingSettingsNameParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted. The request has been accepted for processing and the operation will complete asynchronously."
+ },
+ "204": {
+ "description": "No Content. The request has been accepted but the LoadBalancingSettings was not found."
+ },
+ "default": {
+ "description": "Front Door error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete LoadBalancingSettings": {
+ "$ref": "./examples/FrontdoorLoadBalancingSettingsDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}/backendPools": {
+ "get": {
+ "tags": [
+ "FrontDoors"
+ ],
+ "description": "Lists all of the Backend Pools within a Front Door.",
+ "operationId": "BackendPools_ListByFrontDoor",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/frontDoorNameParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/BackendPoolListResult"
+ }
+ },
+ "default": {
+ "description": "Front Door error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "List Backend Pools in a Front Door": {
+ "$ref": "./examples/FrontdoorBackendPoolList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}/backendPools/{backendPoolName}": {
+ "get": {
+ "tags": [
+ "FrontDoors"
+ ],
+ "description": "Gets a Backend Pool with the specified Pool name within the specified Front Door.",
+ "operationId": "BackendPools_Get",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/frontDoorNameParameter"
+ },
+ {
+ "$ref": "#/parameters/backendPoolNameParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/BackendPool"
+ }
+ },
+ "default": {
+ "description": "Front Door error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Backend Pool": {
+ "$ref": "./examples/FrontdoorBackendPoolGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "FrontDoors"
+ ],
+ "description": "Creates a new Backend Pool with the specified Pool name within the specified Front Door.",
+ "operationId": "BackendPools_CreateOrUpdate",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/frontDoorNameParameter"
+ },
+ {
+ "$ref": "#/parameters/backendPoolNameParameter"
+ },
+ {
+ "description": "Backend Pool properties needed to create a new Pool.",
+ "in": "body",
+ "name": "backendPoolParameters",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/BackendPool"
+ }
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/BackendPool"
+ }
+ },
+ "201": {
+ "description": "Created. The request has been fulfilled and a new BackendPool has been created.",
+ "schema": {
+ "$ref": "#/definitions/BackendPool"
+ }
+ },
+ "202": {
+ "description": "Accepted. The request has been accepted for processing and the operation will complete asynchronously.",
+ "schema": {
+ "$ref": "#/definitions/BackendPool"
+ }
+ },
+ "default": {
+ "description": "Front Door error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create or update specific Backend Pool": {
+ "$ref": "./examples/FrontdoorBackendPoolCreate.json"
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "delete": {
+ "tags": [
+ "FrontDoors"
+ ],
+ "description": "Deletes an existing Backend Pool with the specified parameters.",
+ "operationId": "BackendPools_Delete",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/frontDoorNameParameter"
+ },
+ {
+ "$ref": "#/parameters/backendPoolNameParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted. The request has been accepted for processing and the operation will complete asynchronously."
+ },
+ "204": {
+ "description": "No Content. The request has been accepted but the Backend Pool was not found."
+ },
+ "default": {
+ "description": "Front Door error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete Backend Pool": {
+ "$ref": "./examples/FrontdoorBackendPoolDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}/frontendEndpoints": {
+ "get": {
+ "tags": [
+ "FrontDoors"
+ ],
+ "description": "Lists all of the frontend endpoints within a Front Door.",
+ "operationId": "FrontendEndpoints_ListByFrontDoor",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/frontDoorNameParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/FrontendEndpointsListResult"
+ }
+ },
+ "default": {
+ "description": "Front Door error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "List Frontend endpoints in a Front Door": {
+ "$ref": "./examples/FrontdoorFrontendEndpointList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/provider/Microsoft.Network/frontDoors/{frontDoorName}/frontendEndpoints/{frontendEndpointName}": {
+ "get": {
+ "tags": [
+ "FrontDoors"
+ ],
+ "description": "Gets a Frontend endpoint with the specified name within the specified Front Door.",
+ "operationId": "FrontendEndpoints_Get",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/frontDoorNameParameter"
+ },
+ {
+ "$ref": "#/parameters/frontendEndpointNameParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/FrontendEndpoint"
+ }
+ },
+ "default": {
+ "description": "Front Door error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Frontend Endpoint": {
+ "$ref": "./examples/FrontdoorFrontendEndpointGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "FrontDoors"
+ ],
+ "description": "Creates a new frontend endpoint with the specified host name within the specified Front Door.",
+ "operationId": "FrontendEndpoints_CreateOrUpdate",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/frontDoorNameParameter"
+ },
+ {
+ "$ref": "#/parameters/frontendEndpointNameParameter"
+ },
+ {
+ "description": "Frontend endpoint properties needed to create a new endpoint.",
+ "in": "body",
+ "name": "frontendEndpointParameters",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/FrontendEndpoint"
+ }
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/FrontendEndpoint"
+ }
+ },
+ "201": {
+ "description": "Created. The request has been fulfilled and a new frontend endpoint has been created.",
+ "schema": {
+ "$ref": "#/definitions/FrontendEndpoint"
+ }
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously.",
+ "schema": {
+ "$ref": "#/definitions/FrontendEndpoint"
+ }
+ },
+ "default": {
+ "description": "Front Door error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create or update specific Frontend Endpoint": {
+ "$ref": "./examples/FrontdoorFrontendEndpointCreate.json"
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "delete": {
+ "tags": [
+ "FrontDoors"
+ ],
+ "description": "Deletes an existing frontend endpoint with the specified parameters.",
+ "operationId": "FrontendEndpoints_Delete",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/frontDoorNameParameter"
+ },
+ {
+ "$ref": "#/parameters/frontendEndpointNameParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted. The request has been accepted for processing and the operation will complete asynchronously."
+ },
+ "204": {
+ "description": "No Content. The request has been accepted but the Backend Pool was not found."
+ },
+ "default": {
+ "description": "Front Door error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete Backend Pool": {
+ "$ref": "./examples/FrontdoorFrontendEndpointDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}/purge": {
+ "post": {
+ "tags": [
+ "FrontDoors"
+ ],
+ "description": "Removes a content from Front Door.",
+ "operationId": "Endpoints_PurgeContent",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/frontDoorNameParameter"
+ },
+ {
+ "name": "contentFilePaths",
+ "in": "body",
+ "description": "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.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/PurgeParameters"
+ }
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Front Door error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Purge content from Front Door": {
+ "$ref": "./examples/FrontdoorPurgeContent.json"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/provider/Microsoft.Network/frontDoors/{frontDoorName}/frontendEndpoints/{frontendEndpointName}/enableHttps": {
+ "post": {
+ "tags": [
+ "FrontDoors"
+ ],
+ "description": "Enables a frontendEndpoint for HTTPS traffic",
+ "operationId": "FrontendEndpoints_EnableHttps",
+ "x-ms-examples": {
+ "FrontendEndpoints_EnableHttps": {
+ "$ref": "./examples/FrontdoorEnableHttps.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/frontDoorNameParameter"
+ },
+ {
+ "$ref": "#/parameters/frontendEndpointNameParameter"
+ },
+ {
+ "name": "customHttpsConfiguration",
+ "in": "body",
+ "description": "The configuration specifying how to enable HTTPS",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CustomHttpsConfiguration"
+ }
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Front Door error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/provider/Microsoft.Network/frontDoors/{frontDoorName}/frontendEndpoints/{frontendEndpointName}/disableHttps": {
+ "post": {
+ "tags": [
+ "FrontDoors"
+ ],
+ "description": "Disables a frontendEndpoint for HTTPS traffic",
+ "operationId": "FrontendEndpoints_DisableHttps",
+ "x-ms-examples": {
+ "FrontendEndpoints_DisableHttps": {
+ "$ref": "./examples/FrontdoorDisableHttps.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/frontDoorNameParameter"
+ },
+ {
+ "$ref": "#/parameters/frontendEndpointNameParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Front Door error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}/validateCustomDomain": {
+ "post": {
+ "tags": [
+ "FrontDoors"
+ ],
+ "description": "Validates the custom domain mapping to ensure it maps to the correct Front Door endpoint in DNS.",
+ "operationId": "FrontDoors_ValidateCustomDomain",
+ "x-ms-examples": {
+ "FrontDoor_ValidateCustomDomain": {
+ "$ref": "./examples/FrontdoorValidateCustomDomain.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/frontDoorNameParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "customDomainProperties",
+ "in": "body",
+ "description": "Custom domain to be validated.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ValidateCustomDomainInput"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/ValidateCustomDomainOutput"
+ }
+ },
+ "default": {
+ "description": "Front Door error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "FrontDoor": {
+ "properties": {
+ "properties": {
+ "description": "Properties of the Front Door Load Balancer",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/FrontDoorProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "description": "Front Door represents a collection of backend endpoints to route traffic to along with rules that specify how traffic is sent there."
+ },
+ "FrontDoorUpdateParameters": {
+ "description": "The properties needed to update a Front Door",
+ "properties": {
+ "friendlyName": {
+ "description": "A friendly name for the frontDoor",
+ "type": "string"
+ },
+ "routingRules": {
+ "description": "Routing rules associated with this Front Door.",
+ "type": "array",
+ "items": {
+ "description": "A routing rule",
+ "$ref": "#/definitions/RoutingRule"
+ }
+ },
+ "loadBalancingSettings": {
+ "description": "Load balancing settings associated with this Front Door instance.",
+ "type": "array",
+ "items": {
+ "description": "A load balancing settings",
+ "$ref": "#/definitions/LoadBalancingSettingsModel"
+ }
+ },
+ "healthProbeSettings": {
+ "description": "Health probe settings associated with this Front Door instance.",
+ "type": "array",
+ "items": {
+ "description": "A health probe settings",
+ "$ref": "#/definitions/HealthProbeSettingsModel"
+ }
+ },
+ "backendPools": {
+ "description": "Backend pools available to routing rules.",
+ "type": "array",
+ "items": {
+ "description": "A backend pool",
+ "$ref": "#/definitions/BackendPool"
+ }
+ },
+ "frontendEndpoints": {
+ "description": "Frontend endpoints available to routing rules.",
+ "type": "array",
+ "items": {
+ "description": "A frontend endpoint",
+ "$ref": "#/definitions/FrontendEndpoint"
+ }
+ },
+ "enabledState": {
+ "description": "Operational status of the Front Door load balancer. Permitted values are 'Enabled' or 'Disabled'",
+ "enum": [
+ "Enabled",
+ "Disabled"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "FrontDoorEnabledState",
+ "modelAsString": true
+ }
+ }
+ }
+ },
+ "FrontDoorProperties": {
+ "description": "The JSON object that contains the properties required to create an endpoint.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/FrontDoorUpdateParameters"
+ }
+ ],
+ "properties": {
+ "resourceState": {
+ "description": "Resource status of the Front Door.",
+ "$ref": "#/definitions/ResourceState"
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Provisioning state of the Front Door."
+ },
+ "cname": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The host that each frontendEndpoint must CNAME to."
+ }
+ }
+ },
+ "FrontDoorListResult": {
+ "description": "Result of the request to list Front Doors. It contains a list of Front Door objects and a URL link to get the the next set of results.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/FrontDoor"
+ },
+ "description": "List of Front Doors within a resource group."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of Front Door objects if there are any."
+ }
+ }
+ },
+ "PurgeParameters": {
+ "type": "object",
+ "description": "Parameters required for content purge.",
+ "required": [
+ "contentPaths"
+ ],
+ "properties": {
+ "contentPaths": {
+ "description": "The path to the content to be purged. Can describe a file path or a wild card directory.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "RoutingRule": {
+ "properties": {
+ "properties": {
+ "description": "Properties of the Front Door Routing Rule",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/RoutingRuleProperties"
+ },
+ "name": {
+ "type": "string",
+ "description": "Resource name."
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource type."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "A routing rule represents a specification for traffic to treat and where to send it, along with health probe information."
+ },
+ "RoutingRuleProperties": {
+ "description": "The JSON object that contains the properties required to create a routing rule.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/RoutingRuleUpdateParameters"
+ }
+ ],
+ "properties": {
+ "resourceState": {
+ "description": "Resource status.",
+ "$ref": "#/definitions/ResourceState"
+ }
+ }
+ },
+ "RoutingRuleListResult": {
+ "description": "Result of the request to list Routing Rules. It contains a list of Routing Rule objects and a URL link to get the the next set of results.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/RoutingRule"
+ },
+ "description": "List of Routing Rules within a Front Door."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of RoutingRule objects if there are any."
+ }
+ }
+ },
+ "RoutingRuleUpdateParameters": {
+ "description": "Routing rules to apply to an endpoint",
+ "type": "object",
+ "properties": {
+ "frontendEndpoints": {
+ "description": "Frontend endpoints associated with this rule",
+ "type": "array",
+ "items": {
+ "description": "A reference to a frontend endpoint",
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ },
+ "acceptedProtocols": {
+ "description": "Protocol schemes to match for this rule",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "description": "Accepted protocol schemes.",
+ "enum": [
+ "Http",
+ "Https"
+ ],
+ "x-ms-enum": {
+ "name": "FrontDoorProtocol",
+ "modelAsString": true
+ }
+ }
+ },
+ "patternsToMatch": {
+ "description": "The route patterns of the rule.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "description": "A route pattern of the rule. Must not have any * except possibly after the final / at the end of the path."
+ }
+ },
+ "customForwardingPath": {
+ "description": "A custom path used to rewrite resource paths matched by this rule. Leave empty to use incoming path.",
+ "type": "string"
+ },
+ "forwardingProtocol": {
+ "description": "Protocol this rule will use when forwarding traffic to backends.",
+ "type": "string",
+ "enum": [
+ "HttpOnly",
+ "HttpsOnly",
+ "MatchRequest"
+ ],
+ "x-ms-enum": {
+ "name": "FrontDoorForwardingProtocol",
+ "modelAsString": true
+ }
+ },
+ "cacheConfiguration": {
+ "description": "The caching configuration associated with this rule.",
+ "$ref": "#/definitions/CacheConfiguration"
+ },
+ "backendPool": {
+ "description": "A reference to the BackendPool which this rule routes to.",
+ "$ref": "./network.json#/definitions/SubResource"
+ },
+ "enabledState": {
+ "description": "Whether to enable use of this rule. Permitted values are 'Enabled' or 'Disabled'",
+ "enum": [
+ "Enabled",
+ "Disabled"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "FrontDoorEnabledState",
+ "modelAsString": true
+ }
+ }
+ }
+ },
+ "Backend": {
+ "description": "Backend address of a frontDoor load balancer.",
+ "type": "object",
+ "properties": {
+ "address": {
+ "description": "Location of the backend (IP address or FQDN)",
+ "type": "string"
+ },
+ "httpPort": {
+ "description": "The HTTP TCP port number. Must be between 1 and 65535.",
+ "type": "integer",
+ "maximum": 65535,
+ "exclusiveMaximum": false,
+ "minimum": 1,
+ "exclusiveMinimum": false
+ },
+ "httpsPort": {
+ "description": "The HTTPS TCP port number. Must be between 1 and 65535.",
+ "type": "integer",
+ "maximum": 65535,
+ "exclusiveMaximum": false,
+ "minimum": 1,
+ "exclusiveMinimum": false
+ },
+ "enabledState": {
+ "description": "Whether to enable use of this backend. Permitted values are 'Enabled' or 'Disabled'",
+ "enum": [
+ "Enabled",
+ "Disabled"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "FrontDoorEnabledState",
+ "modelAsString": true
+ }
+ },
+ "priority": {
+ "description": "Priority to use for load balancing. Higher priorities will not be used for load balancing if any lower priority backend is healthy.",
+ "type": "integer",
+ "maximum": 5,
+ "minimum": 1
+ },
+ "weight": {
+ "description": "Weight of this endpoint for load balancing purposes.",
+ "type": "integer",
+ "maximum": 1000,
+ "minimum": 1
+ },
+ "backendHostHeader": {
+ "description": "The value to use as the host header sent to the backend. If blank or unspecified, this defaults to the incoming host.",
+ "type": "string"
+ }
+ }
+ },
+ "LoadBalancingSettingsModel": {
+ "properties": {
+ "properties": {
+ "description": "Properties of the load balancing settings",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/LoadBalancingSettingsProperties"
+ },
+ "name": {
+ "type": "string",
+ "description": "Resource name."
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource type."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "Load balancing settings for a backend pool"
+ },
+ "LoadBalancingSettingsProperties": {
+ "description": "The JSON object that contains the properties required to create load balancing settings",
+ "allOf": [
+ {
+ "$ref": "#/definitions/LoadBalancingSettingsUpdateParameters"
+ }
+ ],
+ "properties": {
+ "resourceState": {
+ "description": "Resource status.",
+ "$ref": "#/definitions/ResourceState"
+ }
+ }
+ },
+ "LoadBalancingSettingsListResult": {
+ "description": "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 the next set of results.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/LoadBalancingSettingsModel"
+ },
+ "description": "List of Backend Pools within a Front Door."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of LoadBalancingSettings objects if there are any."
+ }
+ }
+ },
+ "LoadBalancingSettingsUpdateParameters": {
+ "description": "Round-Robin load balancing settings for a backend pool",
+ "type": "object",
+ "properties": {
+ "sampleSize": {
+ "description": "The number of samples to consider for load balancing decisions",
+ "type": "integer"
+ },
+ "successfulSamplesRequired": {
+ "description": "The number of samples within the sample period that must succeed",
+ "type": "integer"
+ },
+ "additionalLatencyMilliseconds": {
+ "description": "The additional latency in milliseconds for probes to fall into the lowest latency bucket",
+ "type": "integer"
+ }
+ }
+ },
+ "HealthProbeSettingsModel": {
+ "properties": {
+ "properties": {
+ "description": "Properties of the health probe settings",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/HealthProbeSettingsProperties"
+ },
+ "name": {
+ "type": "string",
+ "description": "Resource name."
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource type."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "Load balancing settings for a backend pool"
+ },
+ "HealthProbeSettingsProperties": {
+ "description": "The JSON object that contains the properties required to create a health probe settings.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/HealthProbeSettingsUpdateParameters"
+ }
+ ],
+ "properties": {
+ "resourceState": {
+ "description": "Resource status.",
+ "$ref": "#/definitions/ResourceState"
+ }
+ }
+ },
+ "HealthProbeSettingsListResult": {
+ "description": "Result of the request to list HealthProbeSettings. It contains a list of HealthProbeSettings objects and a URL link to get the the next set of results.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/HealthProbeSettingsModel"
+ },
+ "description": "List of HealthProbeSettings within a Front Door."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of HealthProbeSettings objects if there are any."
+ }
+ }
+ },
+ "HealthProbeSettingsUpdateParameters": {
+ "description": "L7 health probe settings for a backend pool",
+ "type": "object",
+ "properties": {
+ "path": {
+ "description": "The path to use for the health probe. Default is /",
+ "type": "string"
+ },
+ "protocol": {
+ "description": "Protocol scheme to use for this probe",
+ "type": "string",
+ "enum": [
+ "Http",
+ "Https"
+ ],
+ "x-ms-enum": {
+ "name": "FrontDoorProtocol",
+ "modelAsString": true
+ }
+ },
+ "intervalInSeconds": {
+ "description": "The number of seconds between health probes.",
+ "type": "integer"
+ }
+ }
+ },
+ "BackendPool": {
+ "properties": {
+ "properties": {
+ "description": "Properties of the Front Door Backend Pool",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/BackendPoolProperties"
+ },
+ "name": {
+ "type": "string",
+ "description": "Resource name."
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource type."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "A backend pool is a collection of backends that can be routed to."
+ },
+ "BackendPoolUpdateParameters": {
+ "description": "A collection of backends that can be routed to.",
+ "type": "object",
+ "properties": {
+ "backends": {
+ "description": "The set of backends for this pool",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Backend"
+ }
+ },
+ "loadBalancingSettings": {
+ "description": "Load balancing settings for a backend pool",
+ "$ref": "./network.json#/definitions/SubResource"
+ },
+ "healthProbeSettings": {
+ "description": "L7 health probe settings for a backend pool",
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ }
+ },
+ "BackendPoolProperties": {
+ "description": "The JSON object that contains the properties required to create a routing rule.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/BackendPoolUpdateParameters"
+ }
+ ],
+ "properties": {
+ "resourceState": {
+ "description": "Resource status.",
+ "$ref": "#/definitions/ResourceState"
+ }
+ }
+ },
+ "BackendPoolListResult": {
+ "description": "Result of the request to list Backend Pools. It contains a list of Backend Pools objects and a URL link to get the the next set of results.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/BackendPool"
+ },
+ "description": "List of Backend Pools within a Front Door."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of BackendPool objects if there are any."
+ }
+ }
+ },
+ "CacheConfiguration": {
+ "description": "Caching settings for a caching-type route. To disable caching, do not provide a cacheConfiguration object.",
+ "type": "object",
+ "properties": {
+ "queryParameterStripDirective": {
+ "description": "Treatment of URL query terms when forming the cache key.",
+ "enum": [
+ "StripNone",
+ "StripAll"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "FrontDoorQuery",
+ "modelAsString": true
+ }
+ },
+ "dynamicCompression": {
+ "description": "Whether to use dynamic compression for cached content",
+ "enum": [
+ "Enabled",
+ "Disabled"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "DynamicCompressionEnabled",
+ "modelAsString": true
+ }
+ }
+ }
+ },
+ "KeyVaultCertificateSourceParameters": {
+ "description": "Parameters required for bring-your-own-certification via Key Vault",
+ "type": "object",
+ "properties": {
+ "vault": {
+ "description": "The Key Vault containing the SSL certificate",
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Resource ID."
+ }
+ }
+ },
+ "secretName": {
+ "type": "string",
+ "description": "The name of the Key Vault secret representing the full certificate PFX"
+ },
+ "secretVersion": {
+ "type": "string",
+ "description": "The version of the Key Vault secret representing the full certificate PFX"
+ }
+ }
+ },
+ "FrontDoorCertificateSourceParameters": {
+ "description": "Parameters required for enabling SSL with Front Door-managed certificates",
+ "type": "object",
+ "properties": {
+ "certificateType": {
+ "description": "Defines the type of the certificate used for secure connections to a frontendEndpoint",
+ "enum": [
+ "Dedicated"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "FrontDoorCertificateType",
+ "modelAsString": true
+ }
+ }
+ }
+ },
+ "CustomHttpsConfiguration": {
+ "description": "Https settings for a domain",
+ "type": "object",
+ "properties": {
+ "certificateSource": {
+ "description": "Defines the source of the SSL certificate",
+ "enum": [
+ "AzureKeyVault",
+ "FrontDoor"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "FrontDoorCertificateSource",
+ "modelAsString": true
+ }
+ },
+ "protocolType": {
+ "description": "Defines the TLS extension protocol that is used for secure delivery",
+ "enum": [
+ "ServerNameIndication"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "FrontDoorTlsProtocolType",
+ "modelAsString": true
+ }
+ },
+ "keyVaultCertificateSourceParameters": {
+ "description": "KeyVault certificate source parameters (if certificateSource=AzureKeyVault)",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/KeyVaultCertificateSourceParameters"
+ },
+ "frontDoorCertificateSourceParameters": {
+ "description": "Parameters required for enabling SSL with Front Door-managed certificates (if certificateSource=FrontDoor)",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/FrontDoorCertificateSourceParameters"
+ }
+ }
+ },
+ "FrontendEndpoint": {
+ "properties": {
+ "properties": {
+ "description": "Properties of the Frontend endpoint",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/FrontendEndpointProperties"
+ },
+ "name": {
+ "type": "string",
+ "description": "Resource name."
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource type."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "A frontend endpoint used for routing."
+ },
+ "FrontendEndpointProperties": {
+ "description": "The JSON object that contains the properties required to create a frontend endpoint.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/FrontendEndpointUpdateParameters"
+ }
+ ],
+ "properties": {
+ "resourceState": {
+ "description": "Resource status.",
+ "$ref": "#/definitions/ResourceState"
+ },
+ "customHttpsProvisioningState": {
+ "description": "Provisioning status of Custom Https of the frontendEndpoint.",
+ "readOnly": true,
+ "enum": [
+ "Enabling",
+ "Enabled",
+ "Disabling",
+ "Disabled",
+ "Failed"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "CustomHttpsProvisioningState",
+ "modelAsString": true
+ }
+ },
+ "customHttpsProvisioningSubstate": {
+ "description": "Provisioning substate shows the progress of custom HTTPS enabling/disabling process step by step.",
+ "readOnly": true,
+ "enum": [
+ "SubmittingDomainControlValidationRequest",
+ "PendingDomainControlValidationREquestApproval",
+ "DomainControlValidationRequestApproved",
+ "DomainControlValidationRequestRejected",
+ "DomainControlValidationRequestTimedOut",
+ "IssuingCertificate",
+ "DeployingCertificate",
+ "CertificateDeployed",
+ "DeletingCertificate",
+ "CertificateDeleted"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "CustomHttpsProvisioningSubstate",
+ "modelAsString": true
+ }
+ },
+ "customHttpsConfiguration": {
+ "description": "The configuration specifying how to enable HTTPS",
+ "readOnly": true,
+ "$ref": "#/definitions/CustomHttpsConfiguration"
+ }
+ }
+ },
+ "FrontendEndpointUpdateParameters": {
+ "description": "Frontend endpoint used in routing rule",
+ "type": "object",
+ "properties": {
+ "hostName": {
+ "description": "The host name of the frontendEndpoint. Must be a domain name.",
+ "type": "string"
+ },
+ "sessionAffinityEnabledState": {
+ "description": "Whether to allow session affinity on this host. Valid options are 'Enabled' or 'Disabled'",
+ "enum": [
+ "Enabled",
+ "Disabled"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "SessionAffinityEnabledState",
+ "modelAsString": true
+ }
+ },
+ "sessionAffinityTtlSeconds": {
+ "description": "UNUSED. This field will be ignored. The TTL to use in seconds for session affinity, if applicable.",
+ "type": "integer"
+ },
+ "webApplicationFirewallPolicyLink": {
+ "description": "Defines the Web Application Firewall policy for each host (if applicable)",
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Resource ID."
+ }
+ }
+ }
+ }
+ },
+ "FrontendEndpointsListResult": {
+ "description": "Result of the request to list frontend endpoints. It contains a list of Frontend endpoint objects and a URL link to get the the next set of results.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/FrontendEndpoint"
+ },
+ "description": "List of Frontend endpoints within a Front Door."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of frontend endpoints if there are any."
+ }
+ }
+ },
+ "ResourceState": {
+ "title": "Resource status of the Front Door or Front Door SubResource.",
+ "readOnly": true,
+ "enum": [
+ "Creating",
+ "Enabling",
+ "Enabled",
+ "Disabling",
+ "Disabled",
+ "Deleting"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "FrontDoorResourceState",
+ "modelAsString": true
+ }
+ },
+ "ValidateCustomDomainInput": {
+ "description": "Input of the custom domain to be validated for DNS mapping.",
+ "type": "object",
+ "required": [
+ "hostName"
+ ],
+ "properties": {
+ "hostName": {
+ "description": "The host name of the custom domain. Must be a domain name.",
+ "type": "string"
+ }
+ }
+ },
+ "ValidateCustomDomainOutput": {
+ "description": "Output of custom domain validation.",
+ "type": "object",
+ "properties": {
+ "customDomainValidated": {
+ "description": "Indicates whether the custom domain is valid or not.",
+ "readOnly": true,
+ "type": "boolean"
+ },
+ "reason": {
+ "description": "The reason why the custom domain is not valid.",
+ "readOnly": true,
+ "type": "string"
+ },
+ "message": {
+ "description": "Error message describing why the custom domain is not valid.",
+ "readOnly": true,
+ "type": "string"
+ }
+ }
+ },
+ "ErrorResponse": {
+ "description": "Error reponse indicates Front Door service is not able to process the incoming request. The reason is provided in the error message.",
+ "type": "object",
+ "properties": {
+ "code": {
+ "description": "Error code.",
+ "readOnly": true,
+ "type": "string"
+ },
+ "message": {
+ "description": "Error message indicating why the operation failed.",
+ "readOnly": true,
+ "type": "string"
+ }
+ }
+ },
+ "CheckNameAvailabilityInput": {
+ "description": "Input of CheckNameAvailability API.",
+ "type": "object",
+ "required": [
+ "name",
+ "type"
+ ],
+ "properties": {
+ "name": {
+ "description": "The resource name to validate.",
+ "type": "string"
+ },
+ "type": {
+ "description": "The type of the resource whose name is to be validated.",
+ "$ref": "#/definitions/ResourceType"
+ }
+ }
+ },
+ "CheckNameAvailabilityOutput": {
+ "description": "Output of check name availability API.",
+ "type": "object",
+ "properties": {
+ "nameAvailability": {
+ "description": "Indicates whether the name is available.",
+ "readOnly": true,
+ "enum": [
+ "Available",
+ "Unavailable"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "Availability",
+ "modelAsString": true
+ }
+ },
+ "reason": {
+ "description": "The reason why the name is not available.",
+ "readOnly": true,
+ "type": "string"
+ },
+ "message": {
+ "description": "The detailed error message describing why the name is not available.",
+ "readOnly": true,
+ "type": "string"
+ }
+ }
+ },
+ "ResourceType": {
+ "description": "Type of Front Door resource used in CheckNameAvailability.",
+ "enum": [
+ "Microsoft.Network/frontDoors",
+ "Microsoft.Network/frontDoors/frontendEndpoints"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "ResourceType",
+ "modelAsString": false
+ }
+ }
+ },
+ "parameters": {
+ "resourceGroupNameParameter": {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9_\\-\\(\\)\\.]*[^\\.]$",
+ "minLength": 1,
+ "maxLength": 80,
+ "x-ms-parameter-location": "method",
+ "description": "Name of the Resource group within the Azure subscription."
+ },
+ "frontDoorNameParameter": {
+ "name": "frontDoorName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "x-new-pattern": "^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$",
+ "pattern": "^[a-zA-Z0-9]+([-a-zA-Z0-9][a-zA-Z0-9])$",
+ "minLength": 5,
+ "maxLength": 74,
+ "x-ms-parameter-location": "method",
+ "description": "Name of the Front Door which is globally unique."
+ },
+ "routingRuleNameParameter": {
+ "name": "routingRuleName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$",
+ "x-previous-pattern": "^[-\\w\\d\\._]+$",
+ "minLength": 1,
+ "maxLength": 90,
+ "x-ms-parameter-location": "method",
+ "description": "Name of the Routing Rule which is unique within the Front Door."
+ },
+ "healthProbeSettingsNameParameter": {
+ "name": "healthProbeSettingsName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$",
+ "x-previous-pattern": "^[-\\w\\d\\._]+$",
+ "minLength": 1,
+ "maxLength": 90,
+ "x-ms-parameter-location": "method",
+ "description": "Name of the health probe settings which is unique within the Front Door."
+ },
+ "loadBalancingSettingsNameParameter": {
+ "name": "loadBalancingSettingsName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$",
+ "x-previous-pattern": "^[-\\w\\d\\._]+$",
+ "minLength": 1,
+ "maxLength": 90,
+ "x-ms-parameter-location": "method",
+ "description": "Name of the load balancing settings which is unique within the Front Door."
+ },
+ "backendPoolNameParameter": {
+ "name": "backendPoolName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$",
+ "x-previous-pattern": "^[-\\w\\d\\._]+$",
+ "minLength": 1,
+ "maxLength": 90,
+ "x-ms-parameter-location": "method",
+ "description": "Name of the Backend Pool which is unique within the Front Door."
+ },
+ "frontendEndpointNameParameter": {
+ "name": "frontendEndpointName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$",
+ "x-previous-pattern": "^[-\\w\\d\\._]+$",
+ "minLength": 1,
+ "maxLength": 255,
+ "x-ms-parameter-location": "method",
+ "description": "Name of the Frontend endpoint which is unique within the Front Door."
+ }
+ }
+}
\ No newline at end of file
diff --git a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/network.json b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/network.json
new file mode 100644
index 000000000000..5a1f99c4b769
--- /dev/null
+++ b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/network.json
@@ -0,0 +1,168 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "NetworkManagementClient",
+ "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
+ "version": "2018-02-01"
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json",
+ "text/json"
+ ],
+ "produces": [
+ "application/json",
+ "text/json"
+ ],
+ "security": [
+ {
+ "azure_auth": [
+ "user_impersonation"
+ ]
+ }
+ ],
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Azure Active Directory OAuth2 Flow",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
+ "paths": {
+ },
+ "definitions": {
+ "ErrorDetails": {
+ "properties": {
+ "code": {
+ "type": "string"
+ },
+ "target": {
+ "type": "string"
+ },
+ "message": {
+ "type": "string"
+ }
+ }
+ },
+ "Error": {
+ "properties": {
+ "code": {
+ "type": "string"
+ },
+ "message": {
+ "type": "string"
+ },
+ "target": {
+ "type": "string"
+ },
+ "details": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ },
+ "innerError": {
+ "type": "string"
+ }
+ }
+ },
+ "AzureAsyncOperationResult": {
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "Status of the Azure async operation. Possible values are: 'InProgress', 'Succeeded', and 'Failed'.",
+ "enum": [
+ "InProgress",
+ "Succeeded",
+ "Failed"
+ ],
+ "x-ms-enum": {
+ "name": "NetworkOperationStatus",
+ "modelAsString": true
+ }
+ },
+ "error": {
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "description": "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."
+ },
+ "Resource": {
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource ID."
+ },
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource name."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource type."
+ },
+ "location": {
+ "type": "string",
+ "description": "Resource location."
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags."
+ }
+ },
+ "description": "Common resource representation.",
+ "x-ms-azure-resource": true
+ },
+ "SubResource": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Resource ID."
+ }
+ },
+ "description": "Reference to another subresource.",
+ "x-ms-azure-resource": true
+ },
+ "TagsObject": {
+ "properties": {
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags."
+ }
+ },
+ "description": "Tags object for patch operations."
+ }
+ },
+ "parameters": {
+ "SubscriptionIdParameter": {
+ "name": "subscriptionId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call."
+ },
+ "ApiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "Client API version."
+ }
+ }
+}
diff --git a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/webapplicationfirewall.json b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/webapplicationfirewall.json
new file mode 100644
index 000000000000..53bfa1cf3447
--- /dev/null
+++ b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/webapplicationfirewall.json
@@ -0,0 +1,636 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2018-08-01",
+ "title": "WebApplicationFirewallManagement",
+ "description": "APIs to manage web application firewall rules"
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "security": [
+ {
+ "azure_auth": [
+ "user_impersonation"
+ ]
+ }
+ ],
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Azure Active Directory OAuth2 Flow",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
+ "paths": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/FrontDoorWebApplicationFirewallPolicies": {
+ "get": {
+ "tags": [
+ "ListWebApplicationFirewalPolicies"
+ ],
+ "description": "Lists all of the protection policies within a resource group.",
+ "operationId": "Policies_List",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/WebApplicationFirewallPolicyListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "List Policies in a Resource Group": {
+ "$ref": "./examples/WafListPolicies.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/FrontDoorWebApplicationFirewallPolicies/{policyName}": {
+ "get": {
+ "tags": [
+ "GetWebapplicationfirewallPolicy"
+ ],
+ "description": "Retrieve protection policy with specified name within a resource group.",
+ "operationId": "Policies_Get",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "policyName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "maxLength": 128,
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/WebApplicationFirewallPolicy"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "policy get": {
+ "$ref": "./examples/WafPolicyGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "CreateOrUpdateWebApplicationFirewallPolicy"
+ ],
+ "description": "Creates or update policy with specified ruleset name within a resource group.",
+ "operationId": "Policies_CreateOrUpdate",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "policyName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "maxLength": 128,
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "description": "Policy to be created.",
+ "in": "body",
+ "name": "parameters",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/WebApplicationFirewallPolicy"
+ }
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/WebApplicationFirewallPolicy"
+ }
+ },
+ "201": {
+ "description": "Created. The request has been fulfilled and a new protection policy has been created.",
+ "schema": {
+ "$ref": "#/definitions/WebApplicationFirewallPolicy"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Creates specific policy": {
+ "$ref": "./examples/WafPolicyCreateOrUpdate.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "DeleteWebApplicationFirewallPolicy"
+ ],
+ "description": "Deletes Policy",
+ "operationId": "Policies_Delete",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "policyName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "maxLength": 128,
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted. The request has been accepted for processing and the operation will complete asynchronously."
+ },
+ "204": {
+ "description": "No Content. The request has been accepted but the policy was not found."
+ },
+ "200": {
+ "description": "Delete successful."
+ }
+ },
+ "x-ms-examples": {
+ "Delete protection policy": {
+ "$ref": "./examples/WafPolicyDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ }
+ },
+ "definitions": {
+ "WebApplicationFirewallPolicy": {
+ "description": "Defines web application firewall policy.",
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/WebApplicationFirewallPolicyPropertiesFormat",
+ "description": "Properties of the web application firewall policy."
+ },
+ "etag": {
+ "type": "string",
+ "description": "Gets a unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ]
+ },
+ "WebApplicationFirewallPolicyPropertiesFormat": {
+ "description": "Defines web application firewall policy properties",
+ "properties": {
+ "policySettings": {
+ "description": "Describes policySettings for policy",
+ "$ref": "#/definitions/policySettings"
+ },
+ "customRules": {
+ "description": "Describes custom rules inside the policy",
+ "$ref": "#/definitions/CustomRules"
+ },
+ "managedRules": {
+ "description": "Describes managed rules inside the policy",
+ "$ref": "#/definitions/ManagedRuleSets"
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Provisioning state of the WebApplicationFirewallPolicy."
+ },
+ "resourceState": {
+ "title": "Resource status of the policy.",
+ "readOnly": true,
+ "enum": [
+ "Creating",
+ "Enabling",
+ "Enabled",
+ "Disabling",
+ "Disabled",
+ "Deleting"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "WebApplicationFirewallPolicy",
+ "modelAsString": true
+ }
+ }
+ }
+ },
+ "WebApplicationFirewallPolicyListResult": {
+ "description": "Result of the request to list WebApplicationFirewallPolicies. It contains a list of WebApplicationFirewallPolicy objects and a URL link to get the the next set of results.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/WebApplicationFirewallPolicy"
+ },
+ "description": "List of WebApplicationFirewallPolicies within a resource group."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of WebApplicationFirewallPolicy objects if there are any."
+ }
+ }
+ },
+ "policySettings": {
+ "description": "Defines contents of a web application firewall global configuration",
+ "properties": {
+ "enabledState": {
+ "description": "describes if the policy is in enabled state or disabled state",
+ "type": "string",
+ "enum": [
+ "Disabled",
+ "Enabled"
+ ],
+ "x-ms-enum": {
+ "name": "enabledState",
+ "modelAsString": true
+ }
+ },
+ "mode": {
+ "description": "Describes if it is in detection mode or prevention mode at policy level",
+ "type": "string",
+ "enum": [
+ "Prevention",
+ "Detection"
+ ],
+ "x-ms-enum": {
+ "name": "mode",
+ "modelAsString": true
+ }
+ }
+ }
+ },
+ "CustomRules": {
+ "description": "Defines contents of custom rules",
+ "properties": {
+ "rules": {
+ "description": "List of rules",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CustomRule"
+ }
+ }
+ }
+ },
+ "CustomRule": {
+ "description": "Defines contents of a web application rule",
+ "required": [
+ "priority",
+ "ruleType",
+ "matchConditions",
+ "action"
+ ],
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Gets name of the resource that is unique within a policy. This name can be used to access the resource.",
+ "maxLength": 128
+ },
+ "etag": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Gets a unique read-only string that changes whenever the resource is updated."
+ },
+ "priority": {
+ "description": "Describes priority of the rule. Rules with a lower value will be evaluated before rules with a higher value",
+ "type": "integer"
+ },
+ "ruleType": {
+ "description": "Describes type of rule",
+ "type": "string",
+ "enum": [
+ "MatchRule",
+ "RateLimitRule"
+ ],
+ "x-ms-enum": {
+ "name": "ruleType",
+ "modelAsString": true
+ }
+ },
+ "rateLimitDurationInMinutes": {
+ "description": "Defines rate limit duration. Default - 1 minute",
+ "type": "integer"
+ },
+ "rateLimitThreshold": {
+ "description": "Defines rate limit thresold",
+ "type": "integer"
+ },
+ "matchConditions": {
+ "description": "List of match conditions",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MatchCondition"
+ }
+ },
+ "action": {
+ "description": "Type of Actions",
+ "type": "string",
+ "enum": [
+ "Allow",
+ "Block",
+ "Log"
+ ],
+ "x-ms-enum": {
+ "name": "action",
+ "modelAsString": true
+ }
+ },
+ "transforms": {
+ "description": "List of transforms",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/transform"
+ }
+ }
+ }
+ },
+ "transform": {
+ "description": "Describes what transforms applied before matching",
+ "type": "string",
+ "enum": [
+ "Lowercase",
+ "Uppercase",
+ "Trim",
+ "UrlDecode",
+ "UrlEncode",
+ "RemoveNulls",
+ "HtmlEntityDecode"
+ ],
+ "x-ms-enum": {
+ "name": "transform",
+ "modelAsString": true
+ }
+ },
+ "MatchCondition": {
+ "description": "Define match conditions",
+ "required": [
+ "matchVariable",
+ "operator",
+ "matchValue"
+ ],
+ "properties": {
+ "matchVariable": {
+ "description": "Match Variable",
+ "type": "string",
+ "enum": [
+ "RemoteAddr",
+ "RequestMethod",
+ "QueryString",
+ "PostArgs",
+ "RequestUri",
+ "RequestHeader",
+ "RequestBody"
+ ],
+ "x-ms-enum": {
+ "name": "MatchCondition",
+ "modelAsString": true
+ }
+ },
+ "selector": {
+ "description": "Name of selector in RequestHeader or RequestBody to be matched",
+ "type": "string"
+ },
+ "operator": {
+ "description": "Describes operator to be matched",
+ "type": "string",
+ "enum": [
+ "Any",
+ "IPMatch",
+ "GeoMatch",
+ "Equal",
+ "Contains",
+ "LessThan",
+ "GreaterThan",
+ "LessThanOrEqual",
+ "GreaterThanOrEqual",
+ "BeginsWith",
+ "EndsWith"
+ ],
+ "x-ms-enum": {
+ "name": "operator",
+ "modelAsString": true
+ }
+ },
+ "negateCondition": {
+ "description": "Describes if this is negate condition or not",
+ "type": "boolean"
+ },
+ "matchValue": {
+ "description": "Match value",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "ManagedRuleSets": {
+ "description": "Defines ManagedRuleSets - array of managedRuleSet",
+ "properties": {
+ "ruleSets": {
+ "description": "List of rules",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ManagedRuleSet"
+ }
+ }
+ }
+ },
+ "ManagedRuleSet": {
+ "type": "object",
+ "description": "Base class for all types of ManagedRuleSet.",
+ "x-ms-discriminator-value": "Unknown",
+ "properties": {
+ "priority": {
+ "description": "Describes priority of the rule",
+ "type": "integer"
+ },
+ "version": {
+ "description": "defines version of the ruleset",
+ "type": "integer"
+ },
+ "ruleSetType": {
+ "description": "RuleSetType - AzureManagedRuleSet or OWASP RuleSets.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "ruleSetType"
+ ],
+ "discriminator": "ruleSetType"
+ },
+ "AzureManagedRuleSet": {
+ "type": "object",
+ "description": "Describes azure managed provider.",
+ "x-ms-discriminator-value": "AzureManagedRuleSet",
+ "properties": {
+ "ruleGroupOverrides": {
+ "description": "List of azure managed provider override configuration (optional)",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AzureManagedOverrideRuleGroup"
+ }
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/ManagedRuleSet"
+ }
+ ]
+ },
+ "AzureManagedOverrideRuleGroup": {
+ "description": "Defines contents of a web application rule",
+ "required": [
+ "ruleGroupOverride",
+ "action"
+ ],
+ "properties": {
+ "ruleGroupOverride": {
+ "description": "Describes overrideruleGroup",
+ "type": "string",
+ "enum": [
+ "SqlInjection",
+ "XSS"
+ ],
+ "x-ms-enum": {
+ "name": "ruleGroupOverride",
+ "modelAsString": true
+ }
+ },
+ "action": {
+ "description": "Type of Actions",
+ "type": "string",
+ "enum": [
+ "Allow",
+ "Block",
+ "Log"
+ ],
+ "x-ms-enum": {
+ "name": "action",
+ "modelAsString": true
+ }
+ }
+ }
+ },
+ "ErrorResponse": {
+ "description": "Error reponse indicates Front Door service is not able to process the incoming request. The reason is provided in the error message.",
+ "type": "object",
+ "properties": {
+ "code": {
+ "description": "Error code.",
+ "readOnly": true,
+ "type": "string"
+ },
+ "message": {
+ "description": "Error message indicating why the operation failed.",
+ "readOnly": true,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "parameters": {
+ "SubscriptionIdParameter": {
+ "name": "subscriptionId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call."
+ },
+ "ApiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "Client API version."
+ }
+ }
+}
diff --git a/specification/frontdoor/resource-manager/readme.md b/specification/frontdoor/resource-manager/readme.md
new file mode 100644
index 000000000000..b14a9a1e6655
--- /dev/null
+++ b/specification/frontdoor/resource-manager/readme.md
@@ -0,0 +1,143 @@
+# Frontdoor
+
+> see https://aka.ms/autorest
+
+This is the AutoRest configuration file for Network.
+
+
+
+---
+## Getting Started
+To build the SDK for Frontdoor, simply [Install AutoRest](https://aka.ms/autorest/install) and in this folder, run:
+
+> `autorest`
+
+To see additional help and options, run:
+
+> `autorest --help`
+---
+
+## Configuration
+
+
+
+### Basic Information
+These are the global settings for the Frontdoor API.
+
+``` yaml
+title: FrontdoorManagementClient
+description: Frontdoor Client
+openapi-type: arm
+tag: package-2018-08-preview
+```
+
+### Tag: package-2018-08-preview
+
+These settings apply only when `--tag=package-2018-08-preview` is specified on the command line.
+
+``` yaml $(tag) == 'package-2018-08-preview'
+input-file:
+- Microsoft.Network/preview/2018-08-01-preview/frontdoor.json
+- Microsoft.Network/preview/2018-08-01-preview/network.json
+- Microsoft.Network/preview/2018-08-01-preview/webapplicationfirewall.json
+directive:
+ - where:
+ - $.paths
+ suppress:
+ - OperationsAPIImplementation
+```
+
+---
+# Code Generation
+
+
+## Swagger to SDK
+
+This section describes what SDK should be generated by the automatic system.
+This is not used by Autorest itself.
+
+``` yaml $(swagger-to-sdk)
+swagger-to-sdk:
+ - repo: azure-sdk-for-python
+ - repo: azure-libraries-for-java
+ - repo: azure-sdk-for-go
+ - repo: azure-sdk-for-node
+```
+
+
+## C#
+
+These settings apply only when `--csharp` is specified on the command line.
+Please also specify `--csharp-sdks-folder=`.
+
+``` yaml $(csharp)
+csharp:
+ azure-arm: true
+ license-header: MICROSOFT_MIT_NO_VERSION
+ namespace: Microsoft.Azure.Management.Frontdoor
+ output-folder: $(csharp-sdks-folder)/Frontdoor/Management.Frontdoor/Generated
+ clear-output-folder: true
+```
+
+
+## Go
+
+These settings apply only when `--go` is specified on the command line.
+
+``` yaml $(go)
+go:
+ license-header: MICROSOFT_APACHE_NO_VERSION
+ namespace: frontdoor
+ clear-output-folder: true
+```
+
+### Go multi-api
+
+``` yaml $(go) && $(multiapi)
+batch:
+ - tag: package-2018-08-preview
+```
+
+
+### Tag: package-2018-08-preview and go
+
+These settings apply only when `--tag=package-2018-08-preview --go` is specified on the command line.
+Please also specify `--go-sdk-folder=`.
+
+``` yaml $(tag) == 'package-2018-08-preview' && $(go)
+output-folder: $(go-sdk-folder)/services/preview/frontdoor/mgmt/2018-08-01-preview/frontdoor
+```
+
+
+## Java
+
+These settings apply only when `--java` is specified on the command line.
+Please also specify `--azure-libraries-for-java-folder=`.
+
+``` yaml $(java)
+java:
+ azure-arm: true
+ fluent: true
+ namespace: com.microsoft.azure.management.frontdoor
+ license-header: MICROSOFT_MIT_NO_CODEGEN
+ payload-flattening-threshold: 1
+ output-folder: $(azure-libraries-for-java-folder)/azure-mgmt-frontdoor
+```
+
+# Validation Suppressions
+
+``` yaml $(azure-validator)
+directive:
+ - from: frontdoor.json
+ where: [$.paths]
+ suppress: OperationsAPIImplementation
+ reason: Networking resource operations defined elsewhere.
+ - from: frontdoor.json
+ where: [$.definitions.Frontdoor,$.definitions.RoutingRule,$.definitions.FrontendEndpoint,$.definitions.BackendPool,$.definitions.LoadBalancingSettingsModel,$.definitions.HealthProbeSettingsModel]
+ suppress: RequiredPropertiesMissingInResourceModel
+ reason: Networking resource id is not readonly.
+ - from: frontdoor.json
+ where: [$.definitions.ValidateCustomDomainOutput.properties.customDomainValidated]
+ suppress: EnumInsteadOfBoolean
+ reason: Direct copy of ValidateCustomDomain API in CDN Resource Provider.
+```
diff --git a/specification/frontdoor/resource-manager/readme.nodejs.md b/specification/frontdoor/resource-manager/readme.nodejs.md
new file mode 100644
index 000000000000..128718652e75
--- /dev/null
+++ b/specification/frontdoor/resource-manager/readme.nodejs.md
@@ -0,0 +1,15 @@
+## Node.js
+
+These settings apply only when `--nodejs` is specified on the command line.
+Please also specify `--node-sdks-folder=`.
+
+``` yaml $(nodejs)
+nodejs:
+ azure-arm: true
+ package-name: azure-arm-frontdoor
+ package-version: 5.2.0
+ generate-license-txt: true
+ generate-package-json: true
+ generate-readme-md: false
+ output-folder: $(node-sdks-folder)/lib/services/networkManagement2/lib
+```
diff --git a/specification/frontdoor/resource-manager/readme.python.md b/specification/frontdoor/resource-manager/readme.python.md
new file mode 100644
index 000000000000..dc7f61d322b8
--- /dev/null
+++ b/specification/frontdoor/resource-manager/readme.python.md
@@ -0,0 +1,27 @@
+## Python
+
+These settings apply only when `--python` is specified on the command line.
+Please also specify `--python-sdks-folder=`.
+Use `--python-mode=update` if you already have a setup.py and just want to update the code itself.
+
+``` yaml $(python)
+python-mode: create
+python:
+ azure-arm: true
+ license-header: MICROSOFT_MIT_NO_VERSION
+ payload-flattening-threshold: 2
+ namespace: azure.mgmt.frontdoor
+ package-name: azure-mgmt-frontdoor
+ package-version: 0.1.0
+ clear-output-folder: true
+```
+``` yaml $(python) && $(python-mode) == 'update'
+python:
+ no-namespace-folders: true
+ output-folder: $(python-sdks-folder)/azure-mgmt-frontdoor/azure/mgmt/frontdoor
+```
+``` yaml $(python) && $(python-mode) == 'create'
+python:
+ basic-setup-py: true
+ output-folder: $(python-sdks-folder)/azure-mgmt-frontdoor
+```