diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 23631dadd350..1730048a9262 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -109,6 +109,9 @@ jobs: AZURE_SDK_PARAMS: '-o latest' pool: vmImage: 'Ubuntu 16.04' + variables: + NODE_OPTIONS: '--max-old-space-size=8192' steps: + - script: echo $(NODE_OPTIONS) - script: "scripts/swagger-to-sdk.sh Azure/$(AZURE_SDK_REPO) -v $(AZURE_SDK_PARAMS)" displayName: "Swagger to SDK script" diff --git a/scripts/swagger-to-sdk.sh b/scripts/swagger-to-sdk.sh index 663c223bd6f3..d9a664677038 100755 --- a/scripts/swagger-to-sdk.sh +++ b/scripts/swagger-to-sdk.sh @@ -1,5 +1,5 @@ #!/bin/sh -python -c "import os; print('\n'.join(v for v in os.environ.keys() if v.startswith('TRAVIS')))" > /tmp/env_file +python -c "import os; print('\n'.join(v for v in os.environ.keys() if v.startswith('TRAVIS') or v.startswith('NODE')))" > /tmp/env_file docker pull azuresdk/swagger-to-sdk docker run --rm --env-file /tmp/env_file -e GH_TOKEN -v $PWD:/git-restapi/ azuresdk/swagger-to-sdk "$@" 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 index bda48507b49e..6c237ced8cef 100644 --- 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 @@ -1,262 +1,262 @@ { + "parameters": { + "api-version": "2018-08-01", + "subscriptionId": "subid", + "resourceGroupName": "rg1", + "policyName": "Policy1", "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" - } - ] - } - ] + "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" + ] } - } - } - }, - "responses": { - "200": { - "body": { - "name": "Policy1", - "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/FrontDoorWebApplicationFirewallPolicies/Policy1", - "type": "Microsoft.Network/frontdoorwebapplicationfirewallpolicies", - "tags": { - "key1": "value1", - "key2": "value2" + ], + "action": "Block" + }, + { + "name": "Rule2", + "priority": 2, + "ruleType": "MatchRule", + "matchConditions": [ + { + "matchVariable": "RemoteAddr", + "operator": "GeoMatch", + "matchValue": [ + "CH" + ] }, - "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" - } - ] - } - ] - } + { + "matchVariable": "RequestHeader", + "operator": "Contains", + "selector": "UserAgent", + "matchValue": [ + "Windows" + ] } + ], + "action": "Block" } + ] }, - "201": { - "body": { - "name": "Policy1", - "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/FrontDoorWebApplicationFirewallPolicies/Policy1", - "type": "Microsoft.Network/frontdoorwebapplicationfirewallpolicies", - "tags": { - "key1": "value1", - "key2": "value2" + "managedRules": { + "ruleSets": [ + { + "ruleSetType": "AzureManagedRuleSet", + "priority": 1, + "ruleGroupOverrides": [ + { + "ruleGroupOverride": "SqlInjection", + "action": "Block" }, - "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" - } - ] - } - ] - } + { + "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/network/resource-manager/Microsoft.Network/stable/2018-12-01/applicationGateway.json b/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/applicationGateway.json index 94a4e4ee9ee3..da459cac97e1 100644 --- a/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/applicationGateway.json +++ b/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/applicationGateway.json @@ -768,6 +768,10 @@ "name": "ApplicationGatewayBackendHealthServerHealth", "modelAsString": true } + }, + "healthProbeLog": { + "type": "string", + "description": "Health Probe Log." } }, "description": "Application gateway backendhealth http settings." @@ -1463,7 +1467,7 @@ "timeout": { "type": "integer", "format": "int32", - "description": "the probe timeout in seconds. Probe marked as failed if valid response is not received with this timeout period. Acceptable values are from 1 second to 86400 seconds." + "description": "The probe timeout in seconds. Probe marked as failed if valid response is not received with this timeout period. Acceptable values are from 1 second to 86400 seconds." }, "unhealthyThreshold": { "type": "integer", @@ -1925,6 +1929,10 @@ "$ref": "#/definitions/ApplicationGatewayWebApplicationFirewallConfiguration", "description": "Web application firewall configuration." }, + "firewallPolicy": { + "$ref": "./network.json#/definitions/SubResource", + "description": "Reference of the FirewallPolicy resource." + }, "enableHttp2": { "type": "boolean", "description": "Whether HTTP2 is enabled on the application gateway resource." diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/azureFirewall.json b/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/azureFirewall.json index 20a24cbb6d11..d87dae06f3fc 100644 --- a/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/azureFirewall.json +++ b/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/azureFirewall.json @@ -274,7 +274,7 @@ }, "provisioningState":{ "description":"The provisioning state of the resource.", - "$ref":"#/definitions/ProvisioningState" + "$ref":"./network.json#/definitions/ProvisioningState" } }, "description":"Properties of IP configuration of an Azure Firewall." @@ -334,7 +334,7 @@ }, "provisioningState":{ "description":"The provisioning state of the resource.", - "$ref":"#/definitions/ProvisioningState" + "$ref":"./network.json#/definitions/ProvisioningState" }, "threatIntelMode":{ "description":"The operation mode for Threat Intelligence.", @@ -415,7 +415,7 @@ }, "provisioningState":{ "description":"The provisioning state of the resource.", - "$ref":"#/definitions/ProvisioningState" + "$ref":"./network.json#/definitions/ProvisioningState" } }, "description":"Properties of the application rule collection." @@ -526,7 +526,7 @@ }, "provisioningState":{ "description":"The provisioning state of the resource.", - "$ref":"#/definitions/ProvisioningState" + "$ref":"./network.json#/definitions/ProvisioningState" } }, "description":"Properties of the NAT rule collection." @@ -648,7 +648,7 @@ }, "provisioningState":{ "description":"The provisioning state of the resource.", - "$ref":"#/definitions/ProvisioningState" + "$ref":"./network.json#/definitions/ProvisioningState" } }, "description":"Properties of the network rule collection." @@ -739,21 +739,6 @@ "modelAsString":true } }, - "ProvisioningState":{ - "type":"string", - "readOnly":true, - "description": "The current provisioning state.", - "enum":[ - "Succeeded", - "Updating", - "Deleting", - "Failed" - ], - "x-ms-enum":{ - "name":"ProvisioningState", - "modelAsString":true - } - }, "AzureFirewallNetworkRuleProtocol":{ "type":"string", "description":"The protocol of a Network Rule resource", diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/examples/ExpressRouteCircuitConnectionList.json b/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/examples/ExpressRouteCircuitConnectionList.json index 2946b967082e..f4723531f426 100644 --- a/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/examples/ExpressRouteCircuitConnectionList.json +++ b/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/examples/ExpressRouteCircuitConnectionList.json @@ -1,6 +1,5 @@ { "parameters": { - "connectionName": "circuitConnectionUSAUS", "resourceGroupName": "rg1", "api-version": "2018-12-01", "subscriptionId": "subid1", diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/examples/PeerExpressRouteCircuitConnectionGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/examples/PeerExpressRouteCircuitConnectionGet.json new file mode 100644 index 000000000000..371280816ca1 --- /dev/null +++ b/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/examples/PeerExpressRouteCircuitConnectionGet.json @@ -0,0 +1,32 @@ +{ + "parameters": { + "connectionName": "60aee347-e889-4a42-8c1b-0aae8b1e4013", + "resourceGroupName": "rg1", + "api-version": "2018-12-01", + "subscriptionId": "subid1", + "circuitName": "ExpressRouteARMCircuitA", + "peeringName": "AzurePrivatePeering" + }, + "responses": { + "200": { + "body": { + "name": "60aee347-e889-4a42-8c1b-0aae8b1e4013", + "id": "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Network/expressRouteCircuits/ExpressRouteARMCircuitA/peerings/AzurePrivatePeering/peerConnections/60aee347-e889-4a42-8c1b-0aae8b1e4013", + "etag": "W/\"6ffbbb06-da20-44ca-a34f-280c4653b1e9\"", + "properties": { + "provisioningState": "Succeeded", + "expressRouteCircuitPeering": { + "id": "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Network/expressRouteCircuits/ExpressRouteARMCircuitA/peerings/AzurePrivatePeering" + }, + "peerExpressRouteCircuitPeering": { + "id": "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Network/expressRouteCircuits/ExpressRouteARMCircuitB/peerings/AzurePrivatePeering" + }, + "addressPrefix": "20.0.0.0/29", + "circuitConnectionStatus": "Connected", + "connectionName": "circuitConnectionWestusEastus", + "authResourceGuid": "" + } + } + } + } +} diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/examples/PeerExpressRouteCircuitConnectionList.json b/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/examples/PeerExpressRouteCircuitConnectionList.json new file mode 100644 index 000000000000..218091fc69b2 --- /dev/null +++ b/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/examples/PeerExpressRouteCircuitConnectionList.json @@ -0,0 +1,53 @@ +{ + "parameters": { + "resourceGroupName": "rg1", + "api-version": "2018-12-01", + "subscriptionId": "subid1", + "circuitName": "ExpressRouteARMCircuitA", + "peeringName": "AzurePrivatePeering" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "60aee347-e889-4a42-8c1b-0aae8b1e4013", + "id": "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Network/expressRouteCircuits/ExpressRouteARMCircuitA/peerings/AzurePrivatePeering/peerConnections/60aee347-e889-4a42-8c1b-0aae8b1e4013", + "etag": "W/\"6ffbbb06-da20-44ca-a34f-280c4653b1e9\"", + "properties": { + "provisioningState": "Succeeded", + "expressRouteCircuitPeering": { + "id": "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Network/expressRouteCircuits/ExpressRouteARMCircuitA/peerings/AzurePrivatePeering" + }, + "peerExpressRouteCircuitPeering": { + "id": "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Network/expressRouteCircuits/ExpressRouteARMCircuitB/peerings/AzurePrivatePeering" + }, + "addressPrefix": "20.0.0.0/29", + "circuitConnectionStatus": "Connected", + "connectionName": "circuitConnectionWestusEastus", + "authResourceGuid": "" + } + }, + { + "name": "c8b17193-8dd3-4f61-866d-8cdd2e2e268e", + "id": "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Network/expressRouteCircuits/ExpressRouteARMCircuitA/peerings/AzurePrivatePeering/peerConnections/c8b17193-8dd3-4f61-866d-8cdd2e2e268e", + "etag": "W/\"6ffbbb06-da20-44ca-a34f-280c4653b1e9\"", + "properties": { + "provisioningState": "Succeeded", + "expressRouteCircuitPeering": { + "id": "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Network/expressRouteCircuits/ExpressRouteARMCircuitA/peerings/AzurePrivatePeering" + }, + "peerExpressRouteCircuitPeering": { + "id": "/subscriptions/subid2/resourceGroups/rg1/providers/Microsoft.Network/expressRouteCircuits/ExpressRouteARMCircuitC/peerings/AzurePrivatePeering" + }, + "addressPrefix": "30.0.0.0/29", + "circuitConnectionStatus": "Connected", + "connectionName": "circuitConnectionCentralusEastus", + "authResourceGuid": "64283012-d377-421d-8398-f6aeb2ac7ea0" + } + } + ] + } + } + } + } \ No newline at end of file diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/examples/WafListAllPolicies.json b/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/examples/WafListAllPolicies.json new file mode 100644 index 000000000000..d97dc5b93f9e --- /dev/null +++ b/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/examples/WafListAllPolicies.json @@ -0,0 +1,95 @@ +{ + "parameters": { + "api-version": "2018-12-01", + "subscriptionId": "subid" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "Policy1", + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies/Policy1", + "type": "Microsoft.Network/applicationgatewaywebapplicationfirewallpolicies", + "tags": { + "key1": "value1", + "key2": "value2" + }, + "location": "WestUs", + "properties": { + "resourceState": "Enabled", + "provisioningState": "Succeeded", + "policySettings": { + "enabledState": "Enabled", + "mode": "Prevention" + }, + "customRules": { + "rules": [ + { + "name": "Rule1", + "priority": 1, + "ruleType": "MatchRule", + "matchConditions": [ + { + "matchVariables": [ + { + "name": "RemoteAddr", + "selector": null + } + ], + "operator": "IPMatch", + "negateCondition": false, + "matchValues": [ + "192.168.1.0/24", + "10.0.0.0/24" + ], + "transforms": [] + } + ], + "action": "Block" + }, + { + "name": "Rule2", + "priority": 2, + "ruleType": "MatchRule", + "matchConditions": [ + { + "matchVariables": [ + { + "name": "RemoteAddr", + "selector": null + } + ], + "operator": "IPMatch", + "negateCondition": false, + "matchValues": [ + "10.0.0.0/24" + ], + "transforms": [] + }, + { + "matchVariables": [ + { + "name": "RequestHeader", + "selector": "UserAgent" + } + ], + "operator": "Contains", + "negateCondition": false, + "matchValues": [ + "Windows" + ], + "transforms": [] + } + ], + "action": "Block" + } + ] + } + } + } + ] + } + } + } +} \ No newline at end of file diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/examples/WafListPolicies.json b/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/examples/WafListPolicies.json new file mode 100644 index 000000000000..84dc0e323da4 --- /dev/null +++ b/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/examples/WafListPolicies.json @@ -0,0 +1,93 @@ +{ + "parameters": { + "api-version": "2018-12-01", + "subscriptionId": "subid", + "resourceGroupName": "rg1" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "Policy1", + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies/Policy1", + "type": "Microsoft.Network/applicationgatewaywebapplicationfirewallpolicies", + "tags": { + "key1": "value1", + "key2": "value2" + }, + "location": "WestUs", + "properties": { + "resourceState": "Enabled", + "provisioningState": "Succeeded", + "policySettings": { + "enabledState": "Enabled", + "mode": "Prevention" + }, + "customRules": { + "rules": [ + { + "name": "Rule1", + "priority": 1, + "ruleType": "MatchRule", + "matchConditions": [ + { + "matchVariables": [ + { + "name": "RemoteAddr", + "selector": null + } + ], + "operator": "IPMatch", + "negateCondition": false, + "matchValues": [ + "192.168.1.0/24", + "10.0.0.0/24" + ] + } + ], + "action": "Block" + }, + { + "name": "Rule2", + "priority": 2, + "ruleType": "MatchRule", + "matchConditions": [ + { + "matchVariables": [ + { + "name": "RemoteAddr", + "selector": null + } + ], + "operator": "IPMatch", + "negateCondition": false, + "matchValues": [ + "10.0.0.0/24" + ] + }, + { + "matchVariables": [ + { + "name": "RequestHeader", + "selector": "UserAgent" + } + ], + "operator": "Contains", + "negateCondition": false, + "matchValues": [ + "Windows" + ] + } + ], + "action": "Block" + } + ] + } + } + } + ] + } + } + } +} \ No newline at end of file diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/examples/WafPolicyCreateOrUpdate.json b/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/examples/WafPolicyCreateOrUpdate.json new file mode 100644 index 000000000000..3de6268bc718 --- /dev/null +++ b/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/examples/WafPolicyCreateOrUpdate.json @@ -0,0 +1,233 @@ +{ + "parameters": { + "api-version": "2018-12-01", + "subscriptionId": "subid", + "resourceGroupName": "rg1", + "policyName": "Policy1", + "parameters": { + "location": "WestUs", + "properties": { + "customRules": { + "rules": [ + { + "name": "Rule1", + "priority": 1, + "ruleType": "MatchRule", + "matchConditions": [ + { + "matchVariables": [ + { + "name": "RemoteAddr", + "selector": null + } + ], + "operator": "IPMatch", + "matchValues": [ + "192.168.1.0/24", + "10.0.0.0/24" + ] + } + ], + "action": "Block" + }, + { + "name": "Rule2", + "priority": 2, + "ruleType": "MatchRule", + "matchConditions": [ + { + "matchVariables": [ + { + "name": "RemoteAddr", + "selector": null + } + ], + "operator": "IPMatch", + "matchValues": [ + "192.168.1.0/24" + ] + }, + { + "matchVariables": [ + { + "name": "RequestHeader", + "selector": "UserAgent" + } + ], + "operator": "Contains", + "matchValues": [ + "Windows" + ] + } + ], + "action": "Block" + } + ] + } + } + } + }, + "responses": { + "200": { + "body": { + "name": "Policy1", + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies/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": "MatchRule", + "matchConditions": [ + { + "matchVariables": [ + { + "name": "RemoteAddr", + "selector": null + } + ], + "operator": "IPMatch", + "negateCondition": false, + "matchValues": [ + "192.168.1.0/24", + "10.0.0.0/24" + ], + "transforms": [] + } + ], + "action": "Block" + }, + { + "name": "Rule2", + "priority": 2, + "ruleType": "MatchRule", + "matchConditions": [ + { + "matchVariables": [ + { + "name": "RemoteAddr", + "selector": null + } + ], + "operator": "IPMatch", + "negateCondition": false, + "matchValues": [ + "192.168.1.0/24" + ] + }, + { + "matchVariables": [ + { + "name": "RequestHeader", + "selector": "UserAgent" + } + ], + "operator": "Contains", + "negateCondition": false, + "matchValues": [ + "Windows" + ] + } + ], + "action": "Block" + } + ] + } + } + } + }, + "201": { + "body": { + "name": "Policy1", + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies/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": "MatchRule", + "matchConditions": [ + { + "matchVariables": [ + { + "name": "RemoteAddr", + "selector": null + } + ], + "operator": "IPMatch", + "negateCondition": false, + "matchValues": [ + "192.168.1.0/24", + "10.0.0.0/24" + ] + } + ], + "action": "Block" + }, + { + "name": "Rule2", + "priority": 2, + "ruleType": "MatchRule", + "matchConditions": [ + { + "matchVariables": [ + { + "name": "RemoteAddr", + "selector": null + } + ], + "operator": "IPMatch", + "negateCondition": false, + "matchValues": [ + "192.168.1.0/24" + ] + }, + { + "matchVariables": [ + { + "name": "RequestHeader", + "selector": "UserAgent" + } + ], + "operator": "Contains", + "negateCondition": false, + "matchValues": [ + "Windows" + ] + } + ], + "action": "Block" + } + ] + } + } + } + } + } +} \ No newline at end of file diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/examples/WafPolicyDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/examples/WafPolicyDelete.json new file mode 100644 index 000000000000..bfd66e8a01a8 --- /dev/null +++ b/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/examples/WafPolicyDelete.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "api-version": "2018-12-01", + "subscriptionId": "subid", + "resourceGroupName": "rg1", + "policyName": "Policy1" + }, + "responses": { + "200": {}, + "202": {}, + "204": {} + } +} \ No newline at end of file diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/examples/WafPolicyGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/examples/WafPolicyGet.json new file mode 100644 index 000000000000..f79ef3e73136 --- /dev/null +++ b/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/examples/WafPolicyGet.json @@ -0,0 +1,91 @@ +{ + "parameters": { + "api-version": "2018-12-01", + "subscriptionId": "subid", + "resourceGroupName": "rg1", + "policyName": "Policy1" + }, + "responses": { + "200": { + "body": { + "name": "Policy1", + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies/Policy1", + "type": "Microsoft.Network/applicationgatewaywebapplicationfirewallpolicies", + "tags": { + "key1": "value1", + "key2": "value2" + }, + "location": "WestUs", + "properties": { + "resourceState": "Enabled", + "provisioningState": "Succeeded", + "policySettings": { + "enabledState": "Enabled", + "mode": "Prevention" + }, + "customRules": { + "rules": [ + { + "name": "Rule1", + "priority": 1, + "ruleType": "MatchRule", + "matchConditions": [ + { + "matchVariables": [ + { + "name": "RemoteAddr", + "selector": null + } + ], + "operator": "IPMatch", + "negateCondition": false, + "matchValues": [ + "192.168.1.0/24", + "10.0.0.0/24" + ], + "transforms": [] + } + ], + "action": "Block" + }, + { + "name": "Rule2", + "priority": 2, + "ruleType": "MatchRule", + "matchConditions": [ + { + "matchVariables": [ + { + "name": "RemoteAddr", + "selector": null + } + ], + "operator": "IPMatch", + "negateCondition": false, + "matchValues": [ + "192.168.1.0/24" + ] + }, + { + "matchVariables": [ + { + "name": "RequestHeader", + "selector": "UserAgent" + } + ], + "operator": "Contains", + "negateCondition": false, + "matchValues": [ + "Windows" + ] + } + ], + "action": "Block" + } + ] + } + } + } + } + } +} \ No newline at end of file diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/expressRouteCircuit.json b/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/expressRouteCircuit.json index 1c0ee5960e4b..525c9b8db135 100644 --- a/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/expressRouteCircuit.json +++ b/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/expressRouteCircuit.json @@ -690,6 +690,116 @@ } } }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCircuits/{circuitName}/peerings/{peeringName}/peerConnections/{connectionName}": { + "get": { + "tags": [ + "PeerExpressRouteCircuitConnections" + ], + "operationId": "PeerExpressRouteCircuitConnections_Get", + "description": "Gets the specified Peer Express Route Circuit Connection from the specified express route circuit.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "circuitName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the express route circuit." + }, + { + "name": "peeringName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the peering." + }, + { + "name": "connectionName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the peer express route circuit connection." + }, + { + "$ref": "./network.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "./network.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Request successful. The operation returns the resulting Peer Express Route Circuit Connection resource.", + "schema": { + "$ref": "#/definitions/PeerExpressRouteCircuitConnection" + } + } + }, + "x-ms-examples": { + "PeerExpressRouteCircuitConnectionGet": { + "$ref": "./examples/PeerExpressRouteCircuitConnectionGet.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCircuits/{circuitName}/peerings/{peeringName}/peerConnections": { + "get": { + "tags": [ + "PeerExpressRouteCircuitConnections" + ], + "operationId": "PeerExpressRouteCircuitConnections_List", + "description": "Gets all global reach peer connections associated with a private peering in an express route circuit.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "circuitName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the circuit." + }, + { + "name": "peeringName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the peering." + }, + { + "$ref": "./network.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "./network.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Request successful. The operation returns a list of PeerExpressRouteCircuitConnections resources.", + "schema": { + "$ref": "#/definitions/PeerExpressRouteCircuitConnectionListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-examples": { + "List Peer ExpressRouteCircuit Connection": { "$ref": "./examples/PeerExpressRouteCircuitConnectionList.json" } + } + } + }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCircuits/{circuitName}": { "delete": { "tags": [ @@ -1510,6 +1620,14 @@ "$ref": "#/definitions/ExpressRouteCircuitConnection" }, "description": "The list of circuit connections associated with Azure Private Peering for this circuit." + }, + "peeredConnections": { + "type": "array", + "items": { + "$ref": "#/definitions/PeerExpressRouteCircuitConnection" + }, + "readOnly": true, + "description": "The list of peered circuit connections associated with Azure Private Peering for this circuit." } } }, @@ -1605,7 +1723,7 @@ ], "readOnly": true, "x-ms-enum": { - "name": "circuitConnectionStatus", + "name": "CircuitConnectionStatus", "modelAsString": true } }, @@ -1655,6 +1773,88 @@ }, "description": "Response for ListConnections API service call retrieves all global reach connections that belongs to a Private Peering for an ExpressRouteCircuit." }, + "PeerExpressRouteCircuitConnectionPropertiesFormat": { + "properties": { + "expressRouteCircuitPeering": { + "$ref": "./network.json#/definitions/SubResource", + "description": "Reference to Express Route Circuit Private Peering Resource of the circuit." + }, + "peerExpressRouteCircuitPeering": { + "$ref": "./network.json#/definitions/SubResource", + "description": "Reference to Express Route Circuit Private Peering Resource of the peered circuit." + }, + "addressPrefix": { + "type": "string", + "description": "/29 IP address space to carve out Customer addresses for tunnels." + }, + "circuitConnectionStatus": { + "type": "string", + "description": "Express Route Circuit Connection State. Possible values are: 'Connected' and 'Disconnected'.", + "enum": [ + "Connected", + "Connecting", + "Disconnected" + ], + "readOnly": true, + "x-ms-enum": { + "name": "circuitConnectionStatus", + "modelAsString": true + } + }, + "connectionName": { + "type": "string", + "description": "The name of the express route circuit connection resource." + }, + "authResourceGuid": { + "type": "string", + "description": "The resource guid of the authorization used for the express route circuit connection." + }, + "provisioningState": { + "type": "string", + "readOnly": true, + "description": "Provisioning state of the peer express route circuit connection resource. Possible values are: 'Succeeded', 'Updating', 'Deleting', and 'Failed'." + } + } + }, + "PeerExpressRouteCircuitConnection": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/PeerExpressRouteCircuitConnectionPropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource." + }, + "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": "Peer Express Route Circuit Connection in an ExpressRouteCircuitPeering resource." + }, + "PeerExpressRouteCircuitConnectionListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/PeerExpressRouteCircuitConnection" + }, + "description": "The global reach peer circuit connection associated with Private Peering in an ExpressRoute Circuit." + }, + "nextLink": { + "type": "string", + "description": "The URL to get the next set of results." + } + }, + "description": "Response for ListPeeredConnections API service call retrieves all global reach peer circuit connections that belongs to a Private Peering for an ExpressRouteCircuit." + }, "ExpressRouteCircuitSku": { "properties": { "name": { @@ -1663,11 +1863,12 @@ }, "tier": { "type": "string", - "description": "The tier of the SKU. Possible values are 'Standard', 'Premium' or 'Basic'.", + "description": "The tier of the SKU. Possible values are 'Standard', 'Premium' or 'Local'.", "enum": [ "Standard", "Premium", - "Basic" + "Basic", + "Local" ], "x-ms-enum": { "name": "ExpressRouteCircuitSkuTier", @@ -1782,6 +1983,10 @@ "allowGlobalReach": { "type": "boolean", "description": "Flag to enable Global Reach on the circuit." + }, + "globalReachEnabled": { + "type": "boolean", + "description": "Flag denoting Global reach status." } }, "description": "Properties of ExpressRouteCircuit." diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/network.json b/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/network.json index df07f99dcd5e..e9d9529e0d76 100644 --- a/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/network.json +++ b/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/network.json @@ -192,6 +192,21 @@ } }, "description": "Identity for the resource." + }, + "ProvisioningState":{ + "type":"string", + "readOnly":true, + "description": "The current provisioning state.", + "enum":[ + "Succeeded", + "Updating", + "Deleting", + "Failed" + ], + "x-ms-enum":{ + "name":"ProvisioningState", + "modelAsString":true + } } }, "parameters": { diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/publicIpPrefix.json b/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/publicIpPrefix.json index bff8fd0eff32..0ff33da9f479 100644 --- a/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/publicIpPrefix.json +++ b/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/publicIpPrefix.json @@ -338,7 +338,7 @@ "ipTags": { "type": "array", "items": { - "$ref": "#/definitions/IpTag" + "$ref": "./publicIpAddress.json#/definitions/IpTag" }, "description": "The list of tags associated with the public IP prefix." }, @@ -415,19 +415,6 @@ }, "description": "Response for ListPublicIpPrefixes API service call." }, - "IpTag": { - "properties": { - "ipTagType": { - "type": "string", - "description": "Gets or sets the ipTag type: Example FirstPartyUsage." - }, - "tag": { - "type": "string", - "description": "Gets or sets value of the IpTag associated with the public IP. Example SQL, Storage etc" - } - }, - "description": "Contains the IpTag associated with the object" - }, "ReferencedPublicIpAddress":{ "properties":{ "id":{ diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/serviceEndpointPolicy.json b/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/serviceEndpointPolicy.json index d2425efef626..4eb80508a71c 100644 --- a/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/serviceEndpointPolicy.json +++ b/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/serviceEndpointPolicy.json @@ -521,7 +521,7 @@ }, "service": { "type": "string", - "description": "service endpoint name." + "description": "Service endpoint name." }, "serviceResources": { "type": "array", diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/virtualNetworkGateway.json b/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/virtualNetworkGateway.json index 785964ee0e91..59b510775b33 100644 --- a/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/virtualNetworkGateway.json +++ b/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/virtualNetworkGateway.json @@ -2625,7 +2625,7 @@ }, "description": "Response for ListLocalNetworkGateways API service call." }, - "virtualNetworkConnectionGatewayReference": { + "VirtualNetworkConnectionGatewayReference": { "properties": { "id": { "type": "string", @@ -2644,15 +2644,15 @@ "description": "The authorizationKey." }, "virtualNetworkGateway1": { - "$ref": "#/definitions/virtualNetworkConnectionGatewayReference", + "$ref": "#/definitions/VirtualNetworkConnectionGatewayReference", "description": "The reference to virtual network gateway resource." }, "virtualNetworkGateway2": { - "$ref": "#/definitions/virtualNetworkConnectionGatewayReference", + "$ref": "#/definitions/VirtualNetworkConnectionGatewayReference", "description": "The reference to virtual network gateway resource." }, "localNetworkGateway2": { - "$ref": "#/definitions/virtualNetworkConnectionGatewayReference", + "$ref": "#/definitions/VirtualNetworkConnectionGatewayReference", "description": "The reference to local network gateway resource." }, "connectionType": { diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/virtualWan.json b/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/virtualWan.json index 16e60797b11c..7490a65128c8 100644 --- a/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/virtualWan.json +++ b/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/virtualWan.json @@ -2294,14 +2294,14 @@ }, "p2SVpnServerConfigurations": { "type": "array", - "description": "list of all P2SVpnServerConfigurations associated with the virtual wan.", + "description": "List of all P2SVpnServerConfigurations associated with the virtual wan.", "items": { "$ref": "#/definitions/P2SVpnServerConfiguration" } }, "provisioningState": { "description": "The provisioning state of the resource.", - "$ref": "#/definitions/ProvisioningState" + "$ref": "./network.json#/definitions/ProvisioningState" } }, "description": "Parameters for VirtualWAN" @@ -2372,7 +2372,7 @@ }, "provisioningState": { "description": "The provisioning state of the resource.", - "$ref": "#/definitions/ProvisioningState" + "$ref": "./network.json#/definitions/ProvisioningState" }, "isSecuritySite": { "type": "boolean", @@ -2455,7 +2455,7 @@ }, "virtualNetworkConnections": { "type": "array", - "description": "list of all vnet connections with this VirtualHub.", + "description": "List of all vnet connections with this VirtualHub.", "items": { "$ref": "#/definitions/HubVirtualNetworkConnection" } @@ -2470,7 +2470,7 @@ }, "provisioningState": { "description": "The provisioning state of the resource.", - "$ref": "#/definitions/ProvisioningState" + "$ref": "./network.json#/definitions/ProvisioningState" } }, "description": "Parameters for VirtualHub" @@ -2479,7 +2479,7 @@ "properties" : { "routes": { "type": "array", - "description": "list of all routes.", + "description": "List of all routes.", "items": { "$ref": "#/definitions/VirtualHubRoute" } @@ -2491,7 +2491,7 @@ "properties" : { "addressPrefixes": { "type": "array", - "description": "list of all addressPrefixes.", + "description": "List of all addressPrefixes.", "items": { "type": "string" } @@ -2549,7 +2549,7 @@ }, "connections": { "type": "array", - "description": "list of all vpn connections to the gateway.", + "description": "List of all vpn connections to the gateway.", "items": { "$ref": "#/definitions/VpnConnection" } @@ -2560,7 +2560,7 @@ }, "provisioningState": { "description": "The provisioning state of the resource.", - "$ref": "#/definitions/ProvisioningState" + "$ref": "./network.json#/definitions/ProvisioningState" }, "vpnGatewayScaleUnit": { "type": "integer", @@ -2617,7 +2617,7 @@ "routingWeight": { "type": "integer", "format": "int32", - "description": "routing weight for vpn connection." + "description": "Routing weight for vpn connection." }, "connectionStatus": { "description": "The connection status.", @@ -2669,7 +2669,7 @@ }, "provisioningState": { "description": "The provisioning state of the resource.", - "$ref": "#/definitions/ProvisioningState" + "$ref": "./network.json#/definitions/ProvisioningState" } }, "description": "Parameters for VpnConnection" @@ -2733,7 +2733,7 @@ }, "provisioningState": { "description": "The provisioning state of the resource.", - "$ref": "#/definitions/ProvisioningState" + "$ref": "./network.json#/definitions/ProvisioningState" } }, "description": "Parameters for HubVirtualNetworkConnection" @@ -2833,21 +2833,6 @@ }, "description": "Collection of SecurityProviders." }, - "ProvisioningState": { - "type": "string", - "readOnly": true, - "description": "The current provisioning state.", - "enum": [ - "Succeeded", - "Updating", - "Deleting", - "Failed" - ], - "x-ms-enum": { - "name": "ProvisioningState", - "modelAsString": true - } - }, "VpnConnectionStatus": { "type": "string", "description": "The current state of the vpn connection.", @@ -2859,7 +2844,7 @@ "NotConnected" ], "x-ms-enum": { - "name": "vpnConnectionStatus", + "name": "VpnConnectionStatus", "modelAsString": true } }, @@ -2874,7 +2859,7 @@ "NotConnected" ], "x-ms-enum": { - "name": "tunnelConnectionStatus", + "name": "TunnelConnectionStatus", "modelAsString": true } }, @@ -2893,11 +2878,7 @@ "modelAsString": true } }, - "disableVpnEncryption": { - "type": "boolean", - "description": "Vpn encryption to be disabled or not." - }, - "access": { + "Access": { "type": "string", "description": "Access to be allowed or denied.", "enum": [ @@ -2905,7 +2886,7 @@ "Deny" ], "x-ms-enum": { - "name": "access", + "name": "Access", "modelAsString": true } }, @@ -2920,7 +2901,7 @@ "None" ], "x-ms-enum": { - "name": "officeTrafficCategory", + "name": "OfficeTrafficCategory", "modelAsString": true } }, @@ -2933,7 +2914,7 @@ "Native" ], "x-ms-enum": { - "name": "virtualWanSecurityProviderType", + "name": "VirtualWanSecurityProviderType", "modelAsString": true } }, @@ -3117,7 +3098,7 @@ "modelAsString": true } }, - "description": "vpnProtocols for the P2SVpnServerConfiguration." + "description": "VPN protocols for the P2SVpnServerConfiguration." }, "p2SVpnServerConfigVpnClientRootCertificates": { "type": "array", @@ -3257,7 +3238,7 @@ }, "provisioningState": { "description": "The provisioning state of the resource.", - "$ref": "#/definitions/ProvisioningState" + "$ref": "./network.json#/definitions/ProvisioningState" }, "vpnGatewayScaleUnit": { "type": "integer", diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/webapplicationfirewall.json b/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/webapplicationfirewall.json new file mode 100644 index 000000000000..354536fd6359 --- /dev/null +++ b/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/webapplicationfirewall.json @@ -0,0 +1,549 @@ +{ + "swagger": "2.0", + "info": { + "version": "2018-12-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/ApplicationGatewayWebApplicationFirewallPolicies": { + "get": { + "tags": [ + "WebApplicationFirewallPolicies" + ], + "description": "Lists all of the protection policies within a resource group.", + "operationId": "WebApplicationFirewallPolicies_List", + "x-ms-examples": { + "Lists all WAF policies in a resource group": { + "$ref": "./examples/WafListPolicies.json" + } + }, + "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" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies": { + "get": { + "tags": [ + "WebApplicationFirewallPolicies" + ], + "operationId": "WebApplicationFirewallPolicies_ListAll", + "x-ms-examples": { + "Lists all WAF policies in a subscription": { + "$ref": "./examples/WafListAllPolicies.json" + } + }, + "description": "Gets all the WAF policies in a subscription.", + "parameters": [ + { + "$ref": "./network.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "./network.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "OK. The request has succeeded.", + "schema": { + "$ref": "#/definitions/WebApplicationFirewallPolicyListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies/{policyName}": { + "get": { + "tags": [ + "WebApplicationFirewallPolicies" + ], + "description": "Retrieve protection policy with specified name within a resource group.", + "operationId": "WebApplicationFirewallPolicies_Get", + "x-ms-examples": { + "Gets a WAF policy within a resource group": { + "$ref": "./examples/WafPolicyGet.json" + } + }, + "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 policy" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK. The request has succeeded.", + "schema": { + "$ref": "#/definitions/WebApplicationFirewallPolicy" + } + } + } + }, + "put": { + "tags": [ + "WebApplicationFirewallPolicies" + ], + "description": "Creates or update policy with specified rule set name within a resource group.", + "operationId": "WebApplicationFirewallPolicies_CreateOrUpdate", + "x-ms-examples": { + "Creates or updates a WAF policy within a resource group": { + "$ref": "./examples/WafPolicyCreateOrUpdate.json" + } + }, + "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 policy." + }, + { + "$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" + } + } + } + }, + "delete": { + "tags": [ + "WebApplicationFirewallPolicies" + ], + "description": "Deletes Policy", + "operationId": "WebApplicationFirewallPolicies_Delete", + "x-ms-examples": { + "Deletes a WAF policy within a resource group": { + "$ref": "./examples/WafPolicyDelete.json" + } + }, + "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 policy." + }, + { + "$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-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", + "type": "array", + "items": { + "$ref": "#/definitions/WebApplicationFirewallCustomRule" + } + }, + "applicationGateways": { + "readOnly": true, + "type": "array", + "items": { + "$ref": "./applicationGateway.json#/definitions/ApplicationGateway" + }, + "description": "A collection of references to application gateways." + }, + "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": "WebApplicationFirewallPolicyResourceState", + "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": { + "readOnly": true, + "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": "WebApplicationFirewallEnabledState", + "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": "WebApplicationFirewallMode", + "modelAsString": true + } + } + } + }, + "WebApplicationFirewallCustomRule": { + "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", + "Invalid" + ], + "x-ms-enum": { + "name": "WebApplicationFirewallRuleType", + "modelAsString": true + } + }, + "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": "WebApplicationFirewallAction", + "modelAsString": true + } + } + } + }, + "Transform": { + "description": "Describes what transforms applied before matching", + "type": "string", + "enum": [ + "Lowercase", + "Trim", + "UrlDecode", + "UrlEncode", + "RemoveNulls", + "HtmlEntityDecode" + ], + "x-ms-enum": { + "name": "WebApplicationFirewallTransform", + "modelAsString": true + } + }, + "MatchVariable": { + "description": "Define match variables", + "required": [ + "variableName" + ], + "properties": { + "variableName": { + "description": "Match Variable", + "type": "string", + "enum": [ + "RemoteAddr", + "RequestMethod", + "QueryString", + "PostArgs", + "RequestUri", + "RequestHeaders", + "RequestBody", + "RequestCookies" + ], + "x-ms-enum": { + "name": "WebApplicationFirewallMatchVariable", + "modelAsString": true + } + }, + "selector": { + "description": "Describes field of the matchVariable collection", + "type": "string" + } + } + }, + "MatchCondition": { + "description": "Define match conditions", + "required": [ + "matchVariables", + "operator", + "matchValues" + ], + "properties": { + "matchVariables": { + "description": "List of match variables", + "type": "array", + "items": { + "$ref": "#/definitions/MatchVariable" + } + }, + "operator": { + "description": "Describes operator to be matched", + "type": "string", + "enum": [ + "IPMatch", + "Equal", + "Contains", + "LessThan", + "GreaterThan", + "LessThanOrEqual", + "GreaterThanOrEqual", + "BeginsWith", + "EndsWith", + "Regex" + ], + "x-ms-enum": { + "name": "WebApplicationFirewallOperator", + "modelAsString": true + } + }, + "negationConditon": { + "description": "Describes if this is negate condition or not", + "type": "boolean" + }, + "matchValues": { + "description": "Match value", + "type": "array", + "items": { + "type": "string" + } + }, + "transforms": { + "description": "List of transforms", + "type": "array", + "items": { + "$ref": "#/definitions/Transform" + } + } + } + } + }, + "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/network/resource-manager/readme.md b/specification/network/resource-manager/readme.md index 06654c65675e..f9cb7bd716f3 100644 --- a/specification/network/resource-manager/readme.md +++ b/specification/network/resource-manager/readme.md @@ -72,13 +72,14 @@ input-file: - Microsoft.Network/stable/2018-12-01/virtualWan.json - Microsoft.Network/stable/2018-12-01/vmssNetworkInterface.json - Microsoft.Network/stable/2018-12-01/vmssPublicIpAddress.json + - Microsoft.Network/stable/2018-12-01/webapplicationfirewall.json ``` ### Tag: package-2018-12-only These settings apply only when `--tag=package-2018-12-only` is specified on the command line. -```yaml $(tag) == 'package-2018-12-only' +``` yaml $(tag) == 'package-2018-12-only' input-file: - Microsoft.Network/stable/2018-12-01/applicationGateway.json - Microsoft.Network/stable/2018-12-01/applicationSecurityGroup.json @@ -918,6 +919,9 @@ directive: - suppress: BodyTopLevelProperties from: virtualNetworkGateway.json reason: shipped. fixing this causes breaking change in resource + - suppress: RequiredPropertiesMissingInResourceModel + from: webapplicationfirewall.json + reason: name, id and type properties are inherited from the upper level ``` ---