From 128ad26caf980866afa21570ac50f2b5ec7c1d91 Mon Sep 17 00:00:00 2001 From: Anton Evseev Date: Fri, 15 Mar 2019 20:50:34 +0300 Subject: [PATCH] Network February release (#5365) * Adds base for updating Microsoft.Network from version stable/2018-12-01 to version 2018-12-01 * Updates readme * Updates API version in new specs and examples * Network: Duplicate tags in readme file. (#5227) * FI from `master` branch to `network-february-release`. (#5262) * DataFactory Swagger Change for SapOpenHub and Rest (#5195) * DataFactory Swagger Change for SapOpenHub and Rest * correct indentation * address comment of REST * fix syntax issue * Fix issue with AutoRest * Add cognitive service AnomalyFinder (#5126) * add AnomalyFinder swagger json * AnomalyFinder update swagger json * add AnomalyFinder readme * fix file path; change class name; * make camelCase style * fix typo; change operationId; remove hard code arg limitation; * fix type of "sensitivity"; change description of "timestamp"; * Improving secretVersion description (#5220) * [Cogsvcs] LUIS - add text to simple entity description (#5216) * Add hwRevision field to HanaInstance definition (#5196) * [DataFactory] Swagger changes for ADF newly released features: (#5218) * Swagger changes for ADF newly released features: 1. I can load data from o365 by leveraging the REST endpoint of o365 2. Support copying incremental files based on lastModifiedTime for S3/File/Blob 3. Enable ADLS Gen2 connector as both source & sink 4. Support data migration from MongoDB to CosmosDB (MongoDB API) 5. Make Kusto source/sink better and support Azure Data exploer source/sink 6. Support copy from ADLS Gen1 to ADLS Gen2 with ACL 7. serviceUrl @ S3 linked service 8. I can copy from Dynamics AX 9. AAD OAuth for OData Linked Service 10. I can copy from Oracle Service Cloud and Google Adwords * fix swagger definetion for MongoDB Srouce cursor method. * fix Amazon S3 servie url definition * fix CosmosDbMongoDbApiSink * Fix several typos * Add maxConcurrentConnections in CopySource and CopySink * Node v 10. (#5236) * Remove API reference of Gender::genderless. (#5188) * Add an Operations API for Commitment Plan RP (#5222) * Add an Operations API for Commitment Plan RP * Add OperationEntityListResult related definitions * Fix case typo * Fix tab to spaces * Fix NewtonSoftJson Issue (#5240) * Support create pipeline run with recovery mode * Update description of isLatest * Update descriptions * update autorest version to fix CI * Add suppresses for Machine Learning Commitment Plan RP (#5221) * typo: datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/ (#5238) - Adwords -> AdWords - connectioned to -> for the * scripts (#5213) * scripts * TRAVIS_PULL_REQUEST * another try * TRAVIS_PULL_REQUEST_SLUG * TRAVIS_REPO_SLUG * Swagger to SDK * linter and ruby * not really a slug * pool * indent * strange * URI * env vars * uri * env var * TRAVIS_PULL_REQUEST_SLUG * matrix * Azure OpenAPI name * linter: autorest fix * error handling and PR_ONLY = true * syntax * pipelines. * job name * job name * Names * params, no getStatus.js * No CI, only PR validations. * displayName * revert back * no need to show vars * Fix for lintdiff tool memory issue. (#5246) * node options * correct NODE_OPTIONS * lintdiff travis-ci * 2019 Azure Stack hybrid Profile. (#5212) * 2019 Azure Stack hybrid Profile. * fixing changes for profile * remove space * formatted profile * [Azure Search] Add Suggest and Index APIs to data plane Swagger spec (#5219) * Renaming Search|SuggestParametersPayload to *Request and making them internal Made AutocompleteRequest internal too, and fixed some incorrect comments. * Adding Suggest API to the Azure Search data plane spec * Fixing validation error in Suggest example * Adding Index API to the Azure Search data plane spec * Make example names consistent * Adding new properties to Databricks LS and custom activity (#5214) * typo: instantitate -> instantiate (#5251) * Users/laramume/addv2.1 swagger (#5187) * updated model names in preview version to be consistent with stable version to avoid breaking changes in client side code * changed swagger files * added v2.1 swagger * added v2.1 swagger * added v2.1 swagger * added v2.1 swagger * added v2.1 swagger * resolved PR comments * Update swagger file and examples with time zone parameter (#5224) * Update swagger documetation to mark Collation property as writable. Change Managed Instance collation property from read only to read and create. Add collation to properties section in ManagedInstanceCreateMax example. VSTS task: 12336257 * Remove 'cosmetics' from swagger. * Remove comma as redundant * Return to the initial, generated state. * Update swagger file and examples with time zone parameter * Minor (but improtant) changes in Azure DevOps pipeline. (#5253) * empty parameters * TRAVIS_BRANCH * target branch * trying to set env var * use shell * info * more info * Pull Request Number * [Ready to MERGE] Swagger for Tenant Properties API (#5038) * added swagger for Tenant Properties added swagger for Tenant Properties * Fixed camel casing in billing.json file Fixed camel casing in billing.json file * Update billing.json * changes in DiscoverTenants contracts changes in DiscoverTenants contracts * billing.Json trim blank space billing.Json trim blank space * Update billing.json * removal of plural name removal of plural name * Updating the route Updating the route as per suggestion * Moved Swagger for Discover Tenants from billing to consumption Moved Swagger for Discover Tenants from billing to consumption * Change in Namespace followed by one additional parameter "billingAccountId" Change in Namespace followed by one additional parameter "billingAccountId" * Change of method name from discoverTenants to tanants. Change of method name from discoverTenants to tanants. * changes ion response type changes ion response type * added name after Id. Code review implementation added name after Id. Code review implementation * Add JavaScript/TypeScript generation details to resource-manager/netapp (#5261) * Azure Security Center - break-to-composite v1 (#5197) * Azure Security Center - break-to-composite v1 * Azure Security Center - composite api v1 - suppress email format * Add globalReachEnabled, Add Get and list for peer express route circuit connections. Remove allowGlobalReach (#5266) * Added GlobalReachEnabled field. Added GET and List apis for peer express route circuit connections. Removed AllowGlobalReach as it was a dead field and abandoned in favor for GlobalReachEnabled * adding allow gloabl reach back * fixed typo * Fix descriptions & remove unused/duplicate definitions (#5243) * Add support for Local Sku (#5317) * Add WAF as a top level resource (#5341) * Add WAF as a top level resource * Fix merge * Addressed comments * Addressed comments * Code review comments * fix issue for powershell * add health probe log * address the comments * increase Node.js memory * double the memory * print node_options * mistake * pass to docker * FI from master to network-february-release (#5391) * Add mixedreality 2019-02-28 API version to Go SDK (#5271) * Remove ARM gateway Node.js configuration (#5283) * Updates to Scheduled Query Rule swagger (#5175) - making aznsaction paramter optional - removing hidden-link value from tags pu * Fix JavaScript configuration for ARM Private DNS SDK (#5284) * Fix JavaScript configuration for ARM Private DNS SDK * Add quotes * Add private preview API for Azure Image Builder (#5055) * Add private preview API for Azure Image Builder * Review comments - Added list-by-resource-group and list-by-subscription - Added default error response - Removed explicit operation url (implied by async contract) - Adjusted 'delete' response codes to match expectations - Allow patch for tags - Added provider operations API * Review comment: use "nextLink" for paging * Adding readme files for SDK generation * PR: rename 'tags' -> 'artifactTags' for distributor * Add examples, fix minor issues in swagger * Updating Blueprint spec to include resource group tags (#5263) * Add Showback model (#5217) * Add Showback model * fix ShowbackRule.json example * remove "," from line 1709 * Add Put Rule * Fix Scope * Update json with pull request changes * change recurring to enum * chore: Graphservice -> GraphService (#5098) * Enable SSL on custom domains using users certificate or CDN managed certificate (#5276) * Translator Text API V3 (#5230) * Translator Text API V3 * Fix path and override * Fix a typo and few other improvements in descriptions. * Remove after_scripts * Update readme.md * Update readme.md * Update MariaDB api version (#5280) * Adding Swagger and examples for VirtualClusters operation group (#5248) * Adding Swagger file for VirtualClusters operation group, together with examples. * Fixing api version, typos and location in examples. * Adding virtualclusters.json to readme.md * Security - Updating API versions of alerts and pricing types (#5269) * Security - Updating api versions of alerts and pricing types * fix codegen paths for Go SDK * typo: asscociation -> association (#5252) * Fix lintdiff issue (#5299) * fix Go SDK package path for mariadb stable release (#5298) * changes to improve documentation of endpoint health statuses for routing (#5290) * add netapp to Go SDK (#5308) * Update MariaDB default API version to 2018-06-01 (#5302) * new application insignts api version for unified schema in action (#5292) * Added Azure App Configuration event data schema. (#5309) * Added Azure App Configuration event data schema. * Added a few missing pieces. * Prefixed event names with our service prefix 'AppConfiguration'. * Added Microsoft.AppConfiguration to the event grid data-plane readme. * Updated api-version path to '2018-01-01' from '2018-02-01'. * Apim Cache resource + DELETE long running + refactor to align with tooling. (#5260) * api import and service delete long running operation * Bring your own Cache align with spec generated from tooling user and notification align Refactor products and apis * align with spec generated from tooling user and notification align Refactor products and apis validating examples validating examples move all parameters to apimanagement.json Fix reference issue with tagcontract and example DeleteCache. * switch to plural example file names for LIST * bring back updatehostname and updatecertificate * Dev adhybridhealthservice microsoft.ad hybrid health service 2014 01 01 binilkk (#5042) * Fixes for: Issue #1 : https://github.com/Azure/azure-rest-api-specs/issues/4576#issuecomment-445427819 Typo in the DeltaOperationType Enum. Issue #2 : https://github.com/Azure/azure-rest-api-specs/issues/4844#event-2014233693 GlobalAdmins list is marked as an object, while it's an array. * Updated the Specification as example for Risky IP Download report. * Added the Result details * Fixed review comments, changed the URI scheme as well as changed get/post methods * Addressing Review Feedback, changing POST call of blobUri -> generateBlobUri * Update UserAssignedIdentities spec in Web (#5288) * Update UserAssignedIdentities spec in Web Microsoft.Web recently added support for UserAssigned managed service identities (in preview), but the swagger spec is incorrect for the identity payload as it follows the old construct of sending an array of identityIds as opposed to the updated spec which instead sends a dictionary object called userAssignedIdentities. Spec + history outlined here: http://sharepoint/sites/AzureUX/Sparta/_layouts/15/WopiFrame2.aspx?sourcedoc=%7b633632B4-02E4-4DE2-92A9-EDCAF9BE73D4%7d&file=ARM%2BMSI.docx&action=default Our swagger contains identityids[] because of previous work to future support UserAssigned identities, but never released the feature in that state, rather we opted to wait for the new spec to be supported and then integrated with that on our end. Our MSI implementation reflects Microsoft.Compute's spec for user assigned. https://github.com/Azure/azure-rest-api-specs/blob/78e1feab142c605839aa3cec23442ca26b8ef04d/specification/compute/resource-manager/Microsoft.Compute/stable/2018-06-01/compute.json * fix linterdiff tool * Add private dns module name for java codegen (#5312) * Update Swagger Files For ManagedInstanceAdministrator (#5095) * Update Swagger Files For ManagedInstanceAdministrator * Fix for double wording * Comments resolved * Bringing consistency between to "ResourceGroup" definition (#5256) * Bringing consistency between this "ResourceGroup" definition and the one in Common. * Fixing broken references * reverted security python readme to pre multi api (#5301) * [Azure Search] Add Search API to data plane Swagger spec (#5315) * [Azure Search] Updating some Swagger descriptions to be more doc-friendly Sometimes we over-describe things, especially "comma-separated lists" in query string parameters. These are modeled as arrays in Swagger, which are already understood to be comma-separated lists. They are modeled as collections in generated code, so they are decidedly not comma-separated lists in that context. So removing this phrase is a win-win. * [Azure Search] Adding some missing readOnly attributes * Adding Search API to the Azure Search data plane spec * [Azure Search] Use regexes to generate code for server-side paging This change introduces some very hacky regexes to customize the generated code for server-side paging of the GET and POST Search APIs. They work by splitting the generated SearchGet and SearchPost operations in two, so that the portion that operates on a URL and request body can be reused. This workaround is necessary because AutoRest lacks flexibility around paging. The current x-ms-pageable implementation doesn't work for us because it doesn't model additional top-level response properties or continuation POST requests (only nextLink/GET). The only other alternative to this approach besides custom code would have been to try to parse the nextLink URL query string to reconstitute parameters to pass to the generated SearchGet and SearchPost operations. This is unacceptable for Azure Search, since it would exclude custom parameters that can't be modeled in Swagger, like personalization IDs for custom ranking. Neither AutoRest nor apparently Open API support modeling arbitrary query string parameters. Ideally we'll find a pattern common to other data plane APIs so we don't have to hack this with regexes for every target language, but it's good enough for now. * [Azure Search] Rename some client properties for consistency * [Azure Search] Make AutocompleteMode non-nullable * [Hub Generated] Review request for Microsoft.Web to add version 2018-02-01 (#5137) * Add Hosting Environment network dependencies * Address PR description feedback * Add Network Dependencies examples * Fix casing * Remove incorrect pagination from examples. * Add missing MarketplaceOrdering operations to swagger (#5279) * Add missing MarketplaceOrdering operations to swagger * Add examples * Add example files * Apply suggestions from code review Clarify operation descriptions Co-Authored-By: zachraMSFT * Fix Hosting Environment Network Dependencies pagination (#5320) * Add regex validation for ManagedClusterAgentPoolProfile.name (#5324) * Adding instance pools swagger (#5225) * Initializing instance pools swagger and examples - no usages / managed instances get by instance pool * updates to use common resource and sku definitions * Update instance pool swagger with typo fixes * Updates to instance pool swagger and reverting readme.md to exclude instance pools reference * Fix whitespace diff * Making a whitespace change to re-try linter validation * Updates to add list instances pools by subscription and update license type param to use enum which is limited to LicenseIncluded and BasePrice * Enhanced A2ARecoveryPointDetails with "disks" (#5307) * [DiskRP] Adding swagger spec for 09-30-2018 (#5232) * commit for the older swagger version to make the PR easier to look at * Adding the DiskRP 09-30-2018 swagger spec. This includes support for hyperVGeneration, encryptionSettingCollections, diskState, Upload Disks, and Write access * adding the updated readme * updating the examples to use 09-30-2018 * removing extraneous examples * adding a description for the EncryptionSettingsElementand fixing linter issues * [Computer Vision] Add read to CV OCR API. (#5314) * Add read to OCR API. * Add description to OCR related JSON properties. * Mark asyncBatchAnalyze as long running operation. * Update page property. * Revert "Mark asyncBatchAnalyze as long running operation." This reverts commit 51742b3e212c2e900ed5c24f7c351fa7f896d25e. * added links to limits for application gateway (#5265) * typo: Winodws -> Windows (#5321) * MultiApi EventHub (#5331) * try 2 bootstrapping swagger to .net sdk tools (#5334) * bootstrapping swagger to .net sdk tools * deleting nuget.exe binary. Updating configs to locally restore pacakges. Adding the directory that will be used in restoring packages locally to .gitignore * changing directory * updating feed location to a readonly directory * Azure Search: Resource Manager: Support 'None' Identity type (#5319) * Azure Search: Resource Manager: Support 'None' Identity type * Azure Search: Resource Manager: Adding serice identity creation\removal examples * [ADLA] - Catalog - Add stream path to USqlTableFragment (#5329) * [Hub Generated] Review request for Microsoft.Consumption to add version 2019-01-01 (#5311) * Add GTM scopes for budgets API * Removed the extra period at the end of the statement * fixing stos.proj parameter (#5338) * change flag name from useUnifiedSchema into useCommonAlertSchema per UX requirement (#5323) * Enhanced A2A protection input and response details (#5330) Enhanced A2AEnableProtectionInput & A2AReplicationDetails objects with recoveryAvailabilityZone, recoveryAzureNetworkId, and recoverySubnetName. * [Hub Generated] Review request for Microsoft.ContainerService to add version 2019-02-01 (#5350) * Adds base for updating Microsoft.ContainerService from version preview/2018-08-01-preview to version 2019-02-01 * Updates readme * Updates API version in new specs and examples * [AKS] add availabilityZones to agent pool profile (#5120) * including orchestratorVersion and provisioning state for agent pool (#5156) * including orchestratorVersion and provisioning state for agent pool * fixing the readme.go.md * including enablePodSecurityPoliy properties for managedcluster and updating examples * fixing the example for enablePodSecurityPolicy * including apiServerAuthorizedIPRanges (#5286) * including apiServerAuthorizedIPRanges * support azure network policy * mark the new features as PREVIEW in description (#5310) * mark the new features as PREVIEW * mark vmss as required for az * Azure Event Grid: Add 2019-02-01-preview tags for Ruby and Go readme files (#5349) * Add 2019-02-01-preview tags for Ruby and Go readme files * fix wrong preview subdirectory * Update some descriptions. (#5305) * update description. (#5335) * Added VNet API (#5351) * EventHub : corrected typo (#5360) * corrected typo in uri * removed unused parameters * Add annotations property to trigger (#5332) * EventHub: Revert the NetworkRuleSet (#5363) * Revert "EventHub : corrected typo (#5360)" This reverts commit 1495122039e95d8795e3769d06c60e290cb53d2b. * Revert "Added VNet API (#5351)" This reverts commit f2ab4a8208bd3de1813b26b078429357dbd05506. * Remove the AzureDataLakeStoreCosmosStructuredStreamDataset since it's internal only (#5277) * Removing SDK generation from Travis-CI (#5367) * Microsoft.DataBoxEdge RP: Corrected comments of trigger and extendedinfo APIs, corrected examples (#5322) * Corrected comments of trigger and extendedinfo APIs, corrected examples * Microsoft.DataBoxEdge RP: Have better examples * Corrected parameter description in order API * oad => @azure/oad (#5362) * oad => @azure/oad * oad => @azure/oad * SRP Swagger changes for 2018-11-01 (#5300) * SRP Swagger changes for 2018-11-01 * Address CR comments * Restrict ManagementPolicyRule -> type property to have only values from defined enum * Make ManagementPolicySchema/version an enum string * Remove 'version' property from ManagementPolicy schema * Added List Policies API to SecurityAlerts (#5070) * Added SecurityAlert List API Added List api to: Manged Server + Managed Database Logical Server + Logical Database * FIxed a description this property is for databases+servers * Added missing Database exmaples Added missing examples for database security alert * Added missing description change For Server Security Alerts * Revert "FIxed a description" This reverts commit e01a332d6e97ebedf04677ea5eb356ae4570d97b. * Revert "Added missing description change" This reverts commit 17aeab7011d6085d08e562248eb89c2b2fe40277. * Update DatabaseSecurityAlertListByDatabase.json * fixed examples * Update DatabaseSecurityAlertCreateMin.json Deleted wild comma * Update readme.md * Minor fixes Changed tabs to spaces. Added location for servers exmaples. * Removed location removed the location property from examples * graph: improve API coverage on application & service principal (#5181) * [graphrbac]: fix bugs in permission grant apis * fix paging * add missing property * remove pageable * author pagable in the right way * breaking changes over a wrong spec * remove additionalProperties which causes wrong code-gen * add suppressions * use code to surpress * address review feedabck * moev ahead with the established pattern anyway * address review feedbacks * clean up all * update operation id * add one more property per CLI user's ask * Add insights 2019-03-01 package to Go SDK (#5373) * Add insights 2019-03-01 package to Go SDK * move global settings before packages * fix package tag for new API version (#5378) * Remove GZRS and RAGZRS sku from SRP 2018-11-01 because feature slipped. (#5377) * typo: upto -> up to (#5376) * typo: graphrbac/data-plane/Microsoft.GraphRbac/stable/1.6 (#5375) - requied -> required - authorizaed -> authorized - Organizatio -> Organization - Allorganizations -> AllOrganizations - Microsof -> Microsoft - perperties -> prorperties - servie -> service - altenative -> alternative - thubmbprint -> thumbprint * Azure DevOps Pipeline workaround for private repository (#5374) * Fix PolicyInsights code generation issue (#5389) * Add replica creation parameters to Postgres ResourceProvider for SDK (#5379) * Add replica creation parameters to Postgres ResourceProvider for SDK * Add replica creation parameters to Postgres ResourceProvider for SDK * Add replica creation parameters to Postgres ResourceProvider for SDK * Add replica creation parameters to Postgres ResourceProvider for SDK * Add replica creation parameters to Postgres ResourceProvider for SDK * Revert "FI from master to network-february-release (#5391)" (#5393) This reverts commit 8f28f7f041ff15ad42c21f1a342cdee8f35ecb4c. --- azure-pipelines.yml | 3 + scripts/swagger-to-sdk.sh | 2 +- .../examples/WafPolicyCreateOrUpdate.json | 498 ++++++++-------- .../stable/2018-12-01/applicationGateway.json | 10 +- .../stable/2018-12-01/azureFirewall.json | 25 +- .../ExpressRouteCircuitConnectionList.json | 1 - .../PeerExpressRouteCircuitConnectionGet.json | 32 + ...PeerExpressRouteCircuitConnectionList.json | 53 ++ .../examples/WafListAllPolicies.json | 95 +++ .../2018-12-01/examples/WafListPolicies.json | 93 +++ .../examples/WafPolicyCreateOrUpdate.json | 233 ++++++++ .../2018-12-01/examples/WafPolicyDelete.json | 13 + .../2018-12-01/examples/WafPolicyGet.json | 91 +++ .../2018-12-01/expressRouteCircuit.json | 211 ++++++- .../stable/2018-12-01/network.json | 15 + .../stable/2018-12-01/publicIpPrefix.json | 15 +- .../2018-12-01/serviceEndpointPolicy.json | 2 +- .../2018-12-01/virtualNetworkGateway.json | 8 +- .../stable/2018-12-01/virtualWan.json | 59 +- .../2018-12-01/webapplicationfirewall.json | 549 ++++++++++++++++++ .../network/resource-manager/readme.md | 6 +- 21 files changed, 1680 insertions(+), 334 deletions(-) create mode 100644 specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/examples/PeerExpressRouteCircuitConnectionGet.json create mode 100644 specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/examples/PeerExpressRouteCircuitConnectionList.json create mode 100644 specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/examples/WafListAllPolicies.json create mode 100644 specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/examples/WafListPolicies.json create mode 100644 specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/examples/WafPolicyCreateOrUpdate.json create mode 100644 specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/examples/WafPolicyDelete.json create mode 100644 specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/examples/WafPolicyGet.json create mode 100644 specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/webapplicationfirewall.json 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 ``` ---