From 633d12d5b552b102f874182b8f50266eb97fdc85 Mon Sep 17 00:00:00 2001 From: Sai Manoj Kumar Yadlapati Date: Thu, 15 Nov 2018 02:18:07 +0530 Subject: [PATCH] Application Gateway - Adds Rewrite rule set for Header CRUD (#4331) * Adds base for updating Microsoft.Network from version stable/2018-08-01 to version 2018-10-01 * Updates readme * Updates API version in new specs and examples * Adds Rewrite rule set for Header CRUD Adds the structure of rewriteRuleSets in the applicationGatewayProperties. Adds recursively the sub structures in the rewriteRuleSet. Adds the reference to rewriteRuleSet in the requestRoutingRule for both Basic rule and Path based rule. * Adds examples for the Header CRUD in application gateway * Fix the examples; replacing rules with rewriteRules. * Fixing the properties of application Gateway rewriteRule * Revert "Fixing the properties of application Gateway rewriteRule" This reverts commit 05c9c9103af1da0162b6cc0a04c4b37b4360f66c. * Fixing the properties of application Gateway rewriteRule * Mark the provisioning state as readOnly * Mark etag as readOnly --- .../stable/2018-10-01/applicationGateway.json | 101 ++++++ .../examples/ApplicationGatewayCreate.json | 308 +++++++++++++++++- .../examples/ApplicationGatewayGet.json | 107 +++++- 3 files changed, 513 insertions(+), 3 deletions(-) diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2018-10-01/applicationGateway.json b/specification/network/resource-manager/Microsoft.Network/stable/2018-10-01/applicationGateway.json index 6cb4636af1f1..47b00dd8bc6b 100644 --- a/specification/network/resource-manager/Microsoft.Network/stable/2018-10-01/applicationGateway.json +++ b/specification/network/resource-manager/Microsoft.Network/stable/2018-10-01/applicationGateway.json @@ -1275,6 +1275,10 @@ "$ref": "./network.json#/definitions/SubResource", "description": "Redirect configuration resource of URL path map path rule." }, + "rewriteRuleSet": { + "$ref": "./network.json#/definitions/SubResource", + "description": "Rewrite rule set resource of URL path map path rule." + }, "provisioningState": { "type": "string", "description": "Path rule of URL path map resource. Possible values are: 'Updating', 'Deleting', and 'Failed'." @@ -1437,6 +1441,10 @@ "$ref": "./network.json#/definitions/SubResource", "description": "URL path map resource of the application gateway." }, + "rewriteRuleSet": { + "$ref": "./network.json#/definitions/SubResource", + "description": "Rewrite Rule Set resource in Basic rule of the application gateway." + }, "redirectConfiguration": { "$ref": "./network.json#/definitions/SubResource", "description": "Redirect configuration resource of the application gateway." @@ -1474,6 +1482,88 @@ ], "description": "Request routing rule of an application gateway." }, + "ApplicationGatewayRewriteRuleSet": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/ApplicationGatewayRewriteRuleSetPropertiesFormat" + }, + "name": { + "type": "string", + "description": "Name of the rewrite rule set that is unique within an Application Gateway." + }, + "etag": { + "readOnly": true, + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated." + } + }, + "allOf": [ + { + "$ref": "./network.json#/definitions/SubResource" + } + ], + "description": "Rewrite rule set of an application gateway." + }, + "ApplicationGatewayRewriteRuleSetPropertiesFormat": { + "properties": { + "rewriteRules": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationGatewayRewriteRule" + }, + "description": "Rewrite rules in the rewrite rule set." + }, + "provisioningState": { + "readOnly": true, + "type": "string", + "description": "Provisioning state of the rewrite rule set resource. Possible values are: 'Updating', 'Deleting', and 'Failed'." + } + }, + "description": "Properties of rewrite rule set of the application gateway." + }, + "ApplicationGatewayRewriteRule": { + "properties": { + "name": { + "type": "string", + "description": "Name of the rewrite rule that is unique within an Application Gateway." + }, + "actionSet": { + "type": "object", + "$ref": "#/definitions/ApplicationGatewayRewriteRuleActionSet", + "description": "Set of actions to be done as part of the rewrite Rule." + } + }, + "description": "Rewrite rule of an application gateway." + }, + "ApplicationGatewayRewriteRuleActionSet": { + "properties": { + "requestHeaderConfigurations": { + "type": "array", + "$ref": "#/definitions/ApplicationGatewayHeaderConfiguration", + "description": "Request Header Actions in the Action Set" + }, + "responseHeaderConfigurations": { + "type": "array", + "$ref": "#/definitions/ApplicationGatewayHeaderConfiguration", + "description": "Response Header Actions in the Action Set" + } + }, + "description": "Set of actions in the Rewrite Rule in Application Gateway." + }, + "ApplicationGatewayHeaderConfiguration": { + "properties": { + "headerName": { + "type": "string", + "description": "Header name of the header configuration" + }, + "headerValue": { + "type": "string", + "description": "Header value of the header configuration" + } + }, + "description": "Header configuration of the Actions set in Application Gateway." + }, "ApplicationGatewayRedirectConfigurationPropertiesFormat": { "properties": { "redirectType": { @@ -1660,6 +1750,13 @@ }, "description": "Request routing rules of the application gateway resource." }, + "rewriteRuleSets": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationGatewayRewriteRuleSet" + }, + "description": "Rewrite rules for the application gateway resource." + }, "redirectConfigurations": { "type": "array", "items": { @@ -1752,6 +1849,10 @@ "$ref": "./network.json#/definitions/SubResource", "description": "Default backend http settings resource of URL path map." }, + "defaultRewriteRuleSet": { + "$ref": "./network.json#/definitions/SubResource", + "description": "Default Rewrite rule set resource of URL path map." + }, "defaultRedirectConfiguration": { "$ref": "./network.json#/definitions/SubResource", "description": "Default redirect configuration resource of URL path map." diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2018-10-01/examples/ApplicationGatewayCreate.json b/specification/network/resource-manager/Microsoft.Network/stable/2018-10-01/examples/ApplicationGatewayCreate.json index 809f8568d03c..0771e4132b60 100644 --- a/specification/network/resource-manager/Microsoft.Network/stable/2018-10-01/examples/ApplicationGatewayCreate.json +++ b/specification/network/resource-manager/Microsoft.Network/stable/2018-10-01/examples/ApplicationGatewayCreate.json @@ -46,6 +46,12 @@ "properties": { "port": 443 } + }, + { + "name": "appgwfp80", + "properties": { + "port": 80 + } } ], "backendAddressPools": [ @@ -90,6 +96,53 @@ }, "requireServerNameIndication": false } + }, + { + "name": "appgwhttplistener", + "properties": { + "frontendIPConfiguration": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/frontendIPConfigurations/appgwfip" + }, + "frontendPort": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/frontendPorts/appgwfp80" + }, + "protocol": "Http" + } + } + ], + "urlPathMaps": [ + { + "name": "pathMap1", + "properties": { + "defaultBackendAddressPool": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendAddressPools/appgwpool" + }, + "defaultBackendHttpSettings": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendHttpSettingsCollection/appgwbhs" + }, + "defaultRewriteRuleSet": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/rewriteRuleSets/rewriteRuleSet1" + }, + "pathRules": [ + { + "name": "apiPaths", + "properties": { + "paths": [ + "/api", "/v1/api" + ], + "backendAddressPool": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendAddressPools/appgwpool" + }, + "backendHttpSettings": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendHttpSettingsCollection/appgwbhs" + }, + "rewriteRuleSet": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/rewriteRuleSets/rewriteRuleSet1" + } + } + } + ] + } } ], "requestRoutingRules": [ @@ -105,9 +158,50 @@ }, "backendHttpSettings": { "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendHttpSettingsCollection/appgwbhs" + }, + "rewriteRuleSet": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/rewriteRuleSets/rewriteRuleSet1" + } + } + }, + { + "name": "appgwPathBasedRule", + "properties": { + "ruleType": "PathBasedRouting", + "httpListener": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/httpListeners/appgwhttplistener" + }, + "urlPathMap": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/urlPathMaps/pathMap1" } } } + ], + "rewriteRuleSets": [ + { + "name": "rewriteRuleSet1", + "properties": { + "rewriteRules": [ + { + "name": "Set X-Forwarded-For", + "actionSet": { + "requestHeaderConfigurations": [ + { + "headerName": "X-Forwarded-For", + "headerValue": "{var_remote-addr}" + } + ], + "responseHeaderConfigurations": [ + { + "headerName": "Strict-Transport-Security", + "headerValue": "max-age=31536000" + } + ] + } + } + ] + } + } ] } } @@ -171,6 +265,14 @@ "provisioningState": "Succeeded", "port": 443 } + }, + { + "name": "appgwfp80", + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/frontendPorts/appgwfp80", + "properties": { + "provisioningState": "Succeeded", + "port": 80 + } } ], "backendAddressPools": [ @@ -214,9 +316,61 @@ }, "requireServerNameIndication": false } + }, + { + "name": "appgwhttplistener", + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/httpListeners/appgwhttplistener", + "properties": { + "provisioningState": "Succeeded", + "frontendIPConfiguration": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/frontendIPConfigurations/appgwfip" + }, + "frontendPort": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/frontendPorts/appgwfp80" + }, + "protocol": "Http" + } + } + ], + "urlPathMaps": [ + { + "name": "pathMap1", + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/urlPathMaps/pathMap1", + "properties": { + "provisioningState": "Succeeded", + "defaultBackendAddressPool": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendAddressPools/appgwpool" + }, + "defaultBackendHttpSettings": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendHttpSettingsCollection/appgwbhs" + }, + "defaultRewriteRuleSet": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/rewriteRuleSets/rewriteRuleSet1" + }, + "pathRules": [ + { + "name": "apiPaths", + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/urlPathMaps/pathMap1/pathRules/apiPaths", + "properties": { + "provisioningState": "Succeeded", + "paths": [ + "/api", "/v1/api" + ], + "backendAddressPool": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendAddressPools/appgwpool" + }, + "backendHttpSettings": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendHttpSettingsCollection/appgwbhs" + }, + "rewriteRuleSet": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/rewriteRuleSets/rewriteRuleSet1" + } + } + } + ] + } } ], - "urlPathMaps": [], "requestRoutingRules": [ { "name": "appgwrule", @@ -232,10 +386,55 @@ }, "backendHttpSettings": { "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendHttpSettingsCollection/appgwbhs" + }, + "rewriteRuleSet": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/rewriteRuleSets/rewriteRuleSet1" + } + } + }, + { + "name": "appgwPathBasedRule", + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/requestRoutingRules/appgwPathBasedRule", + "properties": { + "provisioningState": "Succeeded", + "ruleType": "PathBasedRouting", + "httpListener": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/httpListeners/appgwhttplistener" + }, + "urlPathMap": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/urlPathMaps/pathMap1" } } } ], + "rewriteRuleSets": [ + { + "name": "rewriteRuleSet1", + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/rewriteRuleSets/rewriteRuleSet1", + "properties": { + "provisioningState": "Succeeded", + "rewriteRules": [ + { + "name": "Set X-Forwarded-For", + "actionSet": { + "requestHeaderConfigurations": [ + { + "headerName": "X-Forwarded-For", + "headerValue": "{var_remote-addr}" + } + ], + "responseHeaderConfigurations": [ + { + "headerName": "Strict-Transport-Security", + "headerValue": "max-age=31536000" + } + ] + } + } + ] + } + } + ], "probes": [] } } @@ -298,6 +497,14 @@ "provisioningState": "Succeeded", "port": 443 } + }, + { + "name": "appgwfp80", + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/frontendPorts/appgwfp80", + "properties": { + "provisioningState": "Succeeded", + "port": 80 + } } ], "backendAddressPools": [ @@ -341,9 +548,61 @@ }, "requireServerNameIndication": false } + }, + { + "name": "appgwhttplistener", + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/httpListeners/appgwhttplistener", + "properties": { + "provisioningState": "Succeeded", + "frontendIPConfiguration": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/frontendIPConfigurations/appgwfip" + }, + "frontendPort": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/frontendPorts/appgwfp80" + }, + "protocol": "Http" + } + } + ], + "urlPathMaps": [ + { + "name": "pathMap1", + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/urlPathMaps/pathMap1", + "properties": { + "provisioningState": "Succeeded", + "defaultBackendAddressPool": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendAddressPools/appgwpool" + }, + "defaultBackendHttpSettings": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendHttpSettingsCollection/appgwbhs" + }, + "defaultRewriteRuleSet": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/rewriteRuleSets/rewriteRuleSet1" + }, + "pathRules": [ + { + "name": "apiPaths", + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/urlPathMaps/pathMap1/pathRules/apiPaths", + "properties": { + "provisioningState": "Succeeded", + "paths": [ + "/api", "/v1/api" + ], + "backendAddressPool": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendAddressPools/appgwpool" + }, + "backendHttpSettings": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendHttpSettingsCollection/appgwbhs" + }, + "rewriteRuleSet": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/rewriteRuleSets/rewriteRuleSet1" + } + } + } + ] + } } ], - "urlPathMaps": [], "requestRoutingRules": [ { "name": "appgwrule", @@ -359,10 +618,55 @@ }, "backendHttpSettings": { "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendHttpSettingsCollection/appgwbhs" + }, + "rewriteRuleSet": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/rewriteRuleSets/rewriteRuleSet1" + } + } + }, + { + "name": "appgwPathBasedRule", + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/requestRoutingRules/appgwPathBasedRule", + "properties": { + "provisioningState": "Succeeded", + "ruleType": "PathBasedRouting", + "httpListener": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/httpListeners/appgwhttplistener" + }, + "urlPathMap": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/urlPathMaps/pathMap1" } } } ], + "rewriteRuleSets": [ + { + "name": "rewriteRuleSet1", + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/rewriteRuleSets/rewriteRuleSet1", + "properties": { + "provisioningState": "Succeeded", + "rewriteRules": [ + { + "name": "Set X-Forwarded-For", + "actionSet": { + "requestHeaderConfigurations": [ + { + "headerName": "X-Forwarded-For", + "headerValue": "{var_remote-addr}" + } + ], + "responseHeaderConfigurations": [ + { + "headerName": "Strict-Transport-Security", + "headerValue": "max-age=31536000" + } + ] + } + } + ] + } + } + ], "probes": [] } } diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2018-10-01/examples/ApplicationGatewayGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2018-10-01/examples/ApplicationGatewayGet.json index 85caf04d78f7..99ea2be67476 100644 --- a/specification/network/resource-manager/Microsoft.Network/stable/2018-10-01/examples/ApplicationGatewayGet.json +++ b/specification/network/resource-manager/Microsoft.Network/stable/2018-10-01/examples/ApplicationGatewayGet.json @@ -64,6 +64,14 @@ "provisioningState": "Succeeded", "port": 443 } + }, + { + "name": "appgwfp80", + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/frontendPorts/appgwfp80", + "properties": { + "provisioningState": "Succeeded", + "port": 80 + } } ], "backendAddressPools": [ @@ -107,9 +115,61 @@ }, "requireServerNameIndication": false } + }, + { + "name": "appgwhttplistener", + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/httpListeners/appgwhttplistener", + "properties": { + "provisioningState": "Succeeded", + "frontendIPConfiguration": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/frontendIPConfigurations/appgwfip" + }, + "frontendPort": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/frontendPorts/appgwfp80" + }, + "protocol": "Http" + } + } + ], + "urlPathMaps": [ + { + "name": "pathMap1", + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/urlPathMaps/pathMap1", + "properties": { + "provisioningState": "Succeeded", + "defaultBackendAddressPool": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendAddressPools/appgwpool" + }, + "defaultBackendHttpSettings": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendHttpSettingsCollection/appgwbhs" + }, + "defaultRewriteRuleSet": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/rewriteRuleSets/rewriteRuleSet1" + }, + "pathRules": [ + { + "name": "apiPaths", + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/urlPathMaps/pathMap1/pathRules/apiPaths", + "properties": { + "provisioningState": "Succeeded", + "paths": [ + "/api", "/v1/api" + ], + "backendAddressPool": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendAddressPools/appgwpool" + }, + "backendHttpSettings": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendHttpSettingsCollection/appgwbhs" + }, + "rewriteRuleSet": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/rewriteRuleSets/rewriteRuleSet1" + } + } + } + ] + } } ], - "urlPathMaps": [], "requestRoutingRules": [ { "name": "appgwrule", @@ -125,8 +185,53 @@ }, "backendHttpSettings": { "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendHttpSettingsCollection/appgwbhs" + }, + "rewriteRuleSet": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/rewriteRuleSets/rewriteRuleSet1" } } + }, + { + "name": "appgwPathBasedRule", + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/requestRoutingRules/appgwPathBasedRule", + "properties": { + "provisioningState": "Succeeded", + "ruleType": "PathBasedRouting", + "httpListener": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/httpListeners/appgwhttplistener" + }, + "urlPathMap": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/urlPathMaps/pathMap1" + } + } + } + ], + "rewriteRuleSets": [ + { + "name": "rewriteRuleSet1", + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/rewriteRuleSets/rewriteRuleSet1", + "properties": { + "provisioningState": "Succeeded", + "rewriteRules": [ + { + "name": "Set X-Forwarded-For", + "actionSet": { + "requestHeaderConfigurations": [ + { + "headerName": "X-Forwarded-For", + "headerValue": "{var_remote-addr}" + } + ], + "responseHeaderConfigurations": [ + { + "headerName": "Strict-Transport-Security", + "headerValue": "max-age=31536000" + } + ] + } + } + ] + } } ], "probes": []