diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index cc4fa7417dcd..bc357b1ef0f5 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -1,6 +1,27 @@
MSFT employees can try out our new experience at [OpenAPI Hub](https://aka.ms/openapiportal) - one location for using our validation tools and finding your workflow.
+### Changelog
+Please ensure to add changelog with this PR by answering the following questions.
+ 1. What's the purpose of the update?
+ - [ ] new service onboarding
+ - [ ] new API version
+ - [ ] update existing version for new feature
+ - [ ] update existing version to fix swagger quality issue in s360
+ - [ ] Other, please clarify
+ 2. When you are targeting to deploy new service/feature to public regions? Please provide date, or month to public if date is not available yet.
+ 3. When you expect to publish swagger? Please provide date, or month to public if date is not available yet.
+ 4. If it's an update to existing version, please select SDKs of specific language and CLIs that require refresh after swagger is published.
+ - [ ] SDK of .NET (need service team to ensure code readiness)
+ - [ ] SDK of Python
+ - [ ] SDK of Java
+ - [ ] SDK of Js
+ - [ ] SDK of Go
+ - [ ] PowerShell
+ - [ ] CLI
+ - [ ] Terraform
+ - [ ] No, no need to refresh for updates in this PR
+
### Contribution checklist:
- [ ] I commit to follow the [Breaking Change Policy](http://aka.ms/bcforapi) of “no breaking changes
- [ ] I have reviewed the [documentation](https://aka.ms/ameonboard) for the workflow.
@@ -27,4 +48,6 @@ If there are following updates in the PR, ensure to request an approval from API
- [ ] Updating API in stable version with Breaking Change Validation errors
- [ ] Updating API(s) in preview over 1 year
+**Action**: to initiate an evaluation of the breaking change, create a new intake using the [template for breaking changes](https://msazure.visualstudio.com/One/_workitems/create/Scenario?templateId=d1c215ec-5d6a-4cb3-a193-95ddd0a1ba96&ownerId=85bb92fb-21fe-41ca-9309-47f2c5f57515). Addition details on the process and office hours are on the [Breaking change Wiki](https://dev.azure.com/msazure/AzureWiki/_wiki/wikis/AzureWiki.wiki/37684/Breaking-Changes).
+
Please follow the link to find more details on [PR review process](https://aka.ms/SwaggerPRReview).
\ No newline at end of file
diff --git a/.github/comment.yml b/.github/comment.yml
index b0759c1d81b7..5f9fd6eb7f1a 100644
--- a/.github/comment.yml
+++ b/.github/comment.yml
@@ -17,9 +17,9 @@
- rule:
type: label
label: BreakingChangeReviewRequired
- onLabeledComments: "Hi @${PRAuthor}, one or multiple breaking change(s) is detected in your PR. Pls follow [breaking change policy](https://aka.ms/AzBreakingChangesPolicy) to request breaking change review and approval before proceeding swagger PR review. "
+ onLabeledComments: "Hi @${PRAuthor}, one or multiple breaking change(s) is detected in your PR. Please check out the breaking change(s), and provide business justification in the PR comment and @ PR assignee why you must have these change(s), and how external customer impact can be mitigated. Please ensure to follow [breaking change policy](https://aka.ms/AzBreakingChangesPolicy) to request breaking change review and approval before proceeding swagger PR review. **Action**: To initiate an evaluation of the breaking change, create a new intake using the [template for breaking changes](https://msazure.visualstudio.com/One/_workitems/create/Scenario?templateId=d1c215ec-5d6a-4cb3-a193-95ddd0a1ba96&ownerId=85bb92fb-21fe-41ca-9309-47f2c5f57515). Addition details on the process and office hours are on the [Breaking change Wiki](https://dev.azure.com/msazure/AzureWiki/_wiki/wikis/AzureWiki.wiki/37684/Breaking-Changes). If you think it is false positive breaking change, please provide the reasons in the PR comment, report to Swagger Tooling Team via https://aka.ma/swaggerfeedback."
- rule:
type: label
- label: ApprovedOkToMerge
+ label: Approved-OkToMerge
onLabeledComments: "Hi @${PRAuthor},Your PR is approved. Congratulations.
If your PR is in public repo (azure-rest-api-specs), PR assignee will merge all updates in the PR shortly afterwards; or pause the PR merge, you need to put on a label DoNotMerge to PR as soon as possible. If your PR is in private repo (azure-rest-api-specs-pr), there won’t be PR merge. Please refer to this [wiki](https://dev.azure.com/azure-sdk/internal/_wiki/wikis/internal.wiki/205/RP-Scenarios-to-Contribute-to-Swagger?anchor=**public-repository-vs.-private-repository**) for further guidance on how to proceed. "
diff --git a/.github/issue_assignment.yml b/.github/issue_assignment.yml
index 40be9f7f70ed..7a24abb4bd0f 100644
--- a/.github/issue_assignment.yml
+++ b/.github/issue_assignment.yml
@@ -18,4 +18,4 @@
- leni-msft
- qianwens
- ruowan
- - MyronFanQiu
+
diff --git a/.github/pull_request_assignment.yml b/.github/pull_request_assignment.yml
index 2668fe4455e5..1190278ba9e8 100644
--- a/.github/pull_request_assignment.yml
+++ b/.github/pull_request_assignment.yml
@@ -6,6 +6,13 @@
reviewers:
- lmazuel
+- rule:
+ # synapse data-plane PR
+ paths:
+ - "specification/synapse/data-plane/**"
+ reviewers:
+ - jonathandturner
+
- rule:
# data-plane PR
paths:
diff --git a/CODEOWNERS b/CODEOWNERS
index 5261b645a0e6..c191c63fa8eb 100644
--- a/CODEOWNERS
+++ b/CODEOWNERS
@@ -1,7 +1,7 @@
/specification/analysisservices/ @taiwu
/specification/alertsmanagement/ @ofirmanor @olalavi @erangon @orieldar @ilaizi @shakednai1 @khaboasb @orenhor
/specification/apimanagement/ @promoisha @solankisamir
-/specification/applicationinsights/ @alexeldeib @reyang @TimothyMothra @ramthi @rajkumar-rangaraj @markwolff @trask @hectorhdzg @lzchen
+/specification/applicationinsights/ @alexeldeib @ramthi @markwolff @trask @hectorhdzg @lzchen
/specification/asazure/ @athipp
/specification/authorization/ @darshanhs90 @stankovski
/specification/automation/ @vrdmr
diff --git a/custom-words.txt b/custom-words.txt
index ae42b648994a..d3d27f6e35a1 100644
--- a/custom-words.txt
+++ b/custom-words.txt
@@ -78,6 +78,7 @@ apimgroups
apimidentityprovider
apimissues
apimloggers
+apimmsi
apimnetworkstatus
apimnotifications
apimopenidconnectproviders
@@ -122,6 +123,7 @@ aspnet
asyncinfo
asyncoperation
atascada
+attestationcollateral
Auditd
australiaeast
australiasoutheast
@@ -760,6 +762,7 @@ Informations
Informix
Ingestor
ingressed
+inittime
inkrecognizer
inlinecount
inlines
@@ -999,6 +1002,8 @@ Monospace
mountainview
MPNS
MRAN
+mrenclave
+mrsigner
MSAZR
MSAZRDE
MSCONCAT
@@ -1194,6 +1199,7 @@ Plex
Pohlmann
pois
policyassignments
+policycertificates
policydefinitions
policyinsights
policykey
@@ -1310,6 +1316,8 @@ recoveryservicessiterecovery
recurse
rediscache
rediscachemanagement
+RediSearch
+redisenterprise
Redshift
Reenabled
Refid
@@ -1762,6 +1770,7 @@ Unregistering
Unregisters
unrestorable
unsubstituted
+Unsynced
untagged
Untracked
unvalidated
@@ -1986,4 +1995,10 @@ appxmanifest
Appxmanifest
msixpackage
xml
-Creds
\ No newline at end of file
+Creds
+unarchive
+unarchiving
+ssoadfs
+Idempotence
+Sqlpools
+privatelinkhub
\ No newline at end of file
diff --git a/documentation/Semantic-and-Model-Violations-Reference.md b/documentation/Semantic-and-Model-Violations-Reference.md
index 0742ec712138..ff53c3ad1174 100644
--- a/documentation/Semantic-and-Model-Violations-Reference.md
+++ b/documentation/Semantic-and-Model-Violations-Reference.md
@@ -89,6 +89,9 @@ This document lists the set of automated rules that can be validated against swa
| [INTERNAL_ERROR](#INTERNAL_ERROR) | [OAV100](#INTERNAL_ERROR) |
| [REQUEST_VALIDATION_ERROR](#REQUEST_VALIDATION_ERROR) | [OAV109](#REQUEST_VALIDATION_ERROR) |
| [RESPONSE_STATUS_CODE_NOT_IN_EXAMPLE](#RESPONSE_STATUS_CODE_NOT_IN_EXAMPLE) | [OAV111](#RESPONSE_STATUS_CODE_NOT_IN_EXAMPLE) |
+| [ROUNDTRIP_INCONSISTENT_PROPERTY](#ROUNDTRIP_INCONSISTENT_PROPERTY) | |
+| [ROUNDTRIP_MISSING_PROPERTY](#ROUNDTRIP_MISSING_PROPERTY) | |
+| [ROUNDTRIP_ADDITIONAL_PROPERTY](#ROUNDTRIP_ADDITIONAL_PROPERTY) | |
### Validation Warnings
@@ -799,3 +802,28 @@ This document lists the set of automated rules that can be validated against swa
**How to fix the violation**: Remove this definition if it's not used.
+### ROUNDTRIP_INCONSISTENT_PROPERTY
+
+**Output Message**: The property’s value in the GET response is different from what was set in the preceding PUT request. If it is a read-only property, update the swagger definition for this property to mark it as "readOnly": true. Alternatively, keep the property in the GET schema but remove it from the PUT schema. If the property has a default value, update the Swagger definition for this property to mark it with "default": annotation.
+
+**Description**: The property’s value in the GET response is different from what was set in the preceding PUT request. This usually happens when the property is read-only so it's value cannot be changed. It is also possible that the property has a default value, and it is set to that value when a null value is included in the PUT request.
+
+**How to fix the violation**: If the property is a read-only, update the swagger definition for this property to mark it as "readOnly": true. Alternatively, keep the property in the GET schema but remove it from the PUT schema. If the property has a default value, update the Swagger definition for this property to mark it with "default": annotation.
+
+
+### ROUNDTRIP_MISSING_PROPERTY
+
+**Output Message**: The property is present in the PUT request but is either never returned in the GET response or is returned with a null value. If this is a property that carries a secret such as a password, update the Swagger definition to mark it with the "x-ms-secret": true annotation.
+
+**Description**: The property is present in the PUT request, but in the subsequent GET response, it is either never returned or is returned with a null value, which means the property is write-only and is likely to carry a secret.
+
+**How to fix the violation**: Mark the property definition with the "x-ms-secret": true annotation if the property is a secret.
+
+
+### ROUNDTRIP_ADDITIONAL_PROPERTY
+
+**Output Message**: The property is returned in the GET response, but it is not declared in the PUT request. If it is a read-only property, update the swagger definition for this property to mark it as \"readOnly\": true. Alternatively, keep the property in the GET schema but remove it from the PUT schema. If the property has a default value, update the Swagger definition for this property to mark it with \"default\": annotation.
+
+**Description**: The property was not in the PUT request, but it is returned in the subsequent GET response. This implies that the property is read-only or has a default value.
+
+**How to fix the violation**: If the property is a read-only, update the swagger definition for this property to mark it as "readOnly": true. Alternatively, keep the property in the GET schema but remove it from the PUT schema. If the property has a default value, update the Swagger definition for this property to mark it with "default": annotation.
\ No newline at end of file
diff --git a/documentation/samplefiles/readme.azureresourceschema.md b/documentation/samplefiles/readme.azureresourceschema.md
index 819cac202170..046d4f19febb 100644
--- a/documentation/samplefiles/readme.azureresourceschema.md
+++ b/documentation/samplefiles/readme.azureresourceschema.md
@@ -6,19 +6,18 @@ These settings apply only when `--azureresourceschema` is specified on the comma
``` yaml $(azureresourceschema) && $(multiapi)
batch:
- - tag: schema-yourservicename-YYYY-MM-DD
-
+ - tag: schema-[[ServiceName]]-[[Version]]
+
```
Please also specify `--azureresourceschema-folder=`.
-### Tag: schema-yourservicename-YYYY-MM-DD and azureresourceschema
+### Tag: schema-[[ServiceName]]-[[Version]] and azureresourceschema
-``` yaml $(tag) == 'schema-yourservicename-YYYY-MM-DD' && $(azureresourceschema)
+``` yaml $(tag) == 'schema-[[ServiceName]]-[[Version]]' && $(azureresourceschema)
output-folder: $(azureresourceschema-folder)/schemas
# all the input files in this apiVersion
input-file:
- - Microsoft.YourServiceName/stable/YYYY-MM-DD/YourServiceName.json
-
+ - [[ResourceProviderName]]/[[ReleaseState]]/[[Version]]/[[ServiceName]].json
```
diff --git a/documentation/samplefiles/readme.chsarp.md b/documentation/samplefiles/readme.csharp.md
similarity index 71%
rename from documentation/samplefiles/readme.chsarp.md
rename to documentation/samplefiles/readme.csharp.md
index 965ae218fdcb..50f5e3d43933 100644
--- a/documentation/samplefiles/readme.chsarp.md
+++ b/documentation/samplefiles/readme.csharp.md
@@ -10,6 +10,6 @@ csharp:
payload-flattening-threshold: 1
clear-output-folder: true
client-side-validation: false
- namespace: Microsoft.YourServiceName
- output-folder: $(csharp-sdks-folder)/YourServiceName/management/Microsoft.YourServiceName/GeneratedProtocol
+ namespace: [[ResourceProviderName]]
+ output-folder: $(csharp-sdks-folder)/[[ServiceName]]/management/[[ResourceProviderName]]/GeneratedProtocol
```
diff --git a/documentation/samplefiles/readme.go.md b/documentation/samplefiles/readme.go.md
index ba38219f4d3e..8b12e08878d5 100644
--- a/documentation/samplefiles/readme.go.md
+++ b/documentation/samplefiles/readme.go.md
@@ -5,6 +5,7 @@ These settings apply only when `--go` is specified on the command line.
```yaml $(go)
go:
license-header: MICROSOFT_APACHE_NO_VERSION
+ namespace: [[ServiceName]]
clear-output-folder: true
```
@@ -12,35 +13,14 @@ go:
``` yaml $(go) && $(multiapi)
batch:
- - tag: package-2019-12-01
- - tag: package-2020-07-01-preview
- # add every tag listed below
+ - tag: package-[[Version]][[-ReleaseState]]
```
-### Tag: package-2019-12-01 and go
+### Tag: package-[[Version]][[-ReleaseState]] and go
-These settings apply only when `--tag=package-2019-12-01 --go` is specified on the command line.
+These settings apply only when `--tag=package-[[Version]][[-ReleaseState]] --go` is specified on the command line.
Please also specify `--go-sdk-folder=`.
-```yaml $(tag) == 'package-2019-12-01' && $(go)
-# NOTE: a stable tag must not contain any preview swagger files included
-# NOTE: go namespace can only consist of lower case letters, numbers and underscores
-namespace: yourservicename
-# NOTE: for special cases, you can hard code the namespace in the output-folder
-# NOTE: the output-folder of a stable tag must not be under the preview subdirectory
-output-folder: $(go-sdk-folder)/services/$(namespace)/mgmt/2019-12-01/$(namespace)
-```
-
-### Tag: package-2020-07-01-preview and go
-
-These settings apply only when `--tag=package-2020-07-01-preview --go` is specified on the command line.
-Please also specify `--go-sdk-folder=`.
-
-```yaml $(tag) == 'package-2020-07-01-preview' && $(go)
-# NOTE: a preview tag must not contain at least one preview swagger file included
-# NOTE: go namespace can only consist of lower case letters, numbers and underscores
-namespace: yourservicename
-# NOTE: a preview api-version must be under the preview sub-directory
-# NOTE: the output-folder of a preview tag must be under the preview subdirectory
-output-folder: $(go-sdk-folder)/services/preview/$(namespace)/mgmt/2020-07-01-preview/$(namespace)
+```yaml $(tag) == 'package-[[Version]][[-ReleaseState]]' && $(go)
+output-folder: $(go-sdk-folder)/services[[/ReleaseState]]/$(namespace)/mgmt/[[Version]]/$(namespace)
```
diff --git a/documentation/samplefiles/readme.python.md b/documentation/samplefiles/readme.python.md
index f9e093c5a0ec..b2b1a23f2003 100644
--- a/documentation/samplefiles/readme.python.md
+++ b/documentation/samplefiles/readme.python.md
@@ -3,19 +3,18 @@
These settings apply only when `--python` is specified on the command line.
Please also specify `--python-sdks-folder=`.
-```yaml $(python)
-python:
- azure-arm: true
- license-header: MICROSOFT_MIT_NO_VERSION
- payload-flattening-threshold: 2
- namespace: Microsoft.YourServiceName
- package-name: YourServiceName
- package-version: 2019-12-01
- clear-output-folder: true
+``` yaml $(python)
+azure-arm: true
+license-header: MICROSOFT_MIT_NO_VERSION
+package-name: azure-mgmt-[[ServiceName]]
+no-namespace-folders: true
+package-version: 1.0.0b1
```
-```yaml $(python)
-python:
- no-namespace-folders: true
- output-folder: $(python-sdks-folder)/azure-mgmt/YourServiceName
+``` yaml $(python-mode) == 'update'
+output-folder: $(python-sdks-folder)/[[ServiceName]]/azure-mgmt-[[ServiceName]]/azure/mgmt/[[ServiceName]]
+```
+``` yaml $(python-mode) == 'create'
+basic-setup-py: true
+output-folder: $(python-sdks-folder)/[[ServiceName]]/azure-mgmt-[[ServiceName]]
```
diff --git a/documentation/samplefiles/readme.ruby.md b/documentation/samplefiles/readme.ruby.md
deleted file mode 100644
index 13f97a12c69d..000000000000
--- a/documentation/samplefiles/readme.ruby.md
+++ /dev/null
@@ -1,19 +0,0 @@
-## Ruby
-
-These settings apply only when `--ruby` is specified on the command line.
-
-```yaml
-package-name: azure_mgmt_YourServiceName
-package-version: 2019-12-01
-azure-arm: true
-```
-
-### Tag: package-2019-12-01 and ruby
-
-These settings apply only when `--tag=package-2019-12-01 --ruby` is specified on the command line.
-Please also specify `--ruby-sdks-folder=`.
-
-```yaml $(tag) == 'package-2019-12-01' && $(ruby)
-namespace: Microsoft.YourServiceName
-output-folder: $(ruby-sdks-folder)/YourServiceName
-```
diff --git a/documentation/samplefiles/readme.typescript.md b/documentation/samplefiles/readme.typescript.md
index db7937f5e1bb..05396d5d5f70 100644
--- a/documentation/samplefiles/readme.typescript.md
+++ b/documentation/samplefiles/readme.typescript.md
@@ -3,11 +3,12 @@
These settings apply only when `--typescript` is specified on the command line.
Please also specify `--typescript-sdks-folder=`.
-```yaml $(typescript)
+``` yaml $(typescript)
typescript:
azure-arm: true
- package-name: "YourServiceName"
- output-folder: "$(typescript-sdks-folder)/packages/YourServiceName"
+ package-name: "@azure/arm-[[ServiceName]]"
+ output-folder: "$(typescript-sdks-folder)/sdk/[[ServiceName]]/arm-[[ServiceName]]"
payload-flattening-threshold: 1
+ clear-output-folder: true
generate-metadata: true
```
diff --git a/documentation/samplefiles/samplereadme.md b/documentation/samplefiles/samplereadme.md
index af02111a6c18..bb885caab276 100644
--- a/documentation/samplefiles/samplereadme.md
+++ b/documentation/samplefiles/samplereadme.md
@@ -1,8 +1,8 @@
-# YourServiceName
+# [[ServiceName]]
> see https://aka.ms/autorest
-This is the AutoRest configuration file for YourServiceName.
+This is the AutoRest configuration file for [[ServiceName]].
## Getting Started
@@ -22,20 +22,20 @@ For other options on installation see [Installing AutoRest](https://aka.ms/autor
### Basic Information
-These are the global settings for the YourServiceName.
+These are the global settings for the [[ServiceName]].
```yaml
-openapi-type: arm
-tag: package-YYYY-MM-DD
+openapi-type: [[OpenApiType]]
+tag: package-[[Version]]
```
-### Tag: package-YYYY-MM-DD
+### Tag: package-[[Version]]
-These settings apply only when `--tag=package-YYYY-MM-DD` is specified on the command line.
+These settings apply only when `--tag=package-[[Version]]` is specified on the command line.
-```yaml $(tag) == 'package-YYYY-MM-DD'
+```yaml $(tag) == 'package-[[Version]]'
input-file:
- - Microsoft.YourServiceName/stable/YYYY-MM-DD/YourServiceName.json
+ - [[ResourceProviderName]]/[[ReleaseState]]/[[Version]]/[[ServiceName]].json
```
---
@@ -53,12 +53,11 @@ swagger-to-sdk:
- repo: azure-sdk-for-java
- repo: azure-sdk-for-go
- repo: azure-sdk-for-js
- - repo: azure-sdk-for-ruby
after_scripts:
- - bundle install && rake arm:regen_all_profiles['azure_mgmt_YourServiceName']
+ - bundle install && rake arm:regen_all_profiles['azure_mgmt_[[ServiceName]]']
- repo: azure-resource-manager-schemas
after_scripts:
- - node sdkauto_afterscript.js yourservicename/resource-manager
+ - node sdkauto_afterscript.js [[ServiceName]]/resource-manager
```
## Go
@@ -69,10 +68,6 @@ See configuration in [readme.go.md](https://github.com/Azure/azure-rest-api-spec
See configuration in [readme.python.md](https://github.com/Azure/azure-rest-api-specs/blob/master/documentation/samplefiles/readme.python.md)
-## Ruby
-
-See configuration in [readme.ruby.md](https://github.com/Azure/azure-rest-api-specs/blob/master/documentation/samplefiles/readme.ruby.md)
-
## TypeScript
See configuration in [readme.typescript.md](https://github.com/Azure/azure-rest-api-specs/blob/master/documentation/samplefiles/readme.typescript.md)
diff --git a/documentation/sdkautomation/GenerateInputSchema.json b/documentation/sdkautomation/GenerateInputSchema.json
new file mode 100644
index 000000000000..ccfebd87b568
--- /dev/null
+++ b/documentation/sdkautomation/GenerateInputSchema.json
@@ -0,0 +1,51 @@
+{
+ "type": "object",
+ "properties": {
+ "dryRun": {
+ // If dryRun is true, generateScript is expected to parse readme.md
+ // and output the package list with package name and related readme.md.
+ // Should not run codegen at this time.
+ // ** Not supported yet **
+ "type": "boolean"
+ },
+ "specFolder": {
+ // Path to local spec folder.
+ "type": "string"
+ },
+ "headSha": {
+ // Git head sha.
+ "type": "string"
+ },
+ "headRef": {
+ // Git head ref.
+ // Format will be "refs/pull//merge" or "refs/heads/".
+ "type": "string"
+ },
+ "repoHttpsUrl": {
+ // Spec repo url in https without auth.
+ "type": "string"
+ },
+ "trigger": {
+ "$ref": "TriggerType#"
+ },
+ "changedFiles": {
+ // Changed file list in spec PR.
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "relatedReadmeMdFiles": {
+ // Related readme.md files that pending generation.
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "installInstructionInput": {
+ // See #InstallInstructionScriptInput
+ "$ref": "InstallInstructionScriptInput#"
+ }
+ },
+ "required": ["specFolder", "headSha", "headRef", "repoHttpsUrl", "trigger", "changedFiles", "relatedReadmeMdFiles"]
+}
diff --git a/documentation/sdkautomation/GenerateOutputSchema.json b/documentation/sdkautomation/GenerateOutputSchema.json
new file mode 100644
index 000000000000..017685af2950
--- /dev/null
+++ b/documentation/sdkautomation/GenerateOutputSchema.json
@@ -0,0 +1,71 @@
+{
+ "type": "object",
+ "properties": {
+ "packages": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PackageResult"
+ }
+ }
+ },
+ "required": ["packages"],
+ "definitions": {
+ "PackageResult": {
+ "properties": {
+ "packageName": {
+ // Name of package. Will be used in branch name and PR title.
+ // By default it's folder name of first entry in path.
+ "type": "string"
+ },
+ "result": {
+ // Status of package. By default it's succeeded.
+ "type": "string",
+ "enum": ["failed", "succeeded", "warning"],
+ "default": "succeeded"
+ },
+ "path": {
+ // List of package content paths.
+ // If the path points to a folder then
+ // all the content under the folder will be included.
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "readmeMd": {
+ // List of related readmeMd of this package.
+ // Must provide this field if dryRun is true.
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "changelog": {
+ "type": "object",
+ "properties": {
+ "content": {
+ // Content of changelog in markdown
+ "type": "string"
+ },
+ "hasBreakingChange": {
+ // Does the new package has breaking change
+ "type": "boolean"
+ }
+ },
+ "required": ["content"]
+ },
+ "artifacts": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "installInstructions": {
+ // See #InstallInstructionScriptOutput
+ "$ref": "InstallInstructionScriptOutput"
+ }
+ },
+ "required": ["path"]
+ }
+ }
+}
diff --git a/documentation/sdkautomation/InitOutputSchema.json b/documentation/sdkautomation/InitOutputSchema.json
new file mode 100644
index 000000000000..a2353494ccbd
--- /dev/null
+++ b/documentation/sdkautomation/InitOutputSchema.json
@@ -0,0 +1,11 @@
+{
+ "type": "object",
+ "properties": {
+ "envs": {
+ // Environment variable to be set in following scripts.
+ "additionalProperties": {
+ "type": "string"
+ }
+ }
+ }
+}
diff --git a/documentation/sdkautomation/InstallInstructionScriptInputSchema.json b/documentation/sdkautomation/InstallInstructionScriptInputSchema.json
new file mode 100644
index 000000000000..c2dea969537c
--- /dev/null
+++ b/documentation/sdkautomation/InstallInstructionScriptInputSchema.json
@@ -0,0 +1,35 @@
+{
+ "$id": "InstallInstructionScriptInput",
+ "type": "object",
+ "properties": {
+ "packageName": {
+ // The package name. May be skipped if sdk automation don't know the info yet.
+ "type": "string"
+ },
+ "artifacts": {
+ // List of artifact's path. May be skipped if sdk automation don't know the info yet.
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "isPublic": {
+ // Is the download url public accessible.
+ // If it's false, the download command template will be
+ // az rest --resource -u "{URL}" --output-file {FILENAME}
+ "type": "boolean"
+ },
+ "downloadUrlPrefix": {
+ // All the artifacts will be uploaded and user could access the artifact via
+ // a link composed by this prefix and artifact filename.
+ "type": "string"
+ },
+ "downloadCommandTemplate": {
+ // Download command template. Replace {URL} and {FILENAME} to get the real command.
+ "type": "string"
+ },
+ "trigger": {
+ "$ref": "TriggerType#"
+ }
+ }
+}
diff --git a/documentation/sdkautomation/InstallInstructionScriptOutputSchema.json b/documentation/sdkautomation/InstallInstructionScriptOutputSchema.json
new file mode 100644
index 000000000000..1c4671b891ad
--- /dev/null
+++ b/documentation/sdkautomation/InstallInstructionScriptOutputSchema.json
@@ -0,0 +1,17 @@
+{
+ "$id": "InstallInstructionScriptOutput",
+ "type": "object",
+ "properties": {
+ "full": {
+ // Full version of install instruction will be shown in generated SDK PR.
+ // Should be in markdown format.
+ "type": "string"
+ },
+ "lite": {
+ // Lite version of install instruction will be shown in generated SDK PR.
+ // Should be in markdown format.
+ "type": "string"
+ }
+ },
+ "required": ["full"]
+}
diff --git a/documentation/sdkautomation/SpecConfigSchema.json b/documentation/sdkautomation/SpecConfigSchema.json
new file mode 100644
index 000000000000..3245cf222fef
--- /dev/null
+++ b/documentation/sdkautomation/SpecConfigSchema.json
@@ -0,0 +1,82 @@
+{
+ "type": "object",
+ "properties": {
+ "sdkRepositoryMappings": {
+ // A mapping of SDK repository names to the names of the SDK repositories
+ // that all interaction should go to instead.
+ "type": "object",
+ "additionalProperties": {
+ "oneOf": [
+ {
+ "$ref": "#/definitions/SdkRepositoryConfig"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "propertyNames": {
+ // The property name is the sdk name identifier.
+ "type": "string"
+ }
+ },
+ "overrides": {
+ // Override config for specific repository.
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/"
+ },
+ "propertyNames": {
+ // The property name is the sdk repo ref.
+ "$ref": "#/definitions/RepositoryName"
+ }
+ }
+ },
+ "required": ["sdkRepositoryMappings"],
+ "definitions": {
+ "RepositoryName": {
+ // Reference to a repository on github. Could be or /.
+ // By default the is the same as the owner of the spec repo.
+ "type": "string"
+ },
+ "SdkRepositoryConfig": {
+ "type": "object",
+ "properties": {
+ "mainRepository": {
+ // The repository that the final release PR will targeting.
+ "$ref": "#/definitions/RepositoryName"
+ },
+ "mainBranch": {
+ // Base branch of codegen branches
+ "default": "master",
+ "type": "string"
+ },
+ "integrationRepository": {
+ // The repository that hold generation branch, generation PR and integration branch.
+ // By default it's the same as mainRepository
+ "$ref": "#/definitions/RepositoryName"
+ },
+ "secondaryRepository": {
+ // Codegen runs on this repository.
+ // By default it's the same as 'mainRepository' but it could be different.
+ "$ref": "#/definitions/RepositoryName"
+ },
+ "secondaryBranch": {
+ // Codegen runs on this branch on secondaryRepository.
+ // By default it's the same as 'mainBranch' but it could be different.
+ "type": "string"
+ },
+ "integrationBranchPrefix": {
+ // The prefix that will be applied to the beginning of integration branches
+ "type": "string",
+ "default": "sdkAutomation"
+ },
+ "configFilePath": {
+ // Path to swagger-to-sdk config in sdk repo
+ "default": "swagger_to_sdk_config.json"
+ }
+ },
+ "required": ["mainRepository"]
+ }
+ }
+}
diff --git a/documentation/sdkautomation/SwaggerToSdkConfigSchema.json b/documentation/sdkautomation/SwaggerToSdkConfigSchema.json
new file mode 100644
index 000000000000..7b5034e5f0ba
--- /dev/null
+++ b/documentation/sdkautomation/SwaggerToSdkConfigSchema.json
@@ -0,0 +1,286 @@
+{
+ "type": "object",
+ "properties": {
+ "advancedOptions": {
+ // To keep backward compatibility, but will not list schema for old config options.
+ "properties": {
+ "createSdkPullRequests": {
+ // Should SDK Automation create PR or not.
+ "type": "boolean",
+ "default": true
+ },
+ "closeIntegrationPR": {
+ // Should SDK Automation close integrationPR to reduce noise.
+ "type": "boolean",
+ "default": true
+ },
+ "draftIntegrationPR": {
+ // Should SDK Automation create draft integrationPR to reduce noise.
+ "type": "boolean",
+ "default": true
+ },
+ "generationCallMode": {
+ // If we have multiple related readme.md, should we call generation once with
+ // all the readme.md or should we call generation multiple times and one per readme.md.
+ "type": "string",
+ "enum": ["one-per-config", "one-for-all-configs"],
+ "default": "one-for-all-configs"
+ },
+ "cloneDir": {
+ // SDK clone directory. By default it's name of sdk repo
+ "type": "string"
+ }
+ },
+ "default": {
+ "createSdkPullRequests": true,
+ "closeIntegrationPR": true,
+ "draftIntegrationPR": true
+ }
+ },
+ "initOptions": {
+ // Init the environment. Install dependencies.
+ "type": "object",
+ "properties": {
+ "initScript": {
+ // Script to init dependencies.
+ // Param:
+ // initInput.json: Not implemented. Placeholder for input arguments.
+ // initOutput.json: See #initOutput.
+ "$ref": "#/definitions/RunOptions"
+ }
+ },
+ "default": {}
+ },
+ "generateOptions": {
+ // Generate the SDK code.
+ "type": "object",
+ "properties": {
+ "generateScript": {
+ // Script to generate the SDK code.
+ // Param:
+ // generateInput.json: See #GenerateInput
+ // generateOutput.json: See #GenerateOutput
+ "$ref": "#/definitions/RunOptions"
+ },
+ "preprocessDryRunGetPackageName": {
+ // If this options is set to true, generateScript will first run with
+ // "dryRun": true to get package name and related readme.md,
+ // then for each package, checkout the expected branch and launch generateScript.
+ "type": "boolean",
+ "default": false
+ },
+ "parseGenerateOutput": {
+ // Will this script output to generateOutput.json.
+ // If not, default behavior will be applied that outcome will be
+ // detected automatically based on filename regex search.
+ "type": "boolean",
+ "default": true
+ }
+ },
+ "default": {
+ "preprocessDryRunGetPackageName": false,
+ "parseGenerateOutput": false
+ }
+ },
+ "packageOptions": {
+ // Get package folder and build / get changelog
+ "type": "object",
+ "properties": {
+ "packageFolderFromFileSearch": {
+ "oneOf": [
+ {
+ // If this option is set to object, then package folder will be detected automatically.
+ // based on filename regex search.
+ // This options must be set to object if parseGenerateOutput is false.
+ "type": "object",
+ "properties": {
+ "searchRegex": {
+ // Search algorithm:
+ // For each changed file detected after generation
+ // PotentialPackageFolder = folder of changed file
+ // While PotentialPackageFolder is not root folder of sdk repo:
+ // If PotentialPackageFolder contains a file that matches the searchRegex:
+ // PackageFolder found, break
+ // Else:
+ // PotentialPackageFolder = parent folder of PotentialPackageFolder
+ "type": "string",
+ "format": "regex"
+ },
+ "packageNamePrefix": {
+ // Prefix to be appended to packageName.
+ // By default packageName will be the folder name of packageFolder
+ "type": "string"
+ }
+ },
+ "required": ["searchRegex"]
+ },
+ {
+ // If this option is set to false, then package folder will be from generateOutput.json.
+ "const": false
+ }
+ ]
+ },
+ "buildScript": {
+ // Build the generated sdk.
+ // Param:
+ // Package folder could be a list separated by space if it's from generateOutput.json.
+ "$ref": "#/definitions/RunOptions"
+ },
+ "changelogScript": {
+ // Changelog generation and breaking-change detection.
+ // Param:
+ // Package folder could be a list separated by space if it's from generateOutput.json.
+ // Expected output from stdout/stderr: Changelog in markdown
+ "allOf": [
+ {
+ "$ref": "#/definitions/RunOptions"
+ }
+ ],
+ "properties": {
+ "breakingChangeDetect": {
+ // If stdout or stderr matches this in output of changelog tool
+ // then we assume this SDK has breaking change.
+ "$ref": "#/definitions/RunLogFilterOptions"
+ }
+ }
+ },
+ "breakingChangeLabel": {
+ // Label to be added in spec PR if breaking change is found
+ "type": "string"
+ }
+ },
+ "default": {}
+ },
+ "artifactOptions": {
+ "properties": {
+ "artifactPathFromFileSearch": {
+ "oneOf": [
+ {
+ // If this option is set to object, then artifacts will be detected automatically
+ // based on filename regex search.
+ // This options must be set to object if parseGenerateOutput is false.
+ "type": "object",
+ "properties": {
+ "searchRegex": {
+ // Any file under package folder matching the searchRegex is package artifact.
+ "type": "string",
+ "format": "regex"
+ }
+ },
+ "required": ["searchRegex"]
+ },
+ {
+ // If this option is set to false, then package folder will be from generateOutput.json
+ "const": false
+ }
+ ]
+ },
+ "installInstructionScript": {
+ // Generate install instruction that could be shown in spec PR comment (lite version)
+ // or in generated SDK PR (full version).
+ // If generateOutput.json contains installInstruction then this could be skipped.
+ // Param:
+ // installInstructionInput.json: See #InstallInstructionScriptInput .
+ // installInstructionOutput.json: See #InstallInstructionScriptInput .
+ "$ref": "#/definitions/RunOptions"
+ }
+ },
+ "default": {}
+ }
+ },
+ "definitions": {
+ "RunOptions": {
+ // Options to run a script and collect log.
+ "type": "object",
+ "properties": {
+ "path": {
+ // Script path related to repo root
+ "type": "string"
+ },
+ "envs": {
+ // Extra environment variable to be passed to the script.
+ // By default the following envs will be passed:
+ // USER, HOME, PATH, SHELL, PWD (current directory), TMPDIR (dedicated temp folder)
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ },
+ "logPrefix": {
+ // Prefix to be added to SDK Automation log. By default it would be filename of the script.
+ "type": "string"
+ },
+ "stdout": {
+ // How should SDK Automation handle the script stdout stream
+ "allOf": [
+ {
+ "$ref": "#/definitions/RunLogOptions"
+ }
+ ]
+ },
+ "stderr": {
+ // How should SDK Automation handle the script stderr stream
+ "allOf": [
+ {
+ "$ref": "#/definitions/RunLogOptions"
+ }
+ ],
+ "default": {
+ "scriptWarning": true
+ }
+ },
+ "exitCode": {
+ "properties": {
+ // How should SDK Automation handle non-zero exitCode.
+ "showInComment": {
+ // Should we show this error in comment.
+ "type": "boolean",
+ "default": true
+ },
+ "result": {
+ // If script has non-error exitCode how should we mark the script's result.
+ "type": "string",
+ "enum": ["error", "warning", "ignore"],
+ "default": "error"
+ }
+ },
+ "default": {
+ "showInComment": true,
+ "result": "error"
+ }
+ }
+ },
+ "required": ["path"]
+ },
+ "RunLogOptions": {
+ // How should SDK Automation handle the log stream.
+ "showInComment": {
+ // Should we show this stream in comment.
+ "$ref": "#/definitions/RunLogFilterOptions"
+ },
+ "scriptError": {
+ // If any line match, assume the script fails.
+ "$ref": "#/definitions/RunLogFilterOptions"
+ },
+ "scriptWarning": {
+ // If any line match, assume the script warns.
+ "$ref": "#/definitions/RunLogFilterOptions"
+ }
+ },
+ "RunLogFilterOptions": {
+ "oneOf": [
+ {
+ // If line of log match this regex then hit
+ "type": "string",
+ "format": "regex"
+ },
+ {
+ // If set to true, any line of log will hit
+ "type": "boolean"
+ }
+ ],
+ "default": false
+ }
+ }
+}
diff --git a/documentation/sdkautomation/sdk_customization.md b/documentation/sdkautomation/sdk_customization.md
index 620ed6edfe57..a425d04862c5 100644
--- a/documentation/sdkautomation/sdk_customization.md
+++ b/documentation/sdkautomation/sdk_customization.md
@@ -109,87 +109,8 @@ This is type of file `./specificationRepositoryConfiguration.json` in swagger sp
```
#### SpecRepoConfig Schema
-``` jsonc
-{
- "type": "object",
- "properties": {
- "sdkRepositoryMappings": {
- // A mapping of SDK repository names to the names of the SDK repositories
- // that all interaction should go to instead.
- "type": "object",
- "additionalProperties": {
- "$ref": "#/definitions/SdkRepositoryConfig"
- },
- "propertyNames": {
- // The property name is the sdk name identifier.
- "type": "string"
- }
- },
- "overrides": {
- // Override config for specific repository.
- "type": "object",
- "additionalProperties": {
- "$ref": "#/"
- },
- "propertyNames": {
- // The property name is the sdk repo ref.
- "$ref": "#/definitions/RepositoryName"
- }
- },
- "required": [
- "sdkRepositoryMappings"
- ]
- },
- "definitions": {
- "RepositoryName": {
- // Reference to a repository on github. Could be or /.
- // By default the is the same as the owner of the spec repo.
- "type": "string"
- },
- "SdkRepositoryConfig": {
- "type": "object",
- "properties": {
- "mainRepository": {
- // The repository that the final release PR will targeting.
- "$ref": "#/definitions/RepositoryName"
- },
- "mainBranch": {
- // Base branch of codegen branches
- "default": "master",
- "type": "string"
- },
- "integrationRepository": {
- // The repository that hold generation branch, generation PR and integration branch.
- // By default it's the same as mainRepository
- "$ref": "#/definitions/RepositoryName"
- },
- "secondaryRepository": {
- // Codegen runs on this repository.
- // By default it's the same as 'mainRepository' but it could be different.
- "$ref": "#/definitions/RepositoryName"
- },
- "secondaryBranch": {
- // Codegen runs on this branch on secondaryRepository.
- // By default it's the same as 'mainBranch' but it could be different.
- "type": "string"
- },
- "integrationBranchPrefix": {
- // The prefix that will be applied to the beginning of integration branches
- "type": "string",
- "default": "sdkAutomation"
- },
- "configFilePath": {
- // Path to swagger-to-sdk config in sdk repo
- "default": "swagger_to_sdk_config.json"
- }
- },
- "required": [
- "mainRepository"
- ]
- }
- }
-}
-```
+
+See [./SpecConfigSchema.json](https://github.com/Azure/azure-rest-api-specs/blob/master/documentation/sdkautomation/SpecConfigSchema.json)
### SwaggerToSdkConfig
This is type of file `./swagger_to_sdk_config.json` in sdk repo.
@@ -205,6 +126,10 @@ The working folder of all the scripts is the __root folder of sdk repo__.
},
"initOptions": {
"initScript": {
+ // Script to init dependencies.
+ // Param:
+ // initInput.json: Not implemented. Placeholder for input arguments.
+ // initOutput.json: See #initOutput.
"path": "./eng/tools/sdk_init"
}
},
@@ -244,7 +169,9 @@ The working folder of all the scripts is the __root folder of sdk repo__.
"changelogScript": {
"path": "./eng/tools/sdk_breaking_change",
"breakingChangeDetect": "Breaking Change"
- }
+ },
+
+ "breakingChangeLabel": "CI-BreakingChange-DotNet"
},
"artifactOptions": {
// Param:
@@ -258,252 +185,8 @@ The working folder of all the scripts is the __root folder of sdk repo__.
```
#### SwaggerToSdkConfig Schema
-``` jsonc
-{
- "type": "object",
- "properties": {
- "advancedOptions": {
- // To keep backward compatibility, but will not list schema for old config options.
- "properties": {
- "createSdkPullRequests": {
- // Should SDK Automation create PR or not.
- "type": "boolean",
- "default": true
- },
- "closeIntegrationPR": {
- // Should SDK Automation close integrationPR to reduce noise.
- "type": "boolean",
- "default": true
- },
- "generationCallMode": {
- // If we have multiple related readme.md, should we call generation once with
- // all the readme.md or should we call generation multiple times and one per readme.md.
- "type": "string",
- "enum": [
- "one-per-config",
- "one-for-all-configs"
- ],
- "default": "one-for-all-configs"
- }
- }
- },
- "initOptions": {
- // Init the environment. Install dependencies.
- "type": "object",
- "properties": {
- "initScript": {
- // Script to init.
- "$ref": "#/definitions/RunOptions"
- }
- },
- "required": [
- "initScript"
- ]
- },
- "generateOptions": {
- // Generate the SDK code.
- "type": "object",
- "properties": {
- "generateScript": {
- // Script to generate the SDK code.
- // Param:
- // generateInput.json: See #GenerateInput
- // generateOutput.json: See #GenerateOutput
- "$ref": "#/definitions/RunOptions"
- },
- "preprocessDryRunGetPackageName": {
- // If this options is set to true, generateScript will first run with
- // "dryRun": true to get package name and related readme.md,
- // then for each package, checkout the expected branch and launch generateScript.
- "type": "boolean",
- "default": false
- },
- "parseGenerateOutput": {
- // Will this script output to generateOutput.json.
- // If not, default behavior will be applied that outcome will be
- // detected automatically based on filename regex search.
- "type": "boolean",
- "default": true
- }
- },
- "required": [
- "generateScript"
- ]
- },
- "packageOptions": {
- // Get package folder and build / get changelog
- "type": "object",
- "properties": {
- "packageFolderFromFileSearch": {
- "oneOf": [
- {
- // If this option is set to object, then package folder will be detected automatically.
- // based on filename regex search.
- // This options must be set to object if parseGenerateOutput is false.
- "type": "object",
- "properties": {
- "searchRegex": {
- // Search algorithm:
- // For each changed file detected after generation
- // PotentialPackageFolder = folder of changed file
- // While PotentialPackageFolder is not root folder of sdk repo:
- // If PotentialPackageFolder contains a file that matches the searchRegex:
- // PackageFolder found, break
- // Else:
- // PotentialPackageFolder = parent folder of PotentialPackageFolder
- "type": "string",
- "format": "regex"
- },
- "pageNamePrefix": {
- // Prefix to be appended to packageName. By default packageName will be the folder name of packageFolder
- "type": "string"
- }
- },
- "required": [
- "searchRegex"
- ]
- },
- {
- // If this option is set to false, then package folder will be from generateOutput.json.
- "const": false
- }
- ],
- "default": false,
- },
- "buildScript": {
- // Build the generated sdk.
- // Param:
- // Package folder could be a list separated by space if it's from generateOutput.json.
- "$ref": "#/definitions/RunOptions"
- },
- "changelogScript": {
- // Changelog generation and breaking-change detection.
- // Param:
- // Package folder could be a list separated by space if it's from generateOutput.json.
- // Expected output from stdout/stderr: Changelog in markdown
- "allOf": {
- "$ref": "#/definitions/RunOptions"
- },
- "properties": {
- "breakingChangeDetect": {
- // If stdout or stderr matches this in output of changelog tool
- // then we assume this SDK has breaking change.
- "$ref": "#/definitions/RunLogFilterOptions"
- }
- }
- }
- }
- },
- "artifactOptions": {
- "artifactPathFromFileSearch": {
- "oneOf": [
- {
- // If this option is set to object, then artifacts will be detected automatically
- // based on filename regex search.
- // This options must be set to object if parseGenerateOutput is false.
- "type": "object",
- "properties": {
- "searchRegex": {
- // Any file under package folder matching the searchRegex is package artifact.
- "type": "string",
- "format": "regex",
- }
- }
- },
- {
- // If this option is set to false, then package folder will be from generateOutput.json
- "const": false
- }
- ],
- "default": false
- },
- "installInstructionScript": {
- // Generate install instruction that could be shown in spec PR comment (lite version)
- // or in generated SDK PR (full version).
- // If generateOutput.json contains installInstruction then this could be skipped.
- // Param:
- // installInstructionInput.json: See #InstallInstructionScriptInput .
- // installInstructionOutput.json: See #InstallInstructionScriptInput .
- "allOf": {
- "$ref": "#/definitions/RunOptions"
- }
- }
- }
- },
- "definitions": {
- "RunOptions": {
- // Options to run a script and collect log.
- "type": "object",
- "properties": {
- "path": {
- // Script path related to repo root
- "type": "string"
- },
- "logPrefix": {
- // Prefix to be added to SDK Automation log. By default it would be filename of the script.
- "type": "string"
- },
- "stdout": {
- // How should SDK Automation handle the script stdout stream
- "$ref": "#/definitions/RunLogOptions"
- },
- "stderr": {
- // How should SDK Automation handle the script stderr stream
- "$ref": "#/definitions/RunLogOptions"
- },
- "exitCode": {
- // How should SDK Automation handle non-zero exitCode.
- "showInComment": {
- // Should we show this error in comment.
- "type": "boolean",
- "default": true
- },
- "result": {
- // If script has non-error exitCode how should we mark the script's result.
- "type": "string",
- "enum": [
- "error", "warning", "ignore"
- ],
- "default": "error"
- }
- },
- "required": [
- "path"
- ]
- }
- },
- "RunLogOptions": {
- // How should SDK Automation handle the log stream.
- "showInComment": {
- // Should we show this stream in comment.
- "$ref": "#/definitions/RunLogFilterOptions"
- },
- "scriptError": {
- // If any line match, assume the script fails.
- "$ref": "#/definitions/RunLogFilterOptions"
- },
- "scriptWarning": {
- // If any line match, assume the script warns.
- "$ref": "#/definitions/RunLogFilterOptions"
- }
- },
- "RunLogFilterOptions": {
- "oneOf": [
- {
- // If line of log match this regex then hit
- "type": "string",
- "format": "regex"
- },
- {
- // If set to true, any line of log will hit
- "type": "boolean"
- }
- ],
- "default": false
- }
- }
-}
-```
+
+See [./SwaggerToSdkConfigSchema.json](https://github.com/Azure/azure-rest-api-specs/blob/master/documentation/sdkautomation/SwaggerToSdkConfigSchema.json)
### GenerateInput
@@ -524,72 +207,19 @@ Input file for generate script.
],
"relatedReadmeMdFiles": [
"specification/cdn/something/readme.md"
- ]
+ ],
+ "installInstructionInput": {
+ "isPublic": false,
+ "downloadUrlPrefix": "https://openapihub.test.azure-devex-tools.com/api/sdk-dl-pub?p=Azure/1234/azure-sdk-for-net/",
+ "downloadCommandTemplate": "curl -L \"{URL}\" -o {FILENAME}",
+ "trigger": "pullRequest"
+ }
}
```
#### GenerateInput Schema
-```jsonc
-{
- "type": "object",
- "properties": {
- "dryRun": {
- // If dryRun is true, generateScript is expected to parse readme.md
- // and output the package list with package name and related readme.md.
- // Should not run codegen at this time.
- "type": "boolean"
- },
- "specFolder": {
- // Path to local spec folder.
- "type": "string"
- },
- "headSha": {
- // Git head sha.
- "type": "string"
- },
- "headRef": {
- // Git head ref.
- // Format will be "refs/pull//merge" or "refs/heads/".
- "type": "string"
- },
- "repoHttpsUrl": {
- // Spec repo url in https without auth.
- "type": "string"
- },
- "trigger": {
- // How this generation is triggered.
- "type": "string",
- "enum": [
- "pullRequest",
- "continuousIntegration"
- ]
- },
- "changedFiles": {
- // Changed file list in spec PR.
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "relatedReadmeMdFiles": {
- // Related readme.md files that pending generation.
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "installInstructionInput": {
- // See #InstallInstructionScriptInput
- "$ref": "#/definitions/InstallInstructionScriptInput"
- }
- },
- "required": [
- "specFolder", "headSha", "headRef", "repoHttpsUrl",
- "trigger", "changedFiles", "relatedReadmeMdFiles"
- ]
-}
-```
+See [./GenerateInputSchema.json](https://github.com/Azure/azure-rest-api-specs/blob/master/documentation/sdkautomation/GenerateInputSchema.json)
### GenerateOutput
@@ -628,79 +258,7 @@ Output file for generate script.
#### GenerateOutput Schema
-```jsonc
-{
- "type": "object",
- "properties": {
- "packages": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/PackageResult"
- }
- }
- },
- "required": [
- "packages"
- ],
- "definitions": {
- "PackageResult": {
- "properties": {
- "packageName": {
- // Name of package. Will be used in branch name and PR title.
- // By default it's folder name of first entry in path.
- "type": "string",
- },
- "path": {
- // List of package content paths.
- // If the path points to a folder then
- // all the content under the folder will be included.
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "readmeMd": {
- // List of related readmeMd of this package.
- // Must provide this field if dryRun is true.
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "changelog": {
- "type": "object",
- "properties": {
- "content": {
- // Content of changelog in markdown
- "type": "string"
- },
- "hasBreakingChange": {
- // Does the new package has breaking change
- "type": "boolean"
- }
- },
- "required": [
- "content"
- ]
- },
- "artifacts": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "installInstructions": {
- // See #InstallInstructionScriptOutput
- "$ref": "#/definitions/InstallInstructionScriptOutput"
- },
- },
- "required": [
- "path"
- ]
- }
- }
-}
-```
+See [./GenerateOutputSchema.json](https://github.com/Azure/azure-rest-api-specs/blob/master/documentation/sdkautomation/GenerateOutputSchema.json)
### InstallInstructionScriptInput
@@ -724,46 +282,7 @@ Input of install instruction script.
#### InstallInstructionScriptInput Schema
-```jsonc
-{
- "type": "object",
- "properties": {
- "packageName": {
- // The package name. May be skipped if sdk automation don't know the info yet.
- "type": "string"
- },
- "artifacts": {
- // List of artifact's path. May be skipped if sdk automation don't know the info yet.
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "isPublic": {
- // Is the download url public accessible.
- // If it's false, the download command template will be
- // az rest --resource -u "{URL}" --output-file {FILENAME}
- "type": "boolean",
- },
- "downloadUrlPrefix": {
- // All the artifacts will be uploaded and user could access the artifact via
- // a link composed by this prefix and artifact filename.
- "type": "string"
- },
- "downloadCommandTemplate": {
- // Download command template. Replace {URL} and {FILENAME} to get the real command.
- "type": "string"
- },
- "trigger": {
- "type": "string",
- "enum": [
- "pullRequest",
- "continuousIntegration"
- ]
- }
- }
-}
-```
+See [./InstallInstructionScriptInput.json](https://github.com/Azure/azure-rest-api-specs/blob/master/documentation/sdkautomation/InstallInstructionScriptInput.json)
### InstallInstructionScriptOutput
@@ -779,23 +298,35 @@ Output of install instruction script.
#### InstallInstructionScriptOutput Schema
+See [./InstallInstructionScriptOutput.json](https://github.com/Azure/azure-rest-api-specs/blob/master/documentation/sdkautomation/InstallInstructionScriptOutput.json)
+
+### TriggerType
+
+#### TriggerType Schema
+
+```jsonc
+{
+ // How this generation is triggered.
+ "$id": "TriggerType",
+ "type": "string",
+ "enum": ["pullRequest", "continuousIntegration"]
+}
+```
+
+### InitOutput
+
+#### InitOutput Schema
+
```jsonc
{
"type": "object",
"properties": {
- "full": {
- // Full version of install instruction will be shown in generated SDK PR.
- // Should be in markdown format.
- "type": "string"
- },
- "lite": {
- // Lite version of install instruction will be shown in generated SDK PR.
- // Should be in markdown format.
- "type": "string"
+ "envs": {
+ // Environment variable to be set in following scripts.
+ "additionalProperties": {
+ "type": "string"
+ }
}
- },
- "required": [
- "full"
- ]
+ }
}
-```
+```
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 47e96443676a..8a7cfb56e070 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -382,7 +382,7 @@
"@ts-common/commonmark-to-markdown": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/@ts-common/commonmark-to-markdown/-/commonmark-to-markdown-1.2.0.tgz",
- "integrity": "sha512-xFWpGZN1XzWN0egRs6gcT+tgYYw57us/Xr9euoaTsi9N+UR9ZxnG8Mrt4K/KlB54dNIED/LaGxReqRM5L7tKZA==",
+ "integrity": "sha1-Gy257ada2oNjbwcopc3sic0D08M=",
"dev": true,
"requires": {
"@ts-common/iterator": "^0.3.0",
@@ -408,7 +408,7 @@
"@ts-common/fs": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/@ts-common/fs/-/fs-0.2.0.tgz",
- "integrity": "sha512-ul1v4ZatcHuAzrwr/hGjSbk37pnfnLYDWC1yMEynQlnV8ndAcIVNYwQPPOYtLADPKTi3y74g5Q4BF3xPurDHLA==",
+ "integrity": "sha1-FMvf3smooaVjKNr1Ztm8k7iJgrk=",
"dev": true,
"requires": {
"@ts-common/async-iterator": "^0.2.0",
@@ -419,7 +419,7 @@
"@ts-common/iterator": {
"version": "0.3.6",
"resolved": "https://registry.npmjs.org/@ts-common/iterator/-/iterator-0.3.6.tgz",
- "integrity": "sha512-nNdcleTj3qLlchH17HI/xqOc6sNgOqJ5DdRR0nOEVdJVZCo5bfqoQTu6+Q9ZwMhuETuR2d86MSlmaL2FVHnPjQ==",
+ "integrity": "sha1-/6FLXYkTxIMKXSMdPssHXQLKfm0=",
"dev": true
},
"@ts-common/json": {
@@ -540,7 +540,7 @@
"@types/mocha": {
"version": "5.2.7",
"resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz",
- "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==",
+ "integrity": "sha1-MV1XDMtWxTRS/4Y4c432BybVtuo=",
"dev": true
},
"@types/node": {
@@ -3008,7 +3008,7 @@
"json-schema-ref-parser": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/json-schema-ref-parser/-/json-schema-ref-parser-6.1.0.tgz",
- "integrity": "sha512-pXe9H1m6IgIpXmE5JSb8epilNTGsmTb2iPohAXpOdhqGFbQjNeHHsZxU+C8w6T81GZxSPFLeUoqDJmzxx5IGuw==",
+ "integrity": "sha1-MK80rqtb7gQx2oBdrA6yG1dL9j0=",
"dev": true,
"requires": {
"call-me-maybe": "^1.0.1",
@@ -4430,7 +4430,7 @@
"prettier": {
"version": "1.19.1",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz",
- "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==",
+ "integrity": "sha1-99f1/4qc2HKnvkyhQglZVqYHl8s=",
"dev": true
},
"process-nextick-args": {
@@ -5380,7 +5380,7 @@
"typescript": {
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.3.tgz",
- "integrity": "sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g==",
+ "integrity": "sha1-yDD2V/k/HqhGgZ6SkJL1/lmD6Xc=",
"dev": true
},
"uglify-js": {
diff --git a/profile/2020-09-01-hybrid.json b/profile/2020-09-01-hybrid.json
index 4ba660dc88c7..26aa4e351a8a 100644
--- a/profile/2020-09-01-hybrid.json
+++ b/profile/2020-09-01-hybrid.json
@@ -440,39 +440,39 @@
"2019-06-01": [
{
"resourceType": "checkNameAvailability",
- "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/storage/resource-manager/Microsoft.Storage/stable/2017-10-01/storage.json"
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/storage/resource-manager/Microsoft.Storage/stable/2019-06-01/storage.json"
},
{
"resourceType": "locations",
- "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/storage/resource-manager/Microsoft.Storage/stable/2017-10-01/storage.json"
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/storage/resource-manager/Microsoft.Storage/stable/2019-06-01/storage.json"
},
{
"resourceType": "locations/quotas",
- "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/storage/resource-manager/Microsoft.Storage/stable/2017-10-01/storage.json"
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/storage/resource-manager/Microsoft.Storage/stable/2019-06-01/storage.json"
},
{
"resourceType": "operations",
- "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/storage/resource-manager/Microsoft.Storage/stable/2017-10-01/storage.json"
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/storage/resource-manager/Microsoft.Storage/stable/2019-06-01/storage.json"
},
{
"resourceType": "storageAccounts",
- "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/storage/resource-manager/Microsoft.Storage/stable/2017-10-01/storage.json"
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/storage/resource-manager/Microsoft.Storage/stable/2019-06-01/storage.json"
},
{
"resourceType": "storageAccounts/blobServices",
- "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/storage/resource-manager/Microsoft.Storage/stable/2017-10-01/storage.json"
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/storage/resource-manager/Microsoft.Storage/stable/2019-06-01/storage.json"
},
{
"resourceType": "storageAccounts/queueServices",
- "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/storage/resource-manager/Microsoft.Storage/stable/2017-10-01/storage.json"
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/storage/resource-manager/Microsoft.Storage/stable/2019-06-01/storage.json"
},
{
"resourceType": "storageAccounts/tableServices",
- "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/storage/resource-manager/Microsoft.Storage/stable/2017-10-01/storage.json"
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/storage/resource-manager/Microsoft.Storage/stable/2019-06-01/storage.json"
},
{
"resourceType": "usages",
- "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/storage/resource-manager/Microsoft.Storage/stable/2017-10-01/storage.json"
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/storage/resource-manager/Microsoft.Storage/stable/2019-06-01/storage.json"
}
]
},
@@ -537,54 +537,50 @@
{
"resourceType": "serverFarms",
"path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2018-02-01/WebApps.json"
- }
- ],
- "2016-09-01": [
+ },
{
"resourceType": "serverFarms/metricDefinitions",
- "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2016-09-01/AppServicePlans.json"
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2018-02-01/AppServicePlans.json"
},
{
"resourceType": "serverFarms/metrics",
- "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2016-09-01/AppServicePlans.json"
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2018-02-01/AppServicePlans.json"
},
{
"resourceType": "serverFarms/usages",
- "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2016-09-01/AppServicePlans.json"
- }
- ],
- "2016-03-01": [
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2018-02-01/AppServicePlans.json"
+ },
{
"resourceType": "availableStacks",
- "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2016-03-01/Provider.json"
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2018-02-01/Provider.json"
},
{
"resourceType": "deploymentLocations",
- "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2016-03-01/ResourceProvider.json"
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2018-02-01/ResourceProvider.json"
},
{
"resourceType": "georegions",
- "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2016-03-01/ResourceProvider.json"
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2018-02-01/ResourceProvider.json"
},
{
"resourceType": "listSitesAssignedToHostName",
- "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2016-03-01/ResourceProvider.json"
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2018-02-01/ResourceProvider.json"
},
{
"resourceType": "publishingUsers",
- "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2016-03-01/ResourceProvider.json"
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2018-02-01/ResourceProvider.json"
},
{
"resourceType": "recommendations",
- "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2016-03-01/Recommendations.json"
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2018-02-01/Recommendations.json"
},
{
"resourceType": "sourceControls",
- "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2016-03-01/ResourceProvider.json"
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2018-02-01/ResourceProvider.json"
},
{
"resourceType": "validate",
- "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2016-03-01/ResourceProvider.json"
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2018-02-01/ResourceProvider.json"
}
]
}
diff --git a/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/AlertsManagement.json b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/AlertsManagement.json
index 6a49a3228a39..9b17f3d56e34 100644
--- a/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/AlertsManagement.json
+++ b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/AlertsManagement.json
@@ -51,518 +51,9 @@
"nextLinkName": "nextLink"
}
}
- },
- "/subscriptions/{subscriptionId}/providers/Microsoft.AlertsManagement/resourceHealthAlerts": {
- "get": {
- "tags": [
- "HealthAlerts"
- ],
- "description": "Retrieve health alert rule definitions in a subscription.",
- "operationId": "HealthAlerts_ListBySubscription",
- "parameters": [
- {
- "$ref": "#/parameters/SubscriptionIdParameter"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Successful request for a list of health alerts",
- "schema": {
- "$ref": "#/definitions/HealthAlertResourceCollection"
- }
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/HealthAlertsErrorResponse"
- }
- }
- },
- "x-ms-pageable": {
- "nextLinkName": null
- },
- "x-ms-examples": {
- "ListResourceHealthAlertRules": {
- "$ref": "./examples/listResourceHealthAlerts.json"
- }
- }
- }
- },
- "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AlertsManagement/resourceHealthAlerts": {
- "get": {
- "tags": [
- "HealthAlerts"
- ],
- "description": "Retrieve alert rule definitions in a resource group.",
- "operationId": "HealthAlerts_ListByResourceGroup",
- "parameters": [
- {
- "$ref": "#/parameters/SubscriptionIdParameter"
- },
- {
- "$ref": "#/parameters/ResourceGroupNameParameter"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Successful request for a list of health alerts",
- "schema": {
- "$ref": "#/definitions/HealthAlertResourceCollection"
- }
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/HealthAlertsErrorResponse"
- }
- }
- },
- "x-ms-pageable": {
- "nextLinkName": null
- },
- "x-ms-examples": {
- "ListResourceHealthAlertRules": {
- "$ref": "./examples/listResourceHealthAlerts.json"
- }
- }
- }
- },
- "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AlertsManagement/resourceHealthAlerts/{ruleName}": {
- "get": {
- "tags": [
- "HealthAlerts"
- ],
- "description": "Retrieve an alert rule definition.",
- "operationId": "HealthAlerts_Get",
- "parameters": [
- {
- "$ref": "#/parameters/SubscriptionIdParameter"
- },
- {
- "$ref": "#/parameters/ResourceGroupNameParameter"
- },
- {
- "$ref": "#/parameters/RuleNameParameter"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Successful request for a list of health alerts",
- "schema": {
- "$ref": "#/definitions/HealthAlertResource"
- }
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/HealthAlertsErrorResponse"
- }
- }
- },
- "x-ms-examples": {
- "GetResourceHealthAlertRule": {
- "$ref": "./examples/getResourceHealthAlert.json"
- }
- }
- },
- "put": {
- "tags": [
- "HealthAlerts"
- ],
- "description": "Create or update an health alert definition.",
- "operationId": "HealthAlerts_CreateOrUpdate",
- "parameters": [
- {
- "$ref": "#/parameters/SubscriptionIdParameter"
- },
- {
- "$ref": "#/parameters/ResourceGroupNameParameter"
- },
- {
- "$ref": "#/parameters/RuleNameParameter"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- },
- {
- "name": "parameters",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/HealthAlertResource"
- },
- "description": "The parameters of the rule to create or update."
- }
- ],
- "responses": {
- "200": {
- "description": "OK",
- "schema": {
- "$ref": "#/definitions/HealthAlertResource"
- }
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/HealthAlertsErrorResponse"
- }
- }
- },
- "x-ms-examples": {
- "CreateResourceHealthAlertRule": {
- "$ref": "./examples/createOrUpdateResourceHealthAlert.json"
- }
- }
- },
- "patch": {
- "tags": [
- "HealthAlerts"
- ],
- "description": "Update an health alert definition.",
- "operationId": "HealthAlerts_Update",
- "parameters": [
- {
- "$ref": "#/parameters/SubscriptionIdParameter"
- },
- {
- "$ref": "#/parameters/ResourceGroupNameParameter"
- },
- {
- "$ref": "#/parameters/RuleNameParameter"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- },
- {
- "name": "parameters",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/HealthAlertResourcePatch"
- },
- "description": "The parameters of the rule to update."
- }
- ],
- "responses": {
- "200": {
- "description": "OK",
- "schema": {
- "$ref": "#/definitions/HealthAlertResource"
- }
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/HealthAlertsErrorResponse"
- }
- }
- },
- "x-ms-examples": {
- "PatchResourceHealthAlertRule": {
- "$ref": "./examples/patchResourceHealthAlert.json"
- }
- }
- },
- "delete": {
- "tags": [
- "HealthAlerts"
- ],
- "description": "Delete an alert rule definition.",
- "operationId": "HealthAlerts_Delete",
- "parameters": [
- {
- "$ref": "#/parameters/SubscriptionIdParameter"
- },
- {
- "$ref": "#/parameters/ResourceGroupNameParameter"
- },
- {
- "$ref": "#/parameters/RuleNameParameter"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Successful request to delete an health alert rule"
- },
- "204": {
- "description": "No content: the request was successful, but the response is empty"
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/HealthAlertsErrorResponse"
- }
- }
- },
- "x-ms-examples": {
- "DeleteResourceHealthAlertRule": {
- "$ref": "./examples/deleteResourceHealthAlert.json"
- }
- }
- }
}
},
"definitions": {
- "Resource": {
- "properties": {
- "id": {
- "type": "string",
- "readOnly": true,
- "description": "Azure resource Id"
- },
- "name": {
- "type": "string",
- "readOnly": true,
- "description": "Azure resource name"
- },
- "type": {
- "type": "string",
- "readOnly": true,
- "description": "Azure resource type"
- },
- "location": {
- "type": "string",
- "description": "Resource location",
- "x-ms-mutability": [
- "create",
- "read"
- ]
- },
- "tags": {
- "additionalProperties": {
- "type": "string"
- },
- "description": "Resource tags"
- }
- },
- "required": [
- "location"
- ],
- "x-ms-azure-resource": true,
- "description": "An azure resource object"
- },
- "HealthAlertAction": {
- "description": "An alert action.",
- "properties": {
- "actionGroupId": {
- "type": "string",
- "description": "the id of the action group to use."
- },
- "webHookProperties": {
- "type": "object",
- "additionalProperties": {
- "type": "string",
- "description": "the dictionary of custom properties to include with the post operation. These data are appended to the webhook payload."
- },
- "description": "The properties of a webhook object."
- }
- }
- },
- "HealthAlertProperties": {
- "required": [
- "enabled",
- "description",
- "criteria"
- ],
- "properties": {
- "description": {
- "type": "string",
- "description": "the description of the health alert that will be included in the alert email."
- },
- "enabled": {
- "type": "boolean",
- "description": "the flag that indicates whether the health alert is enabled."
- },
- "scopes": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "description": "the list of resource id's that this health alert is scoped to."
- },
- "criteria": {
- "$ref": "#/definitions/HealthAlertCriteria",
- "description": "defines the specific alert criteria information."
- },
- "actions": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/HealthAlertAction"
- },
- "description": "the array of actions that are performed when the alert rule becomes active, and when an alert condition is resolved."
- },
- "lastUpdatedTime": {
- "readOnly": true,
- "type": "string",
- "format": "date-time",
- "description": "Last time the rule was updated in ISO8601 format."
- }
- },
- "description": "An alert rule."
- },
- "HealthAlertResource": {
- "type": "object",
- "allOf": [
- {
- "$ref": "#/definitions/Resource"
- }
- ],
- "required": [
- "properties"
- ],
- "properties": {
- "properties": {
- "x-ms-client-flatten": true,
- "$ref": "#/definitions/HealthAlertProperties",
- "description": "The alert rule properties of the resource."
- }
- },
- "description": "The health alert resource."
- },
- "HealthAlertResourcePatch": {
- "properties": {
- "tags": {
- "additionalProperties": {
- "type": "string"
- },
- "description": "Resource tags"
- },
- "properties": {
- "x-ms-client-flatten": true,
- "$ref": "#/definitions/HealthAlertProperties",
- "description": "The alert rule properties of the resource."
- }
- },
- "description": "The health alert resource for patch operations."
- },
- "HealthAlertResourceCollection": {
- "properties": {
- "value": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/HealthAlertResource"
- },
- "description": "the values for the alert rule resources."
- }
- },
- "description": "Represents a collection of alert rule resources."
- },
- "HealthAlertCriteria": {
- "type": "object",
- "properties": {
- "allOf": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/HealthAlertCriterion"
- },
- "description": "The list of metric criteria for this 'all of' operation. "
- }
- },
- "description": "Specifies the resource health alert criteria for a single resource that has multiple metric criteria."
- },
- "HealthAlertCriterion": {
- "type": "object",
- "additionalProperties": {
- "type": "object"
- },
- "discriminator": "namespace",
- "properties": {
- "namespace": {
- "type": "string",
- "enum": [
- "VmGuestHealth"
- ],
- "x-ms-enum": {
- "name": "HealthAlertsNamespace",
- "modelAsString": true
- },
- "description": "specifies the type of the alert criterion."
- }
- },
- "required": [
- "namespace"
- ],
- "description": "The rule criterion that defines the conditions of the alert rule."
- },
- "VmGuestHealthAlertCriterion": {
- "x-ms-discriminator-value": "VmGuestHealth",
- "type": "object",
- "allOf": [
- {
- "$ref": "#/definitions/HealthAlertCriterion"
- }
- ],
- "properties": {
- "healthMonitorName": {
- "type": "string",
- "description": "Name of health monitor on which to define alert"
- },
- "healthStates": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/HealthState"
- },
- "description": "Health states to alert on"
- }
- },
- "required": [
- "healthMonitorName"
- ],
- "description": "Specifies the health alert criteria to alert on."
- },
- "HealthState": {
- "type": "object",
- "properties": {
- "healthStateName": {
- "type": "string",
- "description": "Health state"
- },
- "severity": {
- "type": "string",
- "description": "Severity of alert fired"
- }
- },
- "required": [
- "healthStateName",
- "severity"
- ],
- "description": "Specifies the health state to alert on and the corresponding severity"
- },
- "HealthAlertsErrorResponse": {
- "description": "Describes the format of Error response.",
- "type": "object",
- "properties": {
- "error": {
- "$ref": "#/definitions/HealthAlertsErrorResponseBody"
- }
- }
- },
- "HealthAlertsErrorResponseBody": {
- "description": "Describes the format of Error response.",
- "type": "object",
- "properties": {
- "code": {
- "description": "Error code",
- "type": "string"
- },
- "message": {
- "description": "Error message indicating why the operation failed.",
- "type": "string"
- }
- }
- },
"operation": {
"description": "Operation provided by provider",
"properties": {
@@ -615,35 +106,12 @@
}
},
"parameters": {
- "SubscriptionIdParameter": {
- "name": "subscriptionId",
- "in": "path",
- "required": true,
- "type": "string",
- "description": "The Azure subscription Id."
- },
"ApiVersionParameter": {
"name": "api-version",
"in": "query",
"required": true,
"type": "string",
"description": "Client Api Version."
- },
- "ResourceGroupNameParameter": {
- "name": "resourceGroupName",
- "in": "path",
- "required": true,
- "type": "string",
- "description": "The name of the resource group.",
- "x-ms-parameter-location": "method"
- },
- "RuleNameParameter": {
- "name": "ruleName",
- "in": "path",
- "required": true,
- "type": "string",
- "description": "The name of the rule.",
- "x-ms-parameter-location": "method"
}
}
}
diff --git a/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/ResourceHealthAlertRules.json b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/ResourceHealthAlertRules.json
new file mode 100644
index 000000000000..0ede910f5f1b
--- /dev/null
+++ b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/ResourceHealthAlertRules.json
@@ -0,0 +1,574 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2020-08-04-preview",
+ "title": "Azure Alerts Management Service Resource Provider",
+ "description": "Azure Alerts Management Service provides a single pane of glass of alerts across Azure Monitor."
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "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}/providers/Microsoft.AlertsManagement/resourceHealthAlertRules": {
+ "get": {
+ "tags": [
+ "HealthAlerts"
+ ],
+ "description": "Retrieve health alert rule definitions in a subscription.",
+ "operationId": "HealthAlerts_ListBySubscription",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful request for a list of health alerts",
+ "schema": {
+ "$ref": "#/definitions/HealthAlertResourceCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/HealthAlertsErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "x-ms-examples": {
+ "ListResourceHealthAlertRules": {
+ "$ref": "./examples/listResourceHealthAlertRules.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AlertsManagement/resourceHealthAlertRules": {
+ "get": {
+ "tags": [
+ "HealthAlerts"
+ ],
+ "description": "Retrieve alert rule definitions in a resource group.",
+ "operationId": "HealthAlerts_ListByResourceGroup",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful request for a list of health alerts",
+ "schema": {
+ "$ref": "#/definitions/HealthAlertResourceCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/HealthAlertsErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "x-ms-examples": {
+ "ListResourceHealthAlertRules": {
+ "$ref": "./examples/listResourceHealthAlertRules.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AlertsManagement/resourceHealthAlertRules/{ruleName}": {
+ "get": {
+ "tags": [
+ "HealthAlerts"
+ ],
+ "description": "Retrieve an alert rule definition.",
+ "operationId": "HealthAlerts_Get",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/RuleNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful request for a list of health alerts",
+ "schema": {
+ "$ref": "#/definitions/HealthAlertResource"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/HealthAlertsErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "GetResourceHealthAlertRuleRule": {
+ "$ref": "./examples/getResourceHealthAlertRule.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "HealthAlerts"
+ ],
+ "description": "Create or update an health alert definition.",
+ "operationId": "HealthAlerts_CreateOrUpdate",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/RuleNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/HealthAlertResource"
+ },
+ "description": "The parameters of the rule to create or update."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/HealthAlertResource"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/HealthAlertsErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "CreateResourceHealthAlertRule": {
+ "$ref": "./examples/createOrUpdateResourceHealthAlertRule.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "HealthAlerts"
+ ],
+ "description": "Update an health alert definition.",
+ "operationId": "HealthAlerts_Update",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/RuleNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/HealthAlertResourcePatch"
+ },
+ "description": "The parameters of the rule to update."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/HealthAlertResource"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/HealthAlertsErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "PatchResourceHealthAlertRule": {
+ "$ref": "./examples/patchResourceHealthAlertRule.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "HealthAlerts"
+ ],
+ "description": "Delete an alert rule definition.",
+ "operationId": "HealthAlerts_Delete",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/RuleNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful request to delete an health alert rule"
+ },
+ "204": {
+ "description": "No content: the request was successful, but the response is empty"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/HealthAlertsErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "DeleteResourceHealthAlertRule": {
+ "$ref": "./examples/deleteResourceHealthAlertRule.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "Resource": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Azure resource Id"
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Azure resource name"
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Azure resource type"
+ },
+ "location": {
+ "type": "string",
+ "description": "Resource location",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
+ },
+ "tags": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags"
+ }
+ },
+ "required": [
+ "location"
+ ],
+ "x-ms-azure-resource": true,
+ "description": "An azure resource object"
+ },
+ "HealthAlertAction": {
+ "description": "An alert action.",
+ "properties": {
+ "actionGroupId": {
+ "type": "string",
+ "description": "the id of the action group to use."
+ },
+ "webHookProperties": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string",
+ "description": "the dictionary of custom properties to include with the post operation. These data are appended to the webhook payload."
+ },
+ "description": "The properties of a webhook object."
+ }
+ }
+ },
+ "HealthAlertProperties": {
+ "required": [
+ "enabled",
+ "description",
+ "criteria"
+ ],
+ "properties": {
+ "description": {
+ "type": "string",
+ "description": "the description of the health alert that will be included in the alert email."
+ },
+ "enabled": {
+ "type": "boolean",
+ "description": "the flag that indicates whether the health alert is enabled."
+ },
+ "scopes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "the list of resource id's that this health alert is scoped to."
+ },
+ "criteria": {
+ "$ref": "#/definitions/HealthAlertCriteria",
+ "description": "defines the specific alert criteria information."
+ },
+ "actions": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/HealthAlertAction"
+ },
+ "description": "the array of actions that are performed when the alert rule becomes active, and when an alert condition is resolved."
+ },
+ "lastUpdatedTime": {
+ "readOnly": true,
+ "type": "string",
+ "format": "date-time",
+ "description": "Last time the rule was updated in ISO8601 format."
+ }
+ },
+ "description": "An alert rule."
+ },
+ "HealthAlertResource": {
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "required": [
+ "properties"
+ ],
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/HealthAlertProperties",
+ "description": "The alert rule properties of the resource."
+ }
+ },
+ "description": "The health alert resource."
+ },
+ "HealthAlertResourcePatch": {
+ "properties": {
+ "tags": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags"
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/HealthAlertProperties",
+ "description": "The alert rule properties of the resource."
+ }
+ },
+ "description": "The health alert resource for patch operations."
+ },
+ "HealthAlertResourceCollection": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/HealthAlertResource"
+ },
+ "description": "the values for the alert rule resources."
+ }
+ },
+ "description": "Represents a collection of alert rule resources."
+ },
+ "HealthAlertCriteria": {
+ "type": "object",
+ "properties": {
+ "allOf": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/HealthAlertCriterion"
+ },
+ "description": "The list of metric criteria for this 'all of' operation. "
+ }
+ },
+ "description": "Specifies the resource health alert criteria for a single resource that has multiple metric criteria."
+ },
+ "HealthAlertCriterion": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ },
+ "discriminator": "namespace",
+ "properties": {
+ "namespace": {
+ "type": "string",
+ "enum": [
+ "VmGuestHealth"
+ ],
+ "x-ms-enum": {
+ "name": "HealthAlertsNamespace",
+ "modelAsString": true
+ },
+ "description": "specifies the type of the alert criterion."
+ }
+ },
+ "required": [
+ "namespace"
+ ],
+ "description": "The rule criterion that defines the conditions of the alert rule."
+ },
+ "VmGuestHealthAlertCriterion": {
+ "x-ms-discriminator-value": "VmGuestHealth",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/HealthAlertCriterion"
+ }
+ ],
+ "properties": {
+ "healthMonitorName": {
+ "type": "string",
+ "description": "Name of health monitor on which to define alert"
+ },
+ "healthStates": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/HealthState"
+ },
+ "description": "Health states to alert on"
+ }
+ },
+ "required": [
+ "healthMonitorName"
+ ],
+ "description": "Specifies the health alert criteria to alert on."
+ },
+ "HealthState": {
+ "type": "object",
+ "properties": {
+ "healthStateName": {
+ "type": "string",
+ "description": "Health state"
+ },
+ "severity": {
+ "type": "string",
+ "description": "Severity of alert fired"
+ }
+ },
+ "required": [
+ "healthStateName",
+ "severity"
+ ],
+ "description": "Specifies the health state to alert on and the corresponding severity"
+ },
+ "HealthAlertsErrorResponse": {
+ "description": "Describes the format of Error response.",
+ "type": "object",
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/HealthAlertsErrorResponseBody"
+ }
+ }
+ },
+ "HealthAlertsErrorResponseBody": {
+ "description": "Describes the format of Error response.",
+ "type": "object",
+ "properties": {
+ "code": {
+ "description": "Error code",
+ "type": "string"
+ },
+ "message": {
+ "description": "Error message indicating why the operation failed.",
+ "type": "string"
+ }
+ }
+ }
+ },
+ "parameters": {
+ "SubscriptionIdParameter": {
+ "name": "subscriptionId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The Azure subscription Id."
+ },
+ "ApiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "Client Api Version."
+ },
+ "ResourceGroupNameParameter": {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group.",
+ "x-ms-parameter-location": "method"
+ },
+ "RuleNameParameter": {
+ "name": "ruleName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the rule.",
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/examples/createOrUpdateResourceHealthAlert.json b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/examples/createOrUpdateResourceHealthAlertRule.json
similarity index 95%
rename from specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/examples/createOrUpdateResourceHealthAlert.json
rename to specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/examples/createOrUpdateResourceHealthAlertRule.json
index 0a46e4630d1f..cf3775ea4d92 100644
--- a/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/examples/createOrUpdateResourceHealthAlert.json
+++ b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/examples/createOrUpdateResourceHealthAlertRule.json
@@ -15,7 +15,9 @@
"criteria": {
"allOf": [
{
- "healthMonitorName": "root",
+ "monitorNames": [
+ "root"
+ ],
"namespace": "VmGuestHealth"
}
]
@@ -48,7 +50,7 @@
"criteria": {
"allOf": [
{
- "healthMonitorName": "root",
+ "monitorNames": "root",
"namespace": "VmGuestHealth"
}
]
diff --git a/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/examples/deleteResourceHealthAlert.json b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/examples/deleteResourceHealthAlertRule.json
similarity index 100%
rename from specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/examples/deleteResourceHealthAlert.json
rename to specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/examples/deleteResourceHealthAlertRule.json
diff --git a/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/examples/getResourceHealthAlert.json b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/examples/getResourceHealthAlertRule.json
similarity index 94%
rename from specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/examples/getResourceHealthAlert.json
rename to specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/examples/getResourceHealthAlertRule.json
index 18432a7ab89a..05e87704df81 100644
--- a/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/examples/getResourceHealthAlert.json
+++ b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/examples/getResourceHealthAlertRule.json
@@ -21,7 +21,9 @@
"criteria": {
"allOf": [
{
- "healthMonitorName": "root",
+ "monitorNames": [
+ "root"
+ ],
"namespace": "VmGuestHealth"
}
]
diff --git a/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/examples/listResourceHealthAlerts.json b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/examples/listResourceHealthAlertRules.json
similarity index 94%
rename from specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/examples/listResourceHealthAlerts.json
rename to specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/examples/listResourceHealthAlertRules.json
index 42bc3c7156c4..e3fb76364246 100644
--- a/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/examples/listResourceHealthAlerts.json
+++ b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/examples/listResourceHealthAlertRules.json
@@ -22,7 +22,9 @@
"criteria": {
"allOf": [
{
- "healthMonitorName": "root",
+ "monitorNames": [
+ "root"
+ ],
"namespace": "VmGuestHealth"
}
]
diff --git a/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/examples/patchResourceHealthAlert.json b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/examples/patchResourceHealthAlertRule.json
similarity index 93%
rename from specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/examples/patchResourceHealthAlert.json
rename to specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/examples/patchResourceHealthAlertRule.json
index c67cb10e162e..6a697de53e05 100644
--- a/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/examples/patchResourceHealthAlert.json
+++ b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/examples/patchResourceHealthAlertRule.json
@@ -14,7 +14,9 @@
"criteria": {
"allOf": [
{
- "healthMonitorName": "root",
+ "monitorNames": [
+ "root"
+ ],
"namespace": "VmGuestHealth"
}
]
@@ -47,7 +49,9 @@
"criteria": {
"allOf": [
{
- "healthMonitorName": "root",
+ "monitorNames": [
+ "root"
+ ],
"namespace": "VmGuestHealth"
}
]
diff --git a/specification/alertsmanagement/resource-manager/readme.md b/specification/alertsmanagement/resource-manager/readme.md
index 4c1754e7b365..2d93e1fcf5e4 100644
--- a/specification/alertsmanagement/resource-manager/readme.md
+++ b/specification/alertsmanagement/resource-manager/readme.md
@@ -112,6 +112,7 @@ These settings apply only when `--tag=package-2020-08-04` is specified on the co
``` yaml $(tag) == 'package-2020-08-04-preview'
input-file:
- Microsoft.AlertsManagement/preview/2020-08-04-preview/AlertsManagement.json
+- Microsoft.AlertsManagement/preview/2020-08-04-preview/ResourceHealthAlertRules.json
```
---
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimcontenttypes.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimcontenttypes.json
index f7807d846737..838f24cdf8b4 100644
--- a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimcontenttypes.json
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimcontenttypes.json
@@ -245,7 +245,7 @@
"tags": [
"ContentTypeContentItem"
],
- "operationId": "ContentTypeContentItem_ListByService",
+ "operationId": "ContentItem_ListByService",
"description": "Returns list of content items",
"x-ms-examples": {
"ApiManagementListContentTypeContentItems": {
@@ -293,7 +293,7 @@
"tags": [
"ContentTypeContentItem"
],
- "operationId": "ContentTypeContentItem_GetEntityTag",
+ "operationId": "ContentItem_GetEntityTag",
"description": "Returns content item metadata",
"x-ms-examples": {
"ApiManagementHeadContentTypeContentItem": {
@@ -342,7 +342,7 @@
"tags": [
"ContentTypeContentItem"
],
- "operationId": "ContentTypeContentItem_Get",
+ "operationId": "ContentItem_Get",
"description": "Returns content item details",
"x-ms-examples": {
"ApiManagementGetContentTypeContentItem": {
@@ -394,7 +394,7 @@
"tags": [
"ContentTypeContentItem"
],
- "operationId": "ContentTypeContentItem_CreateOrUpdate",
+ "operationId": "ContentItem_CreateOrUpdate",
"description": "Creates new content item",
"x-ms-examples": {
"ApiManagementCreateContentTypeContentItem": {
@@ -461,7 +461,7 @@
"tags": [
"ContentTypeContentItem"
],
- "operationId": "ContentTypeContentItem_Delete",
+ "operationId": "ContentItem_Delete",
"description": "Removes specified content item.",
"x-ms-examples": {
"ApiManagementDeleteContentTypeContentItem": {
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimdeployment.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimdeployment.json
index 48547abde3df..bc4aed719518 100644
--- a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimdeployment.json
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimdeployment.json
@@ -897,7 +897,7 @@
},
"keyVaultId": {
"type": "string",
- "description": "Url to the KeyVault Secret containing the Ssl Certificate. If absolute Url containing version is provided, auto-update of ssl certificate will not work. This requires Api Management service to be configured with MSI. The secret should be of type *application/x-pkcs12*"
+ "description": "Url to the KeyVault Secret containing the Ssl Certificate. If absolute Url containing version is provided, auto-update of ssl certificate will not work. This requires Api Management service to be configured with aka.ms/apimmsi. The secret should be of type *application/x-pkcs12*"
},
"identityClientId": {
"type": "string",
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/definitions.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/definitions.json
index 5e8dd300c1d9..0e77e54f68cf 100644
--- a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/definitions.json
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/definitions.json
@@ -2747,7 +2747,7 @@
"properties": {
"secretIdentifier": {
"type": "string",
- "description": "Key vault secret identifier for fetching secret."
+ "description": "Key vault secret identifier for fetching secret. Providing a versioned secret will prevent auto-refresh. This requires Api Management service to be configured with aka.ms/apimmsi"
},
"identityClientId": {
"type": "string",
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateNamedValueWithKeyVault.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateNamedValueWithKeyVault.json
index c02c34c81364..a1037ee05972 100644
--- a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateNamedValueWithKeyVault.json
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateNamedValueWithKeyVault.json
@@ -10,7 +10,7 @@
"displayName": "prop6namekv",
"keyVault": {
"identityClientId": "ceaa6b06-c00f-43ef-99ac-f53d1fe876a0",
- "secretIdentifier": "https://rpbvtkeyvaultintegration.vault-int.azure-int.net/secrets/msitestingCert"
+ "secretIdentifier": "https://contoso.vault.azure.net/secrets/aadSecret"
},
"tags": [
"foo",
@@ -34,7 +34,7 @@
"properties": {
"displayName": "prop6namekv",
"keyVault": {
- "secretIdentifier": "https://rpbvtkeyvaultintegration.vault-int.azure-int.net/secrets/msitestingCert",
+ "secretIdentifier": "https://contoso.vault.azure.net/secrets/aadSecret",
"identityClientId": "ceaa6b06-c00f-43ef-99ac-f53d1fe876a0",
"lastStatus": {
"code": "Success",
@@ -57,7 +57,7 @@
"properties": {
"displayName": "prop6namekv",
"keyVault": {
- "secretIdentifier": "https://rpbvtkeyvaultintegration.vault-int.azure-int.net/secrets/msitestingCert",
+ "secretIdentifier": "https://contoso.vault.azure.net/secrets/aadSecret",
"identityClientId": "ceaa6b06-c00f-43ef-99ac-f53d1fe876a0",
"lastStatus": {
"code": "Success",
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementListNamedValues.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementListNamedValues.json
index eb5c84ef99f0..f596259e1b04 100644
--- a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementListNamedValues.json
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementListNamedValues.json
@@ -26,7 +26,7 @@
"properties": {
"displayName": "prop6namekv",
"keyVault": {
- "secretIdentifier": "https://rpbvtkeyvaultintegration.vault-int.azure-int.net/secrets/msitestingCert",
+ "secretIdentifier": "https://contoso.vault.azure.net/secrets/aadSecret",
"identityClientId": "2d2df842-44d8-4885-8dec-77cc1a984a31",
"lastStatus": {
"code": "Success",
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2019-01-01/apimdeployment.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2019-01-01/apimdeployment.json
index 151f0d9ae4bf..e136537fb618 100644
--- a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2019-01-01/apimdeployment.json
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2019-01-01/apimdeployment.json
@@ -1070,7 +1070,7 @@
"additionalProperties": {
"type": "string"
},
- "description": "Custom properties of the API Management service.Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TripleDes168` will disable the cipher TLS_RSA_WITH_3DES_EDE_CBC_SHA for all TLS(1.0, 1.1 and 1.2).Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11` can be used to disable just TLS 1.1.Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10` can be used to disable TLS 1.0 on an API Management service.Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11` can be used to disable just TLS 1.1 for communications with backends.Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10` can be used to disable TLS 1.0 for communications with backends.Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Protocols.Server.Http2` can be used to enable HTTP2 protocol on an API Management service.Not specifying any of these properties on PATCH operation will reset omitted properties' values to their defaults. For all the settings except Http2 the default value is `True` if the service was created on or before April 1st 2018 and `False` otherwise. Http2 setting's default value is `False`.You can disable any of next ciphers by using settings `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.[cipher_name]`: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA. For example, `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TLS_RSA_WITH_AES_128_CBC_SHA256`:`false`. The default value is `true` for them."
+ "description": "Custom properties of the API Management service.Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TripleDes168` will disable the cipher TLS_RSA_WITH_3DES_EDE_CBC_SHA for all TLS(1.0, 1.1 and 1.2).Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11` can be used to disable just TLS 1.1.Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10` can be used to disable TLS 1.0 on an API Management service.Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11` can be used to disable just TLS 1.1 for communications with backends.Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10` can be used to disable TLS 1.0 for communications with backends.Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Protocols.Server.Http2` can be used to enable HTTP2 protocol on an API Management service.Not specifying any of these properties on PATCH operation will reset omitted properties' values to their defaults. For all the settings except Http2 the default value is `True` if the service was created on or before April 1st 2018 and `False` otherwise. Http2 setting's default value is `False`.You can disable any of next ciphers by using settings `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.[cipher_name]`:TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHATLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHATLS_ECDHE_RSA_WITH_AES_256_CBC_SHATLS_ECDHE_RSA_WITH_AES_128_CBC_SHATLS_RSA_WITH_AES_128_GCM_SHA256TLS_RSA_WITH_AES_256_CBC_SHA256TLS_RSA_WITH_AES_128_CBC_SHA256TLS_RSA_WITH_AES_256_CBC_SHATLS_RSA_WITH_AES_128_CBC_SHA.For example: `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TLS_RSA_WITH_AES_128_CBC_SHA256`:`false`. The default value is `true` for all of them."
},
"certificates": {
"type": "array",
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2019-12-01/apimdeployment.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2019-12-01/apimdeployment.json
index ce8c693b268c..60fe79f959f0 100644
--- a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2019-12-01/apimdeployment.json
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2019-12-01/apimdeployment.json
@@ -1144,7 +1144,7 @@
"additionalProperties": {
"type": "string"
},
- "description": "Custom properties of the API Management service.Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TripleDes168` will disable the cipher TLS_RSA_WITH_3DES_EDE_CBC_SHA for all TLS(1.0, 1.1 and 1.2).Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11` can be used to disable just TLS 1.1.Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10` can be used to disable TLS 1.0 on an API Management service.Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11` can be used to disable just TLS 1.1 for communications with backends.Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10` can be used to disable TLS 1.0 for communications with backends.Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Protocols.Server.Http2` can be used to enable HTTP2 protocol on an API Management service.Not specifying any of these properties on PATCH operation will reset omitted properties' values to their defaults. For all the settings except Http2 the default value is `True` if the service was created on or before April 1st 2018 and `False` otherwise. Http2 setting's default value is `False`.You can disable any of next ciphers by using settings `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.[cipher_name]`: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA. For example, `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TLS_RSA_WITH_AES_128_CBC_SHA256`:`false`. The default value is `true` for them. Note: next ciphers can't be disabled since they are required by Azure CloudService internal components: TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_GCM_SHA384"
+ "description": "Custom properties of the API Management service.Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TripleDes168` will disable the cipher TLS_RSA_WITH_3DES_EDE_CBC_SHA for all TLS(1.0, 1.1 and 1.2).Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11` can be used to disable just TLS 1.1.Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10` can be used to disable TLS 1.0 on an API Management service.Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11` can be used to disable just TLS 1.1 for communications with backends.Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10` can be used to disable TLS 1.0 for communications with backends.Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Protocols.Server.Http2` can be used to enable HTTP2 protocol on an API Management service.Not specifying any of these properties on PATCH operation will reset omitted properties' values to their defaults. For all the settings except Http2 the default value is `True` if the service was created on or before April 1st 2018 and `False` otherwise. Http2 setting's default value is `False`.You can disable any of next ciphers by using settings `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.[cipher_name]`:TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHATLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHATLS_ECDHE_RSA_WITH_AES_256_CBC_SHATLS_ECDHE_RSA_WITH_AES_128_CBC_SHATLS_RSA_WITH_AES_128_GCM_SHA256TLS_RSA_WITH_AES_256_CBC_SHA256 TLS_RSA_WITH_AES_128_CBC_SHA256 TLS_RSA_WITH_AES_256_CBC_SHA TLS_RSA_WITH_AES_128_CBC_SHA. For example: `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TLS_RSA_WITH_AES_128_CBC_SHA256`:`false`. The default value is `true` for all of them. Note: next ciphers can't be disabled since they are required by Azure CloudService internal components: TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 TLS_RSA_WITH_AES_256_GCM_SHA384"
},
"certificates": {
"type": "array",
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/examples/MyWorkbookAdd.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/examples/MyWorkbookAdd.json
new file mode 100644
index 000000000000..8c336dfb16e5
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/examples/MyWorkbookAdd.json
@@ -0,0 +1,68 @@
+{
+ "parameters": {
+ "api-version": "2020-10-20",
+ "resourceGroupName": "my-resource-group",
+ "resourceName": "deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "subscriptionId": "00000000-0000-0000-0000-00000000",
+ "workbookProperties": {
+ "id": "c0deea5e-3344-40f2-96f8-6f8e1c3b5722",
+ "name": "deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "location": "west us",
+ "kind": "user",
+ "properties": {
+ "sourceId": "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MyGroup/providers/Microsoft.Web/sites/MyTestApp-CodeLens",
+ "displayName": "Blah Blah Blah",
+ "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":\"{\"json\":\"## New workbook\\r\\n---\\r\\n\\r\\nWelcome to your new workbook. This area will display text formatted as markdown.\\r\\n\\r\\n\\r\\nWe've included a basic analytics query to get you started. Use the `Edit` button below each section to configure it or add more sections.\"}\",\"halfWidth\":null,\"conditionalVisibility\":null},{\"type\":3,\"content\":\"{\"version\":\"KqlItem/1.0\",\"query\":\"union withsource=TableName *\\n| summarize Count=count() by TableName\\n| render barchart\",\"showQuery\":false,\"size\":1,\"aggregation\":0,\"showAnnotations\":false}\",\"halfWidth\":null,\"conditionalVisibility\":null}],\"isLocked\":false}",
+ "category": "workbook"
+ },
+ "tags": [
+ "TagSample01",
+ "TagSample02"
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/my-resource-group/providers/Microsoft.Insights/myworkbooks/deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "type": "Microsoft.Insights/myworkbooks",
+ "location": "westus",
+ "name": "deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "kind": "user",
+ "properties": {
+ "sourceId": "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MyGroup/providers/Microsoft.Web/sites/MyTestApp-CodeLens",
+ "displayName": "Blah Blah Blah",
+ "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":\"{\"json\":\"## New workbook\\r\\n---\\r\\n\\r\\nWelcome to your new workbook. This area will display text formatted as markdown.\\r\\n\\r\\n\\r\\nWe've included a basic analytics query to get you started. Use the `Edit` button below each section to configure it or add more sections.\"}\",\"halfWidth\":null,\"conditionalVisibility\":null},{\"type\":3,\"content\":\"{\"version\":\"KqlItem/1.0\",\"query\":\"union withsource=TableName *\\n| summarize Count=count() by TableName\\n| render barchart\",\"showQuery\":false,\"size\":1,\"aggregation\":0,\"showAnnotations\":false}\",\"halfWidth\":null,\"conditionalVisibility\":null}],\"isLocked\":false}",
+ "version": "ME",
+ "category": "workbook",
+ "storageUri": null
+ },
+ "tags": [
+ "TagSample01",
+ "TagSample02"
+ ]
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/my-resource-group/providers/Microsoft.Insights/myworkbooks/deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "type": "",
+ "location": "westus",
+ "name": "deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "kind": "user",
+ "properties": {
+ "sourceId": "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MyGroup/providers/Microsoft.Web/sites/MyTestApp-CodeLens",
+ "displayName": "Blah Blah Blah",
+ "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":\"{\"json\":\"## New workbook\\r\\n---\\r\\n\\r\\nWelcome to your new workbook. This area will display text formatted as markdown.\\r\\n\\r\\n\\r\\nWe've included a basic analytics query to get you started. Use the `Edit` button below each section to configure it or add more sections.\"}\",\"halfWidth\":null,\"conditionalVisibility\":null},{\"type\":3,\"content\":\"{\"version\":\"KqlItem/1.0\",\"query\":\"union withsource=TableName *\\n| summarize Count=count() by TableName\\n| render barchart\",\"showQuery\":false,\"size\":1,\"aggregation\":0,\"showAnnotations\":false}\",\"halfWidth\":null,\"conditionalVisibility\":null}],\"isLocked\":false}",
+ "version": "ME",
+ "category": "workbook",
+ "storageUri": null
+ },
+ "tags": [
+ "TagSample01",
+ "TagSample02"
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/examples/MyWorkbookDelete.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/examples/MyWorkbookDelete.json
new file mode 100644
index 000000000000..19d4cd9b5a38
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/examples/MyWorkbookDelete.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "api-version": "2020-10-20",
+ "subscriptionId": "subid",
+ "resourceGroupName": "my-resource-group",
+ "resourceName": "deadb33f-5e0d-4064-8ebb-1a4ed0313eb2"
+ },
+ "responses": {
+ "201": {},
+ "204": {}
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/examples/MyWorkbookGet.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/examples/MyWorkbookGet.json
new file mode 100644
index 000000000000..a85412167087
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/examples/MyWorkbookGet.json
@@ -0,0 +1,33 @@
+{
+ "parameters": {
+ "api-version": "2020-10-20",
+ "subscriptionId": "6b643656-33eb-422f-aee8-3ac145d124af",
+ "resourceGroupName": "my-resource-group",
+ "resourceName": "deadb33f-5e0d-4064-8ebb-1a4ed0313eb2"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/6b643656-33eb-422f-aee8-3ac145d124af/resourceGroups/my-resource-group/providers/Microsoft.Insights/myworkbooks/deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "name": "deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "type": "Microsoft.Insights/myworkbooks",
+ "location": "westus",
+ "kind": "user",
+ "properties": {
+ "displayName": "My New Workbook",
+ "sourceId": "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MyGroup/providers/Microsoft.Web/sites/MyTestApp-CodeLens",
+ "userId": "userId",
+ "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":\"{\"json\":\"## New workbook\\r\\n---\\r\\n\\r\\nWelcome to your new workbook. This area will display text formatted as markdown.\\r\\n\\r\\n\\r\\nWe've included a basic analytics query to get you started. Use the `Edit` button below each section to configure it or add more sections.\"}\",\"halfWidth\":null,\"conditionalVisibility\":null},{\"type\":3,\"content\":\"{\"version\":\"KqlItem/1.0\",\"query\":\"union withsource=TableName *\\n| summarize Count=count() by TableName\\n| render barchart\",\"showQuery\":false,\"size\":1,\"aggregation\":0,\"showAnnotations\":false}\",\"halfWidth\":null,\"conditionalVisibility\":null}],\"isLocked\":false}",
+ "version": "ME",
+ "category": "workbook",
+ "timeModified": null,
+ "storageUri": null
+ },
+ "tags": [
+ "TagSample01",
+ "TagSample02"
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/examples/MyWorkbookUpdate.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/examples/MyWorkbookUpdate.json
new file mode 100644
index 000000000000..f1d5c52b3916
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/examples/MyWorkbookUpdate.json
@@ -0,0 +1,48 @@
+{
+ "parameters": {
+ "api-version": "2020-10-20",
+ "subscriptionId": "6b643656-33eb-422f-aee8-3ac145d124af",
+ "resourceGroupName": "my-resource-group",
+ "resourceName": "deadb33f-5e0d-4064-8ebb-1a4ed0313eb2",
+ "workbookProperties": {
+ "name": "deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "location": "west us",
+ "tags": [
+ "TagSample01",
+ "TagSample02"
+ ],
+ "kind": "user",
+ "properties": {
+ "displayName": "Blah Blah Blah",
+ "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":\"{\"json\":\"## New workbook\\r\\n---\\r\\n\\r\\nWelcome to your new workbook. This area will display text formatted as markdown.\\r\\n\\r\\n\\r\\nWe've included a basic analytics query to get you started. Use the `Edit` button below each section to configure it or add more sections.\"}\",\"halfWidth\":null,\"conditionalVisibility\":null},{\"type\":3,\"content\":\"{\"version\":\"KqlItem/1.0\",\"query\":\"union withsource=TableName *\\n| summarize Count=count() by TableName\\n| render barchart\",\"showQuery\":false,\"size\":1,\"aggregation\":0,\"showAnnotations\":false}\",\"halfWidth\":null,\"conditionalVisibility\":null}],\"isLocked\":false}",
+ "version": "ME",
+ "sourceId": "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MyGroup/providers/Microsoft.Web/sites/MyTestApp-CodeLens",
+ "category": "workbook",
+ "storageUri": null
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "c0deea5e-3344-40f2-96f8-6f8e1c3b5722",
+ "type": "Microsoft.Insights/myworkbooks",
+ "location": "westus",
+ "name": "deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "tags": [
+ "TagSample01",
+ "TagSample02"
+ ],
+ "kind": "user",
+ "properties": {
+ "displayName": "Blah Blah Blah",
+ "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":\"{\"json\":\"## New workbook\\r\\n---\\r\\n\\r\\nWelcome to your new workbook. This area will display text formatted as markdown.\\r\\n\\r\\n\\r\\nWe've included a basic analytics query to get you started. Use the `Edit` button below each section to configure it or add more sections.\"}\",\"halfWidth\":null,\"conditionalVisibility\":null},{\"type\":3,\"content\":\"{\"version\":\"KqlItem/1.0\",\"query\":\"union withsource=TableName *\\n| summarize Count=count() by TableName\\n| render barchart\",\"showQuery\":false,\"size\":1,\"aggregation\":0,\"showAnnotations\":false}\",\"halfWidth\":null,\"conditionalVisibility\":null}],\"isLocked\":false}",
+ "version": "ME",
+ "sourceId": "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MyGroup/providers/Microsoft.Web/sites/MyTestApp-CodeLens",
+ "category": "workbook",
+ "storageUri": null
+ }
+ }
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/examples/MyWorkbooksList.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/examples/MyWorkbooksList.json
new file mode 100644
index 000000000000..a59c2857a8eb
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/examples/MyWorkbooksList.json
@@ -0,0 +1,53 @@
+{
+ "parameters": {
+ "api-version": "2020-10-20",
+ "subscriptionId": "6b643656-33eb-422f-aee8-3ac145d124af",
+ "resourceGroupName": "my-resource-group",
+ "category": "workbook"
+ },
+ "responses": {
+ "200": {
+ "body": [
+ {
+ "id": "/subscriptions/6b643656-33eb-422f-aee8-3ac145d124af/resourceGroups/my-resource-group/providers/Microsoft.Insights/myworkbooks/c0deea5e-3344-40f2-96f8-6f8e1c3b5722",
+ "type": "Microsoft.Insights/myworkbooks",
+ "location": "westus",
+ "name": "deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "tags": [],
+ "kind": "user",
+ "properties": {
+ "displayName": "My Workbook 1",
+ "userId": "userId",
+ "serializedData": "{\"verion\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":\"{\"json\":\"## New workbook\\r\\n---\\r\\n\\r\\nWelcome to your new workbook. This area will display text formatted as markdown.\\r\\n\\r\\n\\r\\nWe've included a basic analytics query to get you started. Use the `Edit` button below each section to configure it or add more sections.\"}\",\"halfWidth\":null,\"conditionalVisibility\":null},{\"type\":3,\"content\":\"{\"version\":\"KqlItem/1.0\",\"query\":\"union withsource=TableName *\\n| summarize Count=count() by TableName\\n| render barchart\",\"showQuery\":false,\"size\":1,\"aggregation\":0,\"showAnnotations\":false}\",\"halfWidth\":null,\"conditionalVisibility\":null}],\"isLocked\":false}",
+ "version": "ME",
+ "sourceId": "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MyGroup/providers/Microsoft.Web/sites/MyTestApp-CodeLens",
+ "category": "workbook",
+ "timeModified": null,
+ "storageUri": null
+ }
+ },
+ {
+ "id": "/subscriptions/6b643656-33eb-422f-aee8-3ac145d124af/resourceGroups/my-resource-group/providers/Microsoft.Insights/myworkbooks/c0deea5e-3344-40f2-96f8-6f8e1c3b5722",
+ "type": "Microsoft.Insights/myworkbooks",
+ "location": "westus",
+ "name": "deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "kind": "user",
+ "tags": [
+ "SampleTag01",
+ "SampleTag2"
+ ],
+ "properties": {
+ "displayName": "My Workbook 2",
+ "userId": "userId",
+ "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":\"{\"json\":\"## New workbook\\r\\n---\\r\\n\\r\\nWelcome to your new workbook. This area will display text formatted as markdown.\\r\\n\\r\\n\\r\\nWe've included a basic analytics query to get you started. Use the `Edit` button below each section to configure it or add more sections.\"}\",\"halfWidth\":null,\"conditionalVisibility\":null},{\"type\":3,\"content\":\"{\"version\":\"KqlItem/1.0\",\"query\":\"union withsource=TableName *\\n| summarize Count=count() by TableName\\n| render barchart\",\"showQuery\":false,\"size\":1,\"aggregation\":0,\"showAnnotations\":false}\",\"halfWidth\":null,\"conditionalVisibility\":null}],\"isLocked\":false}",
+ "version": "ME",
+ "sourceId": "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MyGroup/providers/Microsoft.Web/sites/MyTestApp-CodeLens",
+ "category": "workbook",
+ "timeModified": null,
+ "storageUri": null
+ }
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/examples/WorkbookAdd.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/examples/WorkbookAdd.json
new file mode 100644
index 000000000000..70df230ce76e
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/examples/WorkbookAdd.json
@@ -0,0 +1,70 @@
+{
+ "parameters": {
+ "api-version": "2020-10-20",
+ "resourceGroupName": "my-resource-group",
+ "resourceName": "deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "subscriptionId": "subid",
+ "sourceId": "/subscriptions/00000000-0000-0000-0000-00000000/resourcegroups/MyGroup",
+ "workbookProperties": {
+ "id": "c0deea5e-3344-40f2-96f8-6f8e1c3b5722",
+ "location": "west us",
+ "name": "Blah Blah Blah",
+ "kind": "shared",
+ "properties": {
+ "displayName": "tttt",
+ "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":\"{\"json\":\"## New workbook\\r\\n---\\r\\n\\r\\nWelcome to your new workbook. This area will display text formatted as markdown.\\r\\n\\r\\n\\r\\nWe've included a basic analytics query to get you started. Use the `Edit` button below each section to configure it or add more sections.\"}\",\"halfWidth\":null,\"conditionalVisibility\":null},{\"type\":3,\"content\":\"{\"version\":\"KqlItem/1.0\",\"query\":\"union withsource=TableName *\\n| summarize Count=count() by TableName\\n| render barchart\",\"showQuery\":false,\"size\":1,\"aggregation\":0,\"showAnnotations\":false}\",\"halfWidth\":null,\"conditionalVisibility\":null}],\"isLocked\":false}",
+ "category": "workbook"
+ },
+ "tags": [
+ "TagSample01",
+ "TagSample02"
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "c0deea5e-3344-40f2-96f8-6f8e1c3b5722",
+ "type": "",
+ "location": "westus",
+ "name": "deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "kind": "shared",
+ "properties": {
+ "displayName": "Blah Blah Blah",
+ "userId": "userId",
+ "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":\"{\"json\":\"## New workbook\\r\\n---\\r\\n\\r\\nWelcome to your new workbook. This area will display text formatted as markdown.\\r\\n\\r\\n\\r\\nWe've included a basic analytics query to get you started. Use the `Edit` button below each section to configure it or add more sections.\"}\",\"halfWidth\":null,\"conditionalVisibility\":null},{\"type\":3,\"content\":\"{\"version\":\"KqlItem/1.0\",\"query\":\"union withsource=TableName *\\n| summarize Count=count() by TableName\\n| render barchart\",\"showQuery\":false,\"size\":1,\"aggregation\":0,\"showAnnotations\":false}\",\"halfWidth\":null,\"conditionalVisibility\":null}],\"isLocked\":false}",
+ "version": "ME",
+ "category": "workbook",
+ "timeModified": null,
+ "storageUri": null
+ },
+ "tags": [
+ "TagSample01",
+ "TagSample02"
+ ]
+ }
+ },
+ "201": {
+ "body": {
+ "id": "c0deea5e-3344-40f2-96f8-6f8e1c3b5722",
+ "type": "",
+ "location": "westus",
+ "name": "deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "kind": "shared",
+ "properties": {
+ "displayName": "Blah Blah Blah",
+ "userId": "userId",
+ "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":\"{\"json\":\"## New workbook\\r\\n---\\r\\n\\r\\nWelcome to your new workbook. This area will display text formatted as markdown.\\r\\n\\r\\n\\r\\nWe've included a basic analytics query to get you started. Use the `Edit` button below each section to configure it or add more sections.\"}\",\"halfWidth\":null,\"conditionalVisibility\":null},{\"type\":3,\"content\":\"{\"version\":\"KqlItem/1.0\",\"query\":\"union withsource=TableName *\\n| summarize Count=count() by TableName\\n| render barchart\",\"showQuery\":false,\"size\":1,\"aggregation\":0,\"showAnnotations\":false}\",\"halfWidth\":null,\"conditionalVisibility\":null}],\"isLocked\":false}",
+ "version": "ME",
+ "category": "workbook",
+ "timeModified": null,
+ "storageUri": null
+ },
+ "tags": [
+ "TagSample01",
+ "TagSample02"
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/examples/WorkbookDelete.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/examples/WorkbookDelete.json
new file mode 100644
index 000000000000..19d4cd9b5a38
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/examples/WorkbookDelete.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "api-version": "2020-10-20",
+ "subscriptionId": "subid",
+ "resourceGroupName": "my-resource-group",
+ "resourceName": "deadb33f-5e0d-4064-8ebb-1a4ed0313eb2"
+ },
+ "responses": {
+ "201": {},
+ "204": {}
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/examples/WorkbookGet.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/examples/WorkbookGet.json
new file mode 100644
index 000000000000..487195c8d5dd
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/examples/WorkbookGet.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "api-version": "2020-10-20",
+ "subscriptionId": "6b643656-33eb-422f-aee8-3ac145d124af",
+ "resourceGroupName": "my-resource-group",
+ "resourceName": "deadb33f-5e0d-4064-8ebb-1a4ed0313eb2"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "c0deea5e-3344-40f2-96f8-6f8e1c3b5722",
+ "name": "deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "type": "",
+ "location": "westus",
+ "kind": "shared",
+ "properties": {
+ "displayName": "My New Workbook",
+ "userId": "userId",
+ "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":\"{\"json\":\"## New workbook\\r\\n---\\r\\n\\r\\nWelcome to your new workbook. This area will display text formatted as markdown.\\r\\n\\r\\n\\r\\nWe've included a basic analytics query to get you started. Use the `Edit` button below each section to configure it or add more sections.\"}\",\"halfWidth\":null,\"conditionalVisibility\":null},{\"type\":3,\"content\":\"{\"version\":\"KqlItem/1.0\",\"query\":\"union withsource=TableName *\\n| summarize Count=count() by TableName\\n| render barchart\",\"showQuery\":false,\"size\":1,\"aggregation\":0,\"showAnnotations\":false}\",\"halfWidth\":null,\"conditionalVisibility\":null}],\"isLocked\":false}",
+ "version": "ME",
+ "category": "workbook",
+ "timeModified": null,
+ "storageUri": null
+ },
+ "tags": [
+ "TagSample01",
+ "TagSample02"
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/examples/WorkbookManagedAdd.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/examples/WorkbookManagedAdd.json
new file mode 100644
index 000000000000..4ff6f6e5e4dc
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/examples/WorkbookManagedAdd.json
@@ -0,0 +1,101 @@
+{
+ "parameters": {
+ "api-version": "2020-10-20",
+ "resourceGroupName": "my-resource-group",
+ "subscriptionId": "6b643656-33eb-422f-aee8-3ac145d124af",
+ "resourceName": "deadb33f-5e0d-4064-8ebb-1a4ed0313eb2",
+ "sourceId": "/subscriptions/00000000-0000-0000-0000-00000000/resourcegroups/MyGroup",
+ "workbookProperties": {
+ "id": "/subscriptions/00000000-0000-0000-0000-00000000/resourcegroups/MyGroup/providers/Microsoft.Insights/workbooks/e378d137-1243-4256-b5c4-ad2a937cae79",
+ "name": "e378d137-1243-4256-b5c4-ad2a937cae79",
+ "location": "westus",
+ "tags": {
+ "hidden-title": "tttt"
+ },
+ "kind": "shared",
+ "etag": "\"4a00f78d-0000-0700-0000-5f8f616c1000\"",
+ "identity": {
+ "type": "UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/eu2cgroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id1": {}
+ }
+ },
+ "properties": {
+ "displayName": "tttt",
+ "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":{\"json\":\"test\"},\"name\":\"text - 0\"}],\"isLocked\":false,\"fallbackResourceIds\":[\"/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MyGroup\"]}",
+ "version": "Notebook/1.0",
+ "category": "workbook",
+ "tags": [],
+ "storageUri": "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MyGroup/providers/Microsoft.Storage/storageAccounts/testStorage/blobServices/default/containers/testContainer"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "identity": {
+ "type": "UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/eu2cgroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id1": {
+ "clientId": "fbe75b66-01c5-4f87-a220-233af3270432",
+ "principalId": "075a0ca6-43f6-4434-9abf-c9b1b79f9x19"
+ }
+ }
+ },
+ "id": "/subscriptions/00000000-0000-0000-0000-00000000/resourcegroups/MyGroup/providers/Microsoft.Insights/workbooks/72377f0c-b7e7-4044-a882-471bcbd9696e",
+ "name": "e378d137-1243-4256-b5c4-ad2a937cae79",
+ "type": "Microsoft.Insights/workbooks",
+ "location": "westus",
+ "tags": {
+ "hidden-title": "tttt"
+ },
+ "kind": "user",
+ "etag": "\"4a00f85e-0000-0700-0000-5f8f5dfa0000\"",
+ "properties": {
+ "displayName": "tttt",
+ "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[],\"isLocked\":false,\"fallbackResourceIds\":[\"/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MyGroup/providers/Microsoft.OperationalInsights/workspaces/test-ws\"]}",
+ "version": "Notebook/1.0",
+ "category": "workbook",
+ "userId": "70d90f65-8a70-4e42-b8d5-86gv25e0a90f",
+ "sourceId": "/subscriptions/00000000-0000-0000-0000-00000000/resourcegroups/MyGroup",
+ "timeModified": "2020-10-20T22:00:26.4229554Z",
+ "tags": [],
+ "storageUri": "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MyGroup/providers/Microsoft.Storage/storageAccounts/testStorage/blobServices/default/containers/testContainer"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "identity": {
+ "type": "UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/eu2cgroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id1": {
+ "clientId": "fbe75b66-01c5-4f87-a220-233af3270432",
+ "principalId": "075a0ca6-43f6-4434-9abf-c9b1b79f9x19"
+ }
+ }
+ },
+ "id": "/subscriptions/00000000-0000-0000-0000-00000000/resourcegroups/MyGroup/providers/Microsoft.Insights/workbooks/72377f0c-b7e7-4044-a882-471bcbd9696e",
+ "name": "e378d137-1243-4256-b5c4-ad2a937cae79",
+ "type": "Microsoft.Insights/workbooks",
+ "location": "westus",
+ "tags": {
+ "hidden-title": "tttt"
+ },
+ "kind": "user",
+ "etag": "\"4a00f85e-0000-0700-0000-5f8f5dfa0000\"",
+ "properties": {
+ "displayName": "tttt",
+ "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[],\"isLocked\":false,\"fallbackResourceIds\":[\"/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MyGroup/providers/Microsoft.OperationalInsights/workspaces/test-ws\"]}",
+ "version": "Notebook/1.0",
+ "category": "workbook",
+ "userId": "70d90f65-8a70-4e42-b8d5-86gv25e0a90f",
+ "sourceId": "/subscriptions/00000000-0000-0000-0000-00000000/resourcegroups/MyGroup",
+ "timeModified": "2020-10-20T22:00:26.4229554Z",
+ "tags": [],
+ "storageUri": "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MyGroup/providers/Microsoft.Storage/storageAccounts/testStorage/blobServices/default/containers/testContainer"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/examples/WorkbookManagedGet.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/examples/WorkbookManagedGet.json
new file mode 100644
index 000000000000..f0f8cc223160
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/examples/WorkbookManagedGet.json
@@ -0,0 +1,47 @@
+{
+ "parameters": {
+ "api-version": "2020-10-20",
+ "subscriptionId": "8980832b-9589-4ac2-b322-a6ae6a97f02b",
+ "resourceGroupName": "my-resource-group",
+ "resourceName": "deadb33f-5e0d-4064-8ebb-1a4ed0313eb2"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "identity": {
+ "type": "UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/eu2cgroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id1": {
+ "clientId": "fbe75b66-01c5-4f87-a220-233af3270432",
+ "principalId": "075a0ca6-43f6-4434-9abf-c9b1b79f9x19"
+ },
+ "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/eu2cgroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id2": {
+ "clientId": "47429305-c0d3-40bc-8595-6194sdfdf3dc",
+ "principalId": "bf9ebbc8-b92d-4752-8e66-c999d560326e0"
+ }
+ }
+ },
+ "id": "/subscriptions/8980832b-9589-4ac2-b322-a6ae6a97f02b/resourcegroups/vutest1/providers/Microsoft.Insights/workbooks/76cb9d13-93c0-4939-ab7d-4a7bd959e1ad",
+ "name": "76cb9d13-93c0-4939-ab7d-4a7bd959e1ad",
+ "type": "Microsoft.Insights/workbooks",
+ "location": "westcentralus",
+ "tags": {
+ "hidden-title": "azuremon"
+ },
+ "kind": "shared",
+ "etag": "\"0c003cb4-0000-0600-0000-5f5203c60000\"",
+ "properties": {
+ "displayName": "azuremon",
+ "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":{\"json\":\"testing1\"},\"showPin\":false,\"name\":\"text - 0\"}],\"isLocked\":true,\"fallbackResourceIds\":[\"Azure Monitor\"]}",
+ "version": "Notebook/1.0",
+ "category": "workbook",
+ "userId": "51d1409c-d725-4550-ac03-98c0bef9ef07",
+ "sourceId": "azure monitor",
+ "timeModified": "2020-09-04T09:07:17.735638Z",
+ "tags": [],
+ "storageUri": "/subscriptions/8980832b-9589-4ac2-b322-a6ae6a97f02b/resourceGroups/VuTest1/providers/Microsoft.Storage/storageAccounts/vutest1/blobServices/default/containers/testcmk2"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/examples/WorkbookManagedUpdate.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/examples/WorkbookManagedUpdate.json
new file mode 100644
index 000000000000..5ca493f45419
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/examples/WorkbookManagedUpdate.json
@@ -0,0 +1,71 @@
+{
+ "parameters": {
+ "api-version": "2020-10-20",
+ "subscriptionId": "6b643656-33eb-422f-aee8-3ac145d124af",
+ "resourceGroupName": "my-resource-group",
+ "resourceName": "deadb33f-5e0d-4064-8ebb-1a4ed0313eb2",
+ "sourceId": "/subscriptions/00000000-0000-0000-0000-00000000/resourcegroups/MyGroup",
+ "id": "e378d137-1243-4256-b5c4-562a937cae79",
+ "name": "e378d137-1243-4256-b5c4-562a937cae79",
+ "location": "westus",
+ "tags": null,
+ "type": "Microsoft.Insights/workbooks",
+ "kind": "shared",
+ "identity": {
+ "type": "UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/eu2cgroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id1": {},
+ "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/eu2cgroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id2": {}
+ }
+ },
+ "properties": {
+ "displayName": "tttt",
+ "version": "Notebook/1.0",
+ "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":{\"json\":\"test\"},\"name\":\"text - 0\"}],\"isLocked\":false,\"fallbackResourceIds\":[\"/subscriptions/8980832b-9589-4ac2-b322-a6ae6a97f02b/resourceGroups/MyGroup\"]}",
+ "category": "workbook",
+ "isPersisted": true,
+ "timeModified": "2020-10-20T22:00:26.4229554Z",
+ "tags": [],
+ "storageUri": "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MyGroup/providers/Microsoft.Storage/storageAccounts/testStorage/blobServices/default/containers/testContainer"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "identity": {
+ "type": "UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/eu2cgroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id1": {
+ "clientId": "fbe75b66-01c5-4f87-a220-233af3270432",
+ "principalId": "075a0ca6-43f6-4434-9abf-c9b1b79f9x19"
+ },
+ "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/eu2cgroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id2": {
+ "clientId": "47429305-c0d3-40bc-8595-6194sdfdf3dc",
+ "principalId": "bf9ebbc8-b92d-4752-8e66-c999d560326e0"
+ }
+ }
+ },
+ "id": "/subscriptions/8980832b-9589-4ac2-b322-a6ae6a97f02b/resourcegroups/MyGroup/providers/Microsoft.Insights/workbooks/e378d137-1243-4256-b5c4-562a937cae79",
+ "name": "e378d137-1243-4256-b5c4-562a937cae79",
+ "type": "Microsoft.Insights/workbooks",
+ "location": "westus",
+ "tags": {
+ "hidden-title": "tttt"
+ },
+ "kind": "shared",
+ "etag": "\"4a00f78d-0000-0700-0000-5f8f616c0000\"",
+ "properties": {
+ "displayName": "tttt",
+ "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":{\"json\":\"test\"},\"name\":\"text - 0\"}],\"isLocked\":false,\"fallbackResourceIds\":[\"/subscriptions/8980832b-9589-4ac2-b322-a6ae6a97f02b/resourceGroups/MyGroup\"]}",
+ "version": "Notebook/1.0",
+ "category": "workbook",
+ "userId": "70d90f65-8a70-4e42-b8d5-863725e0a90f",
+ "sourceId": "/subscriptions/8980832b-9589-4ac2-b322-a6ae6a97f02b/resourcegroups/MyGroup",
+ "timeModified": "2020-10-20T22:15:08.1875458Z",
+ "tags": [],
+ "storageUri": "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MyGroup/providers/Microsoft.Storage/storageAccounts/testStorage/blobServices/default/containers/testContainer"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/examples/WorkbookUpdate.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/examples/WorkbookUpdate.json
new file mode 100644
index 000000000000..d16fecb33284
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/examples/WorkbookUpdate.json
@@ -0,0 +1,51 @@
+{
+ "parameters": {
+ "api-version": "2020-10-20",
+ "subscriptionId": "6b643656-33eb-422f-aee8-3ac145d124af",
+ "resourceGroupName": "my-resource-group",
+ "resourceName": "deadb33f-5e0d-4064-8ebb-1a4ed0313eb2",
+ "sourceId": "/subscriptions/ad2f1a83-caac-4e21-9d2a-9ca3f87105e2/resourceGroups/Default-Web-WestUS/providers/Microsoft.Web/sites/MyTestApp-CodeLens1",
+ "workbookProperties": {
+ "name": "deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "location": "west us",
+ "kind": "shared",
+ "tags": [
+ "TagSample01",
+ "TagSample02"
+ ],
+ "properties": {
+ "name": "Blah Blah Blah",
+ "userId": "userId",
+ "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":\"{\"json\":\"## New workbook\\r\\n---\\r\\n\\r\\nWelcome to your new workbook. This area will display text formatted as markdown.\\r\\n\\r\\n\\r\\nWe've included a basic analytics query to get you started. Use the `Edit` button below each section to configure it or add more sections.\"}\",\"halfWidth\":null,\"conditionalVisibility\":null},{\"type\":3,\"content\":\"{\"version\":\"KqlItem/1.0\",\"query\":\"union withsource=TableName *\\n| summarize Count=count() by TableName\\n| render barchart\",\"showQuery\":false,\"size\":1,\"aggregation\":0,\"showAnnotations\":false}\",\"halfWidth\":null,\"conditionalVisibility\":null}],\"isLocked\":false}",
+ "version": "ME",
+ "workbookId": "deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "category": "workbook",
+ "timeModified": null
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "c0deea5e-3344-40f2-96f8-6f8e1c3b5722",
+ "type": "",
+ "location": "westus",
+ "name": "deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "kind": "shared",
+ "tags": [
+ "TagSample01",
+ "TagSample02"
+ ],
+ "properties": {
+ "displayName": "Blah Blah Blah",
+ "userId": "userId",
+ "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":\"{\"json\":\"## New workbook\\r\\n---\\r\\n\\r\\nWelcome to your new workbook. This area will display text formatted as markdown.\\r\\n\\r\\n\\r\\nWe've included a basic analytics query to get you started. Use the `Edit` button below each section to configure it or add more sections.\"}\",\"halfWidth\":null,\"conditionalVisibility\":null},{\"type\":3,\"content\":\"{\"version\":\"KqlItem/1.0\",\"query\":\"union withsource=TableName *\\n| summarize Count=count() by TableName\\n| render barchart\",\"showQuery\":false,\"size\":1,\"aggregation\":0,\"showAnnotations\":false}\",\"halfWidth\":null,\"conditionalVisibility\":null}],\"isLocked\":false}",
+ "version": "ME",
+ "category": "workbook",
+ "timeModified": null,
+ "storageUri": null
+ }
+ }
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/examples/WorkbooksList.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/examples/WorkbooksList.json
new file mode 100644
index 000000000000..81a32353127f
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/examples/WorkbooksList.json
@@ -0,0 +1,56 @@
+{
+ "parameters": {
+ "api-version": "2020-10-20",
+ "subscriptionId": "6b643656-33eb-422f-aee8-3ac145d124af",
+ "resourceGroupName": "my-resource-group",
+ "category": "workbook",
+ "sourceId": "/subscriptions/ad2f1a83-caac-4e21-9d2a-9ca3f87105e2/resourceGroups/Default-Web-WestUS/providers/Microsoft.Web/sites/MyTestApp-CodeLens1"
+ },
+ "responses": {
+ "200": {
+ "body": [
+ {
+ "id": "c0deea5e-3344-40f2-96f8-6f8e1c3b5722",
+ "type": "",
+ "location": "westus",
+ "name": "deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "tags": [],
+ "properties": {
+ "name": "My Workbook 1",
+ "userId": "userId",
+ "sourceId": "Azure Monitor",
+ "serializedData": "{\"verion\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":\"{\"json\":\"## New workbook\\r\\n---\\r\\n\\r\\nWelcome to your new workbook. This area will display text formatted as markdown.\\r\\n\\r\\n\\r\\nWe've included a basic analytics query to get you started. Use the `Edit` button below each section to configure it or add more sections.\"}\",\"halfWidth\":null,\"conditionalVisibility\":null},{\"type\":3,\"content\":\"{\"version\":\"KqlItem/1.0\",\"query\":\"union withsource=TableName *\\n| summarize Count=count() by TableName\\n| render barchart\",\"showQuery\":false,\"size\":1,\"aggregation\":0,\"showAnnotations\":false}\",\"halfWidth\":null,\"conditionalVisibility\":null}],\"isLocked\":false}",
+ "version": "ME",
+ "workbookId": "deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "kind": "shared",
+ "category": "workbook",
+ "timeModified": null,
+ "storageUri": null
+ }
+ },
+ {
+ "id": "c0deea5e-3344-40f2-96f8-6f8e1c3b5722",
+ "type": "",
+ "location": "westus",
+ "name": "deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "tags": [
+ "SampleTag01",
+ "SampleTag2"
+ ],
+ "properties": {
+ "name": "My Workbook 2",
+ "userId": "userId",
+ "sourceId": "Azure Monitor",
+ "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":\"{\"json\":\"## New workbook\\r\\n---\\r\\n\\r\\nWelcome to your new workbook. This area will display text formatted as markdown.\\r\\n\\r\\n\\r\\nWe've included a basic analytics query to get you started. Use the `Edit` button below each section to configure it or add more sections.\"}\",\"halfWidth\":null,\"conditionalVisibility\":null},{\"type\":3,\"content\":\"{\"version\":\"KqlItem/1.0\",\"query\":\"union withsource=TableName *\\n| summarize Count=count() by TableName\\n| render barchart\",\"showQuery\":false,\"size\":1,\"aggregation\":0,\"showAnnotations\":false}\",\"halfWidth\":null,\"conditionalVisibility\":null}],\"isLocked\":false}",
+ "version": "ME",
+ "workbookId": "deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "kind": "shared",
+ "category": "workbook",
+ "timeModified": null,
+ "storageUri": null
+ }
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/examples/WorkbooksManagedList.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/examples/WorkbooksManagedList.json
new file mode 100644
index 000000000000..a43bd036f185
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/examples/WorkbooksManagedList.json
@@ -0,0 +1,65 @@
+{
+ "parameters": {
+ "api-version": "2020-10-20",
+ "subscriptionId": "6b643656-33eb-422f-aee8-3ac119r124af",
+ "resourceGroupName": "my-resource-group",
+ "category": "workbook",
+ "sourceId": "/subscriptions/ad2f1a83-caac-4e21-9d2a-9ca3f87105e2/resourceGroups/Default-Web-WestUS/providers/Microsoft.Web/sites/MyTestApp-CodeLens1"
+ },
+ "responses": {
+ "200": {
+ "body": [
+ {
+ "identity": {
+ "type": "UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/eu2cgroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id1": {
+ "clientId": "fbe75b66-01c5-4f87-a220-233af3270433",
+ "principalId": "075a0ca6-4326-4434-9abf-c9b1b79f9x19"
+ }
+ }
+ },
+ "id": "c0deea5e-3344-40f2-96f8-6f8e1cdd5722",
+ "type": "",
+ "location": "westus",
+ "name": "deadb33f-8bee-4ddq-a059-9be8dac93960",
+ "tags": [],
+ "properties": {
+ "name": "My Workbook 1",
+ "userId": "userId",
+ "sourceId": "Azure Monitor",
+ "serializedData": "{\"verion\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":\"{\"json\":\"## New workbook\\r\\n---\\r\\n\\r\\nWelcome to your new workbook. This area will display text formatted as markdown.\\r\\n\\r\\n\\r\\nWe've included a basic analytics query to get you started. Use the `Edit` button below each section to configure it or add more sections.\"}\",\"halfWidth\":null,\"conditionalVisibility\":null},{\"type\":3,\"content\":\"{\"version\":\"KqlItem/1.0\",\"query\":\"union withsource=TableName *\\n| summarize Count=count() by TableName\\n| render barchart\",\"showQuery\":false,\"size\":1,\"aggregation\":0,\"showAnnotations\":false}\",\"halfWidth\":null,\"conditionalVisibility\":null}],\"isLocked\":false}",
+ "version": "ME",
+ "workbookId": "deadb33f-8bee-4ddq-a059-9be8dac93960",
+ "kind": "shared",
+ "category": "workbook",
+ "timeModified": null,
+ "storageUri": "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MyGroup/providers/Microsoft.Storage/storageAccounts/testStorage/blobServices/default/containers/testContainer"
+ }
+ },
+ {
+ "id": "c0deea5e-3344-40f2-96f8-6f8e1cdd5722",
+ "type": "",
+ "location": "westus",
+ "name": "deadb33f-8bee-4ddq-a059-9be8dac93960",
+ "tags": [
+ "SampleTag01",
+ "SampleTag2"
+ ],
+ "properties": {
+ "name": "My Workbook 2",
+ "userId": "userId",
+ "sourceId": "Azure Monitor",
+ "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":\"{\"json\":\"## New workbook\\r\\n---\\r\\n\\r\\nWelcome to your new workbook. This area will display text formatted as markdown.\\r\\n\\r\\n\\r\\nWe've included a basic analytics query to get you started. Use the `Edit` button below each section to configure it or add more sections.\"}\",\"halfWidth\":null,\"conditionalVisibility\":null},{\"type\":3,\"content\":\"{\"version\":\"KqlItem/1.0\",\"query\":\"union withsource=TableName *\\n| summarize Count=count() by TableName\\n| render barchart\",\"showQuery\":false,\"size\":1,\"aggregation\":0,\"showAnnotations\":false}\",\"halfWidth\":null,\"conditionalVisibility\":null}],\"isLocked\":false}",
+ "version": "ME",
+ "workbookId": "deadb33f-8bee-4ddq-a059-9be8dac93960",
+ "kind": "shared",
+ "category": "workbook",
+ "timeModified": null,
+ "storageUri": "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MyGroup/providers/Microsoft.Storage/storageAccounts/testStorage/blobServices/default/containers/testContainer"
+ }
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/myworkbooks_API.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/myworkbooks_API.json
new file mode 100644
index 000000000000..336f2a6b00e3
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/myworkbooks_API.json
@@ -0,0 +1,578 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "ApplicationInsightsManagementClient",
+ "description": "Azure Application Insights private workbook type.",
+ "version": "2020-10-20"
+ },
+ "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.Insights/myWorkbooks": {
+ "get": {
+ "description": "Get all private workbooks defined within a specified resource group and category.",
+ "operationId": "MyWorkbooks_ListByResourceGroup",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/CategoryParameter"
+ },
+ {
+ "$ref": "#/parameters/TagsParameter"
+ },
+ {
+ "$ref": "#/parameters/CanFetchWorkbookContentParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A list containing 0 or more private workbook definitions.",
+ "schema": {
+ "$ref": "#/definitions/MyWorkbooksListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/MyWorkbookError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "x-ms-examples": {
+ "WorkbooksList": {
+ "$ref": "./examples/MyWorkbooksList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Insights/myWorkbooks": {
+ "get": {
+ "description": "Get all private workbooks defined within a specified subscription and category.",
+ "operationId": "MyWorkbooks_ListBySubscription",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/CategoryParameter"
+ },
+ {
+ "$ref": "#/parameters/TagsParameter"
+ },
+ {
+ "$ref": "#/parameters/CanFetchWorkbookContentParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A list containing 0 or more private workbook definitions.",
+ "schema": {
+ "$ref": "#/definitions/MyWorkbooksListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/MyWorkbookError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "x-ms-examples": {
+ "WorkbooksList": {
+ "$ref": "./examples/MyWorkbooksList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/myWorkbooks/{resourceName}": {
+ "get": {
+ "description": "Get a single private workbook by its resourceName.",
+ "operationId": "MyWorkbooks_Get",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkbookResourceNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A private workbook definition.",
+ "schema": {
+ "$ref": "#/definitions/MyWorkbook"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/MyWorkbookError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkbookGet": {
+ "$ref": "./examples/MyWorkbookGet.json"
+ }
+ }
+ },
+ "delete": {
+ "description": "Delete a private workbook.",
+ "operationId": "MyWorkbooks_Delete",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkbookResourceNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "The private workbook has been successfully deleted."
+ },
+ "204": {
+ "description": "The resource doesn't exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/MyWorkbookError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkbookDelete": {
+ "$ref": "./examples/MyWorkbookDelete.json"
+ }
+ }
+ },
+ "put": {
+ "description": "Create a new private workbook.",
+ "operationId": "MyWorkbooks_CreateOrUpdate",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkbookResourceNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "workbookProperties",
+ "description": "Properties that need to be specified to create a new private workbook.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/MyWorkbook"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The newly created private workbook.",
+ "schema": {
+ "$ref": "#/definitions/MyWorkbook"
+ }
+ },
+ "201": {
+ "description": "The newly created private workbook.",
+ "schema": {
+ "$ref": "#/definitions/MyWorkbook"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/MyWorkbookError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkbookAdd": {
+ "$ref": "./examples/MyWorkbookAdd.json"
+ }
+ }
+ },
+ "patch": {
+ "description": "Updates a private workbook that has already been added.",
+ "operationId": "MyWorkbooks_Update",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkbookResourceNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "workbookProperties",
+ "description": "Properties that need to be specified to create a new private workbook.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/MyWorkbook"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The private workbook definition updated.",
+ "schema": {
+ "$ref": "#/definitions/MyWorkbook"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/MyWorkbookError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkbookUpdate": {
+ "$ref": "./examples/MyWorkbookUpdate.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "MyWorkbookResource": {
+ "properties": {
+ "identity": {
+ "description": "Identity used for BYOS",
+ "$ref": "#/definitions/ManagedIdentity"
+ },
+ "id": {
+ "type": "string",
+ "description": "Azure resource Id",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
+ },
+ "name": {
+ "type": "string",
+ "description": "Azure resource name",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
+ },
+ "type": {
+ "type": "string",
+ "description": "Azure resource type",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
+ },
+ "location": {
+ "type": "string",
+ "description": "Resource location",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
+ },
+ "tags": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags"
+ }
+ },
+ "x-ms-azure-resource": true,
+ "description": "An azure resource object"
+ },
+ "MyWorkbooksListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/MyWorkbook"
+ },
+ "description": "An array of private workbooks."
+ }
+ },
+ "description": "Workbook list result."
+ },
+ "MyWorkbook": {
+ "description": "An Application Insights private workbook definition.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/MyWorkbookResource"
+ }
+ ],
+ "properties": {
+ "kind": {
+ "type": "string",
+ "description": "The kind of workbook. Choices are user and shared.",
+ "enum": [
+ "user",
+ "shared"
+ ],
+ "x-ms-enum": {
+ "name": "SharedTypeKind",
+ "modelAsString": true
+ }
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "description": "Metadata describing a workbook for an Azure resource.",
+ "$ref": "#/definitions/MyWorkbookProperties"
+ }
+ }
+ },
+ "MyWorkbookProperties": {
+ "description": "Properties that contain a private workbook.",
+ "required": [
+ "displayName",
+ "category",
+ "serializedData"
+ ],
+ "properties": {
+ "displayName": {
+ "type": "string",
+ "description": "The user-defined name of the private workbook."
+ },
+ "serializedData": {
+ "type": "string",
+ "description": "Configuration of this particular private workbook. Configuration data is a string containing valid JSON"
+ },
+ "version": {
+ "type": "string",
+ "description": "This instance's version of the data model. This can change as new features are added that can be marked private workbook."
+ },
+ "timeModified": {
+ "type": "string",
+ "description": "Date and time in UTC of the last modification that was made to this private workbook definition.",
+ "readOnly": true
+ },
+ "category": {
+ "type": "string",
+ "description": "Workbook category, as defined by the user at creation time."
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "A list of 0 or more tags that are associated with this private workbook definition"
+ },
+ "userId": {
+ "type": "string",
+ "description": "Unique user id of the specific user that owns this private workbook.",
+ "readOnly": true
+ },
+ "sourceId": {
+ "type": "string",
+ "description": "Optional resourceId for a source resource."
+ },
+ "storageUri": {
+ "type": "string",
+ "description": "BYOS Storage Account URI"
+ }
+ }
+ },
+ "ErrorFieldContract": {
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "Property level error code."
+ },
+ "message": {
+ "type": "string",
+ "description": "Human-readable representation of property-level error."
+ },
+ "target": {
+ "type": "string",
+ "description": "Property name."
+ }
+ },
+ "description": "Error Field contract."
+ },
+ "MyWorkbookError": {
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "Service-defined error code. This code serves as a sub-status for the HTTP error code specified in the response."
+ },
+ "message": {
+ "type": "string",
+ "description": "Human-readable representation of the error."
+ },
+ "details": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorFieldContract"
+ },
+ "description": "The list of invalid fields send in request, in case of validation error."
+ }
+ },
+ "description": "Error message body that will indicate why the operation failed."
+ },
+ "ManagedIdentity": {
+ "description": "Customer Managed Identity",
+ "properties": {
+ "userAssignedIdentities": {
+ "$ref": "#/definitions/UserAssignedIdentities"
+ },
+ "type": {
+ "type": "string",
+ "description": "The identity type.",
+ "enum": [
+ "UserAssigned",
+ "None"
+ ]
+ }
+ }
+ },
+ "UserAssignedIdentities": {
+ "description": "Customer Managed Identity",
+ "properties": {
+ "principalId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The principal ID of resource identity."
+ },
+ "tenantId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The tenant ID of resource."
+ }
+ }
+ }
+ },
+ "parameters": {
+ "WorkbookResourceNameParameter": {
+ "name": "resourceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Application Insights component resource.",
+ "x-ms-parameter-location": "method"
+ },
+ "CategoryParameter": {
+ "name": "category",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "workbook",
+ "TSG",
+ "performance",
+ "retention"
+ ],
+ "x-ms-enum": {
+ "name": "CategoryType",
+ "modelAsString": true
+ },
+ "description": "Category of workbook to return.",
+ "x-ms-parameter-location": "method"
+ },
+ "SourceIdParameter": {
+ "name": "sourceId",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "Azure Resource Id that will fetch all linked workbooks.",
+ "x-ms-parameter-location": "method"
+ },
+ "ResourceIdParameter": {
+ "name": "resourceId",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "Azure Resource Id or any target workbook resource id.",
+ "x-ms-parameter-location": "method"
+ },
+ "CanFetchWorkbookContentParameter": {
+ "name": "canFetchContent",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "description": "Flag indicating whether or not to return the full content for each applicable workbook. If false, only return summary content for workbooks.",
+ "x-ms-parameter-location": "method"
+ },
+ "TagsParameter": {
+ "name": "tags",
+ "in": "query",
+ "required": false,
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "csv",
+ "description": "Tags presents on each workbook returned.",
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/workbookOperations_API.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/workbookOperations_API.json
new file mode 100644
index 000000000000..64553e8f509f
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/workbookOperations_API.json
@@ -0,0 +1,158 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "WorkbookClient",
+ "description": "Azure client for Workbook.",
+ "version": "2020-10-20"
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "security": [
+ {
+ "azure_auth": [
+ "user_impersonation"
+ ]
+ }
+ ],
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Azure Active Directory OAuth2 Flow.",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
+ "paths": {
+ "/providers/Microsoft.Insights/operations": {
+ "get": {
+ "tags": [
+ "Operations"
+ ],
+ "description": "Lists all of the available insights REST API operations.",
+ "operationId": "Operations_List",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/OperationListResult"
+ }
+ },
+ "default": {
+ "description": "Insights error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ }
+ }
+ },
+ "definitions": {
+ "ErrorResponse": {
+ "description": "Error response indicates Insights service is not able to process the incoming request. The reason is provided in the error message.",
+ "type": "object",
+ "properties": {
+ "code": {
+ "description": "Error code.",
+ "type": "string"
+ },
+ "message": {
+ "description": "Error message indicating why the operation failed.",
+ "type": "string"
+ },
+ "details": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorFieldContract"
+ },
+ "description": "The list of invalid fields send in request, in case of validation error."
+ }
+ }
+ },
+ "ErrorFieldContract": {
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "Property level error code."
+ },
+ "message": {
+ "type": "string",
+ "description": "Human-readable representation of property-level error."
+ },
+ "target": {
+ "type": "string",
+ "description": "Property name."
+ }
+ },
+ "description": "Error Field contract."
+ },
+ "Operation": {
+ "description": "Azure Workbooks REST API operation",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Operation name: {provider}/{resource}/{operation}",
+ "type": "string"
+ },
+ "display": {
+ "description": "The object that represents the operation.",
+ "properties": {
+ "provider": {
+ "description": "Service provider: Microsoft.Insights",
+ "type": "string"
+ },
+ "resource": {
+ "description": "Resource on which the operation is performed: Profile, endpoint, etc.",
+ "type": "string"
+ },
+ "operation": {
+ "description": "Operation type: Read, write, delete, etc.",
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ "OperationListResult": {
+ "description": "Result of the request to list Azure Workbooks operations. It contains a list of operations and a URL link to get the next set of results.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Operation"
+ },
+ "description": "List of Workbook operations supported by the Microsoft.Insights resource provider."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of operation list results if there are any."
+ }
+ }
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/workbooks_API.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/workbooks_API.json
new file mode 100644
index 000000000000..4a5f1d28cd0e
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/workbooks_API.json
@@ -0,0 +1,593 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "ApplicationInsightsManagementClient",
+ "description": "Azure Application Insights workbook type.",
+ "version": "2020-10-20"
+ },
+ "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.Insights/workbooks": {
+ "get": {
+ "description": "Get all Workbooks defined within a specified resource group and category.",
+ "operationId": "Workbooks_ListByResourceGroup",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/CategoryParameter"
+ },
+ {
+ "$ref": "#/parameters/TagsParameter"
+ },
+ {
+ "$ref": "#/parameters/SourceIdParameter"
+ },
+ {
+ "$ref": "#/parameters/CanFetchWorkbookContentParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A list containing 0 or more workbook definitions.",
+ "schema": {
+ "$ref": "#/definitions/WorkbooksListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/WorkbookError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "x-ms-examples": {
+ "WorkbooksList": {
+ "$ref": "./examples/WorkbooksList.json"
+ },
+ "WorkbooksManagedList": {
+ "$ref": "./examples/WorkbooksManagedList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/workbooks/{resourceName}": {
+ "get": {
+ "description": "Get a single workbook by its resourceName.",
+ "operationId": "Workbooks_Get",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkbookResourceNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A workbook definition.",
+ "schema": {
+ "$ref": "#/definitions/Workbook"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/WorkbookError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkbookGet": {
+ "$ref": "./examples/WorkbookGet.json"
+ },
+ "WorkbookManagedGet": {
+ "$ref": "./examples/WorkbookManagedGet.json"
+ }
+ }
+ },
+ "delete": {
+ "description": "Delete a workbook.",
+ "operationId": "Workbooks_Delete",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkbookResourceNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "The workbook has been successfully deleted."
+ },
+ "204": {
+ "description": "The resource doesn't exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/WorkbookError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkbookDelete": {
+ "$ref": "./examples/WorkbookDelete.json"
+ }
+ }
+ },
+ "put": {
+ "description": "Create a new workbook.",
+ "operationId": "Workbooks_CreateOrUpdate",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkbookResourceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SourceIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "workbookProperties",
+ "description": "Properties that need to be specified to create a new workbook.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/Workbook"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The newly created workbook.",
+ "schema": {
+ "$ref": "#/definitions/Workbook"
+ }
+ },
+ "201": {
+ "description": "The newly created workbook.",
+ "schema": {
+ "$ref": "#/definitions/Workbook"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/WorkbookError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkbookManagedAdd": {
+ "$ref": "./examples/WorkbookManagedAdd.json"
+ },
+ "WorkbookAdd": {
+ "$ref": "./examples/WorkbookAdd.json"
+ }
+ }
+ },
+ "patch": {
+ "description": "Updates a workbook that has already been added.",
+ "operationId": "Workbooks_Update",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkbookResourceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SourceIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "WorkbookUpdateParameters",
+ "description": "Properties that need to be specified to create a new workbook.",
+ "in": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/WorkbookUpdateParameters"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The workbook definition updated.",
+ "schema": {
+ "$ref": "#/definitions/Workbook"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/WorkbookError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkbookManagedUpdate": {
+ "$ref": "./examples/WorkbookManagedUpdate.json"
+ },
+ "WorkbookUpdate": {
+ "$ref": "./examples/WorkbookUpdate.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "Resource": {
+ "properties": {
+ "identity": {
+ "description": "Identity used for BYOS",
+ "$ref": "#/definitions/ManagedIdentity"
+ },
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Azure resource Id"
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Azure resource name. This is GUID value. The display name should be assigned within properties field."
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Azure resource type"
+ },
+ "kind": {
+ "type": "string",
+ "description": "The kind of workbook. Choices are user and shared.",
+ "enum": [
+ "user",
+ "shared"
+ ],
+ "x-ms-enum": {
+ "name": "SharedTypeKind",
+ "modelAsString": true
+ }
+ },
+ "location": {
+ "type": "string",
+ "description": "Resource location",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags"
+ }
+ },
+ "required": [
+ "location"
+ ],
+ "x-ms-azure-resource": true,
+ "description": "An azure resource object"
+ },
+ "WorkbooksListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Workbook"
+ },
+ "description": "An array of workbooks."
+ }
+ },
+ "description": "Workbook list result."
+ },
+ "Workbook": {
+ "description": "An Application Insights workbook definition.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "description": "Metadata describing a workbook for an Azure resource.",
+ "$ref": "#/definitions/WorkbookProperties"
+ }
+ }
+ },
+ "WorkbookProperties": {
+ "description": "Properties that contain a workbook.",
+ "required": [
+ "displayName",
+ "category",
+ "serializedData"
+ ],
+ "properties": {
+ "displayName": {
+ "type": "string",
+ "description": "The user-defined name (display name) of the workbook."
+ },
+ "serializedData": {
+ "type": "string",
+ "description": "Configuration of this particular workbook. Configuration data is a string containing valid JSON"
+ },
+ "timeModified": {
+ "type": "string",
+ "description": "Date and time in UTC of the last modification that was made to this workbook definition.",
+ "readOnly": true
+ },
+ "category": {
+ "type": "string",
+ "description": "Workbook category, as defined by the user at creation time."
+ },
+ "version": {
+ "type": "string",
+ "description": "Workbook version"
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "A list of 0 or more tags that are associated with this workbook definition"
+ },
+ "userId": {
+ "type": "string",
+ "description": "Unique user id of the specific user that owns this workbook.",
+ "readOnly": true
+ },
+ "sourceId": {
+ "type": "string",
+ "description": "ResourceId for a source resource."
+ },
+ "storageUri": {
+ "type": "string",
+ "description": "BYOS Storage Account URI"
+ }
+ }
+ },
+ "WorkbookUpdateParameters": {
+ "properties": {
+ "kind": {
+ "type": "string",
+ "description": "The kind of workbook. Choices are user and shared.",
+ "enum": [
+ "user",
+ "shared"
+ ],
+ "x-ms-enum": {
+ "name": "SharedTypeKind",
+ "modelAsString": true
+ }
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags"
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "description": "Metadata describing a workbook for an Azure resource.",
+ "$ref": "#/definitions/WorkbookPropertiesUpdateParameters"
+ }
+ },
+ "description": "The parameters that can be provided when updating workbook properties properties."
+ },
+ "WorkbookPropertiesUpdateParameters": {
+ "description": "Properties that contain a workbook for PATCH operation.",
+ "properties": {
+ "displayName": {
+ "type": "string",
+ "description": "The user-defined name (display name) of the workbook."
+ },
+ "serializedData": {
+ "type": "string",
+ "description": "Configuration of this particular workbook. Configuration data is a string containing valid JSON"
+ },
+ "category": {
+ "type": "string",
+ "description": "Workbook category, as defined by the user at creation time."
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "A list of 0 or more tags that are associated with this workbook definition"
+ }
+ }
+ },
+ "ErrorFieldContract": {
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "Property level error code."
+ },
+ "message": {
+ "type": "string",
+ "description": "Human-readable representation of property-level error."
+ },
+ "target": {
+ "type": "string",
+ "description": "Property name."
+ }
+ },
+ "description": "Error Field contract."
+ },
+ "WorkbookError": {
+ "description": "Error message body that will indicate why the operation failed.",
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "Service-defined error code. This code serves as a sub-status for the HTTP error code specified in the response."
+ },
+ "message": {
+ "type": "string",
+ "description": "Human-readable representation of the error."
+ },
+ "details": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorFieldContract"
+ },
+ "description": "The list of invalid fields send in request, in case of validation error."
+ }
+ }
+ },
+ "ManagedIdentity": {
+ "description": "Customer Managed Identity",
+ "properties": {
+ "userAssignedIdentities": {
+ "$ref": "#/definitions/UserAssignedIdentities"
+ },
+ "type": {
+ "type": "string",
+ "description": "The identity type.",
+ "enum": [
+ "UserAssigned",
+ "None"
+ ]
+ }
+ }
+ },
+ "UserAssignedIdentities": {
+ "description": "Customer Managed Identity",
+ "properties": {
+ "principalId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The principal ID of resource identity."
+ },
+ "tenantId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The tenant ID of resource."
+ }
+ }
+ }
+ },
+ "parameters": {
+ "WorkbookResourceNameParameter": {
+ "name": "resourceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Application Insights component resource.",
+ "x-ms-parameter-location": "method"
+ },
+ "CategoryParameter": {
+ "name": "category",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "workbook",
+ "TSG",
+ "performance",
+ "retention"
+ ],
+ "x-ms-enum": {
+ "name": "CategoryType",
+ "modelAsString": true
+ },
+ "description": "Category of workbook to return.",
+ "x-ms-parameter-location": "method"
+ },
+ "SourceIdParameter": {
+ "name": "sourceId",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "Azure Resource Id that will fetch all linked workbooks.",
+ "x-ms-parameter-location": "method"
+ },
+ "CanFetchWorkbookContentParameter": {
+ "name": "canFetchContent",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "description": "Flag indicating whether or not to return the full content for each applicable workbook. If false, only return summary content for workbooks.",
+ "x-ms-parameter-location": "method"
+ },
+ "TagsParameter": {
+ "name": "tags",
+ "in": "query",
+ "required": false,
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "csv",
+ "description": "Tags presents on each workbook returned.",
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/readme.md b/specification/applicationinsights/resource-manager/readme.md
index bd369edd1a93..d1aac3e4b801 100644
--- a/specification/applicationinsights/resource-manager/readme.md
+++ b/specification/applicationinsights/resource-manager/readme.md
@@ -103,8 +103,127 @@ directive:
- suppress: DeleteOperationResponses
from: myworkbooks_API.json
reason: 'delete API returns empty response and is already part of the previous api, cannot change it'
+ - suppress: DeleteOperationResponses
+ from: analyticsItems_API.json
+ reason: 'consistent with existing delete response | owned by another team'
+ - suppress: DeleteOperationResponses
+ from: componentAnnotations_API.json
+ reason: 'consistent with existing delete response | owned by another team'
+ - suppress: DeleteOperationResponses
+ from: componentApiKeys_API.json
+ reason: 'consistent with existing delete response | owned by another team'
+ - suppress: DeleteOperationResponses
+ from: componentContinuousExport_API.json
+ reason: 'consistent with existing delete response | owned by another team'
+ - suppress: DeleteOperationResponses
+ from: componentWorkItemConfigs_API.json
+ reason: 'consistent with existing delete response | owned by another team'
+ - suppress: DeleteOperationResponses
+ from: favorites_API.json
+ reason: 'consistent with existing delete response | owned by another team'
+ - suppress: DeleteOperationResponses
+ from: workbooks_API.json
+ reason: 'consistent with existing delete response'
+ - suppress: DefaultErrorResponseSchema
+ from: componentAnnotations_API.json
+ reason: 'consistent with existing default error response | owned by another team'
+ - suppress: DefaultErrorResponseSchema
+ from: componentWorkItemConfigs_API.json
+ reason: 'consistent with existing default error response | owned by another team'
+ - suppress: DefaultErrorResponseSchema
+ from: workbooks_API.json
+ reason: 'consistent with existing default error response'
+ - suppress: DefaultErrorResponseSchema
+ from: workbookOperations_API.json
+ reason: 'consistent with existing default error response'
+ - suppress: RequiredDefaultResponse
+ from: analyticsItems_API.json
+ reason: 'consistent with existing default response | owned by another team'
+ - suppress: RequiredDefaultResponse
+ from: componentAnnotations_API.json
+ reason: 'consistent with existing default response | owned by another team'
+ - suppress: RequiredDefaultResponse
+ from: componentApiKeys_API.json
+ reason: 'consistent with existing default response | owned by another team'
+ - suppress: RequiredDefaultResponse
+ from: componentContinuousExport_API.json
+ reason: 'consistent with existing default response | owned by another team'
+ - suppress: RequiredDefaultResponse
+ from: componentFeaturesAndPricing_API.json
+ reason: 'consistent with existing default response | owned by another team'
+ - suppress: RequiredDefaultResponse
+ from: componentProactiveDetection_API.json
+ reason: 'consistent with existing default response | owned by another team'
+ - suppress: RequiredDefaultResponse
+ from: components_API.json
+ reason: 'consistent with existing default response | owned by another team'
+ - suppress: RequiredDefaultResponse
+ from: componentWorkItemConfigs_API.json
+ reason: 'consistent with existing default response | owned by another team'
+ - suppress: RequiredDefaultResponse
+ from: favorites_API.json
+ reason: 'consistent with existing default response | owned by another team'
+ - suppress: RequiredDefaultResponse
+ from: webTestLocations_API.json
+ reason: 'consistent with existing default response | owned by another team'
+ - suppress: RequiredDefaultResponse
+ from: webTestLocations_API.json
+ reason: 'consistent with existing default response | owned by another team'
+ - suppress: RequiredDefaultResponse
+ from: webTests_API.json
+ reason: 'consistent with existing default response | owned by another team'
+ - suppress: PathResourceTypeNameCamelCase
+ from: componentAnnotations_API.json
+ reason: 'consistent with existing path | owned by another team'
+ - suppress: PathResourceTypeNameCamelCase
+ from: componentApiKeys_API.json
+ reason: 'consistent with existing path | owned by another team'
+ - suppress: PathResourceTypeNameCamelCase
+ from: componentProactiveDetection_API.json
+ reason: 'consistent with existing path | owned by another team'
+ - suppress: PathResourceTypeNameCamelCase
+ from: componentWorkItemConfigs_API.json
+ reason: 'consistent with existing path | owned by another team'
+ - suppress: PathResourceProviderNamePascalCase
+ from: analyticsItems_API.json
+ reason: 'consistent with existing path | owned by another team'
+ - suppress: GetCollectionResponseSchema
+ from: componentProactiveDetection_API.json
+ reason: 'consistent with existing response schema | owned by another team'
+ - suppress: IntegerTypeMustHaveFormat
+ from: componentFeaturesAndPricing_API.json
+ reason: 'consistent with existing format | owned by another team'
+ - suppress: IntegerTypeMustHaveFormat
+ from: components_API.json
+ reason: 'consistent with existing format | owned by another team'
+ - suppress: TopLevelResourcesListBySubscription
+ from: workbooks_API.json
+ reason: 'get workbook list by subscription is not supported'
+ - suppress: OperationsAPIImplementation
+ reason: 'Previously implemented operation apis are using an incorrect RP case format which I cannot change.'
```
+### Tag: package-2020-10-20
+
+These settings apply only when `--tag=package-2020-10-20` is specified on the command line.
+
+``` yaml $(tag) == 'package-2020-10-20'
+input-file:
+ - Microsoft.Insights/stable/2015-05-01/analyticsItems_API.json
+ - Microsoft.Insights/stable/2015-05-01/componentAnnotations_API.json
+ - Microsoft.Insights/stable/2015-05-01/componentApiKeys_API.json
+ - Microsoft.Insights/stable/2015-05-01/componentContinuousExport_API.json
+ - Microsoft.Insights/stable/2015-05-01/componentFeaturesAndPricing_API.json
+ - Microsoft.Insights/stable/2015-05-01/componentProactiveDetection_API.json
+ - Microsoft.Insights/stable/2015-05-01/components_API.json
+ - Microsoft.Insights/stable/2015-05-01/componentWorkItemConfigs_API.json
+ - Microsoft.Insights/stable/2015-05-01/favorites_API.json
+ - Microsoft.Insights/stable/2015-05-01/webTestLocations_API.json
+ - Microsoft.Insights/stable/2015-05-01/webTests_API.json
+ - Microsoft.Insights/stable/2020-10-20/myworkbooks_API.json
+ - Microsoft.Insights/stable/2020-10-20/workbooks_API.json
+ - Microsoft.Insights/stable/2020-10-20/workbookOperations_API.json
+```
### Tag: package-preview-2020-10
@@ -114,6 +233,7 @@ These settings apply only when `--tag=package-preview-2020-10` is specified on t
input-file:
- Microsoft.Insights/preview/2020-10-05-preview/webTests_API.json
```
+
### Tag: package-preview-2020-06-only
These settings apply only when `--tag=package-preview-2020-06-only` is specified on the command line.
diff --git a/specification/attestation/data-plane/Microsoft.Attestation/preview/2018-09-01-preview/examples/Get_Policy.json b/specification/attestation/data-plane/Microsoft.Attestation/preview/2018-09-01-preview/examples/Get_Policy.json
deleted file mode 100644
index 0142b955f43a..000000000000
--- a/specification/attestation/data-plane/Microsoft.Attestation/preview/2018-09-01-preview/examples/Get_Policy.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "parameters": {
- "tenantBaseUrl": "'https://mytest.attest.azure.net'",
- "api-version": "2018-09-01-preview",
- "tee": "SgxEnclave"
- },
- "responses": {
- "200": {
- "body": {
- "policy": "testpolicy"
- }
- },
- "400": {
- "body": {
- "error": {
- "code": "400",
- "message": "error message"
- }
- }
- },
- "401": {
- "description": "Request is unauthorized",
- "body": ""
- }
- }
-}
diff --git a/specification/attestation/data-plane/Microsoft.Attestation/preview/2018-09-01-preview/attestation.json b/specification/attestation/data-plane/Microsoft.Attestation/stable/2018-09-01/attestation.json
similarity index 97%
rename from specification/attestation/data-plane/Microsoft.Attestation/preview/2018-09-01-preview/attestation.json
rename to specification/attestation/data-plane/Microsoft.Attestation/stable/2018-09-01/attestation.json
index 302dcc6c8392..111f26c59183 100644
--- a/specification/attestation/data-plane/Microsoft.Attestation/preview/2018-09-01-preview/attestation.json
+++ b/specification/attestation/data-plane/Microsoft.Attestation/stable/2018-09-01/attestation.json
@@ -3,7 +3,7 @@
"info": {
"title": "AttestationClient",
"description": "Describes the interface for the per-tenant enclave service.",
- "version": "2018-09-01-preview"
+ "version": "2018-09-01"
},
"x-ms-parameterized-host": {
"hostTemplate": "{tenantBaseUrl}",
@@ -323,7 +323,7 @@
{
"name": "policyCertificateToAdd",
"in": "body",
- "description": "An RFC7519 JSON Web Token containing a claim named \"aas-policyCertificate\" whose value is an RFC7517 JSON Web Key which specifies a new key to add. The RFC7519 JWT must be signed with one of the existing signing certificates",
+ "description": "An RFC7519 JSON Web Token containing a claim named \"maa-policyCertificate\" whose value is an RFC7517 JSON Web Key which specifies a new key to add. The RFC7519 JWT must be signed with one of the existing signing certificates",
"required": true,
"schema": {
"type": "string"
@@ -375,7 +375,7 @@
{
"name": "policyCertificateToRemove",
"in": "body",
- "description": "An RFC7519 JSON Web Token containing a claim named \"aas-policyCertificate\" whose value is an RFC7517 JSON Web Key which specifies a new key to update. The RFC7519 JWT must be signed with one of the existing signing certificates",
+ "description": "An RFC7519 JSON Web Token containing a claim named \"maa-policyCertificate\" whose value is an RFC7517 JSON Web Key which specifies a new key to update. The RFC7519 JWT must be signed with one of the existing signing certificates",
"required": true,
"schema": {
"type": "string"
@@ -420,8 +420,8 @@
"tags": [
"Attestation Provider"
],
- "summary": "Retrieves the OpenID Configuration data for the Azure Attestation Service",
- "description": "Retrieves attestation signing keys in use by the attestation service",
+ "summary": "Retrieves the attestation signing keys in use by the attestation service",
+ "description": "Retrieves metadata signing certificates in use by the attestation service",
"operationId": "SigningCertificates_Get",
"responses": {
"200": {
@@ -456,7 +456,7 @@
"Attestation Provider"
],
"summary": "Retrieves the OpenID Configuration data for the Azure Attestation Service",
- "description": "Retrieves metadata about the attestation signing keys in use by the attestation service",
+ "description": "Retrieves metadata about the attestation signing keys in use by the attestation service",
"operationId": "MetadataConfiguration_Get",
"responses": {
"200": {
@@ -514,7 +514,7 @@
"type": "object",
"properties": {
"policy": {
- "description": "String-encoded attestation policy document.",
+ "description": "JSON Web Token whose body is an AttestationPolicyRequest definition.",
"type": "string"
}
}
diff --git a/specification/attestation/data-plane/Microsoft.Attestation/preview/2018-09-01-preview/examples/Add_PolicyCertificate.json b/specification/attestation/data-plane/Microsoft.Attestation/stable/2018-09-01/examples/Add_PolicyCertificate.json
similarity index 100%
rename from specification/attestation/data-plane/Microsoft.Attestation/preview/2018-09-01-preview/examples/Add_PolicyCertificate.json
rename to specification/attestation/data-plane/Microsoft.Attestation/stable/2018-09-01/examples/Add_PolicyCertificate.json
diff --git a/specification/attestation/data-plane/Microsoft.Attestation/preview/2018-09-01-preview/examples/Get_Certs.json b/specification/attestation/data-plane/Microsoft.Attestation/stable/2018-09-01/examples/Get_Certs.json
similarity index 100%
rename from specification/attestation/data-plane/Microsoft.Attestation/preview/2018-09-01-preview/examples/Get_Certs.json
rename to specification/attestation/data-plane/Microsoft.Attestation/stable/2018-09-01/examples/Get_Certs.json
diff --git a/specification/attestation/data-plane/Microsoft.Attestation/preview/2018-09-01-preview/examples/Get_MetadataConfiguration.json b/specification/attestation/data-plane/Microsoft.Attestation/stable/2018-09-01/examples/Get_MetadataConfiguration.json
similarity index 100%
rename from specification/attestation/data-plane/Microsoft.Attestation/preview/2018-09-01-preview/examples/Get_MetadataConfiguration.json
rename to specification/attestation/data-plane/Microsoft.Attestation/stable/2018-09-01/examples/Get_MetadataConfiguration.json
diff --git a/specification/attestation/data-plane/Microsoft.Attestation/stable/2018-09-01/examples/Get_Policy.json b/specification/attestation/data-plane/Microsoft.Attestation/stable/2018-09-01/examples/Get_Policy.json
new file mode 100644
index 000000000000..8972f7418702
--- /dev/null
+++ b/specification/attestation/data-plane/Microsoft.Attestation/stable/2018-09-01/examples/Get_Policy.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "tenantBaseUrl": "'https://mytest.attest.azure.net'",
+ "api-version": "2018-09-01-preview",
+ "tee": "SgxEnclave"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "policy": "eyJhbGciOiJub25lIn0.eyJBdHRlc3RhdGlvblBvbGljeSI6ICJkbVZ5YzJsdmJqMGdNUzR3TzJGMWRHaHZjbWw2WVhScGIyNXlkV3hsYzN0ak9sdDBlWEJsUFQwaUpHbHpMV1JsWW5WbloyRmliR1VpWFNBOVBpQndaWEp0YVhRb0tUdDlPMmx6YzNWaGJtTmxjblZzWlhON1l6cGJkSGx3WlQwOUlpUnBjeTFrWldKMVoyZGhZbXhsSWwwZ1BUNGdhWE56ZFdVb2RIbHdaVDBpYVhNdFpHVmlkV2RuWVdKc1pTSXNJSFpoYkhWbFBXTXVkbUZzZFdVcE8yTTZXM1I1Y0dVOVBTSWtjMmQ0TFcxeWMybG5ibVZ5SWwwZ1BUNGdhWE56ZFdVb2RIbHdaVDBpYzJkNExXMXljMmxuYm1WeUlpd2dkbUZzZFdVOVl5NTJZV3gxWlNrN1l6cGJkSGx3WlQwOUlpUnpaM2d0YlhKbGJtTnNZWFpsSWwwZ1BUNGdhWE56ZFdVb2RIbHdaVDBpYzJkNExXMXlaVzVqYkdGMlpTSXNJSFpoYkhWbFBXTXVkbUZzZFdVcE8yTTZXM1I1Y0dVOVBTSWtjSEp2WkhWamRDMXBaQ0pkSUQwLUlHbHpjM1ZsS0hSNWNHVTlJbkJ5YjJSMVkzUXRhV1FpTENCMllXeDFaVDFqTG5aaGJIVmxLVHRqT2x0MGVYQmxQVDBpSkhOMmJpSmRJRDAtSUdsemMzVmxLSFI1Y0dVOUluTjJiaUlzSUhaaGJIVmxQV011ZG1Gc2RXVXBPMk02VzNSNWNHVTlQU0lrZEdWbElsMGdQVDRnYVhOemRXVW9kSGx3WlQwaWRHVmxJaXdnZG1Gc2RXVTlZeTUyWVd4MVpTazdmVHMifQ."
+ }
+ },
+ "400": {
+ "body": {
+ "error": {
+ "code": "400",
+ "message": "error message"
+ }
+ }
+ },
+ "401": {
+ "description": "Request is unauthorized",
+ "body": ""
+ }
+ }
+}
diff --git a/specification/attestation/data-plane/Microsoft.Attestation/preview/2018-09-01-preview/examples/Get_PolicyCertificates.json b/specification/attestation/data-plane/Microsoft.Attestation/stable/2018-09-01/examples/Get_PolicyCertificates.json
similarity index 100%
rename from specification/attestation/data-plane/Microsoft.Attestation/preview/2018-09-01-preview/examples/Get_PolicyCertificates.json
rename to specification/attestation/data-plane/Microsoft.Attestation/stable/2018-09-01/examples/Get_PolicyCertificates.json
diff --git a/specification/attestation/data-plane/Microsoft.Attestation/preview/2018-09-01-preview/examples/Remove_PolicyCertificate.json b/specification/attestation/data-plane/Microsoft.Attestation/stable/2018-09-01/examples/Remove_PolicyCertificate.json
similarity index 100%
rename from specification/attestation/data-plane/Microsoft.Attestation/preview/2018-09-01-preview/examples/Remove_PolicyCertificate.json
rename to specification/attestation/data-plane/Microsoft.Attestation/stable/2018-09-01/examples/Remove_PolicyCertificate.json
diff --git a/specification/attestation/data-plane/Microsoft.Attestation/preview/2018-09-01-preview/examples/Reset_Policy.json b/specification/attestation/data-plane/Microsoft.Attestation/stable/2018-09-01/examples/Reset_Policy.json
similarity index 100%
rename from specification/attestation/data-plane/Microsoft.Attestation/preview/2018-09-01-preview/examples/Reset_Policy.json
rename to specification/attestation/data-plane/Microsoft.Attestation/stable/2018-09-01/examples/Reset_Policy.json
diff --git a/specification/attestation/data-plane/Microsoft.Attestation/preview/2018-09-01-preview/examples/Set_Policy.json b/specification/attestation/data-plane/Microsoft.Attestation/stable/2018-09-01/examples/Set_Policy.json
similarity index 100%
rename from specification/attestation/data-plane/Microsoft.Attestation/preview/2018-09-01-preview/examples/Set_Policy.json
rename to specification/attestation/data-plane/Microsoft.Attestation/stable/2018-09-01/examples/Set_Policy.json
diff --git a/specification/attestation/data-plane/Microsoft.Attestation/preview/2018-09-01-preview/examples/UpdatePolicy.json b/specification/attestation/data-plane/Microsoft.Attestation/stable/2018-09-01/examples/UpdatePolicy.json
similarity index 100%
rename from specification/attestation/data-plane/Microsoft.Attestation/preview/2018-09-01-preview/examples/UpdatePolicy.json
rename to specification/attestation/data-plane/Microsoft.Attestation/stable/2018-09-01/examples/UpdatePolicy.json
diff --git a/specification/attestation/data-plane/Microsoft.Attestation/stable/2020-10-01/attestation.json b/specification/attestation/data-plane/Microsoft.Attestation/stable/2020-10-01/attestation.json
new file mode 100644
index 000000000000..9d97af18a55d
--- /dev/null
+++ b/specification/attestation/data-plane/Microsoft.Attestation/stable/2020-10-01/attestation.json
@@ -0,0 +1,1084 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "AttestationClient",
+ "description": "Describes the interface for the per-tenant enclave service.",
+ "version": "2020-10-01"
+ },
+ "x-ms-parameterized-host": {
+ "hostTemplate": "{instanceUrl}",
+ "useSchemePrefix": false,
+ "parameters": [
+ {
+ "name": "instanceUrl",
+ "x-ms-parameter-location": "client",
+ "description": "The attestation instance base URI, for example https://mytenant.attest.azure.net.",
+ "required": true,
+ "type": "string",
+ "in": "path",
+ "x-ms-skip-url-encoding": true
+ }
+ ]
+ },
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "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": {
+ "/policies/{attestationType}": {
+ "get": {
+ "tags": [
+ "Policy"
+ ],
+ "summary": "Retrieves the current policy for an attestation type.",
+ "operationId": "Policy_Get",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/AttestationType"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/PolicyResponse"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Policy": {
+ "$ref": "./examples/Get_Policy.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Policy"
+ ],
+ "summary": "Sets the policy for a given attestation type.",
+ "operationId": "Policy_Set",
+ "consumes": [
+ "text/plain"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/AttestationType"
+ },
+ {
+ "name": "newAttestationPolicy",
+ "in": "body",
+ "description": "JWT Expressing the new policy whose body is a StoredAttestationPolicy object.",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/JsonWebToken"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/PolicyResponse"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Set Policy": {
+ "$ref": "./examples/Set_Policy.json"
+ }
+ }
+ }
+ },
+ "/policies/{attestationType}:reset": {
+ "post": {
+ "tags": [
+ "Policy"
+ ],
+ "summary": "Resets the attestation policy for the specified tenant and reverts to the default policy.",
+ "operationId": "Policy_Reset",
+ "consumes": [
+ "text/plain"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/AttestationType"
+ },
+ {
+ "name": "PolicyJws",
+ "in": "body",
+ "description": "JSON Web Signature with an empty policy document",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/JsonWebToken"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success - Returns a JWT signed by the metadata signing key that contains the hash of the supplied policy to be set.",
+ "schema": {
+ "$ref": "#/definitions/PolicyResponse"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Reset Policy": {
+ "$ref": "./examples/Reset_Policy.json"
+ }
+ }
+ }
+ },
+ "/certificates": {
+ "get": {
+ "tags": [
+ "Policy Management Certificates"
+ ],
+ "summary": "Retrieves the set of certificates used to express policy for the current tenant.",
+ "operationId": "PolicyCertificates_Get",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "An RFC7519 JSON Web Token structure containing an RFC7517 JsonWebKeySet which contains the certificates used to validate policy changes",
+ "schema": {
+ "$ref": "#/definitions/PolicyCertificatesResponse"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get PolicyCertificates": {
+ "$ref": "./examples/Get_PolicyCertificates.json"
+ }
+ }
+ }
+ },
+ "/certificates:add": {
+ "post": {
+ "tags": [
+ "Policy Management Certificates"
+ ],
+ "summary": "Adds a new attestation policy certificate to the set of policy management certificates.",
+ "operationId": "PolicyCertificates_Add",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "policyCertificateToAdd",
+ "in": "body",
+ "description": "An RFC7519 JSON Web Token whose body is an RFC7517 JSON Web Key object. The RFC7519 JWT must be signed with one of the existing signing certificates",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/JsonWebToken"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "An RFC7519 JSON Web Token structure containing an RFC7517 JsonWebKeySet which contains the certificates used to validate policy changes",
+ "schema": {
+ "$ref": "#/definitions/PolicyCertificatesModifyResponse"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Add PolicyCertificate": {
+ "$ref": "./examples/Add_PolicyCertificate.json"
+ }
+ }
+ }
+ },
+ "/certificates:remove": {
+ "post": {
+ "tags": [
+ "Policy Management Certificates"
+ ],
+ "summary": "Removes the specified policy management certificate. Note that the final policy management certificate cannot be removed.",
+ "operationId": "PolicyCertificates_Remove",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "policyCertificateToRemove",
+ "in": "body",
+ "description": "An RFC7519 JSON Web Token whose body is an AttestationCertificateManagementBody object. The RFC7519 JWT must be signed with one of the existing signing certificates",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/JsonWebToken"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "An RFC7519 JSON Web Token structure containing an RFC7517 JsonWebKeySet which contains the certificates used to validate policy changes",
+ "schema": {
+ "$ref": "#/definitions/PolicyCertificatesModifyResponse"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Remove PolicyCertificate": {
+ "$ref": "./examples/Remove_PolicyCertificate.json"
+ }
+ }
+ }
+ },
+ "/attest/OpenEnclave": {
+ "post": {
+ "tags": [
+ "Attestation"
+ ],
+ "summary": "Attest to an SGX enclave.",
+ "description": "Processes an OpenEnclave report , producing an artifact. The type of artifact produced is dependent upon attestation policy.",
+ "operationId": "Attestation_AttestOpenEnclave",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "request",
+ "in": "body",
+ "description": "Request object containing the quote",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/AttestOpenEnclaveRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/AttestationResponse"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Attest OpenEnclave": {
+ "$ref": "./examples/AttestOpenEnclave.json"
+ }
+ }
+ }
+ },
+ "/attest/SgxEnclave": {
+ "post": {
+ "tags": [
+ "Attestation"
+ ],
+ "summary": "Attest to an SGX enclave.",
+ "description": "Processes an SGX enclave quote, producing an artifact. The type of artifact produced is dependent upon attestation policy.",
+ "operationId": "Attestation_AttestSgxEnclave",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "request",
+ "in": "body",
+ "description": "Request object containing the quote",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/AttestSgxEnclaveRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/AttestationResponse"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Attest SgxEnclave": {
+ "$ref": "./examples/AttestSgxEnclave.json"
+ }
+ }
+ }
+ },
+ "/attest/Tpm": {
+ "post": {
+ "tags": [
+ "Attestation"
+ ],
+ "summary": "Attest a Virtualization-based Security (VBS) enclave.",
+ "description": "Processes attestation evidence from a VBS enclave, producing an attestation result. The attestation result produced is dependent upon the attestation policy.",
+ "operationId": "Attestation_AttestTpm",
+ "consumes": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "request",
+ "in": "body",
+ "description": "Request object",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/TpmAttestationRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/TpmAttestationResponse"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Attest EdgeTpm": {
+ "$ref": "./examples/AttestVbsEnclave.json"
+ }
+ }
+ }
+ },
+ "/attest/SevSnpVm": {
+ "post": {
+ "tags": [
+ "attestation"
+ ],
+ "summary": "Attest to an SEV SNP Virtual Machine.",
+ "description": "Processes a SEV SNP Boot chain. The type of artifact produced is dependent upon attestation policy.",
+ "operationId": "Attestation_AttestSevSnpVm",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "request",
+ "in": "body",
+ "description": "Request object containing the quote",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/AttestSevSnpVmRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/AttestationResponse"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Attest SevSnpVm": {
+ "$ref": "./examples/AttestSevSnpVm.json"
+ }
+ }
+ }
+ },
+ "/certs": {
+ "get": {
+ "tags": [
+ "OpenID Metadata Discovery"
+ ],
+ "produces": [
+ "application/jwk+json",
+ "application/json"
+ ],
+ "summary": "Retrieves the attestation signing keys in use by the attestation service",
+ "description": "Retrieves metadata signing certificates in use by the attestation service",
+ "operationId": "SigningCertificates_Get",
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "../../../../../common-types/rfcs/rfc7517.json#/definitions/JSONWebKeySet"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Token Signing Certificates": {
+ "$ref": "./examples/Get_Certs.json"
+ }
+ }
+ }
+ },
+ "/.well-known/openid-configuration": {
+ "get": {
+ "tags": [
+ "OpenID Metadata Discovery"
+ ],
+ "summary": "Retrieves the OpenID Configuration data for the Azure Attestation Service",
+ "description": "Retrieves metadata about the attestation signing keys in use by the attestation service",
+ "operationId": "MetadataConfiguration_Get",
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "type": "object"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get OpenID Metadata": {
+ "$ref": "./examples/Get_MetadataConfiguration.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "CloudError": {
+ "x-ms-external": true,
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/CloudErrorBody"
+ }
+ },
+ "description": "An error response from Attestation."
+ },
+ "CloudErrorBody": {
+ "x-ms-external": true,
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "An identifier for the error. Codes are invariant and are intended to be consumed programmatically."
+ },
+ "message": {
+ "type": "string",
+ "description": "A message describing the error, intended to be suitable for displaying in a user interface."
+ }
+ },
+ "description": "An error response from Attestation."
+ },
+ "JsonWebToken": {
+ "description": "An RFC 7519 Json Web Token",
+ "type": "string",
+ "pattern": "[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]*\\.[A-Za-z0-9_-]*",
+ "externalDocs": {
+ "description": "JSON Web Token RFC",
+ "url": "https://tools.ietf.org/html/rfc7519"
+ }
+ },
+ "AttestationCertificateManagementBody": {
+ "type": "object",
+ "description": "The body of the JWT used for the PolicyCertificates APIs",
+ "properties": {
+ "policyCertificate": {
+ "description": "RFC 7517 Json Web Key describing the certificate.",
+ "$ref": "../../../../../common-types/rfcs/rfc7517.json#/definitions/JSONWebKey"
+ }
+ }
+ },
+ "PolicyCertificatesResponse": {
+ "type": "object",
+ "description": "The response to an attestation policy management API",
+ "properties": {
+ "token": {
+ "description": "An RFC7519 JSON Web Token structure containing a PolicyCertificatesResults object which contains the certificates used to validate policy changes",
+ "$ref": "#/definitions/JsonWebToken"
+ }
+ }
+ },
+ "PolicyCertificatesResult": {
+ "type": "object",
+ "description": "The result of a call to retrieve policy certificates.",
+ "properties": {
+ "x-ms-policy-certificates": {
+ "description": "SHA256 Hash of the binary representation certificate which was added or removed",
+ "$ref": "../../../../../common-types/rfcs/rfc7517.json#/definitions/JSONWebKeySet",
+ "x-ms-client-name": "PolicyCertificates"
+ }
+ }
+ },
+ "PolicyCertificatesModifyResponse": {
+ "type": "object",
+ "description": "The response to an attestation policy management API",
+ "properties": {
+ "token": {
+ "description": "An RFC7519 JSON Web Token structure whose body is a PolicyCertificatesModificationResult object.",
+ "$ref": "#/definitions/JsonWebToken"
+ }
+ }
+ },
+ "PolicyCertificatesModificationResult": {
+ "type": "object",
+ "description": "The result of a policy certificate modification",
+ "properties": {
+ "x-ms-certificate-thumbprint": {
+ "description": "Hex encoded SHA1 Hash of the binary representation certificate which was added or removed",
+ "type": "string",
+ "x-ms-client-name": "CertificateThumbprint"
+ },
+ "x-ms-policycertificates-result": {
+ "description": "The result of the operation",
+ "type": "string",
+ "x-ms-client-name": "CertificateResolution",
+ "enum": [
+ "IsPresent",
+ "IsAbsent"
+ ],
+ "x-ms-enum": {
+ "name": "CertificateModification",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "IsPresent",
+ "description": "After the operation was performed, the certificate is in the set of certificates."
+ },
+ {
+ "value": "IsAbsent",
+ "description": "After the operation was performed, the certificate is no longer present in the set of certificates."
+ }
+ ]
+ }
+ }
+ }
+ },
+ "StoredAttestationPolicy": {
+ "type": "object",
+ "properties": {
+ "AttestationPolicy": {
+ "description": "Policy text to set as a sequence of UTF-8 encoded octets.",
+ "type": "string",
+ "format": "base64url"
+ }
+ }
+ },
+ "PolicyResponse": {
+ "type": "object",
+ "description": "The response to an attestation policy operation",
+ "properties": {
+ "token": {
+ "description": "An RFC7519 JSON Web Token structure whose body is an PolicyResult object.",
+ "$ref": "#/definitions/JsonWebToken"
+ }
+ }
+ },
+ "PolicyResult": {
+ "type": "object",
+ "description": "The result of a policy certificate modification",
+ "properties": {
+ "x-ms-policy-result": {
+ "description": "The result of the operation",
+ "type": "string",
+ "x-ms-client-name": "PolicyResolution",
+ "enum": [
+ "Updated",
+ "Removed"
+ ],
+ "x-ms-enum": {
+ "name": "PolicyModification",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Updated",
+ "description": "The specified policy object was updated."
+ },
+ {
+ "value": "Removed",
+ "description": "The specified policy object was removed."
+ }
+ ]
+ }
+ },
+ "x-ms-policy-token-hash": {
+ "description": "The SHA256 hash of the policy object modified",
+ "x-ms-client-name": "PolicyTokenHash",
+ "type": "string",
+ "format": "base64url"
+ },
+ "x-ms-policy-signer": {
+ "description": "The certificate used to sign the policy object, if specified",
+ "x-ms-client-name": "PolicySigner",
+ "$ref": "../../../../../common-types/rfcs/rfc7517.json#/definitions/JSONWebKey"
+ },
+ "x-ms-policy": {
+ "description": "A JSON Web Token containing a StoredAttestationPolicy object with the attestation policy",
+ "x-ms-client-name": "Policy",
+ "$ref": "#/definitions/JsonWebToken"
+ }
+ }
+ },
+ "AttestationResult": {
+ "type": "object",
+ "description": "A Microsoft Azure Attestation response token body - the body of a response token issued by MAA",
+ "properties": {
+ "jti": {
+ "description": "Unique Identifier for the token",
+ "type": "string"
+ },
+ "iss": {
+ "description": "The Principal who issued the token",
+ "type": "string"
+ },
+ "iat": {
+ "description": "The time at which the token was issued, in the number of seconds since 1970-01-0T00:00:00Z UTC",
+ "type": "number"
+ },
+ "exp": {
+ "description": "The expiration time after which the token is no longer valid, in the number of seconds since 1970-01-0T00:00:00Z UTC",
+ "type": "number"
+ },
+ "nbf": {
+ "description": "The not before time before which the token cannot be considered valid, in the number of seconds since 1970-01-0T00:00:00Z UTC",
+ "type": "number"
+ },
+ "cnf": {
+ "description": "An RFC 7800 Proof of Possession Key",
+ "type": "object"
+ },
+ "nonce": {
+ "description": "The Nonce input to the attestation request, if provided.",
+ "type": "string"
+ },
+ "x-ms-ver": {
+ "description": "The Schema version of this structure. Current Value: 1.0",
+ "x-ms-client-name": "Version",
+ "type": "string"
+ },
+ "x-ms-runtime": {
+ "description": "Runtime Claims",
+ "x-ms-client-name": "RuntimeClaims",
+ "type": "object"
+ },
+ "x-ms-inittime": {
+ "description": "Inittime Claims",
+ "x-ms-client-name": "InittimeClaims",
+ "type": "object"
+ },
+ "x-ms-policy": {
+ "description": "Policy Generated Claims",
+ "x-ms-client-name": "PolicyClaims",
+ "type": "object"
+ },
+ "x-ms-attestation-type": {
+ "description": "The Attestation type being attested.",
+ "x-ms-client-name": "VerifierType",
+ "type": "string"
+ },
+ "x-ms-policy-signer": {
+ "description": "The certificate used to sign the policy object, if specified.",
+ "x-ms-client-name": "PolicySigner",
+ "$ref": "../../../../../common-types/rfcs/rfc7517.json#/definitions/JSONWebKey"
+ },
+ "x-ms-policy-hash": {
+ "description": "The SHA256 hash of the BASE64URL encoded policy text used for attestation",
+ "x-ms-client-name": "PolicyHash",
+ "type": "string",
+ "format": "base64url"
+ },
+ "x-ms-sgx-is-debuggable": {
+ "description": "True if the enclave is debuggable, false otherwise",
+ "x-ms-client-name": "IsDebuggable",
+ "type": "boolean"
+ },
+ "x-ms-sgx-product-id": {
+ "description": "The SGX Product ID for the enclave.",
+ "x-ms-client-name": "ProductId",
+ "type": "number"
+ },
+ "x-ms-sgx-mrenclave": {
+ "description": "The HEX encoded SGX MRENCLAVE value for the enclave.",
+ "x-ms-client-name": "MrEnclave",
+ "type": "string"
+ },
+ "x-ms-sgx-mrsigner": {
+ "description": "The HEX encoded SGX MRSIGNER value for the enclave.",
+ "x-ms-client-name": "MrSigner",
+ "type": "string"
+ },
+ "x-ms-sgx-svn": {
+ "description": "The SGX SVN value for the enclave.",
+ "x-ms-client-name": "Svn",
+ "type": "number"
+ },
+ "x-ms-sgx-ehd": {
+ "description": "A copy of the RuntimeData specified as an input to the attest call.",
+ "x-ms-client-name": "EnclaveHeldData",
+ "type": "string",
+ "format": "base64url"
+ },
+ "x-ms-sgx-collateral": {
+ "description": "The SGX SVN value for the enclave.",
+ "x-ms-client-name": "SgxCollateral",
+ "type": "object"
+ },
+ "ver": {
+ "description": "DEPRECATED: Private Preview version of x-ms-ver claim.",
+ "x-ms-client-name": "DeprecatedVersion",
+ "type": "string"
+ },
+ "is-debuggable": {
+ "description": "DEPRECATED: Private Preview version of x-ms-sgx-is-debuggable claim.",
+ "x-ms-client-name": "DeprecatedIsDebuggable",
+ "type": "boolean"
+ },
+ "maa-attestationcollateral": {
+ "description": "DEPRECATED: Private Preview version of x-ms-sgx-collateral claim.",
+ "x-ms-client-name": "DeprecatedSgxCollateral",
+ "type": "object"
+ },
+ "aas-ehd": {
+ "description": "DEPRECATED: Private Preview version of x-ms-sgx-ehd claim.",
+ "x-ms-client-name": "DeprecatedEnclaveHeldData",
+ "type": "string",
+ "format": "base64url"
+ },
+ "product-id": {
+ "description": "DEPRECATED: Private Preview version of x-ms-sgx-product-id",
+ "x-ms-client-name": "DeprecatedProductId",
+ "type": "number"
+ },
+ "sgx-mrenclave": {
+ "description": "DEPRECATED: Private Preview version of x-ms-sgx-mrenclave.",
+ "x-ms-client-name": "DeprecatedMrEnclave",
+ "type": "string"
+ },
+ "sgx-mrsigner": {
+ "description": "DEPRECATED: Private Preview version of x-ms-sgx-mrsigner.",
+ "x-ms-client-name": "DeprecatedMrSigner",
+ "type": "string"
+ },
+ "svn": {
+ "description": "DEPRECATED: Private Preview version of x-ms-sgx-svn.",
+ "x-ms-client-name": "DeprecatedSvn",
+ "type": "number"
+ },
+ "tee": {
+ "description": "DEPRECATED: Private Preview version of x-ms-tee.",
+ "x-ms-client-name": "DeprecatedTee",
+ "type": "string"
+ },
+ "policy_signer": {
+ "description": "DEPRECATED: Private Preview version of x-ms-policy-signer",
+ "x-ms-client-name": "DeprecatedPolicySigner",
+ "$ref": "../../../../../common-types/rfcs/rfc7517.json#/definitions/JSONWebKey"
+ },
+ "policy_hash": {
+ "description": "DEPRECATED: Private Preview version of x-ms-policy-hash",
+ "x-ms-client-name": "DeprecatedPolicyHash",
+ "type": "string",
+ "format": "base64url"
+ },
+ "rp_data": {
+ "description": "DEPRECATED: Private Preview version of nonce",
+ "x-ms-client-name": "DeprecatedRpData",
+ "type": "string"
+ }
+ }
+ },
+ "AttestationResponse": {
+ "type": "object",
+ "description": "The result of an attestation operation",
+ "properties": {
+ "token": {
+ "description": "An RFC 7519 JSON Web Token, the body of which is an AttestationResult object.",
+ "$ref": "#/definitions/JsonWebToken"
+ }
+ }
+ },
+ "DataType": {
+ "description": "Specifies the type of the data encoded contained within the \"data\" field of a \"RuntimeData\" or \"InitTimeData\" object",
+ "type": "string",
+ "enum": [
+ "Binary",
+ "JSON"
+ ],
+ "x-ms-enum": {
+ "name": "DataType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Binary",
+ "description": "The contents of the field should be treated as binary and not interpreted by MAA."
+ },
+ {
+ "value": "JSON",
+ "description": "The contents of the field should be treated as a JSON object and may be further interpreted by MAA."
+ }
+ ]
+ }
+ },
+ "RuntimeData": {
+ "type": "object",
+ "description": "Defines the \"run time data\" provided by the attestation target for use by the MAA",
+ "properties": {
+ "data": {
+ "description": "UTF-8 encoded Runtime Data generated by the trusted environment",
+ "type": "string",
+ "format": "base64url"
+ },
+ "dataType": {
+ "description": "The type of data contained within the \"data\" field",
+ "$ref": "#/definitions/DataType"
+ }
+ }
+ },
+ "InitTimeData": {
+ "type": "object",
+ "description": "Defines the \"initialization time data\" used to provision the attestation target for use by the MAA",
+ "properties": {
+ "data": {
+ "description": "UTF-8 encoded Initialization Data passed into the trusted environment when it is created.",
+ "type": "string",
+ "format": "base64url"
+ },
+ "dataType": {
+ "description": "The type of data contained within the \"data\" field",
+ "$ref": "#/definitions/DataType"
+ }
+ }
+ },
+ "AttestSgxEnclaveRequest": {
+ "type": "object",
+ "description": "Attestation request for Intel SGX enclaves",
+ "properties": {
+ "quote": {
+ "description": "Quote of the enclave to be attested",
+ "type": "string",
+ "format": "base64url"
+ },
+ "runtimeData": {
+ "description": "Runtime data provided by the enclave at the time of quote generation. The MAA will verify that the first 32 bytes of the report_data field of the quote contains the SHA256 hash of the decoded \"data\" field of the runtime data.",
+ "$ref": "#/definitions/RuntimeData"
+ },
+ "initTimeData": {
+ "description": "Initialization data provided when the enclave is created. MAA will verify that the init data was known to the enclave. Note that InitTimeData is invalid for CoffeeLake processors.",
+ "$ref": "#/definitions/InitTimeData"
+ },
+ "draftPolicyForAttestation": {
+ "description": "Attest against the provided draft policy. Note that the resulting token cannot be validated.",
+ "type": "string"
+ }
+ }
+ },
+ "AttestOpenEnclaveRequest": {
+ "type": "object",
+ "description": "Attestation request for Intel SGX enclaves",
+ "properties": {
+ "report": {
+ "description": "OpenEnclave report from the enclave to be attested",
+ "type": "string",
+ "format": "base64url"
+ },
+ "runtimeData": {
+ "description": "Runtime data provided by the enclave at the time of report generation. The MAA will verify that the first 32 bytes of the report_data field of the quote contains the SHA256 hash of the decoded \"data\" field of the runtime data.",
+ "$ref": "#/definitions/RuntimeData"
+ },
+ "initTimeData": {
+ "description": "Base64Url encoded \"InitTime data\". The MAA will verify that the init data was known to the enclave. Note that InitTimeData is invalid for CoffeeLake processors.",
+ "$ref": "#/definitions/InitTimeData"
+ },
+ "draftPolicyForAttestation": {
+ "description": "Attest against the provided draft policy. Note that the resulting token cannot be validated.",
+ "type": "string"
+ }
+ }
+ },
+ "TpmAttestationRequest": {
+ "type": "object",
+ "description": "Attestation request for Trusted Platform Module (TPM) attestation.",
+ "properties": {
+ "data": {
+ "description": "Protocol data containing artifacts for attestation.",
+ "type": "string",
+ "format": "base64url"
+ }
+ }
+ },
+ "TpmAttestationResponse": {
+ "type": "object",
+ "description": "Attestation response for Trusted Platform Module (TPM) attestation.",
+ "properties": {
+ "data": {
+ "description": "Protocol data containing attestation service response.",
+ "type": "string",
+ "format": "base64url"
+ }
+ }
+ },
+ "AttestSevSnpVmRequest": {
+ "type": "object",
+ "description": "Attestation request for AMD SEV SNP Virtual Machine",
+ "properties": {
+ "reportType": {
+ "description": "Type of the report payload",
+ "type": "string",
+ "x-ms-enum": {
+ "name": "SevSnpReportType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "HclHyperV",
+ "description": "SEV SNP report generated by HCL running on HyperV platform"
+ }
+ ]
+ },
+ "enum": [
+ "HclHyperV"
+ ]
+ },
+ "report": {
+ "description": "Hardware rooted report of the virtual machine being attested",
+ "type": "string"
+ },
+ "runtimeData": {
+ "description": "Runtime data provided by the enclave at the time of report generation. The MAA will verify that the run time data is known to the attestation target.",
+ "$ref": "#/definitions/RuntimeData"
+ },
+ "initTimeData": {
+ "description": "Initialization data provided by the enclave at the time of report generation. The MAA will verify that the init time data is known to the attestation target.",
+ "$ref": "#/definitions/InitTimeData"
+ },
+ "draftPolicyForAttestation": {
+ "description": "Attest against the provided draft policy. Note that the resulting token cannot be validated.",
+ "type": "string"
+ }
+ }
+ }
+ },
+ "parameters": {
+ "ApiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "Client API version. Current version is 2010-10-01"
+ },
+ "AttestationType": {
+ "description": "Specifies the trusted execution environment to be used to validate the evidence",
+ "name": "attestationType",
+ "in": "path",
+ "type": "string",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "x-ms-enum": {
+ "name": "AttestationType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "SgxEnclave",
+ "description": "Intel Software Guard eXtensions"
+ },
+ {
+ "value": "OpenEnclave",
+ "description": "OpenEnclave extensions to SGX"
+ },
+ {
+ "value": "SevSnpVm",
+ "description": "AMD SEV SNP Virtual Machine"
+ },
+ {
+ "value": "Tpm",
+ "description": "Edge TPM Virtualization Based Security"
+ }
+ ]
+ },
+ "enum": [
+ "SgxEnclave",
+ "OpenEnclave",
+ "SevSnpVm",
+ "Tpm"
+ ]
+ }
+ }
+}
diff --git a/specification/attestation/data-plane/Microsoft.Attestation/stable/2020-10-01/examples/Add_PolicyCertificate.json b/specification/attestation/data-plane/Microsoft.Attestation/stable/2020-10-01/examples/Add_PolicyCertificate.json
new file mode 100644
index 000000000000..452140de07f0
--- /dev/null
+++ b/specification/attestation/data-plane/Microsoft.Attestation/stable/2020-10-01/examples/Add_PolicyCertificate.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "instanceUrl": "https://instance.attest.azure.net",
+ "api-version": "2020-10-01",
+ "policyCertificateToAdd": "eyAiYWxnIjoiUlMyNTYiLCAieDVjIjogWyJNSUlEVFRDQ0FqV2dBd0lCQWdJSUlESkJoZVZUV1I4d0RRWUpLb1pJaHZjTkFRRUxCUUF3SWpFZ01CNEdBMVVFQXd3WFZHVnpkRk5wWjI1cGJtZERaWEowYVdacFkyRjBaVEl3SGhjTk1qQXdNakEwTURBd01EQXdXaGNOTWpJd01qQTBNREF3TURBd1dqQWlNU0F3SGdZRFZRUUREQmRVWlhOMFUybG5ibWx1WjBObGNuUnBabWxqWVhSbE1qQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU1NbFhMYW11WjRYVXc2NHlJeElPczV3L25VdE5CeU95SzVpV3JVbE5RRmhxZ2lEdVNmN1gwVnpuZEhHVnNGS0ZJbFN0eGh4M3o1MHZEOTR4WEo1T2RZSm1vbzV4WjZxcEZwUndEVDNVTkhwTGVZZy8zeGQ2OHNlbEpxOHBUaDlpLytPTXZvdGdxTkt1NVcvWUVEMHNLWlgxRzdUUDdBK0d0V2VzSmJyQ3k5SGxidmNBZlJpdlV6cjBiUVFrYjd3TnZzRjBHMXZvcm5veDFqVmFoUHJSaDI1OWJsNmxGRURpMXJSOHN3TU5wNXB6RjNDOEltWmZ3NVNIcmxKNitvci83MmVvTDNhSVovWmlOZUczNU9IcSsrWjVFNkFQdFdzVTBZcVpQVDdGR1FqVllHeXBwUldISEVOK08zVlJ3eHRJSVJ6WjZMV2Z1RVJPVDBROVJUUCtHc0NBd0VBQWFPQmhqQ0JnekJSQmdOVkhTTUVTakJJZ0JUSEdVODN3MklKc0ZOdi80QlcvOWZlSXNZVWVhRW1wQ1F3SWpFZ01CNEdBMVVFQXd3WFZHVnpkRk5wWjI1cGJtZERaWEowYVdacFkyRjBaVEtDQ0NBeVFZWGxVMWtmTUIwR0ExVWREZ1FXQkJUSEdVODN3MklKc0ZOdi80QlcvOWZlSXNZVWVUQVBCZ05WSFJNQkFmOEVCVEFEQVFIL01BMEdDU3FHU0liM0RRRUJDd1VBQTRJQkFRQ2RrdDNacEVjQ2NtbWtveUNDbVgwcEJTSE51czh5THB4V3FZeG51UHI0ZzVKS2hXNWpFamVDNExEeCtkYjk3Z0kyZVdCNFQrRnRoSHlXdkE1OFlUZWRKZ3BLWUh2S2t0clRDWHdMemJvcThhM1h3bTQ5OHY2aUlSN09STG1MUng4dWdoK0p6eFZVKzZSRGNKRTJvbHVhcnlpdjhuYU1pRlhkVFVpVGYxVnZEWTh0YS9rSi9tVVpadTcvbUI3WEx6YUJRQUhYSU42SVozbFdxLzRWV3dZR2Z5aERPWTBSSHJWRzQ0NUdLckhuS2ZOcjNvSTJXeU9KL21JbUtDdTdTcmJ5Vm9HcituR0NvUUNtaVlLRVg1T0ZlVkY2Q1BOV3BxaURvOW50UWJURDltdVJsY0U3WG4rRFJuQ2xTSmhBdmJKVmV2MG1KQTVOZk1FSStDVW5RSXFQIl19.eyJhYXMtcG9saWN5Q2VydGlmaWNhdGUiOiB7Imt0eSI6IlJTQSIsICJ4NWMiOlsiTUlJRE1EQ0NBaGlnQXdJQkFnSUlJb08vb3RONENFOHdEUVlKS29aSWh2Y05BUUVMQlFBd0dURVhNQlVHQTFVRUF3d09UbVYzUTJWeWRHbG1hV05oZEdVd0hoY05NakF3TWpBME1EQXdNREF3V2hjTk1qSXdNakEwTURBd01EQXdXakFaTVJjd0ZRWURWUVFEREE1T1pYZERaWEowYVdacFkyRjBaVENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFLVHAxRytjajdiZHRYZUNDTzFJWHFpUDE4aW1MOFFUOVhUaE50ZFh2NXNtaWtLTU1UMjRuU3ArSGYxazI2bzZPSEpVUVhMQ0Q4ZkduUFZiVnRVOUd1WFNuWERXSHJwdnFtK3JBRmhhS1FkV2trWmt3eHlycFVhZjNLM3RDeWhrUVdtMHJpMHNTNGhRZUtOWDJNRE5GbmFrUUJWTXdWVXplK1BoMi94OTcraHdWRFozK3NWclJId1J0Q254b2ZPL2VSQkNkTFI1dUdxYXQzM1R2cjU4dWg3NHNVckpJSktzbXZweFZ1djk0RkgzQlFybVFOeXV2MEV0ekoycmx6NDAxZ2ZuUStHS05jQzA2bTRuczdhb09EMDRTWkFrdVhXZlMrTGw2bE83MlJQSlk4YXNiRVVkamNBOHZraEJ5K24wYlNkV2wrZVFKck9XQndpY08xVjJjK0VDQXdFQUFhTjhNSG93U0FZRFZSMGpCRUV3UDRBVTh3VUh0dlJwMEdHRXdJL3BhcGt3WkkyM2tOMmhIYVFiTUJreEZ6QVZCZ05WQkFNTURrNWxkME5sY25ScFptbGpZWFJsZ2dnaWc3K2kwM2dJVHpBZEJnTlZIUTRFRmdRVTh3VUh0dlJwMEdHRXdJL3BhcGt3WkkyM2tOMHdEd1lEVlIwVEFRSC9CQVV3QXdFQi96QU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FRRUFNckljZXQvZDlFWlZ5cXRVZjZaVWMxU2hKS3NYOFpacGYwdEg5VEVmdVhZdUpkUUh4cnhIeEZYSEE5SXFPYzc2L1l3WFVQT0VuYzVSUHNUTUU2d2RUYzJMTnhPaFBKMGtFT09XTWcxN2ZWUXM4eXJZMnhJeCs0U3pYMWQ5T3p0d0ZuazV6SnpJQ3R1dEtzTXRqS0hQbmh3N24xbTN5K2dLbDloSnRiRXdxNDVIZmxMWnBkZlc2bmlmTUNIMHdTS0xnNXdLRldOZUxKSy90ZFUzUjBDcmIxVHhJaWVGb2hVV1NJY3NFS1hWeXo1a3psdzVSV3JWWWJueGhVWmhibmhYVkNjajVyNzVIWlV3cXpOazBVYWViTFJVb3BYbzVacExuR3JTWFpod3AxRU05bHR3eGF0bC90Y3VQejNQM0QvRmVnU1dvS1dETEZXZzlrN1N3b2VyaGc9PSJdfX0.MB8bvwXkPE8YCgpsIKqfa7np_7UDD1tBabrFrnSXz-asCVGxN4PY49mFR2DN2phdhWYk-i7DTx2x3Kt6FGZ9s4A-d8AyjPzsEsIHYpvGlyE4ML35Nu0PUH25_1Xa7paPOiiOgzjP86bwlUp1R06TOmztbXyfEvSC2p8Gql5REFkRHUXSmSaG1cFPpFjpSPLRyiYD5nUb8CZgH6U4fbSZMSoVnQwzXx10AIFM0e5mLccQVu0T1KRgQiAsWI4UhVGthymhDgUlWnROxGh2mPitDYF6p18FekCVCBuiyo4GiD8l2RBpJU5xOm6_CYIPREhtKKWlMEgrYXUd2WcA4rcomQ"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "token": "eyJhbGciOiAiUlMyNTYiLCAiamt1IjogImh0dHA6Ly9sb2NhbGhvc3QuOjg4ODgvb3BlcmF0aW9ucy9SZXRyaWV2ZUF0dGVzdGF0aW9uU2lnbmluZ0NlcnRpZmljYXRlcy9kZWZhdWx0Y2VydHMiLCAia2lkIjogInJPV1JGdXlnTWp5RGRrUXJtRFpBZ2xSNHhmc2FzUXI0Yms0THMzdjlscEU9IiwgInR5cCI6ICJKV1QifQ.eyJhYXMtcG9saWN5Q2VydGlmaWNhdGVzIjogeyJrZXlzIjogW3siYWxnIjogIlJTMjU2IiwgImt0eSI6ICJSU0EiLCAidXNlIjogInNpZyIsICJ4NWMiOiBbIk1JSURUVENDQWpXZ0F3SUJBZ0lJQm1PWFB1eFB3Tjh3RFFZSktvWklodmNOQVFFTEJRQXdJakVnTUI0R0ExVUVBd3dYVkdWemRGTnBaMjVwYm1kRFpYSjBhV1pwWTJGMFpUUXdIaGNOTWpBd01qQTBNREF3TURBd1doY05Nakl3TWpBME1EQXdNREF3V2pBaU1TQXdIZ1lEVlFRRERCZFVaWE4wVTJsbmJtbHVaME5sY25ScFptbGpZWFJsTkRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBSllGanFuOXVSSFhaSDNQNXVLVGNDSjN1eXNnQ3F3cHpjTG42ZWhqcEVscjFRb3ZYNjdBZWtVeFpBSklhYVBGYXAwd0ZQdStiMWsyY1BIQWx3T1FUYjd2SXFSU2NzRnlnSEFMcVhja1VCR0g2aE1wbDRUZ2JaOGFGSStsV2R1YjFvNytLN2YwTmdwMjVhU2FiZVVramhHTzFKbFpmRktpWkhFUEdodkttQ3lXSzJ2ZVluY3JpOEJCSzMxL2QyTWdJL0RnUVRRZmZ3Y3JFY3Vkb2ZiT0U2a3NqVHBwM2RKdXY2aE5xMGY3VHVhWktIVnZRZVlvcTJXYk9PTVlIeGpyNGpCOGowcEYvdVgyWWI5ZDBQK05YWmFVSi96ekJBbDVCRDRuY1NsL25FZkM2RUIwU2lDOForNFZKZ1ozYzN3N0o5UHBnUk56dDFxV0RwQVFuM2hyNTU4Q0F3RUFBYU9CaGpDQmd6QlJCZ05WSFNNRVNqQklnQlNENGNRZWhYczdaaTZxTlg3U0JIS2FoZU4zZjZFbXBDUXdJakVnTUI0R0ExVUVBd3dYVkdWemRGTnBaMjVwYm1kRFpYSjBhV1pwWTJGMFpUU0NDQVpqbHo3c1Q4RGZNQjBHQTFVZERnUVdCQlNENGNRZWhYczdaaTZxTlg3U0JIS2FoZU4zZnpBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElCQVFBWnNMa3d3QXRRcWcwSGZIVFFiZHZrWDhGNFlrcGpoaTk5c0VzeVlRZVVqVUtFbjlXdmxYNGtRdzFsNmFNa1Zwa3llWXFHU1hSRWZzMTZETTF0RjlFSHZYd29OSlJHbDBvM2ZzL1lKSEFEK3VoUlkyZEhycEtibm9QTlF0V1UzOXZKcDRnc055K1BIdHBhQkMwclZ6MzVkS0xJK1lvZytXMHdzbHovN1pGUkh0N3B3RHcxN3J1WVQzMC82d2FQbzc1LzlmUzNlMno4SXlwaHBLbDFPMThFQVE5YU9laTR0SGR0NG5DOEJ5MUFQUmEzV1ZkNUNZN3Y3RlJVMDlMUGJySE1uc3U5SXBSd2hmRWk5N0ZVN1Q3MW5Qb2RQNDMrbHZoV011anJ2ZWVjbmlGazBUUmhzbGdRYUVzZHI2SVJoMHY0K3JkZ213ZkRCdGxXaEZYQ2R5NzEiXX0sIHsiYWxnIjogIlJTMjU2IiwgImt0eSI6ICJSU0EiLCAidXNlIjogInNpZyIsICJ4NWMiOiBbIk1JSURUVENDQWpXZ0F3SUJBZ0lJSURKQmhlVlRXUjh3RFFZSktvWklodmNOQVFFTEJRQXdJakVnTUI0R0ExVUVBd3dYVkdWemRGTnBaMjVwYm1kRFpYSjBhV1pwWTJGMFpUSXdIaGNOTWpBd01qQTBNREF3TURBd1doY05Nakl3TWpBME1EQXdNREF3V2pBaU1TQXdIZ1lEVlFRRERCZFVaWE4wVTJsbmJtbHVaME5sY25ScFptbGpZWFJsTWpDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTU1sWExhbXVaNFhVdzY0eUl4SU9zNXcvblV0TkJ5T3lLNWlXclVsTlFGaHFnaUR1U2Y3WDBWem5kSEdWc0ZLRklsU3R4aHgzejUwdkQ5NHhYSjVPZFlKbW9vNXhaNnFwRnBSd0RUM1VOSHBMZVlnLzN4ZDY4c2VsSnE4cFRoOWkvK09Ndm90Z3FOS3U1Vy9ZRUQwc0taWDFHN1RQN0ErR3RXZXNKYnJDeTlIbGJ2Y0FmUml2VXpyMGJRUWtiN3dOdnNGMEcxdm9ybm94MWpWYWhQclJoMjU5Ymw2bEZFRGkxclI4c3dNTnA1cHpGM0M4SW1aZnc1U0hybEo2K29yLzcyZW9MM2FJWi9aaU5lRzM1T0hxKytaNUU2QVB0V3NVMFlxWlBUN0ZHUWpWWUd5cHBSV0hIRU4rTzNWUnd4dElJUnpaNkxXZnVFUk9UMFE5UlRQK0dzQ0F3RUFBYU9CaGpDQmd6QlJCZ05WSFNNRVNqQklnQlRIR1U4M3cySUpzRk52LzRCVy85ZmVJc1lVZWFFbXBDUXdJakVnTUI0R0ExVUVBd3dYVkdWemRGTnBaMjVwYm1kRFpYSjBhV1pwWTJGMFpUS0NDQ0F5UVlYbFUxa2ZNQjBHQTFVZERnUVdCQlRIR1U4M3cySUpzRk52LzRCVy85ZmVJc1lVZVRBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElCQVFDZGt0M1pwRWNDY21ta295Q0NtWDBwQlNITnVzOHlMcHhXcVl4bnVQcjRnNUpLaFc1akVqZUM0TER4K2RiOTdnSTJlV0I0VCtGdGhIeVd2QTU4WVRlZEpncEtZSHZLa3RyVENYd0x6Ym9xOGEzWHdtNDk4djZpSVI3T1JMbUxSeDh1Z2grSnp4VlUrNlJEY0pFMm9sdWFyeWl2OG5hTWlGWGRUVWlUZjFWdkRZOHRhL2tKL21VWlp1Ny9tQjdYTHphQlFBSFhJTjZJWjNsV3EvNFZXd1lHZnloRE9ZMFJIclZHNDQ1R0tySG5LZk5yM29JMld5T0ovbUltS0N1N1NyYnlWb0dyK25HQ29RQ21pWUtFWDVPRmVWRjZDUE5XcHFpRG85bnRRYlREOW11UmxjRTdYbitEUm5DbFNKaEF2YkpWZXYwbUpBNU5mTUVJK0NVblFJcVAiXX0sIHsiYWxnIjogIlJTMjU2IiwgImt0eSI6ICJSU0EiLCAidXNlIjogInNpZyIsICJ4NWMiOiBbIk1JSURUVENDQWpXZ0F3SUJBZ0lJSzA4TUgydC9NaWN3RFFZSktvWklodmNOQVFFTEJRQXdJakVnTUI0R0ExVUVBd3dYVkdWemRGTnBaMjVwYm1kRFpYSjBhV1pwWTJGMFpUTXdIaGNOTWpBd01qQTBNREF3TURBd1doY05Nakl3TWpBME1EQXdNREF3V2pBaU1TQXdIZ1lEVlFRRERCZFVaWE4wVTJsbmJtbHVaME5sY25ScFptbGpZWFJsTXpDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBSjV6VlAzcVZiZmlybjRyM01ia2pDSEdTRlBGaURFemsxTWFhazdnU1ZzeFdCTkdNdEpRN291YUVVNVd2cXNPM2xDSWVGVm1uS210NzVvejA3Q2NpTjc1SjFFWXhVV0dyVmg1d0tKcVhDT2RkUVcwNUxmU0hOcGFZUk8zR3RPNU1JZjFkaTRQRUxkdEZ0Qng1TDd2Q2ZhNGx4cTJTN0pVTnMwMThOZk9UQ3dBZTMvNFR1YTRaa2xBdmpmaGtoZyt3cnkzN2RsaElLaEpQU2IvcUhHM2xXWVp3aFAyekZMcjlFbUVZdEJ3cFhRM3IwbUlDc3d0TnAxSWJiQ2s3SW9VZzR1SUtxU3htK2tCRGJOdFJmdWZpOXlWNTlYZXhIbUVNQXdOS24yLzcxMFpJbFNUazRJVmtYaDhSelpybVVhRkM2ajl0bytqbi9HNk9ZL2xxMmtnbXlzQ0F3RUFBYU9CaGpDQmd6QlJCZ05WSFNNRVNqQklnQlFzeUlNZmduWUZweWVoY0tLdWZSdHRYZ1hCTWFFbXBDUXdJakVnTUI0R0ExVUVBd3dYVkdWemRGTnBaMjVwYm1kRFpYSjBhV1pwWTJGMFpUT0NDQ3RQREI5cmZ6SW5NQjBHQTFVZERnUVdCQlFzeUlNZmduWUZweWVoY0tLdWZSdHRYZ1hCTVRBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElCQVFCVUtJNnFhMGNKQjRZcEI2N01RUnQrMlQvSE5hNWxzc0pyNmxGMjRLaXRsUk9RUDZVdVk5SlpHdzM3ekVsSkUvUVNPdDFXVG5waUNnRHFqSzB2Z3hjV0hZSG1IenVNRjBnK1ZpNGZqZXRRbGRjQWhqSmh4cGJlWGJBVk4xUGlxcDZDUUg1MGo5THpaZzkxc2NmdlBpdldDNE9TUzRsQzMwOTlFN3RYZ3p6VzRJa1dGclh0dXlOb0lNQVRkZzljOEFlVmN4cU1WYUpDT2pyTmpOTmNRbzArWldMcVlaTExKUmdnVzFBL1pwUzJ1aW9iTGVHenRpT1hkR3JWV2RaUVNTOFBKQkQ2TWhUN2V3RnErTkpUdjA5R0cxelZiL3lHNGs2dlFIWWV5MmExRGlQbzFldHZLTzJLT2RKSE9hYWJuanZ3L2xsLys3VDZtOGJDb3VvQ0RhQzQiXX0sIHsiYWxnIjogIlJTMjU2IiwgImt0eSI6ICJSU0EiLCAidXNlIjogInNpZyIsICJ4NWMiOiBbIk1JSURUVENDQWpXZ0F3SUJBZ0lJS0VWMmVYeXBOazR3RFFZSktvWklodmNOQVFFTEJRQXdJakVnTUI0R0ExVUVBd3dYVkdWemRGTnBaMjVwYm1kRFpYSjBhV1pwWTJGMFpURXdIaGNOTWpBd01qQTBNREF3TURBd1doY05Nakl3TWpBME1EQXdNREF3V2pBaU1TQXdIZ1lEVlFRRERCZFVaWE4wVTJsbmJtbHVaME5sY25ScFptbGpZWFJsTVRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTHhnN0E1NlBHSGxWTFBjSTJUdVFTUnBjWEVpdUtSK2xhKzdORXdZbHhZZ0FSdy9zMXdtNnZpU2J6VkpPa3ZuNk9NakpMNkVnQkVpcmlJd25aSXBuNktHWjNKVTBrM0pmdTNzTFk2N3pFa045cHpQaDRLVlEzeDJzU085YVVvaDdMUDhmZEJCdkRlajBONEZNK1FQd3VGUms0VzNCWlVocm1EeE5DY21aa2gzVDV5TkQ0QklZVDhZVGNtR28ydnM1c0lXenZ4U1BhMWxoc0h6WisvVmg4OU5qdkdRaVdyQ3pGUlR5NVduNVdPWDBvN2w3dXJ6WTlQZ0xwMENCcTQ4d24yZUNmSWtOVHIwM1BCcE5lK1EyMmc5eDE5VUF1dWFkZnBBQWFpdTdHZDVydmRXZE5tM2dWc05XTU1PR29zR0RhNG5aSXY1MFI2VGRzWlYwZ0greDljQ0F3RUFBYU9CaGpDQmd6QlJCZ05WSFNNRVNqQklnQlFhWU5IMWhmbWNuZzJ5SnlOVG5salo3TllHWXFFbXBDUXdJakVnTUI0R0ExVUVBd3dYVkdWemRGTnBaMjVwYm1kRFpYSjBhV1pwWTJGMFpUR0NDQ2hGZG5sOHFUWk9NQjBHQTFVZERnUVdCQlFhWU5IMWhmbWNuZzJ5SnlOVG5salo3TllHWWpBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElCQVFBd3lwTmE1N0xEb25pQzZ5U1VFd1FTcUlZa3lJOG5NMWpWaktFd29HdlJiOXRBeWhWdTFqRllDNXJiTW1saGFNUGFqWUtWdHhoUDg0TEM4ZHNpVlVKUFNhdUd3L1JwODhQK2pnUm5Kb0tnRXV3c2xFSk41Y1drQTJwdkxaUHpmcy9oNVJOWitOeGdaelMyTlNiNjEyTitFYjRWWXJsZGxPZmdXSG1DUTdNa3BLZTZrODFpcU8yWnN2bHhtWlY0WUh4WlRESVhWU2h3YXpYSnJLZzREVlFZb0J2Q2U0cldJVmNKTzF6c2tIVWRhcHlCS0VveFlFd09RUzY1enJsM0hpR3lKelNpR1gxM0dlWTRDaDRScjJ3NWlYem8vTWZRYnVaUE1VMmovUU5pOS9TajJOMHI3bG9VRXVVbEdTRGs1OWs2cDF4aWRydllzcHZjWVlqY1Y1VmEiXX0sIHsiYWxnIjogIlJTMjU2IiwgImt0eSI6ICJSU0EiLCAidXNlIjogInNpZyIsICJ4NWMiOiBbIk1JSURNRENDQWhpZ0F3SUJBZ0lJSW9PL290TjRDRTh3RFFZSktvWklodmNOQVFFTEJRQXdHVEVYTUJVR0ExVUVBd3dPVG1WM1EyVnlkR2xtYVdOaGRHVXdIaGNOTWpBd01qQTBNREF3TURBd1doY05Nakl3TWpBME1EQXdNREF3V2pBWk1SY3dGUVlEVlFRRERBNU9aWGREWlhKMGFXWnBZMkYwWlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1RwMUcrY2o3YmR0WGVDQ08xSVhxaVAxOGltTDhRVDlYVGhOdGRYdjVzbWlrS01NVDI0blNwK0hmMWsyNm82T0hKVVFYTENEOGZHblBWYlZ0VTlHdVhTblhEV0hycHZxbStyQUZoYUtRZFdra1prd3h5cnBVYWYzSzN0Q3loa1FXbTByaTBzUzRoUWVLTlgyTURORm5ha1FCVk13VlV6ZStQaDIveDk3K2h3VkRaMytzVnJSSHdSdENueG9mTy9lUkJDZExSNXVHcWF0MzNUdnI1OHVoNzRzVXJKSUpLc212cHhWdXY5NEZIM0JRcm1RTnl1djBFdHpKMnJsejQwMWdmblErR0tOY0MwNm00bnM3YW9PRDA0U1pBa3VYV2ZTK0xsNmxPNzJSUEpZOGFzYkVVZGpjQTh2a2hCeStuMGJTZFdsK2VRSnJPV0J3aWNPMVYyYytFQ0F3RUFBYU44TUhvd1NBWURWUjBqQkVFd1A0QVU4d1VIdHZScDBHR0V3SS9wYXBrd1pJMjNrTjJoSGFRYk1Ca3hGekFWQmdOVkJBTU1EazVsZDBObGNuUnBabWxqWVhSbGdnZ2lnNytpMDNnSVR6QWRCZ05WSFE0RUZnUVU4d1VIdHZScDBHR0V3SS9wYXBrd1pJMjNrTjB3RHdZRFZSMFRBUUgvQkFVd0F3RUIvekFOQmdrcWhraUc5dzBCQVFzRkFBT0NBUUVBTXJJY2V0L2Q5RVpWeXF0VWY2WlVjMVNoSktzWDhaWnBmMHRIOVRFZnVYWXVKZFFIeHJ4SHhGWEhBOUlxT2M3Ni9Zd1hVUE9FbmM1UlBzVE1FNndkVGMyTE54T2hQSjBrRU9PV01nMTdmVlFzOHlyWTJ4SXgrNFN6WDFkOU96dHdGbms1ekp6SUN0dXRLc010aktIUG5odzduMW0zeStnS2w5aEp0YkV3cTQ1SGZsTFpwZGZXNm5pZk1DSDB3U0tMZzV3S0ZXTmVMSksvdGRVM1IwQ3JiMVR4SWllRm9oVVdTSWNzRUtYVnl6NWt6bHc1UldyVllibnhoVVpoYm5oWFZDY2o1cjc1SFpVd3F6TmswVWFlYkxSVW9wWG81WnBMbkdyU1haaHdwMUVNOWx0d3hhdGwvdGN1UHozUDNEL0ZlZ1NXb0tXRExGV2c5azdTd29lcmhnPT0iXX1dfSwgImV4cCI6IDE1ODA4MjUyMTIsICJpYXQiOiAxNTgwODIxNjEyLCAiaXNzIjogImh0dHA6Ly9sb2NhbGhvc3QuOjgwODAiLCAibmJmIjogMTU4MDgyMTYxMn0.l3mvIYE_-A5iLqUIQhXadadnc0Tt8dr1IpDiRIUELPXEF5TAalwJYSRoWPA6etdlPDU2eQyT0NPVfUKLU2xLobOg5ZwXGbVmE-DPGyqT93gl1CFv2fFkUJe8Vha7NT7O7s8MflB2RwJtGs9i1duuB_yGyt7DxGrE1bT-g_RcUH8"
+ }
+ }
+ }
+}
diff --git a/specification/attestation/data-plane/Microsoft.Attestation/stable/2020-10-01/examples/AttestOpenEnclave.json b/specification/attestation/data-plane/Microsoft.Attestation/stable/2020-10-01/examples/AttestOpenEnclave.json
new file mode 100644
index 000000000000..ccd0e3e8da99
--- /dev/null
+++ b/specification/attestation/data-plane/Microsoft.Attestation/stable/2020-10-01/examples/AttestOpenEnclave.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "instanceUrl": "https://instance.attest.azure.net",
+ "api-version": "2020-10-01",
+ "request": {
+ "report": "AQAAAAIAAADkEQAAAAAAAAMAAgAAAAAABQAKAJOacjP3nEyplAoNs5V_Bgel5i9h-9t3-B0pGDcTBzGPAAAAAA4OAgX_gAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAABwAAAAAAAACKuQPyuBCpX4uGju6ovJsXmsy4pdBmhSTtejZVsAXm-QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyprXMxRImAqiiJDOc-QzY4N38XmrRFay_iNxkxk6jQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvts21bapFWYlHooPOXU62w0bo2y4gOgw1Ue6d-pWGyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAQAADghPcOalwbGxyjXMqNqNtbXOQIauzxsCBUprp7Wy-u3iQ55NDmtkj6KRjEFJSzgKytUPMMuQrxp_xsZ63nZ_GEM9kg_zZ9YOjXII5l5QC1HaYucP0LyIskRsU3_Xd-quGUj8eZoqsTNQKDan4GaUAdMfIHTUgGCtRW5nOY3t0oGA4OAgX_gAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUAAAAAAAAABwAAAAAAAADNyt-32yKtpf1gNFXN4b-folj6XyhNzW4MYzkvYzoRBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjE9XddeWUD6WE393xoqCmgBWrI3tcBQLCBsJRJDFe_8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArPMw3ptEtvVETMNzuQse6BcwyREkLDBaWEydSo8CB_AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADxS7gzw1Z15RNiTVJeKzdLk_VruKGn-ldUyw1yuKgcWHHULwVvWay81AWat9fGb0ldTS52TN2iPLEEaF77hKmMgAAABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4fBQDIDQAALS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUVnakNDQkNlZ0F3SUJBZ0lWQU5vNmhaT3pCQWNkUUtUbGpqUlVrL1VaaTBuYk1Bb0dDQ3FHU000OUJBTUNNSEV4SXpBaEJnTlYKQkFNTUdrbHVkR1ZzSUZOSFdDQlFRMHNnVUhKdlkyVnpjMjl5SUVOQk1Sb3dHQVlEVlFRS0RCRkpiblJsYkNCRGIzSndiM0poZEdsdgpiakVVTUJJR0ExVUVCd3dMVTJGdWRHRWdRMnhoY21FeEN6QUpCZ05WQkFnTUFrTkJNUXN3Q1FZRFZRUUdFd0pWVXpBZUZ3MHhPVEEzCk1UZ3lNak0zTURsYUZ3MHlOakEzTVRneU1qTTNNRGxhTUhBeElqQWdCZ05WQkFNTUdVbHVkR1ZzSUZOSFdDQlFRMHNnUTJWeWRHbG0KYVdOaGRHVXhHakFZQmdOVkJBb01FVWx1ZEdWc0lFTnZjbkJ2Y21GMGFXOXVNUlF3RWdZRFZRUUhEQXRUWVc1MFlTQkRiR0Z5WVRFTApNQWtHQTFVRUNBd0NRMEV4Q3pBSkJnTlZCQVlUQWxWVE1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRSswQ0Y1eUdVCmlhZEVjY1dpWWExaWpSaFJjWTdmSTBkdjBQK3JPdWkzOGRnTTR5UGpCaDBoMmhCSWVUSnFrTVUrRzg3djFXWW9BVElJazAyVDBEanQKdDZPQ0Fwc3dnZ0tYTUI4R0ExVWRJd1FZTUJhQUZORG9xdHAxMS9rdVNSZVlQSHNVWmREVjhsbE5NRjhHQTFVZEh3UllNRll3VktCUwpvRkNHVG1oMGRIQnpPaTh2WVhCcExuUnlkWE4wWldSelpYSjJhV05sY3k1cGJuUmxiQzVqYjIwdmMyZDRMMk5sY25ScFptbGpZWFJwCmIyNHZkakV2Y0dOclkzSnNQMk5oUFhCeWIyTmxjM052Y2pBZEJnTlZIUTRFRmdRVXZkcDAweGV4M0NjOWd6RHplZkNRSjJVS1Fqc3cKRGdZRFZSMFBBUUgvQkFRREFnYkFNQXdHQTFVZEV3RUIvd1FDTUFBd2dnSFVCZ2txaGtpRytFMEJEUUVFZ2dIRk1JSUJ3VEFlQmdvcQpoa2lHK0UwQkRRRUJCQkNHUGd0dXVjU2lzUWdEM044SGJtanpNSUlCWkFZS0tvWklodmhOQVEwQkFqQ0NBVlF3RUFZTEtvWklodmhOCkFRMEJBZ0VDQVFZd0VBWUxLb1pJaHZoTkFRMEJBZ0lDQVFZd0VBWUxLb1pJaHZoTkFRMEJBZ01DQVFJd0VBWUxLb1pJaHZoTkFRMEIKQWdRQ0FRUXdFQVlMS29aSWh2aE5BUTBCQWdVQ0FRRXdFUVlMS29aSWh2aE5BUTBCQWdZQ0FnQ0FNQkFHQ3lxR1NJYjRUUUVOQVFJSApBZ0VCTUJBR0N5cUdTSWI0VFFFTkFRSUlBZ0VBTUJBR0N5cUdTSWI0VFFFTkFRSUpBZ0VBTUJBR0N5cUdTSWI0VFFFTkFRSUtBZ0VBCk1CQUdDeXFHU0liNFRRRU5BUUlMQWdFQU1CQUdDeXFHU0liNFRRRU5BUUlNQWdFQU1CQUdDeXFHU0liNFRRRU5BUUlOQWdFQU1CQUcKQ3lxR1NJYjRUUUVOQVFJT0FnRUFNQkFHQ3lxR1NJYjRUUUVOQVFJUEFnRUFNQkFHQ3lxR1NJYjRUUUVOQVFJUUFnRUFNQkFHQ3lxRwpTSWI0VFFFTkFRSVJBZ0VITUI4R0N5cUdTSWI0VFFFTkFRSVNCQkFHQmdJRUFZQUJBQUFBQUFBQUFBQUFNQkFHQ2lxR1NJYjRUUUVOCkFRTUVBZ0FBTUJRR0NpcUdTSWI0VFFFTkFRUUVCZ0NRYnFFQUFEQVBCZ29xaGtpRytFMEJEUUVGQ2dFQU1Bb0dDQ3FHU000OUJBTUMKQTBrQU1FWUNJUURqRlJYcVBqQ25NbWlaYURqRHNLVlF6NFR1VFBNcTdMUjYyZ2UyK1B2SllRSWhBSU9EbWp2Q1pqbTc2a3pLZXgzago0NUUvVjVuc1JRZ1BHSFlYNXhEMzRjOTQKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KTUlJQ2x6Q0NBajZnQXdJQkFnSVZBTkRvcXRwMTEva3VTUmVZUEhzVVpkRFY4bGxOTUFvR0NDcUdTTTQ5QkFNQwpNR2d4R2pBWUJnTlZCQU1NRVVsdWRHVnNJRk5IV0NCU2IyOTBJRU5CTVJvd0dBWURWUVFLREJGSmJuUmxiQ0JECmIzSndiM0poZEdsdmJqRVVNQklHQTFVRUJ3d0xVMkZ1ZEdFZ1EyeGhjbUV4Q3pBSkJnTlZCQWdNQWtOQk1Rc3cKQ1FZRFZRUUdFd0pWVXpBZUZ3MHhPREExTWpFeE1EUTFNRGhhRncwek16QTFNakV4TURRMU1EaGFNSEV4SXpBaApCZ05WQkFNTUdrbHVkR1ZzSUZOSFdDQlFRMHNnVUhKdlkyVnpjMjl5SUVOQk1Sb3dHQVlEVlFRS0RCRkpiblJsCmJDQkRiM0p3YjNKaGRHbHZiakVVTUJJR0ExVUVCd3dMVTJGdWRHRWdRMnhoY21FeEN6QUpCZ05WQkFnTUFrTkIKTVFzd0NRWURWUVFHRXdKVlV6QlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJMOXErTk1wMklPZwp0ZGwxYmsvdVdaNStUR1FtOGFDaTh6NzhmcytmS0NRM2QrdUR6WG5WVEFUMlpoRENpZnlJdUp3dk4zd05CcDlpCkhCU1NNSk1KckJPamdic3dnYmd3SHdZRFZSMGpCQmd3Rm9BVUltVU0xbHFkTkluemc3U1ZVcjlRR3prbkJxd3cKVWdZRFZSMGZCRXN3U1RCSG9FV2dRNFpCYUhSMGNITTZMeTlqWlhKMGFXWnBZMkYwWlhNdWRISjFjM1JsWkhObApjblpwWTJWekxtbHVkR1ZzTG1OdmJTOUpiblJsYkZOSFdGSnZiM1JEUVM1amNtd3dIUVlEVlIwT0JCWUVGTkRvCnF0cDExL2t1U1JlWVBIc1VaZERWOGxsTk1BNEdBMVVkRHdFQi93UUVBd0lCQmpBU0JnTlZIUk1CQWY4RUNEQUcKQVFIL0FnRUFNQW9HQ0NxR1NNNDlCQU1DQTBjQU1FUUNJQy85ais4NFQrSHp0Vk8vc09RQldKYlNkKy8ydWV4Swo0K2FBMGpjRkJMY3BBaUEzZGhNckY1Y0Q1MnQ2RnFNdkFJcGo4WGRHbXkyYmVlbGpMSksrcHpwY1JBPT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KTUlJQ2pqQ0NBalNnQXdJQkFnSVVJbVVNMWxxZE5JbnpnN1NWVXI5UUd6a25CcXd3Q2dZSUtvWkl6ajBFQXdJdwphREVhTUJnR0ExVUVBd3dSU1c1MFpXd2dVMGRZSUZKdmIzUWdRMEV4R2pBWUJnTlZCQW9NRVVsdWRHVnNJRU52CmNuQnZjbUYwYVc5dU1SUXdFZ1lEVlFRSERBdFRZVzUwWVNCRGJHRnlZVEVMTUFrR0ExVUVDQXdDUTBFeEN6QUoKQmdOVkJBWVRBbFZUTUI0WERURTRNRFV5TVRFd05ERXhNVm9YRFRNek1EVXlNVEV3TkRFeE1Gb3dhREVhTUJnRwpBMVVFQXd3UlNXNTBaV3dnVTBkWUlGSnZiM1FnUTBFeEdqQVlCZ05WQkFvTUVVbHVkR1ZzSUVOdmNuQnZjbUYwCmFXOXVNUlF3RWdZRFZRUUhEQXRUWVc1MFlTQkRiR0Z5WVRFTE1Ba0dBMVVFQ0F3Q1EwRXhDekFKQmdOVkJBWVQKQWxWVE1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRUM2bkV3TURJWVpPai9pUFdzQ3phRUtpNwoxT2lPU0xSRmhXR2pibkJWSmZWbmtZNHUzSWprRFlZTDBNeE80bXFzeVlqbEJhbFRWWXhGUDJzSkJLNXpsS09CCnV6Q0J1REFmQmdOVkhTTUVHREFXZ0JRaVpReldXcDAwaWZPRHRKVlN2MUFiT1NjR3JEQlNCZ05WSFI4RVN6QkoKTUVlZ1JhQkRoa0ZvZEhSd2N6b3ZMMk5sY25ScFptbGpZWFJsY3k1MGNuVnpkR1ZrYzJWeWRtbGpaWE11YVc1MApaV3d1WTI5dEwwbHVkR1ZzVTBkWVVtOXZkRU5CTG1OeWJEQWRCZ05WSFE0RUZnUVVJbVVNMWxxZE5JbnpnN1NWClVyOVFHemtuQnF3d0RnWURWUjBQQVFIL0JBUURBZ0VHTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFFd0NnWUkKS29aSXpqMEVBd0lEU0FBd1JRSWdRUXMvMDhyeWNkUGF1Q0ZrOFVQUVhDTUFsc2xvQmU3TndhUUdUY2RwYTBFQwpJUUNVdDhTR3Z4S21qcGNNL3owV1A5RHZvOGgyazVkdTFpV0RkQmtBbiswaWlBPT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQoA",
+ "runtimeData": {
+ "data": "eyJrdHkiOiJSU0EiLCJuIjogIjB2eDdhZ29lYkdjUVN1dVBpTEpYWnB0TjlubmRyUW1iWEVwczJhaUFGYldoTTc4TGhXeDRjYmJmQUF0VlQ4Nnp3dTFSSzdhUEZGeHVoRFIxTDZ0U29jX0JKRUNQZWJXS1JYakJaQ2lGVjRuM29rbmpoTXN0bjY0dFpfMlctNUpzR1k0SGM1bjl5QlhBcndsOTNscXQ3X1JONXc2Q2YwaDRReVE1di02NVlHalFSMF9GRFcyUXZ6cVkzNjhRUU1pY0F0YVNxenM4S0paZ25ZYjljN2QwemdkQVpIenU2cU1RdlJMNWhhanJuMW45MUNiT3BiSVNEMDhxTkx5cmRrdC1iRlRXaEFJNHZNUUZoNldlWnUwZk00bEZkMk5jUndyM1hQa3NJTkhhUS1HX3hCbmlJcWJ3MExzMWpGNDQtY3NGQ3VyLWtFZ1U4YXdhcEp6S25xREtndyIsImUiOiJBUUFCIiwiYWxnIjoiUlMyNTYiImtpZCI6IjIwMTEtMDQtMjkifQ",
+ "dataType": "Binary"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "token": "eyJhbGciOiAiUlMyNTYiLCAiamt1IjogImh0dHBzOi8vdGVuYW50dGVzdHMudXMvY2VydHMiLCAia2lkIjogImU4VHpCeEJ0VnFIdnRxOUdVbTFEd2Y0VkRoMGRubk1uS1BhemdOOXBUUGM9IiwgInR5cCI6ICJKV1QifQ.eyJhYXMtZWhkIjogImV5SnJkSGtpT2lKU1UwRWlMQ0p1SWpvZ0lqQjJlRGRoWjI5bFlrZGpVVk4xZFZCcFRFcFlXbkIwVGpsdWJtUnlVVzFpV0VWd2N6SmhhVUZHWWxkb1RUYzRUR2hYZURSalltSm1RVUYwVmxRNE5ucDNkVEZTU3pkaFVFWkdlSFZvUkZJeFREWjBVMjlqWDBKS1JVTlFaV0pYUzFKWWFrSmFRMmxHVmpSdU0yOXJibXBvVFhOMGJqWTBkRnBmTWxjdE5VcHpSMWswU0dNMWJqbDVRbGhCY25kc09UTnNjWFEzWDFKT05YYzJRMll3YURSUmVWRTFkaTAyTlZsSGFsRlNNRjlHUkZjeVVYWjZjVmt6TmpoUlVVMXBZMEYwWVZOeGVuTTRTMHBhWjI1WllqbGpOMlF3ZW1ka1FWcEllblUyY1UxUmRsSk1OV2hoYW5KdU1XNDVNVU5pVDNCaVNWTkVNRGh4VGt4NWNtUnJkQzFpUmxSWGFFRkpOSFpOVVVab05sZGxXblV3WmswMGJFWmtNazVqVW5keU0xaFFhM05KVGtoaFVTMUhYM2hDYm1sSmNXSjNNRXh6TVdwR05EUXRZM05HUTNWeUxXdEZaMVU0WVhkaGNFcDZTMjV4UkV0bmR5SXNJbVVpT2lKQlVVRkNJaXdpWVd4bklqb2lVbE15TlRZaUltdHBaQ0k2SWpJd01URXRNRFF0TWpraWZRIiwgImV4cCI6IDE2MDE0Mjk1NzgsICJpYXQiOiAxNjAxNDAwNzc4LCAiaXMtZGVidWdnYWJsZSI6IHRydWUsICJpc3MiOiAiaHR0cHM6Ly90ZW5hbnR0ZXN0cy51cyIsICJtYWEtYXR0ZXN0YXRpb25jb2xsYXRlcmFsIjogeyJtYWEtcWVpZGNlcnRzaGFzaCI6ICIxYjJhN2NkNTk2NjkyOWFlYzFlMDYxZjQ3YWJhMDNhZTQyMmMxMWU5ZjhkY2U0MjEyYzJiYjM2MDkyMjJmMzI0IiwgIm1hYS1xZWlkY3JsaGFzaCI6ICJkYTEzNzQxNzk1MzQxOTUwYzJmZGQ2ZTZhZjhlOGFkODIzZGU2ZTk5OGIyMTM5NzIxNjdjYjRkNjQzMWM5NjlhIiwgIm1hYS1xZWlkaGFzaCI6ICJiNWIwNmMzMmM0MjFiYmE2NWJlZGQxMjY3OTJlNmJlN2RjZTFiOTI0YTAwM2QxODcxOTgyZDA1NzA5YTQ1ZjRhIiwgIm1hYS1xdW90ZWhhc2giOiAiOGMzZGFlZDM2YjU4NjI4YjAyN2M3MTMwOTkxZTRjMzRkYWJlMDlkOTU2ZDkwMTNkNmE1NzEwZjg2ZTkxODM5OCIsICJtYWEtdGNiaW5mb2NlcnRzaGFzaCI6ICIxYjJhN2NkNTk2NjkyOWFlYzFlMDYxZjQ3YWJhMDNhZTQyMmMxMWU5ZjhkY2U0MjEyYzJiYjM2MDkyMjJmMzI0IiwgIm1hYS10Y2JpbmZvY3JsaGFzaCI6ICJkYTEzNzQxNzk1MzQxOTUwYzJmZGQ2ZTZhZjhlOGFkODIzZGU2ZTk5OGIyMTM5NzIxNjdjYjRkNjQzMWM5NjlhIiwgIm1hYS10Y2JpbmZvaGFzaCI6ICIwZTFjNDEwNTZlMWE1OTA4YmY3ZmEyYmQxZDk5YWJjY2IwYWIzYmM5OTI1M2NjNDBhNWE1YWNkMTY1YTU3ZWI2In0sICJtYWEtZWhkIjogImV5SnJkSGtpT2lKU1UwRWlMQ0p1SWpvZ0lqQjJlRGRoWjI5bFlrZGpVVk4xZFZCcFRFcFlXbkIwVGpsdWJtUnlVVzFpV0VWd2N6SmhhVUZHWWxkb1RUYzRUR2hYZURSalltSm1RVUYwVmxRNE5ucDNkVEZTU3pkaFVFWkdlSFZvUkZJeFREWjBVMjlqWDBKS1JVTlFaV0pYUzFKWWFrSmFRMmxHVmpSdU0yOXJibXBvVFhOMGJqWTBkRnBmTWxjdE5VcHpSMWswU0dNMWJqbDVRbGhCY25kc09UTnNjWFEzWDFKT05YYzJRMll3YURSUmVWRTFkaTAyTlZsSGFsRlNNRjlHUkZjeVVYWjZjVmt6TmpoUlVVMXBZMEYwWVZOeGVuTTRTMHBhWjI1WllqbGpOMlF3ZW1ka1FWcEllblUyY1UxUmRsSk1OV2hoYW5KdU1XNDVNVU5pVDNCaVNWTkVNRGh4VGt4NWNtUnJkQzFpUmxSWGFFRkpOSFpOVVVab05sZGxXblV3WmswMGJFWmtNazVqVW5keU0xaFFhM05KVGtoaFVTMUhYM2hDYm1sSmNXSjNNRXh6TVdwR05EUXRZM05HUTNWeUxXdEZaMVU0WVhkaGNFcDZTMjV4UkV0bmR5SXNJbVVpT2lKQlVVRkNJaXdpWVd4bklqb2lVbE15TlRZaUltdHBaQ0k2SWpJd01URXRNRFF0TWpraWZRIiwgIm5iZiI6IDE2MDE0MDA3NzgsICJwcm9kdWN0LWlkIjogMCwgInNneC1tcmVuY2xhdmUiOiAiOGFiOTAzZjJiODEwYTk1ZjhiODY4ZWVlYThiYzliMTc5YWNjYjhhNWQwNjY4NTI0ZWQ3YTM2NTViMDA1ZTZmOSIsICJzZ3gtbXJzaWduZXIiOiAiY2E5YWQ3MzMxNDQ4OTgwYWEyODg5MGNlNzNlNDMzNjM4Mzc3ZjE3OWFiNDQ1NmIyZmUyMzcxOTMxOTNhOGQwYSIsICJzdm4iOiAwLCAidGVlIjogInNneCIsICJ4LW1zLXBvbGljeS1oYXNoIjogImVnam5BTkl6RXBTMldncEU0TmstUUV3TTY5WFJDZ1RzNDJfRzBxTGxibmsiLCAieC1tcy12ZXIiOiAiMS4wIn0.mzOOFSSRutKTjkWbjg92Sn8Jdedw3nt2oZTZZ6ubXMY3hMQyUCo1OdHd00I5vq24HwvfpSlZAM7DtJr89NJLkzI2mY8IpfwfAWd7vOOVSdwg-qPa_S8G1wnhmsKn3FOmr_eS-aXOkfWf0caMf-CfNyFGrWBPDt_k7JsGYVgQV4GvzGNkKJwryUNSa1OwWeFx868hsSaCFijtJxN6wKamuw-XyENjmSY2HKeBT59MqENRu3c-GHyv6kjPVnPHM_-cSdcOH4i-eFIx4lH6H32kzY-zRcabDzqmJHEW_iKupDNFVG2wEvUalxJkU8IYlRU04wiVskD0AFS4TAtGXECnNA"
+ }
+ }
+ }
+}
diff --git a/specification/attestation/data-plane/Microsoft.Attestation/stable/2020-10-01/examples/AttestSevSnpVm.json b/specification/attestation/data-plane/Microsoft.Attestation/stable/2020-10-01/examples/AttestSevSnpVm.json
new file mode 100644
index 000000000000..7582bcafb214
--- /dev/null
+++ b/specification/attestation/data-plane/Microsoft.Attestation/stable/2020-10-01/examples/AttestSevSnpVm.json
@@ -0,0 +1,17 @@
+{
+ "parameters": {
+ "instanceUrl": "https://instance.attest.azure.net",
+ "api-version": "2020-10-01",
+ "request": {
+ "reportType": "HclHyperV",
+ "report": "SENMQQEAAADRBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAB8ACwAAAAAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAzAAAAAAAAAAAAAAAAAAAAAEnvia-3paqOjvL4Y8aHoLAoSwEYpvlScPVCZ8gW6rLhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADnP2W0CtgI1rBtW9JGy-oWJ1wXGdWBxSZvfByn3I_q0TR15ClWSygU8tWs55Qb5OkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKZM6OS5EHwe7c8bQDMX4yFEux95df07UvWho7e2LsAGAHZ5VUxQWAfFADYFwDOU0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKYGr2SRklnMdzWWfDQhDg0RrDYfRLzSTD1SZLj-k7uupgavZJGSWcx3NZZ8NCEODRGsNh9EvNJMPVJkuP6Tu64AAAAAAAAAMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAObIZ5bNRLC8a3wNT9qzPigH4UtfxFOLN1CSEWnZe89ER8fTqyp8JfdMFkHiiFwQEdAlzFNvXJolBHExNseHf0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADG5UE56fX8Q_HgNzxrY52-G-PsQoUChtkbV96GP6uzquM6_WxbKD3zjIcmfNicJZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACj4bYIjBRCfhwXJrdUM_Bs0inzeDO-7goW6YTn5KluomcH_WE-87XS0-Lf2XfsAEIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABECAAABAAAAAgAAAAEAAAD9AQAAeyJza3ItdHJhbnNmZXIta2V5Ijp7ImtleXMiOlt7ImtpZCI6IkhDTFRyYW5zZmVyS2V5Iiwia2V5X29wcyI6WyJlbmNyeXB0Il0sImt0eSI6IlJTQSIsImUiOiJBUUFCIiwibiI6InhXODF1VFdQQlpiLVNjbklTbFF5U2dTTm9aVjhjSVNQS0FWVnhza1VXVGV2cGpTTzdrNmNURUhpUW1QRWdsNTVwOHJnb0ZuRkdCWlJtOFRYUVgwNzJ1TGZUUnBQTkFkOGFnbnZsM0dfMDAxd09vdXd0NnV3RzhWWHhCSENLVWZWMlBWVlRVSzJtRHFBRUl5R3g1QUJsQ3hQc19jV085emtMX0JrVEhBZEhrdURfUzM2ZE1FRURhVFp2Z1N4elRDNDJBbWtYem9oSFZaVThGYmNDTzJDOTZ2WnoxSWcxMHNFSHN1aU11aDVPSE43c1k1RHdNMU9EUnlTaGpMbVF4NEhVTzRuOUMtOGZYWGJaVXBMRTVESHBSMlNzajdMTFRpMi1BVW1rZDVicldQVHE0QjVJYXBqWm1ZSlRSeUhaVHEzUlQ2NTZVc1dxWnJOX2VwdHJHRFVMUSJ9XX0sInNlY3VyaXR5LXByb2ZpbGUiOnsidHBtLWVuYWJsZWQiOnRydWUsInNlY3VyZS1ib290Ijp0cnVlfX0"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "token": "eyJhbGciOiAiUlMyNTYiLCAiamt1IjogImh0dHBzOi8vdGVuYW50dGVzdHMudXMvY2VydHMiLCAia2lkIjogImU4VHpCeEJ0VnFIdnRxOUdVbTFEd2Y0VkRoMGRubk1uS1BhemdOOXBUUGM9IiwgInR5cCI6ICJKV1QifQ.eyJhdXRob3JrZXlkaWdlc3QiOiAiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwgImV4cCI6IDE2MDE0MzAyODksICJmYW1pbHlJZCI6ICIwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsICJndWVzdHN2biI6IDEsICJob3N0ZGF0YSI6ICIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwgImlhdCI6IDE2MDE0MDE0ODksICJpZGtleWRpZ2VzdCI6ICJhNjRjZThlNGI5MTA3YzFlZWRjZjFiNDAzMzE3ZTMyMTQ0YmIxZjc5NzVmZDNiNTJmNWExYTNiN2I2MmVjMDA2MDA3Njc5NTU0YzUwNTgwN2M1MDAzNjA1YzAzMzk0ZDIiLCAiaW1hZ2VJZCI6ICIwMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsICJpc3MiOiAiaHR0cHM6Ly90ZW5hbnR0ZXN0cy51cyIsICJsYXVuY2htZWFzdXJlbWVudCI6ICJlNzNmNjViNDBhZDgwOGQ2YjA2ZDViZDI0NmNiZWExNjI3NWMxNzE5ZDU4MWM1MjY2ZjdjMWNhN2RjOGZlYWQxMzQ3NWU0Mjk1NjRiMjgxNGYyZDVhY2U3OTQxYmU0ZTkiLCAibWFhLWVoZCI6ICJleUpyWlhseklqb2dXM3NpWlNJNklDSkJVVUZDSWl3Z0ltdGxlVjl2Y0hNaU9pQmJJbVZ1WTNKNWNIUWlYU3dnSW10cFpDSTZJQ0pJUTB4VWNtRnVjMlpsY2t0bGVTSXNJQ0pyZEhraU9pQWlVbE5CSWl3Z0ltNGlPaUFpZUZjNE1YVlVWMUJDV21JdFUyTnVTVk5zVVhsVFoxTk9iMXBXT0dOSlUxQkxRVlpXZUhOclZWZFVaWFp3YWxOUE4yczJZMVJGU0dsUmJWQkZaMncxTlhBNGNtZHZSbTVHUjBKYVVtMDRWRmhSV0RBM01uVk1abFJTY0ZCT1FXUTRZV2R1ZG13elIxOHdNREYzVDI5MWQzUTJkWGRIT0ZaWWVFSklRMHRWWmxZeVVGWldWRlZMTW0xRWNVRkZTWGxIZURWQlFteERlRkJ6WDJOWFR6bDZhMHhmUW10VVNFRmtTR3QxUkY5VE16WmtUVVZGUkdGVVduWm5VM2g2VkVNME1rRnRhMWg2YjJoSVZscFZPRVppWTBOUE1rTTVOblphZWpGSlp6RXdjMFZJYzNWcFRYVm9OVTlJVGpkeldUVkVkMDB4VDBSU2VWTm9ha3h0VVhnMFNGVlBORzQ1UXkwNFpsaFlZbHBWY0V4Rk5VUkljRkl5VTNOcU4weE1WR2t5TFVGVmJXdGtOV0p5VjFCVWNUUkNOVWxoY0dwYWJWbEtWRko1U0ZwVWNUTlNWRFkxTmxWelYzRmFjazVmWlhCMGNrZEVWVXhSSW4xZGZRIiwgIm5iZiI6IDE2MDE0MDE0ODksICJwbGF0Zm9ybWluZm8iOiAiMHgwMDAwMDAwMDAwMDAwMDAwIiwgInBvbGljeSI6ICIweDAwMDAwMDAwMDAwYjAwMWYiLCAicmVwb3J0ZGF0YSI6ICI0OWVmODlhZmI3YTVhYThlOGVmMmY4NjNjNjg3YTBiMDI4NGIwMTE4YTZmOTUyNzBmNTQyNjdjODE2ZWFiMmUxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsICJyZXBvcnRpZCI6ICJhNjA2YWY2NDkxOTI1OWNjNzczNTk2N2MzNDIxMGUwZDExYWMzNjFmNDRiY2QyNGMzZDUyNjRiOGZlOTNiYmFlIiwgInRjYnZlcnNpb24iOiAiMHgzMzAwMDAwMDAwMDAwMDAwIiwgInRlZSI6ICJzZXZzbnB2bSIsICJ2bXBsIjogMCwgIngtbXMtcG9saWN5LWhhc2giOiAiOVBMb2kzQlpyZmxoVXBucWdmS0FsZ0lmei04NEVzdzVQNHdrM1RURUJVQSIsICJ4LW1zLXZlciI6ICIxLjAifQ.CwrtL3IjpJw2cB22wlzipS2sjNyTQVJLYvBHnXeQvn5yP4hAF9w8zuxegewgL4CR25BPsx3sjSO7yle0_jlNmu05smWohEiY4cVxm38XoM5p1fct0q1AUjTC-dXNuPN33QfFWByD1huYJVEz1TxUiFj6emKKgX968O-2z0RvE7rMHV0eSIJHJjM5Sp2u8VW16-oJdM84PqvshW2WJq1RcKEW0uvhipXXIIZj1fZPywz4aIh6LyV0S02lM40KY1rfg8AhTvzZ3Gefmq7zWxwF1uc1TDMEkWWQcyXiEoaDk1iwHitEty81ufJ5iMH5IIEenhux3EH_H9lb-fgchR4uEw"
+ }
+ }
+ }
+}
diff --git a/specification/attestation/data-plane/Microsoft.Attestation/stable/2020-10-01/examples/AttestSgxEnclave.json b/specification/attestation/data-plane/Microsoft.Attestation/stable/2020-10-01/examples/AttestSgxEnclave.json
new file mode 100644
index 000000000000..bb32e91b8d7e
--- /dev/null
+++ b/specification/attestation/data-plane/Microsoft.Attestation/stable/2020-10-01/examples/AttestSgxEnclave.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "instanceUrl": "https://instance.attest.azure.net",
+ "api-version": "2020-10-01",
+ "request": {
+ "quote": "AwACAAAAAAAFAAoAk5pyM_ecTKmUCg2zlX8GBxikFG2RGHbLfXx_vS5gtP8AAAAADg4CBf-ABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAHAAAAAAAAANlxlh9yS3HfxfFVOsTvtorRYOhJYCzdhRy4QEI-WSpzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACFaCMSMCcBDtDOH31RW2vh11BeWCj7oZeFZ2Aw2P_8KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8SAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjKYv2t_KVJfL8eJMumYwKEA--jtZ1UOGFrKEaj6Tm6gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMBAAANfCXfxRtqOqDZV2NJAxIFTxDg0BuV-LLuq_D2YGtwp3x331XC_I13E1BqX7zR8dL4GiEACndxFkLGaAv7NTLL6pLrutcGj8wPA8MTOlV4BI9ZLcEwlNobvHIWKrrjtzDs_Wekb9nq08xb-P_yg0R0RvYNMkgIz61v6jPXeuq_n-Dg4CBf-ABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFQAAAAAAAAAHAAAAAAAAAD-wrOCGnS4w8o6G1wx2ZAOlT7vNZY7s4OG5SKkVWRdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMT1d115ZQPpYTf3fGioKaAFasje1wFAsIGwlEkMV7_wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACJ_xj1I2YFmziAVUcpkwhFu4bxfwGQ71nD4Xoz4lKoNwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKsDZgMr9cfiWsAr8sI9X5cwgnD3ob0ETj44vViBmw41w5Q7ZpSaH6cAfnRI3-QimRJnpzr_9V5LzIEBCVmloPyAAAAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8FAMgNAAAtLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KTUlJRWdEQ0NCQ2FnQXdJQkFnSVVmakNyOUhXbmVSZzdLUUEra3krRmRybXdmMXd3Q2dZSUtvWkl6ajBFQXdJd2NURWpNQ0VHQTFVRQpBd3dhU1c1MFpXd2dVMGRZSUZCRFN5QlFjbTlqWlhOemIzSWdRMEV4R2pBWUJnTlZCQW9NRVVsdWRHVnNJRU52Y25CdmNtRjBhVzl1Ck1SUXdFZ1lEVlFRSERBdFRZVzUwWVNCRGJHRnlZVEVMTUFrR0ExVUVDQXdDUTBFeEN6QUpCZ05WQkFZVEFsVlRNQjRYRFRFNU1EY3gKT0RJeU16STFObG9YRFRJMk1EY3hPREl5TXpJMU5sb3djREVpTUNBR0ExVUVBd3daU1c1MFpXd2dVMGRZSUZCRFN5QkRaWEowYVdacApZMkYwWlRFYU1CZ0dBMVVFQ2d3UlNXNTBaV3dnUTI5eWNHOXlZWFJwYjI0eEZEQVNCZ05WQkFjTUMxTmhiblJoSUVOc1lYSmhNUXN3CkNRWURWUVFJREFKRFFURUxNQWtHQTFVRUJoTUNWVk13V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVNpdG1MQTNJYjYKY3R1SGZ0ZnR3R1Qray90UGxwN2VvTVpnSlFDZSsxZFlXKzFvNTUwRXpXREM3dFRreWQ2NTJKdlBDVXBBZVMyUitDYUFRaGlPSThtNQpvNElDbXpDQ0FwY3dId1lEVlIwakJCZ3dGb0FVME9pcTJuWFgrUzVKRjVnOGV4UmwwTlh5V1Uwd1h3WURWUjBmQkZnd1ZqQlVvRktnClVJWk9hSFIwY0hNNkx5OWhjR2t1ZEhKMWMzUmxaSE5sY25acFkyVnpMbWx1ZEdWc0xtTnZiUzl6WjNndlkyVnlkR2xtYVdOaGRHbHYKYmk5Mk1TOXdZMnRqY213L1kyRTljSEp2WTJWemMyOXlNQjBHQTFVZERnUVdCQlN6czNGTVF1UlBLcGtSNWxTbXRkckl5V3BtN2pBTwpCZ05WSFE4QkFmOEVCQU1DQnNBd0RBWURWUjBUQVFIL0JBSXdBRENDQWRRR0NTcUdTSWI0VFFFTkFRU0NBY1V3Z2dIQk1CNEdDaXFHClNJYjRUUUVOQVFFRUVNTDZ5K01oZG4vNkJiSWV6WEdkUHlNd2dnRmtCZ29xaGtpRytFMEJEUUVDTUlJQlZEQVFCZ3NxaGtpRytFMEIKRFFFQ0FRSUJCakFRQmdzcWhraUcrRTBCRFFFQ0FnSUJCakFRQmdzcWhraUcrRTBCRFFFQ0F3SUJBakFRQmdzcWhraUcrRTBCRFFFQwpCQUlCQkRBUUJnc3Foa2lHK0UwQkRRRUNCUUlCQVRBUkJnc3Foa2lHK0UwQkRRRUNCZ0lDQUlBd0VBWUxLb1pJaHZoTkFRMEJBZ2NDCkFRRXdFQVlMS29aSWh2aE5BUTBCQWdnQ0FRQXdFQVlMS29aSWh2aE5BUTBCQWdrQ0FRQXdFQVlMS29aSWh2aE5BUTBCQWdvQ0FRQXcKRUFZTEtvWklodmhOQVEwQkFnc0NBUUF3RUFZTEtvWklodmhOQVEwQkFnd0NBUUF3RUFZTEtvWklodmhOQVEwQkFnMENBUUF3RUFZTApLb1pJaHZoTkFRMEJBZzRDQVFBd0VBWUxLb1pJaHZoTkFRMEJBZzhDQVFBd0VBWUxLb1pJaHZoTkFRMEJBaEFDQVFBd0VBWUxLb1pJCmh2aE5BUTBCQWhFQ0FRY3dId1lMS29aSWh2aE5BUTBCQWhJRUVBWUdBZ1FCZ0FFQUFBQUFBQUFBQUFBd0VBWUtLb1pJaHZoTkFRMEIKQXdRQ0FBQXdGQVlLS29aSWh2aE5BUTBCQkFRR0FKQnVvUUFBTUE4R0NpcUdTSWI0VFFFTkFRVUtBUUF3Q2dZSUtvWkl6ajBFQXdJRApTQUF3UlFJaEFMN25wNTZieGtESFVRRStTaUQ1K1M4eTFEOWFOK0ZyMHY1VENUQlUyazNkQWlCbVdQZUVIOW1ySkJ3SWU5eHV1aHo0Clp4cTlzTnlPaDRCc3NzdEQwV0Jkd3c9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDbHpDQ0FqNmdBd0lCQWdJVkFORG9xdHAxMS9rdVNSZVlQSHNVWmREVjhsbE5NQW9HQ0NxR1NNNDlCQU1DCk1HZ3hHakFZQmdOVkJBTU1FVWx1ZEdWc0lGTkhXQ0JTYjI5MElFTkJNUm93R0FZRFZRUUtEQkZKYm5SbGJDQkQKYjNKd2IzSmhkR2x2YmpFVU1CSUdBMVVFQnd3TFUyRnVkR0VnUTJ4aGNtRXhDekFKQmdOVkJBZ01Ba05CTVFzdwpDUVlEVlFRR0V3SlZVekFlRncweE9EQTFNakV4TURRMU1EaGFGdzB6TXpBMU1qRXhNRFExTURoYU1IRXhJekFoCkJnTlZCQU1NR2tsdWRHVnNJRk5IV0NCUVEwc2dVSEp2WTJWemMyOXlJRU5CTVJvd0dBWURWUVFLREJGSmJuUmwKYkNCRGIzSndiM0poZEdsdmJqRVVNQklHQTFVRUJ3d0xVMkZ1ZEdFZ1EyeGhjbUV4Q3pBSkJnTlZCQWdNQWtOQgpNUXN3Q1FZRFZRUUdFd0pWVXpCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQkw5cStOTXAySU9nCnRkbDFiay91V1o1K1RHUW04YUNpOHo3OGZzK2ZLQ1EzZCt1RHpYblZUQVQyWmhEQ2lmeUl1Snd2TjN3TkJwOWkKSEJTU01KTUpyQk9qZ2Jzd2diZ3dId1lEVlIwakJCZ3dGb0FVSW1VTTFscWROSW56ZzdTVlVyOVFHemtuQnF3dwpVZ1lEVlIwZkJFc3dTVEJIb0VXZ1E0WkJhSFIwY0hNNkx5OWpaWEowYVdacFkyRjBaWE11ZEhKMWMzUmxaSE5sCmNuWnBZMlZ6TG1sdWRHVnNMbU52YlM5SmJuUmxiRk5IV0ZKdmIzUkRRUzVqY213d0hRWURWUjBPQkJZRUZORG8KcXRwMTEva3VTUmVZUEhzVVpkRFY4bGxOTUE0R0ExVWREd0VCL3dRRUF3SUJCakFTQmdOVkhSTUJBZjhFQ0RBRwpBUUgvQWdFQU1Bb0dDQ3FHU000OUJBTUNBMGNBTUVRQ0lDLzlqKzg0VCtIenRWTy9zT1FCV0piU2QrLzJ1ZXhLCjQrYUEwamNGQkxjcEFpQTNkaE1yRjVjRDUydDZGcU12QUlwajhYZEdteTJiZWVsakxKSytwenBjUkE9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDampDQ0FqU2dBd0lCQWdJVUltVU0xbHFkTkluemc3U1ZVcjlRR3prbkJxd3dDZ1lJS29aSXpqMEVBd0l3CmFERWFNQmdHQTFVRUF3d1JTVzUwWld3Z1UwZFlJRkp2YjNRZ1EwRXhHakFZQmdOVkJBb01FVWx1ZEdWc0lFTnYKY25CdmNtRjBhVzl1TVJRd0VnWURWUVFIREF0VFlXNTBZU0JEYkdGeVlURUxNQWtHQTFVRUNBd0NRMEV4Q3pBSgpCZ05WQkFZVEFsVlRNQjRYRFRFNE1EVXlNVEV3TkRFeE1Wb1hEVE16TURVeU1URXdOREV4TUZvd2FERWFNQmdHCkExVUVBd3dSU1c1MFpXd2dVMGRZSUZKdmIzUWdRMEV4R2pBWUJnTlZCQW9NRVVsdWRHVnNJRU52Y25CdmNtRjAKYVc5dU1SUXdFZ1lEVlFRSERBdFRZVzUwWVNCRGJHRnlZVEVMTUFrR0ExVUVDQXdDUTBFeEN6QUpCZ05WQkFZVApBbFZUTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFQzZuRXdNRElZWk9qL2lQV3NDemFFS2k3CjFPaU9TTFJGaFdHamJuQlZKZlZua1k0dTNJamtEWVlMME14TzRtcXN5WWpsQmFsVFZZeEZQMnNKQks1emxLT0IKdXpDQnVEQWZCZ05WSFNNRUdEQVdnQlFpWlF6V1dwMDBpZk9EdEpWU3YxQWJPU2NHckRCU0JnTlZIUjhFU3pCSgpNRWVnUmFCRGhrRm9kSFJ3Y3pvdkwyTmxjblJwWm1sallYUmxjeTUwY25WemRHVmtjMlZ5ZG1salpYTXVhVzUwClpXd3VZMjl0TDBsdWRHVnNVMGRZVW05dmRFTkJMbU55YkRBZEJnTlZIUTRFRmdRVUltVU0xbHFkTkluemc3U1YKVXI5UUd6a25CcXd3RGdZRFZSMFBBUUgvQkFRREFnRUdNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUV3Q2dZSQpLb1pJemowRUF3SURTQUF3UlFJZ1FRcy8wOHJ5Y2RQYXVDRms4VVBRWENNQWxzbG9CZTdOd2FRR1RjZHBhMEVDCklRQ1V0OFNHdnhLbWpwY00vejBXUDlEdm84aDJrNWR1MWlXRGRCa0FuKzBpaUE9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCgA",
+ "runtimeData": {
+ "data": "wFdC6gBMrrej2JTuNlTjWOe-ebL7Rz34WjmEUnbfFEc_5BITs2t4V8uuEI8JX73t0g_nUTu6g07xyC6rx9wl8IUQFYyPKhsMk3FLESkryhb5dz9cDxoxwMNnGbu-B7AsOBCe3lckQmoRAEf4_5qUm-PS26DD3SkbNRT-XjMQMQ19Q33dpKFvXPrQyvCK0ly0pL-JXXdnT4hsJUn8tJKW152W2gZWeXIKO8Ge2er_8xXUvQ6gCLZwwcD1--Whg90h9n5tVRNQdqCnWwsFL0LEKVNiCj7Cbii8_XpjYjTTSQKSOiC_i_VbZZF9cY4W_1ZpUj7WWkSSkPhNSuqBHOvmuFrVTlfQvgdsKYQ5zYbSnPtqJ1_4QUoPJsYQIxyFFncIDbuGWuTPd_FDKLBLQADyO4kYWjnVMXdM1p_xjtqo2_UWTznEfrQpoZttQE99GZVEVSXPBn0GXzph4JDKyWq3rDIvzFMhumG5ay1eyQ622hxwBN4WVxVjJ-BtaWMnU15o4OZZVReCpTodGZabT0RgAmJqKNZnH_Vx_ECLKxssxEHoNWZBUCWAS9Qy4OpdQZ1-vINHJaTIZsehSZrkk1a5ttJdghTSUJGbEPWt3Azstjidyq8x1l5q-PIClhJE_Q_vHOvTzxCebqZOhFJl08rx8I2OYxzekLA1miJ4aZs8h3eB6tOHZF06gJC8wcIORvy8d8ysEZvja40AWSg",
+ "dataType": "Binary"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "token": "eyJhbGciOiAiUlMyNTYiLCAiamt1IjogImh0dHBzOi8vdGVuYW50dGVzdHMudXMvY2VydHMiLCAia2lkIjogImU4VHpCeEJ0VnFIdnRxOUdVbTFEd2Y0VkRoMGRubk1uS1BhemdOOXBUUGM9IiwgInR5cCI6ICJKV1QifQ.eyJhYXMtZWhkIjogIndGZEM2Z0JNcnJlajJKVHVObFRqV09lLWViTDdSejM0V2ptRVVuYmZGRWNfNUJJVHMydDRWOHV1RUk4Slg3M3QwZ19uVVR1NmcwN3h5QzZyeDl3bDhJVVFGWXlQS2hzTWszRkxFU2tyeWhiNWR6OWNEeG94d01ObkdidS1CN0FzT0JDZTNsY2tRbW9SQUVmNF81cVVtLVBTMjZERDNTa2JOUlQtWGpNUU1RMTlRMzNkcEtGdlhQclF5dkNLMGx5MHBMLUpYWGRuVDRoc0pVbjh0SktXMTUyVzJnWldlWElLTzhHZTJlcl84eFhVdlE2Z0NMWnd3Y0QxLS1XaGc5MGg5bjV0VlJOUWRxQ25Xd3NGTDBMRUtWTmlDajdDYmlpOF9YcGpZalRUU1FLU09pQ19pX1ZiWlpGOWNZNFdfMVpwVWo3V1drU1NrUGhOU3VxQkhPdm11RnJWVGxmUXZnZHNLWVE1elliU25QdHFKMV80UVVvUEpzWVFJeHlGRm5jSURidUdXdVRQZF9GREtMQkxRQUR5TzRrWVdqblZNWGRNMXBfeGp0cW8yX1VXVHpuRWZyUXBvWnR0UUU5OUdaVkVWU1hQQm4wR1h6cGg0SkRLeVdxM3JESXZ6Rk1odW1HNWF5MWV5UTYyMmh4d0JONFdWeFZqSi1CdGFXTW5VMTVvNE9aWlZSZUNwVG9kR1phYlQwUmdBbUpxS05abkhfVnhfRUNMS3hzc3hFSG9OV1pCVUNXQVM5UXk0T3BkUVoxLXZJTkhKYVRJWnNlaFNacmtrMWE1dHRKZGdoVFNVSkdiRVBXdDNBenN0amlkeXE4eDFsNXEtUElDbGhKRV9RX3ZIT3ZUenhDZWJxWk9oRkpsMDhyeDhJMk9ZeHpla0xBMW1pSjRhWnM4aDNlQjZ0T0haRjA2Z0pDOHdjSU9Sdnk4ZDh5c0VadmphNDBBV1NnIiwgImV4cCI6IDE2MDE0MzA1NDUsICJpYXQiOiAxNjAxNDAxNzQ1LCAiaXMtZGVidWdnYWJsZSI6IGZhbHNlLCAiaXNzIjogImh0dHBzOi8vdGVuYW50dGVzdHMudXMiLCAibWFhLWF0dGVzdGF0aW9uY29sbGF0ZXJhbCI6IHsibWFhLXFlaWRjZXJ0c2hhc2giOiAiMWIyYTdjZDU5NjY5MjlhZWMxZTA2MWY0N2FiYTAzYWU0MjJjMTFlOWY4ZGNlNDIxMmMyYmIzNjA5MjIyZjMyNCIsICJtYWEtcWVpZGNybGhhc2giOiAiZGExMzc0MTc5NTM0MTk1MGMyZmRkNmU2YWY4ZThhZDgyM2RlNmU5OThiMjEzOTcyMTY3Y2I0ZDY0MzFjOTY5YSIsICJtYWEtcWVpZGhhc2giOiAiYjViMDZjMzJjNDIxYmJhNjViZWRkMTI2NzkyZTZiZTdkY2UxYjkyNGEwMDNkMTg3MTk4MmQwNTcwOWE0NWY0YSIsICJtYWEtcXVvdGVoYXNoIjogImYyM2NmM2E5OGYxZGJhYmQ2N2U3OTcwZGNkNDg2ODNkYzlhODBkMzM3MWFjYmY2OTZhMjU4NjNiYWMyODMzNjIiLCAibWFhLXRjYmluZm9jZXJ0c2hhc2giOiAiMWIyYTdjZDU5NjY5MjlhZWMxZTA2MWY0N2FiYTAzYWU0MjJjMTFlOWY4ZGNlNDIxMmMyYmIzNjA5MjIyZjMyNCIsICJtYWEtdGNiaW5mb2NybGhhc2giOiAiZGExMzc0MTc5NTM0MTk1MGMyZmRkNmU2YWY4ZThhZDgyM2RlNmU5OThiMjEzOTcyMTY3Y2I0ZDY0MzFjOTY5YSIsICJtYWEtdGNiaW5mb2hhc2giOiAiMGUxYzQxMDU2ZTFhNTkwOGJmN2ZhMmJkMWQ5OWFiY2NiMGFiM2JjOTkyNTNjYzQwYTVhNWFjZDE2NWE1N2ViNiJ9LCAibWFhLWVoZCI6ICJ3RmRDNmdCTXJyZWoySlR1TmxUaldPZS1lYkw3UnozNFdqbUVVbmJmRkVjXzVCSVRzMnQ0Vjh1dUVJOEpYNzN0MGdfblVUdTZnMDd4eUM2cng5d2w4SVVRRll5UEtoc01rM0ZMRVNrcnloYjVkejljRHhveHdNTm5HYnUtQjdBc09CQ2UzbGNrUW1vUkFFZjRfNXFVbS1QUzI2REQzU2tiTlJULVhqTVFNUTE5UTMzZHBLRnZYUHJReXZDSzBseTBwTC1KWFhkblQ0aHNKVW44dEpLVzE1MlcyZ1pXZVhJS084R2UyZXJfOHhYVXZRNmdDTFp3d2NEMS0tV2hnOTBoOW41dFZSTlFkcUNuV3dzRkwwTEVLVk5pQ2o3Q2JpaThfWHBqWWpUVFNRS1NPaUNfaV9WYlpaRjljWTRXXzFacFVqN1dXa1NTa1BoTlN1cUJIT3ZtdUZyVlRsZlF2Z2RzS1lRNXpZYlNuUHRxSjFfNFFVb1BKc1lRSXh5RkZuY0lEYnVHV3VUUGRfRkRLTEJMUUFEeU80a1lXam5WTVhkTTFwX3hqdHFvMl9VV1R6bkVmclFwb1p0dFFFOTlHWlZFVlNYUEJuMEdYenBoNEpES3lXcTNyREl2ekZNaHVtRzVheTFleVE2MjJoeHdCTjRXVnhWakotQnRhV01uVTE1bzRPWlpWUmVDcFRvZEdaYWJUMFJnQW1KcUtOWm5IX1Z4X0VDTEt4c3N4RUhvTldaQlVDV0FTOVF5NE9wZFFaMS12SU5ISmFUSVpzZWhTWnJrazFhNXR0SmRnaFRTVUpHYkVQV3QzQXpzdGppZHlxOHgxbDVxLVBJQ2xoSkVfUV92SE92VHp4Q2VicVpPaEZKbDA4cng4STJPWXh6ZWtMQTFtaUo0YVpzOGgzZUI2dE9IWkYwNmdKQzh3Y0lPUnZ5OGQ4eXNFWnZqYTQwQVdTZyIsICJuYmYiOiAxNjAxNDAxNzQ1LCAicHJvZHVjdC1pZCI6IDQ2MzksICJzZ3gtbXJlbmNsYXZlIjogImQ5NzE5NjFmNzI0YjcxZGZjNWYxNTUzYWM0ZWZiNjhhZDE2MGU4NDk2MDJjZGQ4NTFjYjg0MDQyM2U1OTJhNzMiLCAic2d4LW1yc2lnbmVyIjogIjg1NjgyMzEyMzAyNzAxMGVkMGNlMWY3ZDUxNWI2YmUxZDc1MDVlNTgyOGZiYTE5Nzg1Njc2MDMwZDhmZmZjMjgiLCAic3ZuIjogMSwgInRlZSI6ICJzZ3giLCAieC1tcy1wb2xpY3ktaGFzaCI6ICJlZ2puQU5JekVwUzJXZ3BFNE5rLVFFd002OVhSQ2dUczQyX0cwcUxsYm5rIiwgIngtbXMtdmVyIjogIjEuMCJ9.UvBYjpwNgLAq1Xi0IIGYmUId1zaOCB9r5vSFOInmy6Bte4qUZmvK9eI1pt0hcJaRYqNqNajDzE9Bh7_EJmj2TJ3mUJ1IpO6Q2z0krfPzs3arVswi474UOOtzkGCY3N04AVEN5uyBduYngdGOimEvSP2YLLJot95FtBSStI7nIcZB6SaTP9z7zihkVtgLWNOWrCmiSDKKo56yzsT1P_i24WnvPAn4jFZPR7g15i1rRZMvdmRyKmEWfZ_E5SLNTb6XN8wFCfpWPzxBm3JjSOynbcFnts0sbvYT5NpxfnhCmL6i41y3WfO8wGyF3BwRKR7Ox09S0EavryiPkGvb6NAzBA"
+ }
+ }
+ }
+}
diff --git a/specification/attestation/data-plane/Microsoft.Attestation/stable/2020-10-01/examples/AttestVbsEnclave.json b/specification/attestation/data-plane/Microsoft.Attestation/stable/2020-10-01/examples/AttestVbsEnclave.json
new file mode 100644
index 000000000000..c6cddd9f34fb
--- /dev/null
+++ b/specification/attestation/data-plane/Microsoft.Attestation/stable/2020-10-01/examples/AttestVbsEnclave.json
@@ -0,0 +1,16 @@
+{
+ "parameters": {
+ "instanceUrl": "https://instance.attest.azure.net",
+ "api-version": "2020-10-01",
+ "request": {
+ "data": "eyJwYXlsb2FkIjp7InR5cGUiOiJhaWtjZXJ0In0sIm1ldGFkYXRhIjp7Im9zX3ZlciI6IjEwLjAuMTkwNDEuNTQxLmFtZDY0ZnJlLnZiX3JlbGVhc2UuMTkxMjA2LTE0MDYuRW50ZXJwcmlzZSJ9fQ"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "data": "eyJwYXlsb2FkIjp7ImNoYWxsZW5nZSI6IldsSVM2VG9mZ3B1aEtabjk4ZGdjbFEiLCJzZXJ2aWNlX2NvbnRleHQiOiJleUpRY205MFpXTjBhVzl1UzJWNVRtRnRaU0k2SWtWQk9FTTNSVUU1UVRJMk1qZzBOalF4UXpJd09VSkRRakkwTlRnMk9UQTNSREEyT1RWQk5UVXhPVEF3UXprNVJFTXhRVVV3UmtFM1FqRkNSa1UwTlVJaUxDSlFjbTkwWldOMFpXUkRiMjUwWlhoMElqb2labTh6Tm1KM05VcDBSVGM0UmtKS1RETkhSbGszVmt4dFpFcHhNbU5WTW1WWmVFRTVZVkoxYkZsdlpubDRXa0ZHWjA5d1JVdFhhMDFPYVdaWU0wZzFRa2xEY2kwMGFrVmZSMWhyZVhBdGNWTk9TRVZEZVZsSlVYaEZjRlZEWjFaS1RYRlRhSHA2V0VoalJIVmlUbFo2ZGxwSE9XTnpjUzFpWjFCV05saFJXVmxpYm5JeU5DMVRSRlJ0Wnpsa1ZHNTFNMmt5ZURGUVZqbFlTaTFYVDA0elVYSTFUR1ZDV20xME1tZDNJbjAifX0"
+ }
+ }
+ }
+}
diff --git a/specification/attestation/data-plane/Microsoft.Attestation/stable/2020-10-01/examples/Get_Certs.json b/specification/attestation/data-plane/Microsoft.Attestation/stable/2020-10-01/examples/Get_Certs.json
new file mode 100644
index 000000000000..4d16dfd0c970
--- /dev/null
+++ b/specification/attestation/data-plane/Microsoft.Attestation/stable/2020-10-01/examples/Get_Certs.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "instanceUrl": "https://instance.attest.azure.net"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "keys": [
+ {
+ "x5c": [
+ "MIIDazCCAlOgAwIBAgIQR8q7RtYeX6RHhpcFE6HNGDANBgkqhkiG9w0BAQsFADA/MT0wOwYDVQQDEzRodHRwczovL3Rlc3RhdHRlc3RhdGlvbjk5MzQudXMudGVzdC5hdHRlc3QuYXp1cmUubmV0MB4XDTE5MTIxMDAwNDY0OFoXDTIwMTIxMDAwNDY0OFowPzE9MDsGA1UEAxM0aHR0cHM6Ly90ZXN0YXR0ZXN0YXRpb245OTM0LnVzLnRlc3QuYXR0ZXN0LmF6dXJlLm5ldDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK2v9qLRt313zyzvF3dbPK6AcVO61RhTpRpnlnttwsGIK9A03Rb2bhJLrNsEOHvAPLgSPQWYNrNoeO/X9f9N2w18oZ9ReUIFOj0L0V/trOTYhJJ42f4zsCFz6iX8klqY1vE29y8YL+beqvjXg/8aLaTgs48I+R0coEuJECNADqIL8TCn+UzP1o2tTiH7EKGEG8qpiWRyC25Yl59EITpKrn78v/VMDF6RWkx5uetYDWBXeHi0l48k1lo38BOVOXhJPJvuCKeTSF1Oew7yTsR1QrVviOsnexOTAPtvINYXkLnDzbguNbTfs5FS3RzV017M7kcL3XC+x4B7HkrpvYKUuzsCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgIEMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFIvByEw07sUvWMMQwiVoU5kDb09eMB8GA1UdIwQYMBaAFIvByEw07sUvWMMQwiVoU5kDb09eMA0GCSqGSIb3DQEBCwUAA4IBAQBM+itN5ZPTA7aRzzfnRNVIoixVrege/jPd5r9caHAQdhdOYy/TOxtpTkxYuP+pvlh/8e3F1zV/72iLjZCUYVQQLTRJ9BenF/AA4YJA2y/48UNHm9c+RauUB/KaxfMUolMQ9rkhGYxMBYhq1N3BitJ0m4WlPVzA0eVf1+UMARocasDUDkfmzAj4MAnee9oIBYOLaHe4La5DrLR7MV5v85rkP5Ed/oqznkyKcDT/OPSE3zwVy18BW6GskeLQ+kaTK/7MZM7nnsHO86Wpvjr4EkZZViupIlj/yQED6vWWnR41mCEN/P3MSoKYK1OQtdyhr0sow+CNSjZxz0ndWj7U6Rq1"
+ ],
+ "kid": "fAFUDjo0GcezSay/DP2z+LcPe4g/yjCUUAg88BXbDGw=",
+ "kty": "RSA",
+ "use": "sig",
+ "alg": "RS256"
+ },
+ {
+ "x5c": [
+ "MIIDcDCCAligAwIBAgIQAMxeVti2SRWf2t71dDYmaTANBgkqhkiG9w0BAQsFADA1MTMwMQYDVQQDEypBdHRlc3RhdGlvblNlcnZpY2UtTG9jYWxUZXN0LVJlcG9ydFNpZ25pbmcwHhcNMTkwNDI0MTYwMjUwWhcNMjEwNDI0MTYxMjUwWjA1MTMwMQYDVQQDEypBdHRlc3RhdGlvblNlcnZpY2UtTG9jYWxUZXN0LVJlcG9ydFNpZ25pbmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCww8VBqpnKDXo6W+DJbYOXP3BPIFFQi8XnHC59fIco08l7XLwr6mCY+Zzh9qInAENV7fzRJPt4hluCLoUb1vmTY9VdrvSgR5fX4nALJ4FuCFOeLzsxD+5+jP6L0KOT+Lz/3K5s26QaWv4SCNhEz2vI2ffO31AC5w4qfvV+QTK0pI8t9NoW0Afldd7F0E2UowFLHtwVV4lVBtGszvFiIo4X/NpRkj/8e4/0cQdmFlQFFtP/xKg9XP25EZTHrvsmLHSl3tG1F31Om9qsakkL4plTxaOosn71GzyU6BWIh8ZQgSszyTrY8qw0h8KNAot2v3RQrNVYWAxugYVnHhPspofXAgMBAAGjfDB6MA4GA1UdDwEB/wQEAwIFoDAJBgNVHRMEAjAAMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAfBgNVHSMEGDAWgBRQCw4UHmsEwWMJKvERNt2nUVnaIDAdBgNVHQ4EFgQUUAsOFB5rBMFjCSrxETbdp1FZ2iAwDQYJKoZIhvcNAQELBQADggEBAJogTjVhZvG85eig5Qkqt72Hpm4YR9d06UYrwo8nQKoRLsOWW01ySOn7phGvb3dxEyXQmTe10U2x1X1gsGFqnXETXGX11oHnDCWtPk4hK+uVI3Uv2qlX1134nUGoicZb2nRicyUSh8+VHY0ZuOmUs95v+HEMIsEM12AbwWZRKB0+MTAW+4cXSR9LTxRm1pwLS+wKd4A2PYi4TLuO6erZBhZ4BbvmsQtdOaulsUJYWvF72fX+jGQF4WS3qiuN4QaI6Tm/ga3Dcgdfd2oBHePTkxLE252zxlKGZ8kx/WdOuVm/1F24e0fC5M67vlFJvq9VB9I+ElMcGponp8REzQamAIU="
+ ],
+ "kid": "81dsh2B8UUKHZ2JXSOQn-VwfQMU",
+ "kty": "RSA",
+ "use": "sig",
+ "alg": "RS256"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/attestation/data-plane/Microsoft.Attestation/stable/2020-10-01/examples/Get_MetadataConfiguration.json b/specification/attestation/data-plane/Microsoft.Attestation/stable/2020-10-01/examples/Get_MetadataConfiguration.json
new file mode 100644
index 000000000000..519ac0030fe4
--- /dev/null
+++ b/specification/attestation/data-plane/Microsoft.Attestation/stable/2020-10-01/examples/Get_MetadataConfiguration.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "instanceUrl": "https://instance.attest.azure.net"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "response_types_supported": [
+ "token",
+ "none"
+ ],
+ "id_token_signing_alg_values_supported": [
+ "RS256"
+ ],
+ "revocation_endpoint": "https://mytest.attest.azure.net/revoke",
+ "jwks_uri": "https://mytest.attest.azure.net/certs",
+ "claims_supported": [
+ "is-debuggable",
+ "sgx-mrsigner",
+ "sgx-mrenclave",
+ "product-id",
+ "svn",
+ "tee",
+ "device_id",
+ "component_0_id",
+ "expected_components"
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/attestation/data-plane/Microsoft.Attestation/stable/2020-10-01/examples/Get_Policy.json b/specification/attestation/data-plane/Microsoft.Attestation/stable/2020-10-01/examples/Get_Policy.json
new file mode 100644
index 000000000000..11056e433b05
--- /dev/null
+++ b/specification/attestation/data-plane/Microsoft.Attestation/stable/2020-10-01/examples/Get_Policy.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "instanceUrl": "https://instance.attest.azure.net",
+ "api-version": "2020-10-01",
+ "attestationType": "SgxEnclave"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "token": "eyJhbGciOiAiUlMyNTYiLCAiamt1IjogImh0dHBzOi8vdGVuYW50dGVzdHMudXMvY2VydHMiLCAia2lkIjogInpJYUJ6ZG93OVRzbzR4VmxxMjlDeFRNYzVHRlNIaXlLQld2U1ByL0xiMGs9IiwgInR5cCI6ICJKV1QifQ.eyJleHAiOiAxNjAyODAzOTY2LCAiaWF0IjogMTYwMjgwMDM2NiwgImlzcyI6ICJodHRwczovL3RlbmFudHRlc3RzLnVzIiwgIm5iZiI6IDE2MDI4MDAzNjYsICJ4LW1zLXBvbGljeSI6ICJleUpoYkdjaU9pSnViMjVsSW4wLmV5SkJkSFJsYzNSaGRHbHZibEJ2YkdsamVTSTZJQ0pFVVhBeVdsaEtlbUZYT1hWUVZFVjFUVVJ6VGtOdFJqRmtSMmgyWTIxc05sbFlVbkJpTWpWNVpGZDRiR041UWpkSlJEQXRTVWhDYkdOdE1YQmtRMmR3VDNsQ09VOTNNRXRoV0U1NlpGZEdkVmt5Vm5sa1YzaHNZM2xDTjJaVWN5SjkuIn0.okaW81fvusPELubwQECTKFanX8H_BcbA4fJddXhJIMridP9WFj3oHSMlkpgy3wGZAPFxmXQEIaGHfbyXoilWNlSFl7mBrN_6BQTnmIMXActRM4VudYU5IjJy2Y8Ng0seGr5a0sEVx21cZ3QsG6dGmyyTD4HZYObzxwVTSm5gcTfoUE5Ab0BNKeYIG4yaKipV5u0gXOFxoIET7g-mHqKG069Gty3dU58zjL6Lk-XvPB9aHe77KMa1Wtvzx_qatjrs7dhgVQ0bCXc9kcyvLeuAf5SzzqEb-qXtphZ_uDCFpGqnhTtsagc8_--JMUp8Eu3gyKbpIi5oa80GC5IuVwZsTA"
+ }
+ }
+ }
+}
diff --git a/specification/attestation/data-plane/Microsoft.Attestation/stable/2020-10-01/examples/Get_PolicyCertificates.json b/specification/attestation/data-plane/Microsoft.Attestation/stable/2020-10-01/examples/Get_PolicyCertificates.json
new file mode 100644
index 000000000000..4d0f71876185
--- /dev/null
+++ b/specification/attestation/data-plane/Microsoft.Attestation/stable/2020-10-01/examples/Get_PolicyCertificates.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "instanceUrl": "'https://instance.attest.azure.net'",
+ "api-version": "2020-10-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "token": "eyJhbGciOiAiUlMyNTYiLCAiamt1IjogImh0dHA6Ly9sb2NhbGhvc3QuOjg4ODgvb3BlcmF0aW9ucy9SZXRyaWV2ZUF0dGVzdGF0aW9uU2lnbmluZ0NlcnRpZmljYXRlcy9kZWZhdWx0Y2VydHMiLCAia2lkIjogImJTSi95T0wrVzFUbEJEUzNQVjN0bGNvblpCcy9TNVI2NDJLTUMzUlVJUkE9IiwgInR5cCI6ICJKV1QifQ.eyJhYXMtcG9saWN5Q2VydGlmaWNhdGVzIjogeyJrZXlzIjogW3siYWxnIjogIlJTMjU2IiwgImt0eSI6ICJSU0EiLCAidXNlIjogInNpZyIsICJ4NWMiOiBbIk1JSURUVENDQWpXZ0F3SUJBZ0lJQlQ0Yk4vTEp5WkV3RFFZSktvWklodmNOQVFFTEJRQXdJakVnTUI0R0ExVUVBd3dYVkdWemRGTnBaMjVwYm1kRFpYSjBhV1pwWTJGMFpUSXdIaGNOTWpBd01qQTBNREF3TURBd1doY05Nakl3TWpBME1EQXdNREF3V2pBaU1TQXdIZ1lEVlFRRERCZFVaWE4wVTJsbmJtbHVaME5sY25ScFptbGpZWFJsTWpDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBSmQ5enZ0MXl2d2g1LzJzSmovM1lTbG1IdXEzSkdqcHpjMTMyOWVKUEtvM09Zak1lM1dUcWNrRE9kV1BwS0EyVVBULzdVSW9ZdzdqdUNtcU5ZYjErMDBZY0x2bFhQdTBRTnMwSFo2cVh6bHhoRGNQVWlGTFNneDROQmVneFplM0h6SUlkY3VMR2l4Q0w5Z2szR1dKUDNrZEV2Wkl6N3VjQ08rUFl5Z1BIaXl2Q2xjVDRHZUkvZi8zbmp4RzJWQ2VuZE91UFJaT2ZyNDJ6dTJBWlExalhxN1d2U1VPODZiVnNRSmtHZWRMUFcwMFFzeVRNZzZMODhucUxPa05JU0hkSTdkOVdiZXVwSE1LL01ENHpzclRMa3Z5VTlTZFRoSGlPNGt2Tmd0a3JjUDdDaTNTUWlkTThrVUx0YTVsZUxaWUZ6YzIva0dDU0JybkwxVWErUy9DUndNQ0F3RUFBYU9CaGpDQmd6QlJCZ05WSFNNRVNqQklnQlJIaExVNlNCelU4VytjSlV0TVlJb2FMTjVEOWFFbXBDUXdJakVnTUI0R0ExVUVBd3dYVkdWemRGTnBaMjVwYm1kRFpYSjBhV1pwWTJGMFpUS0NDQVUrR3pmeXljbVJNQjBHQTFVZERnUVdCQlJIaExVNlNCelU4VytjSlV0TVlJb2FMTjVEOVRBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElCQVFCTmpyZkI5K1I2VFZCNEJYUGQ4czlJajVNaXUrc3FzNmVLWW9VYXd3ZnNDT0xieVhOcnR2M1dEYXZBVUJTeVZVeHZiYWdSQzNDK29jcHQxV0tjMitJZFZzT3k1MGNjWldmY2pvNWtCMHVLRmNxcmVXVTlQUWRuMnRsRVlqZzdONGtNcXB4VlJnNGduMUpGRmZIampDbmZodkFTM3IvcE8vc3pLNXF2c0JpMzdPbkJ3OFRMbGw5eUdFekRGQld4Y2RjRGNDNnlGZGFMMENwZ3lQcFdSOXlsR2VDU0ZFeDM4bFRkSEpFa0EzQkJ2bnM3S2dubUs0YzdBV2piWm4zNjl4c3BKNmp6dGZnS1lzTkpZUGNpT3pBV2FlSVdNK3IrdXl6UDhab2hnbFh1V0ViT0FUaDBxL3RydmVLb2VoeGZPN1A3VldnZ0VwZUNVczVmUTJTOU9wUk4iXX0sIHsiYWxnIjogIlJTMjU2IiwgImt0eSI6ICJSU0EiLCAidXNlIjogInNpZyIsICJ4NWMiOiBbIk1JSURUVENDQWpXZ0F3SUJBZ0lJTEZjK25MZTg4dDB3RFFZSktvWklodmNOQVFFTEJRQXdJakVnTUI0R0ExVUVBd3dYVkdWemRGTnBaMjVwYm1kRFpYSjBhV1pwWTJGMFpUTXdIaGNOTWpBd01qQTBNREF3TURBd1doY05Nakl3TWpBME1EQXdNREF3V2pBaU1TQXdIZ1lEVlFRRERCZFVaWE4wVTJsbmJtbHVaME5sY25ScFptbGpZWFJsTXpDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBSkpFbTVSdHowVmJickV5S1hGWWlxaDFpT2hWSGE3R3IzMklDS1JiVmdkOHFmL1dMMkg1c25NV0IzVElLcGphT0NwZWkyekw0SjJqU3JqZks0ODFvK2dFRklkajhlZEVRNUY0L1VjWngrK1hXQnVHNDcxdnJnYmVFODRISTI2OGR0d1RWZjBLd3FnVHhPaHlpMUlWaWExRGJkaTJDODhkMFF0Rm9QdDlTYXZEdS9ubHA2dTdZaVlPZjhLd2c0Y0QxUDI4Z25qRktwRVVYVnhpTThxTlNxbE5IUjB0byt2UmovQzVpbWFYcnVpaFdZQUZpVzZLNE9UYWdnN2NTQzRnRGZvWWJTM1NLM3ZNYitQbG9BTTB2YlB3MW0zeW5PUlZ3UFpmQXRjVFEyVjYzNmFCcU8xVzZRMUJSeVRCSVJMdXNtYS9oekk2bkZ5VW90ZUpIMlZLT0U4Q0F3RUFBYU9CaGpDQmd6QlJCZ05WSFNNRVNqQklnQlEzdGxISWgyZnlOTSttR25FY0ltd0xnLzZxaXFFbXBDUXdJakVnTUI0R0ExVUVBd3dYVkdWemRGTnBaMjVwYm1kRFpYSjBhV1pwWTJGMFpUT0NDQ3hYUHB5M3ZQTGRNQjBHQTFVZERnUVdCQlEzdGxISWgyZnlOTSttR25FY0ltd0xnLzZxaWpBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElCQVFCTWVTYWNKcXduZXJkV2Q5UVAxVjJTZTk4UFVGL2ozanRZNFNGM3hUOXpMbmpVM0MrYldraHlJaW5rSWRGa0xiTVErMGVyY0kwWHhuZWFOaU9LMWhTWlR4V1NrcjBIOG44R0hIbitNbkZ5R1o4NkhCS3QzOCtCdkxVRTR5Wm94bk5Cb3dxcTdLN09iaWtydVJYQk5VSzdwMlV3MmppM2UyOCtWNnhxV2luc0Q2QzNmRitGbVEzdzdyUFM4Y0FhaVNxT0JTRGtxTWJ2U0tORitLekwzWjNxUStMblVGSVFjNDJtSlJLOWIra3ZZeXR5YWJxN3J2MTQwZmFqMkpQN3JsSFNSVmdjWWxmWUVNeW1PUHludjNVYWZ2YkcxT1JwbkVqOUNwNlMrR0d5TmF1cS9XdlVuQlZ0VE1qZ09GN1hPczE2WnRla3hJN1hqVWN6QUxUZjdhVlUiXX0sIHsiYWxnIjogIlJTMjU2IiwgImt0eSI6ICJSU0EiLCAidXNlIjogInNpZyIsICJ4NWMiOiBbIk1JSURUVENDQWpXZ0F3SUJBZ0lJVGl3eEJLZDdpYll3RFFZSktvWklodmNOQVFFTEJRQXdJakVnTUI0R0ExVUVBd3dYVkdWemRGTnBaMjVwYm1kRFpYSjBhV1pwWTJGMFpURXdIaGNOTWpBd01qQTBNREF3TURBd1doY05Nakl3TWpBME1EQXdNREF3V2pBaU1TQXdIZ1lEVlFRRERCZFVaWE4wVTJsbmJtbHVaME5sY25ScFptbGpZWFJsTVRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBSUZ2ejQzK281TWFybkltOG9ZWC9EWmlqV3lFUXdCVnZnN0FlODBRTHZQZEhCcFAwWVZyWlpHQ3cxK1djVzNObm9JK0JJd0lYQyt4aWg3VkpheTd2VUxRUks0bFR2d0c0a1lvWExEa1ZsbXRNK3ZEdXRXamFxVkJqVWpwdEkxOWVOMVNhZzJWQ09qNWdMOXplRWhOakYxVU5wRG92VVdBa3BaZGNmZGw4d0kyUGljajVwNFVLVEJ6UzE5SDQ3Z0l2WC82aHpxa1RmQ2kyV2lobVl3YWlRRFpuTXZvRG9WcVF1QTExMUpXaHh3a3V0NENMTDJBdTZ2UmpqS3Z5MU9DT01zWDFnaTdZaDJ6QloxZ0Jnc1had2ZOdEZWalEvdWNEazJBOEd0MG9KK05mS05hMDlWbFkrdUVuSFMzbzFDZ0JOZTNBc3lGUzZpM1hOam9QSE15MVdjQ0F3RUFBYU9CaGpDQmd6QlJCZ05WSFNNRVNqQklnQlI1czE0Tk9CVVRpWmNVRTVwQ2U5WUl3bzhtcjZFbXBDUXdJakVnTUI0R0ExVUVBd3dYVkdWemRGTnBaMjVwYm1kRFpYSjBhV1pwWTJGMFpUR0NDRTRzTVFTbmU0bTJNQjBHQTFVZERnUVdCQlI1czE0Tk9CVVRpWmNVRTVwQ2U5WUl3bzhtcnpBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElCQVFBWUVaY1YweUR6eVIwdTVGZlk5YjQwdVlmVldheE5hb2ltTnpOTkgwYis1b1FTUGpta0gwQ3VWK01ZdHovRmhLUkFRaThLS1dVd0lQZGpMVVhoV3hONXo2VUlWbWtodmxZYk5hM0pPNEdRSjg5WmQvdGVGWHphUHZjZ1MyeUI1cG0xLzRpdjhCVVQwelRrMWlCcUwrWTg2dlEwaFFCeEFGb3QzSjREYTZZTy93elRWMFl4M25kQmZ2SDduaTc3M0pTSXBXMm5YUndJRWRRSysrZ2srSnJCby9EZWp6NXU2Vkc1STlaZ3VrNWUyRWlSamFsNUNRbERCcEFreFIrVSs2WlpyMzI1WlFCTG5pVi8ySnV4dDhsREZVTWNWbm9tUHR6WUUwVUllSS9lRnpGd283S3JHOFpNOUpudThybzZqQ2x4YmN3NWREcyt4c280SlV6VFJuM1giXX0sIHsiYWxnIjogIlJTMjU2IiwgImt0eSI6ICJSU0EiLCAidXNlIjogInNpZyIsICJ4NWMiOiBbIk1JSURUVENDQWpXZ0F3SUJBZ0lJZGhwaGxkUGNDM0F3RFFZSktvWklodmNOQVFFTEJRQXdJakVnTUI0R0ExVUVBd3dYVkdWemRGTnBaMjVwYm1kRFpYSjBhV1pwWTJGMFpUUXdIaGNOTWpBd01qQTBNREF3TURBd1doY05Nakl3TWpBME1EQXdNREF3V2pBaU1TQXdIZ1lEVlFRRERCZFVaWE4wVTJsbmJtbHVaME5sY25ScFptbGpZWFJsTkRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBSXRkRnBLVk5tWnFYbzZKbUFlQlNjVkU1azlMUUtxeWNhTDlwY1BwQUFlTkRKbGtNMEJITGNxa0hHWHdFTVNndjFteU9MYmFRSUNlaFBWTm16ZUVrMXdoZ1phRi9ZVXVPUytTaVIrU1RvbStIVFMwdTBsdE9tak1TK2xMeWVQbVduNis0T2s5US9ZNWFnVzZUaHpHb0VNa21zOFNHRnZyS0x6NEFnd3lkSG9MYjE1ZFczNjE2QzY5OHJhc3JyYzI1VHU5MzJTZ2hhKys4UlBDWkg1QU8wa01xTkRIeWFCbDZGbEp5TUxpRFRDeXJjUEFrZGJpL2Y1UGMrYVhJRzFUcnhCaGsrdkREQ3ByQmtFOUdsRGhaaTVSc2dIWm1oVHovY1kxNmxCM2ZnRjIzem0yaTNaWkdKOWpscy9CWEk3RHc3Vkxqb0Z0eFQreWdoTTgvcWFaMERFQ0F3RUFBYU9CaGpDQmd6QlJCZ05WSFNNRVNqQklnQlJBcW5LMXJ0OFQ0Uzg4cDhjK1ptQ1NmQ0hFUjZFbXBDUXdJakVnTUI0R0ExVUVBd3dYVkdWemRGTnBaMjVwYm1kRFpYSjBhV1pwWTJGMFpUU0NDSFlhWVpYVDNBdHdNQjBHQTFVZERnUVdCQlJBcW5LMXJ0OFQ0Uzg4cDhjK1ptQ1NmQ0hFUnpBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElCQVFBRUNZZTdCdk9OYUVuZm5rNGozcmJqODRvMitoUWFGazVIUVpEVWpRSkNLRExpZ1NBdVBacnVzVkhmcnAxdU9qRGJSWDJXL1JPMzJHMWtSSDc3MnNKaW1hQUZIQ1F0LzlDUDUzbFZoUENubWV6VnhPRkRZdnR4emxkajhhNk9kOWZ3dHp4eVEvQXMzUEpyck9lWFVMamgydkphUE9SZVdBOHpZOVRXSW9aTEkveDFXZG5BeXVtQ3dSTlRWQ0s1Rjlxb24vZGdnYUJwMzBEUGFUdkFxa3lxREhheEZjZmhiYXRDYnU1dGV6aGh3emxyK2s1NkZVVUlpM1hOelRObU1GcUp4cFMycHhVQ0ZFQ3pFN0lEZmVPLzdXL3pzYTJVM1UrVDc3Nzl0WG15UHQ3VXRMYkVYNy9NWGVYZjFIb3ZyWm1VdUY1dFhvM2UrdWpCMmthVzFTd0kiXX1dfSwgImV4cCI6IDE1ODA4MjM2NTQsICJpYXQiOiAxNTgwODIwMDU0LCAiaXNzIjogImh0dHA6Ly9sb2NhbGhvc3QuOjgwODAiLCAibmJmIjogMTU4MDgyMDA1NH0.RaFh8Yx6c_7nwH4ujZRE3aMbkt4u_togfc7xC7cFWjnZY-rYG6W93WC0ypqhw3pg6Fa3tJWUtiGM9rG3EN6ogFxQn10bKwUqEZoQal2xAIZdj2NLA8Xdo5LVCWoTOLJa5rUqGQb56vGTREqcuHzdcD7a6s3I8y5-Hd3HTeskDcI"
+ }
+ }
+ }
+}
diff --git a/specification/attestation/data-plane/Microsoft.Attestation/stable/2020-10-01/examples/Remove_PolicyCertificate.json b/specification/attestation/data-plane/Microsoft.Attestation/stable/2020-10-01/examples/Remove_PolicyCertificate.json
new file mode 100644
index 000000000000..ed40829d3942
--- /dev/null
+++ b/specification/attestation/data-plane/Microsoft.Attestation/stable/2020-10-01/examples/Remove_PolicyCertificate.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "instanceUrl": "https://instance.attest.azure.net",
+ "api-version": "2020-10-01",
+ "policyCertificateToRemove": "eyAiYWxnIjoiUlMyNTYiLCAieDVjIjogWyJNSUlEVFRDQ0FqV2dBd0lCQWdJSU40eUdrS3c5L0U4d0RRWUpLb1pJaHZjTkFRRUxCUUF3SWpFZ01CNEdBMVVFQXd3WFZHVnpkRk5wWjI1cGJtZERaWEowYVdacFkyRjBaVEl3SGhjTk1qQXdNakEwTURBd01EQXdXaGNOTWpJd01qQTBNREF3TURBd1dqQWlNU0F3SGdZRFZRUUREQmRVWlhOMFUybG5ibWx1WjBObGNuUnBabWxqWVhSbE1qQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUtXWHIwc09KS1AyQm9TSHNyNXkvT1l1bVFwblVDaFRpcGtEVTB6Y1pJeFlZUElQbk9hL3dYT0RVazJocFd4NDZsTWxPcmtGMFdTUDA0NnRHN1g3TGluOVpGQ1ZMeFZ2M0V5WkJZbkxqNGpmWHUzWEtZalRmSlJyVzFrR1RRS1lzVGJub0s1bWh1NG1HUjJpeFByUUIyR0xxeVBxQzZYVjZISXNBUFBYdEpRWEFrMW9wMWkrOTJRNFIwM0EzTFhEY1RLdHRhckFrZzJmK2R2Ym1rcGJRSVJTQk1lZHNaZGMvdi8vYnVsWUgrQ0VNZVZxT1BkaFRCUjNBTHQxdGtTQ0VzN2Y1V0s4bUF4RzM1Q3daRkdORjVWSG5PeENXNTBJalFqUGJMWFRwMS9ad3g0V21obVBzb2V1OEo0UlZpZGpjYmRQRk81dHB3SnZFMGVzZEZoQXlNY0NBd0VBQWFPQmhqQ0JnekJSQmdOVkhTTUVTakJJZ0JUdlArbDQxZU0va3pheDJlNTlFSmp6TE1LTGJhRW1wQ1F3SWpFZ01CNEdBMVVFQXd3WFZHVnpkRk5wWjI1cGJtZERaWEowYVdacFkyRjBaVEtDQ0RlTWhwQ3NQZnhQTUIwR0ExVWREZ1FXQkJUdlArbDQxZU0va3pheDJlNTlFSmp6TE1LTGJUQVBCZ05WSFJNQkFmOEVCVEFEQVFIL01BMEdDU3FHU0liM0RRRUJDd1VBQTRJQkFRQ2hOWUJweUs5UndLSVNHUWZQdFVYM2VPWTlvVEtvS1NXUjMzdCtwUVYwSGszZXg5U0dRVFZFNkVnaFduRXRqQUdIWVNSY0txc0xOclduS0MvVnJoSGNneE1ianVhSHNaR1dDREhXSGhrMEk4RWZrSWdzV1NRNDZPdlZTRUgrY2laSmhXaCt1RUZmK3RnalJsdHhSS1hZNU4wSVJRQW92Qno1UWN4alFYcnJZelZGT1htSWZjeVJhT2lUOVJRUW5wWG1NYnR2b25FYjQrR1FOWG53Rll4dWs2Nk5yamhuT1ZWRm9YU2plN1h3WXpPZ0dxY0ljUURQbnROeFlpU3UrYzYyKzV3WjduaUJlRzlVVDJLQVI4Sm9nSXduRGJOa1F6ZE5QWEhoUTJ1V24rMG9Ec0lDL1lvN0RHMW44WFBJeHJtR00xOHpVWENmSjI1c1VKV2ZlSGx4Il19.eyJhYXMtcG9saWN5Q2VydGlmaWNhdGUiOiB7Imt0eSI6IlJTQSIsICJ4NWMiOlsiTUlJRFRUQ0NBaldnQXdJQkFnSUlYcTd4SENIT0VmTXdEUVlKS29aSWh2Y05BUUVMQlFBd0lqRWdNQjRHQTFVRUF3d1hWR1Z6ZEZOcFoyNXBibWREWlhKMGFXWnBZMkYwWlRNd0hoY05NakF3TWpBME1EQXdNREF3V2hjTk1qSXdNakEwTURBd01EQXdXakFpTVNBd0hnWURWUVFEREJkVVpYTjBVMmxuYm1sdVowTmxjblJwWm1sallYUmxNekNDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFMUTNvanZxcEFNVmllWTJoUW9YeWdYR3NnWWhMUi9nN1laQUhOOXEyMGt3dHEwOEdUNkVzaFNtZDV0b2srQThtUFNwSGFCZmJaRmx0SVF4N2dqUktVcXlkMWJmeU1Ddjh6Tm5nSWhFVGxWdzhDMjdXNmtIT1NITWFjQkNKR2FNSDF1blVjajNCNDlUL0U0bDRpWDUwK0NIYUdTOTNOaGliVENka3VOMlcwbW53VnU1RlZsSjRpd0txNUxMdXMrRklOSGVEOVRVRlVUZDFLV1NzMFduMHNvZlFQVks0dFU0d1lWQTQwZ1JRNGV3ZlpFbGlFbHE5Z2J1Y2VqcHZxNG0vL0ZtQWJ0SW5STjdoMU53M1ZrYUR0Vm5nVGVUeGhISHIra3FMVmUzK1dWMDJCYjFZL012QWNZZjV1Nm5aYmRGTnNzYUR2M1BqYVArYVJUYnBsTjhCdWNDQXdFQUFhT0JoakNCZ3pCUkJnTlZIU01FU2pCSWdCU1hFZWNuUExFOUVVaVBSVk1kWFNRNmV0YWQ4S0VtcENRd0lqRWdNQjRHQTFVRUF3d1hWR1Z6ZEZOcFoyNXBibWREWlhKMGFXWnBZMkYwWlRPQ0NGNnU4UndoemhIek1CMEdBMVVkRGdRV0JCU1hFZWNuUExFOUVVaVBSVk1kWFNRNmV0YWQ4REFQQmdOVkhSTUJBZjhFQlRBREFRSC9NQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUJBUUJNUnRrbUl6dlZpNm1TSEJmSW1ZOTdWV25IMm5IWVlwTzY0QnVhditRdHo5YlFPNTJieE5DekI5ZmJLZ1hjLzEzbUpEdndaWWFLRnNpSXV2SEwvUTlDTERYL3dmTDljZkZrRGttTkFGUysvSll1dVVja3NUOFdraWRYc3FKNWd1V3NzMmdsM1lrSEFQLzBZd1k2QVhFOGpFeHdJZDgySFduT2ZVNCtlcXUwOEZNYkNTdFRuZ2FJSVNUOGpESFNNQUJCOENKRUViM0pXTDJDUzJWK2NqR3Z3cUNFWXh5Vy9aN0JsZThzTnVFZG80d2l2WFNiYTF4L201VU9pREtud3pQTzQxNWNudDM1WjRpaE4yVVVCdEJwZGtqZytURVh2TWQ4QmNOblcrcEFMYXI2WU0vR0FWTzA5VE16SmZSeit0Q1BVUDNJQTlVUHV5dWFXNlFub2o3biJdfX0.E7_ofG66BPwims3yq0_nvgs1Hj5vY0Ko6cx9r7V9MxKEXYkmOCwH-y6uru5-GwZCVyb2xuU-vaExOHax0z72-disRSXSAUZk5wVgv99ZgSIdeGYq4gX6J4AkjgSe0FmzhKE--cGix6XhKH8XVRWXcp5UPv0Z5uejkIqQkIc7RpvftG-JAqqQQg5o3kLkK6jYMUQtYJHwxxpBA6PO7Z-bDJuiWkUJXFAWordn-yAWqNSPk8wEGDEnupTtyt4b6AFSJSqWCIt_IvqxR9O7QIy9mgnGj5kyVgV8O0xcRRsnZgfFdjc839UG92gyIw7SR0yQ0ELzXxc_7Suhf9y6Oyp4rg"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "token": "eyJhbGciOiAiUlMyNTYiLCAiamt1IjogImh0dHA6Ly9sb2NhbGhvc3QuOjg4ODgvb3BlcmF0aW9ucy9SZXRyaWV2ZUF0dGVzdGF0aW9uU2lnbmluZ0NlcnRpZmljYXRlcy9kZWZhdWx0Y2VydHMiLCAia2lkIjogImsvaExrYXUvSWRzSmZ0dVlZMUxDVXVXUDZKMUV4Yjk1MFJwSDZnM0c3ems9IiwgInR5cCI6ICJKV1QifQ.eyJhYXMtcG9saWN5Q2VydGlmaWNhdGVzIjogeyJrZXlzIjogW3siYWxnIjogIlJTMjU2IiwgImt0eSI6ICJSU0EiLCAidXNlIjogInNpZyIsICJ4NWMiOiBbIk1JSURUVENDQWpXZ0F3SUJBZ0lJQWxuOGp0NjJWQUF3RFFZSktvWklodmNOQVFFTEJRQXdJakVnTUI0R0ExVUVBd3dYVkdWemRGTnBaMjVwYm1kRFpYSjBhV1pwWTJGMFpURXdIaGNOTWpBd01qQTBNREF3TURBd1doY05Nakl3TWpBME1EQXdNREF3V2pBaU1TQXdIZ1lEVlFRRERCZFVaWE4wVTJsbmJtbHVaME5sY25ScFptbGpZWFJsTVRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTEowVkprNldxNk9QdGZJOVFjaWlRb3VTdjA5ejd6Rjg5L2xXSXVPMWdleVk2VWEzZjYxenVDTXovc1hjY2gvZVVna2pGcUlNaUhmN3dOU0pDQTRoWnZlT0dpanZydXMxcm1zSFcxaDFzOHdZWGx1MzhibnAzRnl2T0cwR0lhS3JqanRXbUtVSXpFekgwQ2dwNG5rN0R1SmRPT284SDY0a1BZNVE3cUVPU2NTUkQycVhGMDRpWGZmK3VOMk5xOHl2T1Q2TkN1azRsc0tVMUQxWHZWcENJTnVqSXpiY0prTHU3QzJMUmM4eE10RFJ0WEM2dldqanRVVUNpcFRZQlhzRnZoV3pRUVVXUmFYUnNQaXc2cEh3bDJsYko1cnBabWxVSWJ4RTFKZU5PNnlOVFZ0UTltVVlsU3Y0aVJGektpTWJqbDFpekp2cllQNGRrbXZVV2ZZMDRNQ0F3RUFBYU9CaGpDQmd6QlJCZ05WSFNNRVNqQklnQlI4UTRpaitpNUFwQXZxK0NQWEtJemd6cTBiSmFFbXBDUXdJakVnTUI0R0ExVUVBd3dYVkdWemRGTnBaMjVwYm1kRFpYSjBhV1pwWTJGMFpUR0NDQUpaL0k3ZXRsUUFNQjBHQTFVZERnUVdCQlI4UTRpaitpNUFwQXZxK0NQWEtJemd6cTBiSlRBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElCQVFBVzFicDZiL0hGZm45c3lWMmFpOEJrMTRFRDVpZURXaHAxMXBuaTA3eUU1WXRqdzNiUFIweThNYWF2WmF3dnlnL1EyTjJwaFU4dnVkeDRBeTc5YVdlZUsramNiQzF3RnhrUnNsWU1JSWFsdVJSUHNVbXhLMTFQc3F6eXBMdnlQZjM5UjZ0NWczOSs5OEtleVp5M000NE5OSGxjNkZ0djBQV3hIN2NRRVlXR0t1b0RuL3ByMjRjaFFwZnRCVTMvTFdSaU56a3l5bFBZTjE3b3ZUcnROUDlNbTdGd0JwTE80U0VWYTRsR3R3ZlJVV1RhZHp4ellISTUyN2ZDZW5QWDhML1lDTmZsaVhXaHFicWJXRU5pVExTaG5xQTBWV1JQcTdYMXpaM2p1ZmlzMWFKbXQ5dkNZQk05OWkySUVyV0hjNGhyYWRlaitjejU4bmE4TSt0K08rYVUiXX0sIHsiYWxnIjogIlJTMjU2IiwgImt0eSI6ICJSU0EiLCAidXNlIjogInNpZyIsICJ4NWMiOiBbIk1JSURUVENDQWpXZ0F3SUJBZ0lJTjR5R2tLdzkvRTh3RFFZSktvWklodmNOQVFFTEJRQXdJakVnTUI0R0ExVUVBd3dYVkdWemRGTnBaMjVwYm1kRFpYSjBhV1pwWTJGMFpUSXdIaGNOTWpBd01qQTBNREF3TURBd1doY05Nakl3TWpBME1EQXdNREF3V2pBaU1TQXdIZ1lEVlFRRERCZFVaWE4wVTJsbmJtbHVaME5sY25ScFptbGpZWFJsTWpDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1dYcjBzT0pLUDJCb1NIc3I1eS9PWXVtUXBuVUNoVGlwa0RVMHpjWkl4WVlQSVBuT2Evd1hPRFVrMmhwV3g0NmxNbE9ya0YwV1NQMDQ2dEc3WDdMaW45WkZDVkx4VnYzRXlaQlluTGo0amZYdTNYS1lqVGZKUnJXMWtHVFFLWXNUYm5vSzVtaHU0bUdSMml4UHJRQjJHTHF5UHFDNlhWNkhJc0FQUFh0SlFYQWsxb3AxaSs5MlE0UjAzQTNMWERjVEt0dGFyQWtnMmYrZHZibWtwYlFJUlNCTWVkc1pkYy92Ly9idWxZSCtDRU1lVnFPUGRoVEJSM0FMdDF0a1NDRXM3ZjVXSzhtQXhHMzVDd1pGR05GNVZIbk94Q1c1MElqUWpQYkxYVHAxL1p3eDRXbWhtUHNvZXU4SjRSVmlkamNiZFBGTzV0cHdKdkUwZXNkRmhBeU1jQ0F3RUFBYU9CaGpDQmd6QlJCZ05WSFNNRVNqQklnQlR2UCtsNDFlTS9remF4MmU1OUVKanpMTUtMYmFFbXBDUXdJakVnTUI0R0ExVUVBd3dYVkdWemRGTnBaMjVwYm1kRFpYSjBhV1pwWTJGMFpUS0NDRGVNaHBDc1BmeFBNQjBHQTFVZERnUVdCQlR2UCtsNDFlTS9remF4MmU1OUVKanpMTUtMYlRBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElCQVFDaE5ZQnB5SzlSd0tJU0dRZlB0VVgzZU9ZOW9US29LU1dSMzN0K3BRVjBIazNleDlTR1FUVkU2RWdoV25FdGpBR0hZU1JjS3FzTE5yV25LQy9WcmhIY2d4TWJqdWFIc1pHV0NESFdIaGswSThFZmtJZ3NXU1E0Nk92VlNFSCtjaVpKaFdoK3VFRmYrdGdqUmx0eFJLWFk1TjBJUlFBb3ZCejVRY3hqUVhycll6VkZPWG1JZmN5UmFPaVQ5UlFRbnBYbU1idHZvbkViNCtHUU5YbndGWXh1azY2TnJqaG5PVlZGb1hTamU3WHdZek9nR3FjSWNRRFBudE54WWlTdStjNjIrNXdaN25pQmVHOVVUMktBUjhKb2dJd25EYk5rUXpkTlBYSGhRMnVXbiswb0RzSUMvWW83REcxbjhYUEl4cm1HTTE4elVYQ2ZKMjVzVUpXZmVIbHgiXX0sIHsiYWxnIjogIlJTMjU2IiwgImt0eSI6ICJSU0EiLCAidXNlIjogInNpZyIsICJ4NWMiOiBbIk1JSURUVENDQWpXZ0F3SUJBZ0lJUi9xbVV5ekwvUnd3RFFZSktvWklodmNOQVFFTEJRQXdJakVnTUI0R0ExVUVBd3dYVkdWemRGTnBaMjVwYm1kRFpYSjBhV1pwWTJGMFpUUXdIaGNOTWpBd01qQTBNREF3TURBd1doY05Nakl3TWpBME1EQXdNREF3V2pBaU1TQXdIZ1lEVlFRRERCZFVaWE4wVTJsbmJtbHVaME5sY25ScFptbGpZWFJsTkRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS2JOWEJvVFEyMjRsdFQ3bmJNdlZvMmtlZ0FEWHB5Q3FKeG5CNzNEbkU5cWJxaHAwMWNxaDZLT0tZamdiYlNvZ1Jmd0V1MElkc3BqZ2Z6N1VwU0Fjdk9XcDd4ckswa3JVZ0RveXVnVmtWY29OdEY1dnd5eHFQQWZrazJENnluWXpKTCtrQzl2dTVUU054S1ZMQWdJMnl1QW82NDdjQXkxRDdEWWpZT0pISytObXdNYkhFTldJNFh5VEd1L1FHeHZSbmNvaUhGbUNrK3RoYVdEaTl2U3BwV2ZoR01CMExTV1RXOXhrQVc4WVdLREhlbzN2YjIvV3REYUU0M2s4RUZuMFBrcGxzdlQveFpjMDMrZCtkdU5HY1NYNlJsdkp5WVlaNXRkdFFPYWlTck90SU50MytHZ1oyL1hEVlBJNS93a0JhTFk3Yy92YWxHYXFvbVF3dkNucmdjQ0F3RUFBYU9CaGpDQmd6QlJCZ05WSFNNRVNqQklnQlJvbVU3Vk9hTlIwNUVFQmlFTG10bG91REJlajZFbXBDUXdJakVnTUI0R0ExVUVBd3dYVkdWemRGTnBaMjVwYm1kRFpYSjBhV1pwWTJGMFpUU0NDRWY2cGxNc3kvMGNNQjBHQTFVZERnUVdCQlJvbVU3Vk9hTlIwNUVFQmlFTG10bG91REJlanpBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElCQVFDTTdBNXRQMkRldUwwNXQyeFpMdVBtZEx4a1RsNlBzNWJvbXNLZUwveDNrWFJDTjRwbVZPUGNZY09LaURxV3NmSnl3b205S2RtUVJqdzBCVVBTemhvOGZmeEM4ZmZxRFcyYTljNzV5WjVLSDBXenA1TnpFT28zZStlY2xEZDIwYmEzVDUrMEZYOExMTmFybEUvSGhzS1pUa05PeVpDQlJWNTA5anZOdlpYYW5odC9IWGlRUU8xTzkvYXd4OUpvSExhb08yZmY1ODdSZlE5NkovTUlPQk1pTGx2bTZiK2hSaVdCTVVBbHdUNUdlSTVCd1ZmUkJNNm1qOE8raVkrNkJRQ1AydXJnVGh1NHRtTEU4NWlwNUhQcUxZYjFxUkV6SEVmRVFyaFRFNU1mVHA3Rmd3THJWMlUyNnVmbktBNlBoZkJib0NsZ21abE5xdnFDYStraW1meWUiXX1dfSwgImV4cCI6IDE1ODA4MjU4MzAsICJpYXQiOiAxNTgwODIyMjMwLCAiaXNzIjogImh0dHA6Ly9sb2NhbGhvc3QuOjgwODAiLCAibmJmIjogMTU4MDgyMjIzMH0.sge6kefSMKfd5tZNwPjpPyqFy2__HvcCkJdxAyP5hx7JrZPnXNSe5gObEf2X2mswjNitMG5ttxvwZFMG-uC62gVzRL6I3utlgq6UbgHKgUq9Pq1cJeU0fCreHA6nHhKytoYuDwUSY_QuHsdDafhaS5qsmBQRfMGwdtdAVOkGIx0"
+ }
+ }
+ }
+}
diff --git a/specification/attestation/data-plane/Microsoft.Attestation/stable/2020-10-01/examples/Reset_Policy.json b/specification/attestation/data-plane/Microsoft.Attestation/stable/2020-10-01/examples/Reset_Policy.json
new file mode 100644
index 000000000000..95da1228b695
--- /dev/null
+++ b/specification/attestation/data-plane/Microsoft.Attestation/stable/2020-10-01/examples/Reset_Policy.json
@@ -0,0 +1,15 @@
+{
+ "parameters": {
+ "instanceUrl": "https://instance.attest.azure.net",
+ "api-version": "2020-10-01",
+ "attestationType": "SgxEnclave",
+ "PolicyJws": "eyJhbGciOiJub25lIn0.."
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "token": "eyJhbGciOiAiUlMyNTYiLCAiamt1IjogImh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9jZXJ0cyIsICJraWQiOiAieWtJd00rcnRNcnhFZkZJVHY2TGZjVG03eWszUkxXRXBkN1lsZmJyTk1JST0iLCAidHlwIjogIkpXVCJ9.eyJhYXMtcG9saWN5SGFzaCI6ICJ2MG9QNG9KWkVKWnh4SXhFNmJiVVAxa1JSbWVfZXgtUHV4NlF0c1U4STdNIiwgImV4cCI6IDE1NzM4NjI5NzQsICJpYXQiOiAxNTczODU5Mzc0LCAiaXNzIjogImh0dHA6Ly9sb2NhbGhvc3Q6ODA4MCIsICJuYmYiOiAxNTczODU5Mzc0fQ.FTMpKwZHJa5l9_Mdxl60FtSDOr9kLRDYw3UAofMXJ-eOEvm4FdNM69YHR6Oy_i1uUEnVDAnMHhR0APTXgKqoR7gDxxfJG_RgiQqsTmQ-ucmXNL2Ck--sH3bz9OfIocPYSN0FBWiq6fgG6iX_oMX1hs-ENsF7B3jSp1nVL8NWtWk"
+ }
+ }
+ }
+}
diff --git a/specification/attestation/data-plane/Microsoft.Attestation/stable/2020-10-01/examples/Set_Policy.json b/specification/attestation/data-plane/Microsoft.Attestation/stable/2020-10-01/examples/Set_Policy.json
new file mode 100644
index 000000000000..dd32cc3ca653
--- /dev/null
+++ b/specification/attestation/data-plane/Microsoft.Attestation/stable/2020-10-01/examples/Set_Policy.json
@@ -0,0 +1,16 @@
+{
+ "parameters": {
+ "instanceUrl": "https://instance.attest.azure.net",
+ "api-version": "2020-10-01",
+ "attestationType": "SgxEnclave",
+ "newAttestationPolicy": "eyJhbGciOiAiUlMyNTYiLCAiamt1IjogImh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9jZXJ0cyIsICJraWQiOiAieWtJd00rcnRNcnhFZkZJVHY2TGZjVG03eWszUkxXRXBkN1lsZmJyTk1JST0iLCAidHlwIjogIkpXVCJ9.eyJhYXMtcG9saWN5SGFzaCI6ICJ2MG9QNG9KWkVKWnh4SXhFNmJiVVAxa1JSbWVfZXgtUHV4NlF0c1U4STdNIiwgImV4cCI6IDE1NzM4NjI5NzQsICJpYXQiOiAxNTczODU5Mzc0LCAiaXNzIjogImh0dHA6Ly9sb2NhbGhvc3Q6ODA4MCIsICJuYmYiOiAxNTczODU5Mzc0fQ.FTMpKwZHJa5l9_Mdxl60FtSDOr9kLRDYw3UAofMXJ-eOEvm4FdNM69YHR6Oy_i1uUEnVDAnMHhR0APTXgKqoR7gDxxfJG_RgiQqsTmQ-ucmXNL2Ck--sH3bz9OfIocPYSN0FBWiq6fgG6iX_oMX1hs-ENsF7B3jSp1nVL8NWtWk"
+ },
+ "responses": {
+ "200": {
+ "description": "Success",
+ "body": {
+ "token": "eyJhbGciOiJub25lIn0.eyJBdHRlc3RhdGlvblBvbGljeSI6ICJEUXAyWlhKemFXOXVQVEV1TURzTkNtRjFkR2h2Y21sNllYUnBiMjV5ZFd4bGN5QjdJRDAtSUhCbGNtMXBkQ2dwT3lCOU93MEthWE56ZFdGdVkyVnlkV3hsY3lCN2ZUcyJ9."
+ }
+ }
+ }
+}
diff --git a/specification/attestation/data-plane/readme.go.md b/specification/attestation/data-plane/readme.go.md
index a99623b96edf..ff6d9f8158b5 100644
--- a/specification/attestation/data-plane/readme.go.md
+++ b/specification/attestation/data-plane/readme.go.md
@@ -13,14 +13,24 @@ go:
``` yaml $(go) && $(multiapi)
batch:
- - tag: package-2018-09-preview
+ - tag: package-2018-09-01
+ - tag: package-2020-10-01
```
-### Tag: package-2018-09-preview and go
+### Tag: package-2018-09-01 and go
-These settings apply only when `--tag=package-2018-09-preview --go` is specified on the command line.
+These settings apply only when `--tag=package-2018-09-01 --go` is specified on the command line.
Please also specify `--go-sdk-folder=`.
-``` yaml $(tag) == 'package-2018-09-preview' && $(go)
-output-folder: $(go-sdk-folder)/services/preview/$(namespace)/2018-09-01-preview/$(namespace)
+``` yaml $(tag) == 'package-2018-09-01' && $(go)
+output-folder: $(go-sdk-folder)/services/stable/$(namespace)/2018-09-01/$(namespace)
+```
+
+### Tag: package-2020-10-01 and go
+
+These settings apply only when `--tag=package-2020-10-01 --go` is specified on the command line.
+Please also specify `--go-sdk-folder=`.
+
+``` yaml $(tag) == 'package-2020-10-01' && $(go)
+output-folder: $(go-sdk-folder)/services/stable/$(namespace)/2020-10-01/$(namespace)
```
diff --git a/specification/attestation/data-plane/readme.md b/specification/attestation/data-plane/readme.md
index c0dfa3499891..04bbc57467bc 100644
--- a/specification/attestation/data-plane/readme.md
+++ b/specification/attestation/data-plane/readme.md
@@ -20,23 +20,30 @@ To see additional help and options, run:
## Configuration
Following are the settings for using this specification with [AutoRest](https://aka.ms/autorest) tool to validation and optionally generate SDK.
-### Suppression
-
### Basic Information
These are the global settings for the Attestation APIs.
``` yaml
openapi-type: data-plane
-tag: package-2018-09-preview
+tag: package-2018-09-01
+```
+
+### Tag: package-2018-09-01
+
+These settings apply only when `--tag=package-2018-09-01` is specified on the command line.
+
+``` yaml $(tag) == 'package-2018-09-01'
+input-file:
+- Microsoft.Attestation/stable/2018-09-01/attestation.json
```
-### Tag: package-2018-09-preview
+### Tag: package-2020-10-01
-These settings apply only when `--tag=package-2018-09-preview` is specified on the command line.
+These settings apply only when `--tag=package-2020-10-01` is specified on the command line.
-``` yaml $(tag) == 'package-2018-09-preview'
+``` yaml $(tag) == 'package-2020-10-01'
input-file:
-- Microsoft.Attestation/preview/2018-09-01-preview/attestation.json
+- Microsoft.Attestation/stable/2020-10-01/attestation.json
```
---
@@ -89,8 +96,8 @@ require: $(this-folder)/../../../profiles/readme.md
# all the input files across all versions
input-file:
- - $(this-folder)/Microsoft.Attestation/preview/2018-09-01-preview/attestation.json
-
+ - $(this-folder)/Microsoft.Attestation/stable/2018-09-01/attestation.json
+ - $(this-folder)/Microsoft.Attestation/stable/2020-10-01/attestation.json
```
If there are files that should not be in the `all-api-versions` set,
@@ -101,3 +108,24 @@ uncomment the `exclude-file` section below and add the file paths.
# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
```
+### Suppression
+``` yaml
+directive:
+ - suppress: DefinitionsPropertiesNamesCamelCase
+ from: attestation.json
+ where: $.definitions.StoredAttestationPolicy.properties.AttestationPolicy
+ reason: Existing Clients use these definitions which must be maintained.
+ - suppress: DefinitionsPropertiesNamesCamelCase
+ from: attestation.json
+ where: $.definitions.AttestationResult.properties.policy_signer
+ reason: Existing Clients use these definitions which must be maintained.
+ - suppress: DefinitionsPropertiesNamesCamelCase
+ from: attestation.json
+ where: $.definitions.AttestationResult.properties.policy_hash
+ reason: Existing Clients use these definitions which must be maintained.
+ - suppress: DefinitionsPropertiesNamesCamelCase
+ from: attestation.json
+ where: $.definitions.AttestationResult.properties.rp_data
+ reason: Existing Clients use these definitions which must be maintained.
+```
+
diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/preview/2018-09-01-preview/attestation.json b/specification/attestation/resource-manager/Microsoft.Attestation/stable/2018-09-01/attestation.json
similarity index 99%
rename from specification/attestation/resource-manager/Microsoft.Attestation/preview/2018-09-01-preview/attestation.json
rename to specification/attestation/resource-manager/Microsoft.Attestation/stable/2018-09-01/attestation.json
index 5e016060e568..8fb100b1cad8 100644
--- a/specification/attestation/resource-manager/Microsoft.Attestation/preview/2018-09-01-preview/attestation.json
+++ b/specification/attestation/resource-manager/Microsoft.Attestation/stable/2018-09-01/attestation.json
@@ -3,7 +3,7 @@
"info": {
"title": "AttestationManagementClient",
"description": "Various APIs for managing resources in attestation service. This primarily encompasses per-tenant instance management.",
- "version": "2018-09-01-preview"
+ "version": "2018-09-01"
},
"host": "management.azure.com",
"schemes": [
@@ -128,7 +128,7 @@
"in": "path",
"required": true,
"type": "string",
- "description": "Name of the attestation service"
+ "description": "Name of the attestation service instance."
},
{
"$ref": "#/parameters/ApiVersionParameter"
@@ -188,7 +188,7 @@
"in": "path",
"required": true,
"type": "string",
- "description": "Name of the attestation service"
+ "description": "Name of the attestation service instance."
},
{
"$ref": "#/parameters/ApiVersionParameter"
diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/preview/2018-09-01-preview/examples/Create_AttestationProvider.json b/specification/attestation/resource-manager/Microsoft.Attestation/stable/2018-09-01/examples/Create_AttestationProvider.json
similarity index 100%
rename from specification/attestation/resource-manager/Microsoft.Attestation/preview/2018-09-01-preview/examples/Create_AttestationProvider.json
rename to specification/attestation/resource-manager/Microsoft.Attestation/stable/2018-09-01/examples/Create_AttestationProvider.json
diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/preview/2018-09-01-preview/examples/Delete_AttestationProvider.json b/specification/attestation/resource-manager/Microsoft.Attestation/stable/2018-09-01/examples/Delete_AttestationProvider.json
similarity index 100%
rename from specification/attestation/resource-manager/Microsoft.Attestation/preview/2018-09-01-preview/examples/Delete_AttestationProvider.json
rename to specification/attestation/resource-manager/Microsoft.Attestation/stable/2018-09-01/examples/Delete_AttestationProvider.json
diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/preview/2018-09-01-preview/examples/Get_AttestationProvider.json b/specification/attestation/resource-manager/Microsoft.Attestation/stable/2018-09-01/examples/Get_AttestationProvider.json
similarity index 100%
rename from specification/attestation/resource-manager/Microsoft.Attestation/preview/2018-09-01-preview/examples/Get_AttestationProvider.json
rename to specification/attestation/resource-manager/Microsoft.Attestation/stable/2018-09-01/examples/Get_AttestationProvider.json
diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/preview/2018-09-01-preview/examples/Get_AttestationProvidersList.json b/specification/attestation/resource-manager/Microsoft.Attestation/stable/2018-09-01/examples/Get_AttestationProvidersList.json
similarity index 100%
rename from specification/attestation/resource-manager/Microsoft.Attestation/preview/2018-09-01-preview/examples/Get_AttestationProvidersList.json
rename to specification/attestation/resource-manager/Microsoft.Attestation/stable/2018-09-01/examples/Get_AttestationProvidersList.json
diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/preview/2018-09-01-preview/examples/Get_AttestationProvidersListByResourceGroup.json b/specification/attestation/resource-manager/Microsoft.Attestation/stable/2018-09-01/examples/Get_AttestationProvidersListByResourceGroup.json
similarity index 100%
rename from specification/attestation/resource-manager/Microsoft.Attestation/preview/2018-09-01-preview/examples/Get_AttestationProvidersListByResourceGroup.json
rename to specification/attestation/resource-manager/Microsoft.Attestation/stable/2018-09-01/examples/Get_AttestationProvidersListByResourceGroup.json
diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/preview/2018-09-01-preview/examples/Get_DefaultProviderByLocation.json b/specification/attestation/resource-manager/Microsoft.Attestation/stable/2018-09-01/examples/Get_DefaultProviderByLocation.json
similarity index 100%
rename from specification/attestation/resource-manager/Microsoft.Attestation/preview/2018-09-01-preview/examples/Get_DefaultProviderByLocation.json
rename to specification/attestation/resource-manager/Microsoft.Attestation/stable/2018-09-01/examples/Get_DefaultProviderByLocation.json
diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/preview/2018-09-01-preview/examples/Get_DefaultProviders.json b/specification/attestation/resource-manager/Microsoft.Attestation/stable/2018-09-01/examples/Get_DefaultProviders.json
similarity index 100%
rename from specification/attestation/resource-manager/Microsoft.Attestation/preview/2018-09-01-preview/examples/Get_DefaultProviders.json
rename to specification/attestation/resource-manager/Microsoft.Attestation/stable/2018-09-01/examples/Get_DefaultProviders.json
diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/preview/2018-09-01-preview/examples/Operations_List.json b/specification/attestation/resource-manager/Microsoft.Attestation/stable/2018-09-01/examples/Operations_List.json
similarity index 100%
rename from specification/attestation/resource-manager/Microsoft.Attestation/preview/2018-09-01-preview/examples/Operations_List.json
rename to specification/attestation/resource-manager/Microsoft.Attestation/stable/2018-09-01/examples/Operations_List.json
diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/preview/2018-09-01-preview/examples/Update_AttestationProvider.json b/specification/attestation/resource-manager/Microsoft.Attestation/stable/2018-09-01/examples/Update_AttestationProvider.json
similarity index 100%
rename from specification/attestation/resource-manager/Microsoft.Attestation/preview/2018-09-01-preview/examples/Update_AttestationProvider.json
rename to specification/attestation/resource-manager/Microsoft.Attestation/stable/2018-09-01/examples/Update_AttestationProvider.json
diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/stable/2020-10-01/attestation.json b/specification/attestation/resource-manager/Microsoft.Attestation/stable/2020-10-01/attestation.json
new file mode 100644
index 000000000000..39bf61c88556
--- /dev/null
+++ b/specification/attestation/resource-manager/Microsoft.Attestation/stable/2020-10-01/attestation.json
@@ -0,0 +1,628 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "AttestationManagementClient",
+ "description": "Various APIs for managing resources in attestation service. This primarily encompasses per-tenant instance management.",
+ "version": "2020-10-01"
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Azure Active Directory OAuth2 Flow",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
+ "paths": {
+ "/providers/Microsoft.Attestation/operations": {
+ "get": {
+ "tags": [
+ "Operations"
+ ],
+ "operationId": "Operations_List",
+ "description": "Lists all of the available Azure attestation operations.",
+ "x-ms-examples": {
+ "Operations_List": {
+ "$ref": "./examples/Operations_List.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "List all the operations.",
+ "schema": {
+ "$ref": "#/definitions/OperationList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Attestation/attestationProviders/{providerName}": {
+ "get": {
+ "tags": [
+ "AttestationProviders"
+ ],
+ "operationId": "AttestationProviders_Get",
+ "description": "Get the status of Attestation Provider.",
+ "x-ms-examples": {
+ "AttestationProviders_Get": {
+ "$ref": "./examples/Get_AttestationProvider.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "name": "providerName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of the attestation service instance"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The status of the specified attestation service instance",
+ "schema": {
+ "$ref": "#/definitions/AttestationProvider"
+ }
+ },
+ "default": {
+ "description": "Error result from Attestation service",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "AttestationProviders"
+ ],
+ "operationId": "AttestationProviders_Create",
+ "description": "Creates a new Attestation Provider instance.",
+ "x-ms-examples": {
+ "AttestationProviders_Create": {
+ "$ref": "./examples/Create_AttestationProvider.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "name": "providerName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of the attestation service instance."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "creationParams",
+ "in": "body",
+ "required": true,
+ "description": "Client supplied parameters.",
+ "schema": {
+ "$ref": "#/definitions/AttestationServiceCreationParams"
+ },
+ "x-ms-parameter-location": "method"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Created or updated attestation service",
+ "schema": {
+ "$ref": "#/definitions/AttestationProvider"
+ }
+ },
+ "201": {
+ "description": "Created or updated attestation service",
+ "schema": {
+ "$ref": "#/definitions/AttestationProvider"
+ }
+ },
+ "default": {
+ "description": "Error result from Attestation service",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "AttestationProviders"
+ ],
+ "operationId": "AttestationProviders_Update",
+ "description": "Updates the Attestation Provider.",
+ "x-ms-examples": {
+ "AttestationProviders_Update": {
+ "$ref": "./examples/Update_AttestationProvider.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "name": "providerName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of the attestation service instance."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "updateParams",
+ "in": "body",
+ "required": true,
+ "description": "Client supplied parameters.",
+ "schema": {
+ "$ref": "#/definitions/AttestationServicePatchParams"
+ },
+ "x-ms-parameter-location": "method"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Updated attestation service",
+ "schema": {
+ "$ref": "#/definitions/AttestationProvider"
+ }
+ },
+ "default": {
+ "description": "Error result from Attestation service",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "AttestationProviders"
+ ],
+ "operationId": "AttestationProviders_Delete",
+ "description": "Delete Attestation Service.",
+ "x-ms-examples": {
+ "AttestationProviders_Delete": {
+ "$ref": "./examples/Delete_AttestationProvider.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "name": "providerName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of the attestation service"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Resource exists and was deleted successfully"
+ },
+ "202": {
+ "description": "Request accepted for deletion of attestation service"
+ },
+ "204": {
+ "description": "Resource does not exist"
+ },
+ "default": {
+ "description": "Error result from Attestation service",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Attestation/attestationProviders": {
+ "get": {
+ "tags": [
+ "AttestationProviders"
+ ],
+ "operationId": "AttestationProviders_List",
+ "description": "Returns a list of attestation providers in a subscription.",
+ "x-ms-examples": {
+ "AttestationProviders_List": {
+ "$ref": "./examples/Get_AttestationProvidersList.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/AttestationProviderListResult"
+ }
+ },
+ "default": {
+ "description": "Attestation service error result",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Attestation/attestationProviders": {
+ "get": {
+ "tags": [
+ "AttestationProviders"
+ ],
+ "operationId": "AttestationProviders_ListByResourceGroup",
+ "description": "Returns attestation providers list in a resource group.",
+ "x-ms-examples": {
+ "AttestationProviders_ListByResourceGroup": {
+ "$ref": "./examples/Get_AttestationProvidersListByResourceGroup.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/AttestationProviderListResult"
+ }
+ },
+ "default": {
+ "description": "Attestation service error result",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Attestation/defaultProviders": {
+ "get": {
+ "tags": [
+ "AttestationProviders"
+ ],
+ "operationId": "AttestationProviders_ListDefault",
+ "description": "Get the default provider",
+ "x-ms-examples": {
+ "AttestationProviders_GetDefault": {
+ "$ref": "./examples/Get_DefaultProviders.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Retrieved information about the default provider.",
+ "schema": {
+ "$ref": "#/definitions/AttestationProviderListResult"
+ }
+ },
+ "default": {
+ "description": "Attestation service error result",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Attestation/locations/{location}/defaultProvider": {
+ "get": {
+ "tags": [
+ "AttestationProviders"
+ ],
+ "operationId": "AttestationProviders_GetDefaultByLocation",
+ "description": "Get the default provider by location.",
+ "x-ms-examples": {
+ "AttestationProviders_GetDefaultWithLocation": {
+ "$ref": "./examples/Get_DefaultProviderByLocation.json"
+ }
+ },
+ "parameters": [
+ {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "minLength": 1,
+ "description": "The location of the default provider."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Retrieved information about the default provider.",
+ "schema": {
+ "$ref": "#/definitions/AttestationProvider"
+ }
+ },
+ "default": {
+ "description": "Attestation service error result",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "OperationList": {
+ "properties": {
+ "systemData": {
+ "readOnly": true,
+ "description": "The system metadata relating to this resource",
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/systemData"
+ },
+ "value": {
+ "type": "array",
+ "description": "List of supported operations.",
+ "items": {
+ "$ref": "#/definitions/OperationsDefinition"
+ }
+ }
+ },
+ "description": "List of supported operations."
+ },
+ "OperationsDefinition": {
+ "type": "object",
+ "description": "Definition object with the name and properties of an operation.",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name of the operation."
+ },
+ "display": {
+ "$ref": "#/definitions/OperationsDisplayDefinition",
+ "description": "Display object with properties of the operation."
+ }
+ }
+ },
+ "OperationsDisplayDefinition": {
+ "type": "object",
+ "description": "Display object with properties of the operation.",
+ "properties": {
+ "provider": {
+ "type": "string",
+ "description": "Resource provider of the operation."
+ },
+ "resource": {
+ "type": "string",
+ "description": "Resource for the operation."
+ },
+ "operation": {
+ "type": "string",
+ "description": "Short description of the operation."
+ },
+ "description": {
+ "type": "string",
+ "description": "Description of the operation."
+ }
+ }
+ },
+ "AttestationProvider": {
+ "description": "Attestation service response message.",
+ "required": [
+ "properties"
+ ],
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/TrackedResource"
+ }
+ ],
+ "properties": {
+ "systemData": {
+ "readOnly": true,
+ "description": "The system metadata relating to this resource",
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/systemData"
+ },
+ "properties": {
+ "type": "object",
+ "$ref": "#/definitions/StatusResult",
+ "description": "Describes Attestation service status.",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "StatusResult": {
+ "type": "object",
+ "description": "Status of attestation service.",
+ "properties": {
+ "trustModel": {
+ "type": "string",
+ "description": "Trust model for the attestation service instance."
+ },
+ "status": {
+ "type": "string",
+ "description": "Status of attestation service.",
+ "enum": [
+ "Ready",
+ "NotReady",
+ "Error"
+ ],
+ "x-ms-enum": {
+ "name": "AttestationServiceStatus",
+ "modelAsString": true
+ }
+ },
+ "attestUri": {
+ "type": "string",
+ "description": "Gets the uri of attestation service"
+ }
+ }
+ },
+ "CloudError": {
+ "x-ms-external": true,
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/CloudErrorBody"
+ }
+ },
+ "description": "An error response from Attestation."
+ },
+ "CloudErrorBody": {
+ "x-ms-external": true,
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "An identifier for the error. Codes are invariant and are intended to be consumed programmatically."
+ },
+ "message": {
+ "type": "string",
+ "description": "A message describing the error, intended to be suitable for displaying in a user interface."
+ }
+ },
+ "description": "An error response from Attestation."
+ },
+ "AttestationProviderListResult": {
+ "description": "Attestation Providers List.",
+ "properties": {
+ "systemData": {
+ "readOnly": true,
+ "description": "The system metadata relating to this resource",
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/systemData"
+ },
+ "value": {
+ "type": "array",
+ "description": "Attestation Provider array.",
+ "items": {
+ "$ref": "#/definitions/AttestationProvider"
+ }
+ }
+ }
+ },
+ "AttestationServicePatchParams": {
+ "description": "Parameters for patching an attestation service instance",
+ "x-ms-azure-resource": true,
+ "properties": {
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "The tags that will be assigned to the attestation service instance."
+ }
+ }
+ },
+ "AttestationServiceCreationParams": {
+ "description": "Parameters for creating an attestation service instance",
+ "required": [
+ "location",
+ "properties"
+ ],
+ "x-ms-azure-resource": true,
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "The supported Azure location where the attestation service instance should be created."
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "The tags that will be assigned to the attestation service instance."
+ },
+ "properties": {
+ "$ref": "#/definitions/AttestationServiceCreationSpecificParams",
+ "description": "Properties of the attestation service instance"
+ }
+ }
+ },
+ "AttestationServiceCreationSpecificParams": {
+ "description": "Client supplied parameters used to create a new attestation service instance.",
+ "properties": {
+ "policySigningCertificates": {
+ "description": "JSON Web Key Set defining a set of X.509 Certificates that will represent the parent certificate for the signing certificate used for policy operations",
+ "$ref": "../../../../../common-types/rfcs/rfc7517.json#/definitions/JSONWebKeySet"
+ }
+ }
+ }
+ },
+ "parameters": {
+ "ApiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "Client API version. Current version is 2020-10-01"
+ }
+ }
+}
diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/stable/2020-10-01/examples/Create_AttestationProvider.json b/specification/attestation/resource-manager/Microsoft.Attestation/stable/2020-10-01/examples/Create_AttestationProvider.json
new file mode 100644
index 000000000000..c57f07839cf0
--- /dev/null
+++ b/specification/attestation/resource-manager/Microsoft.Attestation/stable/2020-10-01/examples/Create_AttestationProvider.json
@@ -0,0 +1,47 @@
+{
+ "parameters": {
+ "resourceGroupName": "MyResourceGroup",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "api-version": "2020-10-01",
+ "providerName": "myattestationprovider",
+ "creationParams": "test"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/Microsoft.Attestation/attestationProviders/myattestationprovider",
+ "name": "myattestationprovider",
+ "type": "Microsoft.Attestation/attestationProviders",
+ "location": "East US",
+ "tags": {
+ "Property1": "Value1",
+ "Property2": "Value2",
+ "Property3": "Value3"
+ },
+ "properties": {
+ "trustModel": "Isolated",
+ "status": "Ready",
+ "attestUri": "https://superservice.attestation.azure.net"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/Microsoft.Attestation/attestationProviders/myattestationprovider",
+ "name": "myattestationprovider",
+ "type": "Microsoft.Attestation/attestationProviders",
+ "location": "East US",
+ "tags": {
+ "Property1": "Value1",
+ "Property2": "Value2",
+ "Property3": "Value3"
+ },
+ "properties": {
+ "trustModel": "Isolated",
+ "status": "Ready",
+ "attestUri": "https://superservice.attestation.azure.net"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/stable/2020-10-01/examples/Delete_AttestationProvider.json b/specification/attestation/resource-manager/Microsoft.Attestation/stable/2020-10-01/examples/Delete_AttestationProvider.json
new file mode 100644
index 000000000000..520ae1d1f232
--- /dev/null
+++ b/specification/attestation/resource-manager/Microsoft.Attestation/stable/2020-10-01/examples/Delete_AttestationProvider.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "resourceGroupName": "sample-resource-group",
+ "serviceName": "sampleservicename",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "api-version": "2020-10-01",
+ "providerName": "myattestationprovider"
+ },
+ "responses": {
+ "202": {
+ "description": "Request accepted for deletion of attestation service"
+ },
+ "200": {
+ "description": "Resource exists and was deleted successfully"
+ },
+ "204": {
+ "description": "Resource does not exist"
+ }
+ }
+}
diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/stable/2020-10-01/examples/Get_AttestationProvider.json b/specification/attestation/resource-manager/Microsoft.Attestation/stable/2020-10-01/examples/Get_AttestationProvider.json
new file mode 100644
index 000000000000..d2236ed63fef
--- /dev/null
+++ b/specification/attestation/resource-manager/Microsoft.Attestation/stable/2020-10-01/examples/Get_AttestationProvider.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "resourceGroupName": "MyResourceGroup",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "api-version": "2020-10-01",
+ "providerName": "myattestationprovider"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/Microsoft.Attestation/attestationProviders/myattestationprovider",
+ "name": "myattestationprovider",
+ "type": "Microsoft.Attestation/attestationProviders",
+ "location": "East US",
+ "tags": {
+ "Property1": "Value1",
+ "Property2": "Value2",
+ "Property3": "Value3"
+ },
+ "properties": {
+ "trustModel": "Isolated",
+ "status": "Ready",
+ "attestUri": "https://superservice.attestation.azure.net"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/stable/2020-10-01/examples/Get_AttestationProvidersList.json b/specification/attestation/resource-manager/Microsoft.Attestation/stable/2020-10-01/examples/Get_AttestationProvidersList.json
new file mode 100644
index 000000000000..226db0244f6d
--- /dev/null
+++ b/specification/attestation/resource-manager/Microsoft.Attestation/stable/2020-10-01/examples/Get_AttestationProvidersList.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "api-version": "2020-10-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "subscriptions/6c96b33e-f5b8-40a6-9011-5cb1c58b0915/resourceGroups/testrg1/providers/Microsoft.Attestation/attestationProviders/myattestationprovider",
+ "name": "myattestationprovider",
+ "type": "Microsoft.Attestation/attestationProviders",
+ "location": "East US",
+ "properties": {
+ "status": "Ready"
+ }
+ },
+ {
+ "id": "subscriptions/6c96b33e-f5b8-40a6-9011-5cb1c58b0915/resourceGroups/testrg2/providers/Microsoft.Attestation/attestationProviders/codes2",
+ "name": "codes2",
+ "type": "Microsoft.Attestation/attestationProviders",
+ "location": "East US",
+ "properties": {
+ "status": "Ready"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/stable/2020-10-01/examples/Get_AttestationProvidersListByResourceGroup.json b/specification/attestation/resource-manager/Microsoft.Attestation/stable/2020-10-01/examples/Get_AttestationProvidersListByResourceGroup.json
new file mode 100644
index 000000000000..9be2ab2ed038
--- /dev/null
+++ b/specification/attestation/resource-manager/Microsoft.Attestation/stable/2020-10-01/examples/Get_AttestationProvidersListByResourceGroup.json
@@ -0,0 +1,33 @@
+{
+ "parameters": {
+ "resourceGroupName": "testrg1",
+ "subscriptionId": "6c96b33e-f5b8-40a6-9011-5cb1c58b0915",
+ "api-version": "2018-09-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "subscriptions/6c96b33e-f5b8-40a6-9011-5cb1c58b0915/resourceGroups/testrg1/providers/Microsoft.Attestation/attestationProviders/myattestationprovider",
+ "name": "myattestationprovider",
+ "type": "Microsoft.Attestation/attestationProviders",
+ "location": "East US",
+ "properties": {
+ "status": "Ready"
+ }
+ },
+ {
+ "id": "subscriptions/6c96b33e-f5b8-40a6-9011-5cb1c58b0915/resourceGroups/testrg1/providers/Microsoft.Attestation/attestationProviders/codes2",
+ "name": "codes2",
+ "type": "Microsoft.Attestation/attestationProviders",
+ "location": "East US",
+ "properties": {
+ "status": "Ready"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/stable/2020-10-01/examples/Get_DefaultProviderByLocation.json b/specification/attestation/resource-manager/Microsoft.Attestation/stable/2020-10-01/examples/Get_DefaultProviderByLocation.json
new file mode 100644
index 000000000000..ce3bfcc2a8b8
--- /dev/null
+++ b/specification/attestation/resource-manager/Microsoft.Attestation/stable/2020-10-01/examples/Get_DefaultProviderByLocation.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "subscriptionId": "6c96b33e-f5b8-40a6-9011-5cb1c58b0915",
+ "api-version": "2020-10-01",
+ "location": "Central US"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "providers/Microsoft.Attestation/attestationProviders/sharedcus",
+ "name": "sharedcus",
+ "type": "Microsoft.Attestation/attestationProviders",
+ "location": "Central US",
+ "properties": {
+ "trustModel": "AAD",
+ "status": "Ready",
+ "attestUri": "https://sharedcus.cus.attest.azure.net"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/stable/2020-10-01/examples/Get_DefaultProviders.json b/specification/attestation/resource-manager/Microsoft.Attestation/stable/2020-10-01/examples/Get_DefaultProviders.json
new file mode 100644
index 000000000000..0b5d7b6340ee
--- /dev/null
+++ b/specification/attestation/resource-manager/Microsoft.Attestation/stable/2020-10-01/examples/Get_DefaultProviders.json
@@ -0,0 +1,36 @@
+{
+ "parameters": {
+ "subscriptionId": "6c96b33e-f5b8-40a6-9011-5cb1c58b0915",
+ "api-version": "2020-10-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "providers/Microsoft.Attestation/attestationProviders/sharedcus",
+ "name": "sharedcus",
+ "type": "Microsoft.Attestation/attestationProviders",
+ "location": "Central US",
+ "properties": {
+ "trustModel": "AAD",
+ "status": "Ready",
+ "attestUri": "https://sharedcus.cus.attest.azure.net"
+ }
+ },
+ {
+ "id": "providers/Microsoft.Attestation/attestationProviders/shareduks",
+ "name": "shareduks",
+ "type": "Microsoft.Attestation/attestationProviders",
+ "location": "UK South",
+ "properties": {
+ "trustModel": "AAD",
+ "status": "Ready",
+ "attestUri": "https://shareduks.uks.attest.azure.net"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/stable/2020-10-01/examples/Operations_List.json b/specification/attestation/resource-manager/Microsoft.Attestation/stable/2020-10-01/examples/Operations_List.json
new file mode 100644
index 000000000000..30bbec910c7c
--- /dev/null
+++ b/specification/attestation/resource-manager/Microsoft.Attestation/stable/2020-10-01/examples/Operations_List.json
@@ -0,0 +1,38 @@
+{
+ "parameters": {
+ "api-version": "2020-10-01"
+ },
+ "responses": {
+ "200": {
+ "body": [
+ {
+ "name": "Microsoft.Attestation/attestationProviders/attestation/read",
+ "display": {
+ "provider": "Microsoft Azure Attestation",
+ "resource": "Attestation",
+ "operation": "Get status of attestation service",
+ "description": "Get status of attestation service."
+ }
+ },
+ {
+ "name": "Microsoft.Attestation/attestationProviders/attestation/write",
+ "display": {
+ "provider": "Microsoft Azure Attestation",
+ "resource": "Attestation",
+ "operation": "Adds attestation service.",
+ "description": "Adds attestation service."
+ }
+ },
+ {
+ "name": "Microsoft.Attestation/attestationProviders/attestation/delete",
+ "display": {
+ "provider": "Microsoft Azure Attestation",
+ "resource": "Attestation",
+ "operation": "Removes attestation service",
+ "description": "Removes attestation service"
+ }
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/stable/2020-10-01/examples/Update_AttestationProvider.json b/specification/attestation/resource-manager/Microsoft.Attestation/stable/2020-10-01/examples/Update_AttestationProvider.json
new file mode 100644
index 000000000000..e43385a4d62c
--- /dev/null
+++ b/specification/attestation/resource-manager/Microsoft.Attestation/stable/2020-10-01/examples/Update_AttestationProvider.json
@@ -0,0 +1,35 @@
+{
+ "parameters": {
+ "resourceGroupName": "MyResourceGroup",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "api-version": "2020-10-01",
+ "providerName": "myattestationprovider",
+ "updateParams": {
+ "tags": {
+ "Property1": "Value1",
+ "Property2": "Value2",
+ "Property3": "Value3"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/Microsoft.Attestation/attestationProviders/myattestationprovider",
+ "name": "myattestationprovider",
+ "type": "Microsoft.Attestation/attestationProviders",
+ "location": "East US",
+ "tags": {
+ "Property1": "Value1",
+ "Property2": "Value2",
+ "Property3": "Value3"
+ },
+ "properties": {
+ "trustModel": "Isolated",
+ "status": "Ready",
+ "attestUri": "https://superservice.attestation.azure.net"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/attestation/resource-manager/readme.azureresourceschema.md b/specification/attestation/resource-manager/readme.azureresourceschema.md
index 990f22190468..2a2df1ab405a 100644
--- a/specification/attestation/resource-manager/readme.azureresourceschema.md
+++ b/specification/attestation/resource-manager/readme.azureresourceschema.md
@@ -6,19 +6,20 @@ These settings apply only when `--azureresourceschema` is specified on the comma
``` yaml $(azureresourceschema) && $(multiapi)
batch:
- - tag: schema-attestation-2018-09-01-preview
+ - tag: schema-attestation-2018-09-01
```
Please also specify `--azureresourceschema-folder=`.
-### Tag: schema-attestation-2018-09-01-preview and azureresourceschema
+### Tag: schema-attestation-2018-09-01 and azureresourceschema
-``` yaml $(tag) == 'schema-attestation-2018-09-01-preview' && $(azureresourceschema)
+``` yaml $(tag) == 'schema-attestation-2018-09-01' && $(azureresourceschema)
output-folder: $(azureresourceschema-folder)/schemas
# all the input files in this apiVersion
input-file:
- - Microsoft.Attestation/preview/2018-09-01-preview/attestation.json
+ - Microsoft.Attestation/stable/2018-09-01/attestation.json
+ - Microsoft.Attestation/stable/2020-10-01/attestation.json
```
diff --git a/specification/attestation/resource-manager/readme.go.md b/specification/attestation/resource-manager/readme.go.md
index 2e19399e1ee5..005679be9021 100644
--- a/specification/attestation/resource-manager/readme.go.md
+++ b/specification/attestation/resource-manager/readme.go.md
@@ -13,14 +13,22 @@ go:
``` yaml $(go) && $(multiapi)
batch:
- - tag: package-2018-09-preview
+ - tag: package-2018-09-01
+ - tag: package-2020-10-01
```
-### Tag: package-2018-09-preview and go
+### Tag: package-2018-09-01 and go
-These settings apply only when `--tag=package-2018-09-preview --go` is specified on the command line.
+These settings apply only when `--tag=package-2018-09-01 --go` is specified on the command line.
Please also specify `--go-sdk-folder=`.
-``` yaml $(tag) == 'package-2018-09-preview' && $(go)
-output-folder: $(go-sdk-folder)/services/preview/$(namespace)/mgmt/2018-09-01-preview/$(namespace)
-```
\ No newline at end of file
+``` yaml $(tag) == 'package-2018-09-01' && $(go)
+output-folder: $(go-sdk-folder)/services/stable/$(namespace)/mgmt/2018-09-01/$(namespace)
+```
+
+These settings apply only when `--tag=package-2020-10-01 --go` is specified on the command line.
+Please also specify `--go-sdk-folder=`.
+
+``` yaml $(tag) == 'package-2020-10-01' && $(go)
+output-folder: $(go-sdk-folder)/services/stable/$(namespace)/mgmt/2020-10-01/$(namespace)
+```
diff --git a/specification/attestation/resource-manager/readme.md b/specification/attestation/resource-manager/readme.md
index 68adc3fb05b6..681eae848d28 100644
--- a/specification/attestation/resource-manager/readme.md
+++ b/specification/attestation/resource-manager/readme.md
@@ -26,18 +26,28 @@ These are the global settings for the Attestation API.
``` yaml
openapi-type: arm
-tag: package-2018-09-preview
+tag: package-2018-09-01
```
-### Tag: package-2018-09-preview
+### Tag: package-2018-09-01
-These settings apply only when `--tag=package-2018-09-preview` is specified on the command line.
+These settings apply only when `--tag=package-2018-09-01` is specified on the command line.
-``` yaml $(tag) == 'package-2018-09-preview'
+``` yaml $(tag) == 'package-2018-09-01'
input-file:
-- Microsoft.Attestation/preview/2018-09-01-preview/attestation.json
+- Microsoft.Attestation/stable/2018-09-01/attestation.json
```
+### Tag: package-2020-10-01
+
+These settings apply only when `--tag=package-2020-10-01` is specified on the command line.
+
+``` yaml $(tag) == 'package-2020-10-01'
+input-file:
+- Microsoft.Attestation/stable/2020-10-01/attestation.json
+```
+
+
---
# Code Generation
diff --git a/specification/attestation/resource-manager/readme.typescript.md b/specification/attestation/resource-manager/readme.typescript.md
new file mode 100644
index 000000000000..e513241625ce
--- /dev/null
+++ b/specification/attestation/resource-manager/readme.typescript.md
@@ -0,0 +1,13 @@
+## TypeScript
+
+These settings apply only when `--typescript` is specified on the command line.
+Please also specify `--typescript-sdks-folder=`.
+
+``` yaml $(typescript)
+typescript:
+ azure-arm: true
+ package-name: "@azure/arm-attestation"
+ output-folder: "$(typescript-sdks-folder)/sdk/attestation/arm-attestation"
+ clear-output-folder: true
+ generate-metadata: true
+```
diff --git a/specification/authorization/resource-manager/readme.csharp.md b/specification/authorization/resource-manager/readme.csharp.md
index 0a92e47c547e..d51272335e2e 100644
--- a/specification/authorization/resource-manager/readme.csharp.md
+++ b/specification/authorization/resource-manager/readme.csharp.md
@@ -108,4 +108,16 @@ output-folder: $(csharp-sdks-folder)/$(csharp-profile)/Authorization/Management.
batch:
- tag: profile-hybrid-2019-03-01
+ ```
+
+ ### Profile: hybrid_2020_09_01
+
+These settings apply only when `--csharp-profile=hybrid_2020_09_01` is specified on the command line.
+
+ ``` yaml $(csharp-profile)=='hybrid_2020_09_01'
+namespace: Microsoft.Azure.Management.Profiles.$(csharp-profile).Authorization
+output-folder: $(csharp-sdks-folder)/$(csharp-profile)/Authorization/Management.Authorization/Generated
+
+batch:
+ - tag: profile-hybrid-2020-09-01
```
\ No newline at end of file
diff --git a/specification/authorization/resource-manager/readme.md b/specification/authorization/resource-manager/readme.md
index 056f804e8de3..8e52bc8d5fd6 100644
--- a/specification/authorization/resource-manager/readme.md
+++ b/specification/authorization/resource-manager/readme.md
@@ -205,6 +205,19 @@ input-file:
- Microsoft.Authorization/stable/2015-07-01/authorization-RoleAssignmentsCalls.json
```
+### Tag: profile-hybrid-2020-09-01
+
+These settings apply only when `--tag=profile-hybrid-2020-09-01` is specified on the command line.
+Creating this tag to pick proper resources from the hybrid profile.
+
+``` yaml $(tag) == 'profile-hybrid-2020-09-01'
+input-file:
+- Microsoft.Authorization/stable/2015-07-01/authorization-RoleDefinitionsCalls.json
+- Microsoft.Authorization/stable/2015-07-01/authorization-ProviderOperationsCalls.json
+- Microsoft.Authorization/stable/2015-07-01/authorization-ElevateAccessCalls.json
+- Microsoft.Authorization/stable/2015-07-01/authorization-RoleAssignmentsCalls.json
+```
+
---
# Code Generation
diff --git a/specification/authorization/resource-manager/readme.typescript.md b/specification/authorization/resource-manager/readme.typescript.md
index 5074d3ab3c63..83a6872c020c 100644
--- a/specification/authorization/resource-manager/readme.typescript.md
+++ b/specification/authorization/resource-manager/readme.typescript.md
@@ -31,3 +31,16 @@ typescript:
batch:
- tag: profile-hybrid-2019-03-01
```
+
+### Profile: profile-hybrid-2020-09-01
+
+These settings apply only when `--profile=profile-hybrid-2020-09-01` is specified on the command line.
+
+``` yaml $(profile)=='profile-hybrid-2020-09-01'
+typescript:
+ package-name: "@azure/arm-authorization-profile-2020-09-01-hybrid"
+ output-folder: "$(typescript-sdks-folder)/sdk/authorization/arm-authorization-profile-2020-09-01-hybrid"
+ clear-output-folder: true
+ batch:
+ - tag: profile-hybrid-2020-09-01
+```
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2020-06-14/kusto.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2020-06-14/kusto.json
index 31bd2dd2c57b..ff8aa4954aa6 100644
--- a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2020-06-14/kusto.json
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2020-06-14/kusto.json
@@ -2588,15 +2588,18 @@
},
"minimum": {
"description": "Minimum allowed capacity.",
- "type": "integer"
+ "type": "integer",
+ "format": "int32"
},
"maximum": {
"description": "Maximum allowed capacity.",
- "type": "integer"
+ "type": "integer",
+ "format": "int32"
},
"default": {
"description": "The default capacity that would be used.",
- "type": "integer"
+ "type": "integer",
+ "format": "int32"
}
},
"description": "Azure capacity definition."
@@ -2720,7 +2723,8 @@
},
"capacity": {
"description": "The number of instances of the cluster.",
- "type": "integer"
+ "type": "integer",
+ "format": "int32"
},
"tier": {
"description": "SKU tier.",
@@ -2755,7 +2759,8 @@
"properties": {
"version": {
"description": "The version of the template defined, for instance 1.",
- "type": "integer"
+ "type": "integer",
+ "format": "int32"
},
"isEnabled": {
"description": "A boolean value that indicate if the optimized autoscale feature is enabled or not.",
@@ -2763,11 +2768,13 @@
},
"minimum": {
"description": "Minimum allowed instances count.",
- "type": "integer"
+ "type": "integer",
+ "format": "int32"
},
"maximum": {
"description": "Maximum allowed instances count.",
- "type": "integer"
+ "type": "integer",
+ "format": "int32"
}
},
"description": "A class that contains the optimized auto scale definition."
@@ -3678,7 +3685,7 @@
],
"type": "string",
"x-ms-enum": {
- "name": "Kind",
+ "name": "DataConnectionKind",
"modelAsString": true
}
}
@@ -3855,7 +3862,7 @@
"Microsoft.Kusto/clusters"
],
"x-ms-enum": {
- "name": "Type",
+ "name": "ClusterType",
"modelAsString": false
},
"description": "The type of resource, Microsoft.Kusto/clusters."
@@ -3906,7 +3913,7 @@
"Microsoft.Kusto/clusters/principalAssignments"
],
"x-ms-enum": {
- "name": "Type",
+ "name": "PrincipalAssignmentType",
"modelAsString": false
},
"description": "The type of resource, Microsoft.Kusto/clusters/principalAssignments."
@@ -3931,7 +3938,7 @@
"Microsoft.Kusto/clusters/databases/dataConnections"
],
"x-ms-enum": {
- "name": "Type",
+ "name": "DataConnectionType",
"modelAsString": false
},
"description": "The type of resource, Microsoft.Kusto/clusters/databases/dataConnections."
@@ -3956,7 +3963,7 @@
"Microsoft.Kusto/clusters/databases/principalAssignments"
],
"x-ms-enum": {
- "name": "Type",
+ "name": "DatabasePrincipalAssignmentType",
"modelAsString": false
},
"description": "The type of resource, Microsoft.Kusto/clusters/databases/principalAssignments."
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2020-09-18/kusto.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2020-09-18/kusto.json
index 7ed04f444d6a..b04f982f0256 100644
--- a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2020-09-18/kusto.json
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2020-09-18/kusto.json
@@ -2457,21 +2457,8 @@
}
},
"provisioningState": {
- "type": "string",
- "readOnly": true,
- "description": "The provisioned state of the resource.",
- "enum": [
- "Running",
- "Creating",
- "Deleting",
- "Succeeded",
- "Failed",
- "Moving"
- ],
- "x-ms-enum": {
- "name": "ProvisioningState",
- "modelAsString": true
- }
+ "$ref": "#/definitions/ProvisioningState",
+ "description": "The provisioned state of the resource."
},
"uri": {
"type": "string",
@@ -2600,15 +2587,18 @@
},
"minimum": {
"description": "Minimum allowed capacity.",
- "type": "integer"
+ "type": "integer",
+ "format": "int32"
},
"maximum": {
"description": "Maximum allowed capacity.",
- "type": "integer"
+ "type": "integer",
+ "format": "int32"
},
"default": {
"description": "The default capacity that would be used.",
- "type": "integer"
+ "type": "integer",
+ "format": "int32"
}
},
"description": "Azure capacity definition."
@@ -2733,7 +2723,8 @@
},
"capacity": {
"description": "The number of instances of the cluster.",
- "type": "integer"
+ "type": "integer",
+ "format": "int32"
},
"tier": {
"description": "SKU tier.",
@@ -2768,7 +2759,8 @@
"properties": {
"version": {
"description": "The version of the template defined, for instance 1.",
- "type": "integer"
+ "type": "integer",
+ "format": "int32"
},
"isEnabled": {
"description": "A boolean value that indicate if the optimized autoscale feature is enabled or not.",
@@ -2776,11 +2768,13 @@
},
"minimum": {
"description": "Minimum allowed instances count.",
- "type": "integer"
+ "type": "integer",
+ "format": "int32"
},
"maximum": {
"description": "Maximum allowed instances count.",
- "type": "integer"
+ "type": "integer",
+ "format": "int32"
}
},
"description": "A class that contains the optimized auto scale definition."
@@ -2822,21 +2816,8 @@
"AttachedDatabaseConfigurationProperties": {
"properties": {
"provisioningState": {
- "type": "string",
- "readOnly": true,
- "description": "The provisioned state of the resource.",
- "enum": [
- "Running",
- "Creating",
- "Deleting",
- "Succeeded",
- "Failed",
- "Moving"
- ],
- "x-ms-enum": {
- "name": "ProvisioningState",
- "modelAsString": true
- }
+ "$ref": "#/definitions/ProvisioningState",
+ "description": "The provisioned state of the resource."
},
"databaseName": {
"type": "string",
@@ -2878,21 +2859,8 @@
"ReadWriteDatabaseProperties": {
"properties": {
"provisioningState": {
- "type": "string",
- "readOnly": true,
- "description": "The provisioned state of the resource.",
- "enum": [
- "Running",
- "Creating",
- "Deleting",
- "Succeeded",
- "Failed",
- "Moving"
- ],
- "x-ms-enum": {
- "name": "ProvisioningState",
- "modelAsString": true
- }
+ "$ref": "#/definitions/ProvisioningState",
+ "description": "The provisioned state of the resource."
},
"softDeletePeriod": {
"type": "string",
@@ -2919,21 +2887,8 @@
"ReadOnlyFollowingDatabaseProperties": {
"properties": {
"provisioningState": {
- "type": "string",
- "readOnly": true,
- "description": "The provisioned state of the resource.",
- "enum": [
- "Running",
- "Creating",
- "Deleting",
- "Succeeded",
- "Failed",
- "Moving"
- ],
- "x-ms-enum": {
- "name": "ProvisioningState",
- "modelAsString": true
- }
+ "$ref": "#/definitions/ProvisioningState",
+ "description": "The provisioned state of the resource."
},
"softDeletePeriod": {
"type": "string",
@@ -3011,21 +2966,8 @@
"description": "The event hub messages compression type"
},
"provisioningState": {
- "type": "string",
- "readOnly": true,
- "description": "The provisioned state of the resource.",
- "enum": [
- "Running",
- "Creating",
- "Deleting",
- "Succeeded",
- "Failed",
- "Moving"
- ],
- "x-ms-enum": {
- "name": "ProvisioningState",
- "modelAsString": true
- }
+ "$ref": "#/definitions/ProvisioningState",
+ "description": "The provisioned state of the resource."
}
},
"required": [
@@ -3068,21 +3010,8 @@
"description": "The name of the share access policy"
},
"provisioningState": {
- "type": "string",
- "readOnly": true,
- "description": "The provisioned state of the resource.",
- "enum": [
- "Running",
- "Creating",
- "Deleting",
- "Succeeded",
- "Failed",
- "Moving"
- ],
- "x-ms-enum": {
- "name": "ProvisioningState",
- "modelAsString": true
- }
+ "$ref": "#/definitions/ProvisioningState",
+ "description": "The provisioned state of the resource."
}
},
"required": [
@@ -3229,21 +3158,8 @@
"description": "The name of blob storage event type to process."
},
"provisioningState": {
- "type": "string",
- "readOnly": true,
- "description": "The provisioned state of the resource.",
- "enum": [
- "Running",
- "Creating",
- "Deleting",
- "Succeeded",
- "Failed",
- "Moving"
- ],
- "x-ms-enum": {
- "name": "ProvisioningState",
- "modelAsString": true
- }
+ "$ref": "#/definitions/ProvisioningState",
+ "description": "The provisioned state of the resource."
}
},
"required": [
@@ -3532,21 +3448,8 @@
"description": "The principal name"
},
"provisioningState": {
- "type": "string",
- "readOnly": true,
- "description": "The provisioned state of the resource.",
- "enum": [
- "Running",
- "Creating",
- "Deleting",
- "Succeeded",
- "Failed",
- "Moving"
- ],
- "x-ms-enum": {
- "name": "ProvisioningState",
- "modelAsString": true
- }
+ "$ref": "#/definitions/ProvisioningState",
+ "description": "The provisioned state of the resource."
}
},
"description": "A class representing database principal property."
@@ -3603,21 +3506,8 @@
"description": "The principal name"
},
"provisioningState": {
- "type": "string",
- "readOnly": true,
- "description": "The provisioned state of the resource.",
- "enum": [
- "Running",
- "Creating",
- "Deleting",
- "Succeeded",
- "Failed",
- "Moving"
- ],
- "x-ms-enum": {
- "name": "ProvisioningState",
- "modelAsString": true
- }
+ "$ref": "#/definitions/ProvisioningState",
+ "description": "The provisioned state of the resource."
}
},
"description": "A class representing cluster principal property."
@@ -3742,7 +3632,7 @@
],
"type": "string",
"x-ms-enum": {
- "name": "Kind",
+ "name": "DataConnectionKind",
"modelAsString": true
}
}
@@ -3919,7 +3809,7 @@
"Microsoft.Kusto/clusters"
],
"x-ms-enum": {
- "name": "Type",
+ "name": "ClusterType",
"modelAsString": false
},
"description": "The type of resource, Microsoft.Kusto/clusters."
@@ -3970,7 +3860,7 @@
"Microsoft.Kusto/clusters/principalAssignments"
],
"x-ms-enum": {
- "name": "Type",
+ "name": "PrincipalAssignmentType",
"modelAsString": false
},
"description": "The type of resource, Microsoft.Kusto/clusters/principalAssignments."
@@ -3995,7 +3885,7 @@
"Microsoft.Kusto/clusters/databases/dataConnections"
],
"x-ms-enum": {
- "name": "Type",
+ "name": "DataConnectionType",
"modelAsString": false
},
"description": "The type of resource, Microsoft.Kusto/clusters/databases/dataConnections."
@@ -4020,7 +3910,7 @@
"Microsoft.Kusto/clusters/databases/principalAssignments"
],
"x-ms-enum": {
- "name": "Type",
+ "name": "DatabasePrincipalAssignmentType",
"modelAsString": false
},
"description": "The type of resource, Microsoft.Kusto/clusters/databases/principalAssignments."
@@ -4271,6 +4161,23 @@
}
},
"description": "The list of language extension objects."
+ },
+ "ProvisioningState": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The provisioned state of the resource.",
+ "enum": [
+ "Running",
+ "Creating",
+ "Deleting",
+ "Succeeded",
+ "Failed",
+ "Moving"
+ ],
+ "x-ms-enum": {
+ "name": "ProvisioningState",
+ "modelAsString": true
+ }
}
},
"parameters": {
diff --git a/specification/batch/resource-manager/readme.python.md b/specification/batch/resource-manager/readme.python.md
index ead11e9bc5c6..66e1624afbd8 100644
--- a/specification/batch/resource-manager/readme.python.md
+++ b/specification/batch/resource-manager/readme.python.md
@@ -4,7 +4,7 @@ These settings apply only when `--python` is specified on the command line.
Please also specify `--python-sdks-folder=`.
Use `--python-mode=update` if you already have a setup.py and just want to update the code itself.
-``` yaml $(python)
+``` yaml $(python) && !$(track2)
python-mode: create
python:
azure-arm: true
@@ -15,13 +15,27 @@ python:
clear-output-folder: true
```
+``` yaml $(python) && $(track2)
+python-mode: create
+azure-arm: true
+license-header: MICROSOFT_MIT_NO_VERSION
+namespace: azure.mgmt.batch
+package-name: azure-mgmt-batch
+package-version: 14.0.0b1
+clear-output-folder: true
+```
+
``` yaml $(python) && $(python-mode) == 'update'
+no-namespace-folders: true
+output-folder: $(python-sdks-folder)/batch/azure-mgmt-batch/azure/mgmt/batch
python:
no-namespace-folders: true
output-folder: $(python-sdks-folder)/batch/azure-mgmt-batch/azure/mgmt/batch
```
``` yaml $(python) && $(python-mode) == 'create'
+basic-setup-py: true
+output-folder: $(python-sdks-folder)/batch/azure-mgmt-batch
python:
basic-setup-py: true
output-folder: $(python-sdks-folder)/batch/azure-mgmt-batch
diff --git a/specification/billing/resource-manager/readme.az.md b/specification/billing/resource-manager/readme.az.md
index 824434fa5ef5..5b72c1e2e0af 100644
--- a/specification/billing/resource-manager/readme.az.md
+++ b/specification/billing/resource-manager/readme.az.md
@@ -44,7 +44,7 @@ cli:
# -------- DO NOT generate those command groups --------
- select: 'operationGroup'
where:
- operationGroup: BillingPeriods|EnrollmentAccounts|Agreements|BillingPermissions|BillingRoleAssignments|BillingRoleDefinitions|Instructions|Address.*$
+ operationGroup: BillingPeriods|EnrollmentAccounts|Address.*$
hidden: true
# rename --billing-profile-name to --profile-name
@@ -52,6 +52,97 @@ cli:
param: billingProfileName
name: profile_name
+# -------- Agreements --------
+ - where:
+ group: Agreements
+ param: agreementName
+ name: name
+ alias:
+ - name
+ - n
+ - where:
+ group: Agreements
+ set:
+ groupExtensionMode: preview
+
+# -------- Permission --------
+ - where:
+ group: BillingPermissions
+ name: permission
+ set:
+ groupExtensionMode: preview
+
+# -------- RoleAssignment --------
+ - where:
+ group: BillingRoleAssignments
+ set:
+ name: role_assignment
+ groupExtensionMode: preview
+ - where:
+ group: BillingRoleAssignments
+ param: billingRoleAssignmentName
+ name: name
+ alias:
+ - name
+ - n
+ # the three get API connot auto group for not
+ - where:
+ group: BillingRoleAssignments
+ op: GetByInvoiceSection
+ hidden: True
+ - where:
+ group: BillingRoleAssignments
+ op: GetByBillingAccount
+ hidden: True
+ - where:
+ group: BillingRoleAssignments
+ op: GetByBillingProfile
+ hidden: True
+
+# -------- RoleDefinition --------
+ - where:
+ group: BillingRoleDefinitions
+ set:
+ name: role_definition
+ groupExtensionMode: preview
+ - where:
+ group: BillingRoleDefinitions
+ param: billingRoleDefinitionName
+ name: name
+ alias:
+ - name
+ - n
+ - where:
+ group: BillingRoleDefinitions
+ op: GetByBillingAccount
+ hidden: True
+ - where:
+ group: BillingRoleDefinitions
+ op: GetByInvoiceSection
+ hidden: True
+ - where:
+ group: BillingRoleDefinitions
+ op: GetByBillingProfile
+ hidden: True
+
+# -------- Instruction --------
+ - where:
+ group: Instructions
+ set:
+ name: instruction
+ groupExtensionMode: preview
+ - where:
+ group: Instructions
+ param: instructionName
+ name: name
+ alias:
+ - name
+ - n
+ - where:
+ group: Instructions
+ op: Put
+ name: create
+
# -------- BillingAccounts --------
# rename --billing-account-name to --account-name globally
- where:
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.2-preview.1/TextAnalytics.json b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/TextAnalytics.json
similarity index 96%
rename from specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.2-preview.1/TextAnalytics.json
rename to specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/TextAnalytics.json
index 4919269e69fa..e04fa781b8db 100644
--- a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.2-preview.1/TextAnalytics.json
+++ b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/TextAnalytics.json
@@ -1,7 +1,7 @@
{
"swagger": "2.0",
"info": {
- "version": "v3.2-preview.1",
+ "version": "v3.1-preview.3",
"contact": {
"name": "Microsoft Cognitive Services",
"url": "https://azure.microsoft.com/en-us/services/cognitive-services/text-analytics/",
@@ -23,7 +23,7 @@
}
],
"x-ms-parameterized-host": {
- "hostTemplate": "{Endpoint}/text/analytics/v3.2-preview.1",
+ "hostTemplate": "{Endpoint}/text/analytics/v3.1-preview.3",
"useSchemePrefix": false,
"parameters": [
{
@@ -99,7 +99,7 @@
"summary": "Get analysis status and results",
"parameters": [
{
- "$ref": "#/parameters/JobId"
+ "$ref": "#/parameters/AnalyzeJobId"
},
{
"$ref": "#/parameters/ShowStats"
@@ -685,23 +685,11 @@
"$ref": "#/definitions/PiiTask"
}
},
- "entityLinkingTasks": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/EntityLinkingTask"
- }
- },
"keyPhraseExtractionTasks": {
"type": "array",
"items": {
"$ref": "#/definitions/KeyPhrasesTask"
}
- },
- "sentimentAnalysisTasks": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/SentimentTask"
- }
}
},
"type": "object"
@@ -1021,27 +1009,6 @@
}
}
},
- "SentimentTask": {
- "properties": {
- "parameters": {
- "properties": {
- "model-version": {
- "default": "latest",
- "type": "string"
- },
- "opinionMining": {
- "default": false,
- "type": "boolean"
- },
- "stringIndexType": {
- "$ref": "#/definitions/StringIndexType"
- }
- },
- "type": "object"
- }
- },
- "type": "object"
- },
"TaskState": {
"properties": {
"lastUpdateDateTime": {
@@ -1078,10 +1045,12 @@
"tasks": {
"properties": {
"details": {
- "items": {
- "$ref": "#/definitions/TaskState"
+ "properties": {
+ "allof": {
+ "$ref": "#/definitions/TaskState"
+ }
},
- "type": "array"
+ "type": "object"
},
"completed": {
"type": "integer"
@@ -1133,25 +1102,6 @@
]
}
},
- "entityLinkingTasks": {
- "type": "array",
- "items": {
- "type": "object",
- "allOf": [
- {
- "$ref": "#/definitions/TaskState"
- },
- {
- "type": "object",
- "properties": {
- "results": {
- "$ref": "#/definitions/EntityLinkingResult"
- }
- }
- }
- ]
- }
- },
"keyPhraseExtractionTasks": {
"type": "array",
"items": {
@@ -1170,25 +1120,6 @@
}
]
}
- },
- "sentimentAnalysisTasks": {
- "type": "array",
- "items": {
- "type": "object",
- "allOf": [
- {
- "$ref": "#/definitions/TaskState"
- },
- {
- "type": "object",
- "properties": {
- "results": {
- "$ref": "#/definitions/SentimentResponse"
- }
- }
- }
- ]
- }
}
},
"required": [
@@ -1732,23 +1663,6 @@
}
}
},
- "EntityLinkingTask": {
- "properties": {
- "parameters": {
- "properties": {
- "model-version": {
- "default": "latest",
- "type": "string"
- },
- "stringIndexType": {
- "$ref": "#/definitions/StringIndexType"
- }
- },
- "type": "object"
- }
- },
- "type": "object"
- },
"HealthcareJobState": {
"allOf": [
{
@@ -1758,6 +1672,12 @@
"properties": {
"results": {
"$ref": "#/definitions/HealthcareResult"
+ },
+ "errors": {
+ "items": {
+ "$ref": "#/definitions/TextAnalyticsError"
+ },
+ "type": "array"
}
},
"type": "object"
@@ -2012,13 +1932,13 @@
},
"status": {
"enum": [
- "notstarted",
+ "notStarted",
"running",
"succeeded",
"failed",
"cancelled",
"cancelling",
- "partiallycompleted"
+ "partiallyCompleted"
],
"type": "string",
"x-ms-enum": {
@@ -2345,6 +2265,14 @@
"type": "string",
"x-ms-parameter-location": "method"
},
+ "AnalyzeJobId": {
+ "description": "Job ID for Analyze",
+ "in": "path",
+ "name": "jobId",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
"ShowStats": {
"name": "showStats",
"in": "query",
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.2-preview.1/examples/SuccessfulAnalyzeRequest.json b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulAnalyzeRequest.json
similarity index 91%
rename from specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.2-preview.1/examples/SuccessfulAnalyzeRequest.json
rename to specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulAnalyzeRequest.json
index bbf8eec44697..87414f0d5cf7 100644
--- a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.2-preview.1/examples/SuccessfulAnalyzeRequest.json
+++ b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulAnalyzeRequest.json
@@ -22,7 +22,6 @@
"tasks": {
"entityRecognitionTasks": [
{
- "enable": true,
"parameters": {
"model-version": "latest"
}
@@ -34,7 +33,7 @@
"responses": {
"202": {
"headers": {
- "Operation-Location": "{endpoint}/text/analytics/v3.2-preview.1/analyze/jobs/{jobId}"
+ "Operation-Location": "{endpoint}/text/analytics/v3.1-preview.3/analyze/jobs/{jobId}"
}
},
"400": {
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.2-preview.1/examples/SuccessfulAnalyzeStatusRequest.json b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulAnalyzeStatusRequest.json
similarity index 100%
rename from specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.2-preview.1/examples/SuccessfulAnalyzeStatusRequest.json
rename to specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulAnalyzeStatusRequest.json
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.2-preview.1/examples/SuccessfulEntitiesRequest.json b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulEntitiesRequest.json
similarity index 100%
rename from specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.2-preview.1/examples/SuccessfulEntitiesRequest.json
rename to specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulEntitiesRequest.json
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.2-preview.1/examples/SuccessfulEntityLinkingRequest.json b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulEntityLinkingRequest.json
similarity index 100%
rename from specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.2-preview.1/examples/SuccessfulEntityLinkingRequest.json
rename to specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulEntityLinkingRequest.json
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.2-preview.1/examples/SuccessfulEntityPIIRequest.json b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulEntityPIIRequest.json
similarity index 100%
rename from specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.2-preview.1/examples/SuccessfulEntityPIIRequest.json
rename to specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulEntityPIIRequest.json
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.2-preview.1/examples/SuccessfulHealthDeleteRequest.json b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulHealthDeleteRequest.json
similarity index 85%
rename from specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.2-preview.1/examples/SuccessfulHealthDeleteRequest.json
rename to specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulHealthDeleteRequest.json
index 383705014761..ef2721ece65d 100644
--- a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.2-preview.1/examples/SuccessfulHealthDeleteRequest.json
+++ b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulHealthDeleteRequest.json
@@ -7,7 +7,7 @@
"responses": {
"202": {
"headers": {
- "Operation-Location": "{endpoint}/text/analytics/v3.2-preview.1/entities/healthcare/jobs/{jobId}"
+ "Operation-Location": "{endpoint}/text/analytics/v3.1-preview.3/entities/healthcare/jobs/{jobId}"
}
},
"404": {
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.2-preview.1/examples/SuccessfulHealthRequest.json b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulHealthRequest.json
similarity index 89%
rename from specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.2-preview.1/examples/SuccessfulHealthRequest.json
rename to specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulHealthRequest.json
index 989b7d60ad85..7fe69d163906 100644
--- a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.2-preview.1/examples/SuccessfulHealthRequest.json
+++ b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulHealthRequest.json
@@ -16,7 +16,7 @@
"responses": {
"202": {
"headers": {
- "Operation-Location": "{endpoint}/text/analytics/v3.2-preview.1/entities/healthcare/jobs/{jobId}"
+ "Operation-Location": "{endpoint}/text/analytics/v3.1-preview.3/entities/healthcare/jobs/{jobId}"
}
},
"400": {
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.2-preview.1/examples/SuccessfulHealthStatusRequest.json b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulHealthStatusRequest.json
similarity index 100%
rename from specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.2-preview.1/examples/SuccessfulHealthStatusRequest.json
rename to specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulHealthStatusRequest.json
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.2-preview.1/examples/SuccessfulKeyPhrasesRequest.json b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulKeyPhrasesRequest.json
similarity index 100%
rename from specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.2-preview.1/examples/SuccessfulKeyPhrasesRequest.json
rename to specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulKeyPhrasesRequest.json
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.2-preview.1/examples/SuccessfulLanguagesRequest.json b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulLanguagesRequest.json
similarity index 100%
rename from specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.2-preview.1/examples/SuccessfulLanguagesRequest.json
rename to specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulLanguagesRequest.json
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.2-preview.1/examples/SuccessfulSentimentRequest.json b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulSentimentRequest.json
similarity index 100%
rename from specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.2-preview.1/examples/SuccessfulSentimentRequest.json
rename to specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulSentimentRequest.json
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/readme.md b/specification/cognitiveservices/data-plane/TextAnalytics/readme.md
index 615abb66e584..10730572dccc 100644
--- a/specification/cognitiveservices/data-plane/TextAnalytics/readme.md
+++ b/specification/cognitiveservices/data-plane/TextAnalytics/readme.md
@@ -92,12 +92,12 @@ These settings apply only when `--tag=release_3_1_preview.2` is specified on the
input-file: preview/v3.1-preview.2/TextAnalytics.json
```
-### Release 3.2-Preview.1
+### Release 3.1-Preview.3
-These settings apply only when `--tag=release_3_2_preview.1` is specified on the command line.
+These settings apply only when `--tag=release_3_1_preview.3` is specified on the command line.
-``` yaml $(tag) == 'release_3_2_preview.1'
-input-file: preview/v3.2-preview.1/TextAnalytics.json
+``` yaml $(tag) == 'release_3_1_preview.3'
+input-file: preview/v3.1-preview.3/TextAnalytics.json
```
## Swagger to SDK
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/readme.python.md b/specification/cognitiveservices/data-plane/TextAnalytics/readme.python.md
index 4a63a1d1c41b..5370c10e8141 100644
--- a/specification/cognitiveservices/data-plane/TextAnalytics/readme.python.md
+++ b/specification/cognitiveservices/data-plane/TextAnalytics/readme.python.md
@@ -19,7 +19,7 @@ no-namespace-folders: true
batch:
- tag: release_3_0
- tag: release_3_1_preview.2
- - tag: release_3_2_preview.1
+ - tag: release_3_1_preview.3
- multiapiscript: true
```
@@ -48,8 +48,8 @@ namespace: azure.ai.textanalytics.v3_1_preview_2
output-folder: $(python-sdks-folder)/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/v3_1_preview_2
```
-### Tag: release_3_2_preview_1
-``` yaml $(tag) == 'release_3_2_preview.1'
-namespace: azure.ai.textanalytics.v3_2_preview_1
-output-folder: $(python-sdks-folder)/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/v3_2_preview_1
+### Tag: release_3_1_preview_3
+``` yaml $(tag) == 'release_3_1_preview.3'
+namespace: azure.ai.textanalytics.v3_1_preview_3
+output-folder: $(python-sdks-folder)/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/v3_1_preview_3
```
\ No newline at end of file
diff --git a/specification/commerce/resource-manager/readme.csharp.md b/specification/commerce/resource-manager/readme.csharp.md
new file mode 100644
index 000000000000..505ce7731015
--- /dev/null
+++ b/specification/commerce/resource-manager/readme.csharp.md
@@ -0,0 +1,35 @@
+# C# Compute
+
+> see https://aka.ms/autorest
+
+This is the AutoRest configuration file for Commerce.
+
+These settings apply only when `--csharp` is specified on the command line.
+Please also specify `--csharp-sdks-folder=`.
+
+## Common C# settings
+
+## C#
+
+These settings apply only when `--csharp` is specified on the command line.
+Please also specify `--csharp-sdks-folder=`.
+
+``` yaml $(csharp)
+csharp:
+ azure-arm: true
+ license-header: MICROSOFT_MIT_NO_VERSION
+ payload-flattening-threshold: 2
+ clear-output-folder: true
+```
+
+### Profile: hybrid_2020_09_01
+
+These settings apply only when `--csharp-profile=hybrid_2020_09_01` is specified on the command line.
+
+``` yaml $(csharp-profile)=='hybrid_2020_09_01'
+namespace: Microsoft.Azure.Management.Profiles.$(csharp-profile).Commerce
+output-folder: $(csharp-sdks-folder)/$(csharp-profile)/Commerce/Management.Commerce/Generated
+
+batch:
+ - tag: profile-hybrid-2020-09-01
+```
\ No newline at end of file
diff --git a/specification/commerce/resource-manager/readme.md b/specification/commerce/resource-manager/readme.md
index c8a7045b2f89..ac7b98eabc54 100644
--- a/specification/commerce/resource-manager/readme.md
+++ b/specification/commerce/resource-manager/readme.md
@@ -39,6 +39,15 @@ input-file:
- Microsoft.Commerce/preview/2015-06-01-preview/commerce.json
```
+### Tag: profile-hybrid-2020-09-01
+
+These settings apply only when `--tag=profile-hybrid-2020-09-01` is specified on the command line.
+
+``` yaml $(tag) == 'profile-hybrid-2020-09-01'
+input-file:
+- Microsoft.Commerce/preview/2015-06-01-preview/commerce.json
+```
+
---
# Code Generation
diff --git a/specification/commerce/resource-manager/readme.typescript.md b/specification/commerce/resource-manager/readme.typescript.md
index 89caa7dad746..2026b493f92f 100644
--- a/specification/commerce/resource-manager/readme.typescript.md
+++ b/specification/commerce/resource-manager/readme.typescript.md
@@ -3,7 +3,7 @@
These settings apply only when `--typescript` is specified on the command line.
Please also specify `--typescript-sdks-folder=`.
-``` yaml $(typescript)
+``` yaml $(typescript) && !$(profile)
typescript:
azure-arm: true
package-name: "@azure/arm-commerce"
@@ -12,3 +12,18 @@ typescript:
payload-flattening-threshold: 2
generate-metadata: true
```
+
+### Profile: profile-hybrid-2020-09-01
+
+These settings apply only when `--profile=profile-hybrid-2020-09-01` is specified on the command line.
+
+``` yaml $(profile)=='profile-hybrid-2020-09-01'
+typescript:
+ package-name: "@azure/arm-commerce-profile-2020-09-01-hybrid"
+ output-folder: "$(typescript-sdks-folder)/sdk/commerce/arm-commerce-profile-2020-09-01-hybrid"
+ clear-output-folder: true
+ azure-arm: true
+ generate-metadata: true
+ batch:
+ - tag: profile-hybrid-2020-09-01
+```
\ No newline at end of file
diff --git a/specification/common-types/resource-management/v1/types.json b/specification/common-types/resource-management/v1/types.json
index 7415ea29529d..765dd32c358d 100644
--- a/specification/common-types/resource-management/v1/types.json
+++ b/specification/common-types/resource-management/v1/types.json
@@ -7,11 +7,13 @@
"paths": {},
"definitions": {
"Resource": {
+ "title": "Resource",
+ "description": "Common fields that are returned in the response for all Azure Resource Manager resources",
"properties": {
"id": {
"readOnly": true,
"type": "string",
- "description": "Fully qualified resource Id for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
+ "description": "Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
},
"name": {
"readOnly": true,
@@ -21,14 +23,15 @@
"type": {
"readOnly": true,
"type": "string",
- "description": "The type of the resource. Ex- Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts."
+ "description": "The type of the resource. E.g. \"Microsoft.Compute/virtualMachines\" or \"Microsoft.Storage/storageAccounts\""
}
},
"x-ms-azure-resource": true
},
"AzureEntityResource": {
"x-ms-client-name": "AzureEntityResource",
- "description": "The resource model definition for a Azure Resource Manager resource with an etag.",
+ "title": "Entity Resource",
+ "description": "The resource model definition for an Azure Resource Manager resource with an etag.",
"properties": {
"etag": {
"type": "string",
@@ -43,7 +46,8 @@
]
},
"TrackedResource": {
- "description": "The resource model definition for a ARM tracked top level resource",
+ "title": "Tracked Resource",
+ "description": "The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location'",
"properties": {
"tags": {
"type": "object",
@@ -76,7 +80,8 @@
]
},
"ProxyResource": {
- "description": "The resource model definition for a ARM proxy resource. It will have everything other than required location and tags",
+ "title": "Proxy Resource",
+ "description": "The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location",
"allOf": [
{
"$ref": "#/definitions/Resource"
@@ -92,7 +97,7 @@
"x-ms-mutability": [
"read"
],
- "description": "Fully qualified resource Id for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
+ "description": "Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
},
"name": {
"readOnly": true,
@@ -105,7 +110,7 @@
"x-ms-mutability": [
"read"
],
- "description": "The type of the resource. Ex- Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts.."
+ "description": "The type of the resource. E.g. \"Microsoft.Compute/virtualMachines\" or \"Microsoft.Storage/storageAccounts\""
},
"location": {
"type": "string",
@@ -270,6 +275,8 @@
]
},
"ErrorResponse": {
+ "title": "Error Response",
+ "description": "Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.)",
"properties": {
"code": {
"readOnly": true,
@@ -302,8 +309,7 @@
},
"description": "The error additional info."
}
- },
- "description": "The resource management error response."
+ }
},
"ErrorAdditionalInfo": {
"properties": {
@@ -320,6 +326,92 @@
},
"description": "The resource management error additional info."
},
+ "Operation": {
+ "title": "REST API Operation",
+ "description": "Details of a REST API operation, returned from the Resource Provider Operations API",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "The name of the operation, as per Resource-Based Access Control (RBAC). Examples: \"Microsoft.Compute/virtualMachines/write\", \"Microsoft.Compute/virtualMachines/capture/action\"",
+ "type": "string",
+ "readOnly": true
+ },
+ "isDataAction": {
+ "description": "Whether the operation applies to data-plane. This is \"true\" for data-plane operations and \"false\" for ARM/control-plane operations.",
+ "type": "boolean",
+ "readOnly": true
+ },
+ "display": {
+ "description": "Localized display information for this particular operation.",
+ "properties": {
+ "provider": {
+ "description": "The localized friendly form of the resource provider name, e.g. \"Microsoft Monitoring Insights\" or \"Microsoft Compute\".",
+ "type": "string",
+ "readOnly": true
+ },
+ "resource": {
+ "description": "The localized friendly name of the resource type related to this operation. E.g. \"Virtual Machines\" or \"Job Schedule Collections\".",
+ "type": "string",
+ "readOnly": true
+ },
+ "operation": {
+ "description": "The concise, localized friendly name for the operation; suitable for dropdowns. E.g. \"Create or Update Virtual Machine\", \"Restart Virtual Machine\".",
+ "type": "string",
+ "readOnly": true
+ },
+ "description": {
+ "description": "The short, localized friendly description of the operation; suitable for tool tips and detailed views.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "origin": {
+ "description": "The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default value is \"user,system\"",
+ "type": "string",
+ "readOnly": true,
+ "enum": [
+ "user",
+ "system",
+ "user,system"
+ ],
+ "x-ms-enum": {
+ "name": "Origin",
+ "modelAsString": true
+ }
+ },
+ "actionType": {
+ "description": "Enum. Indicates the action type. \"Internal\" refers to actions that are for internal only APIs.",
+ "type": "string",
+ "readOnly": true,
+ "enum": [
+ "Internal"
+ ],
+ "x-ms-enum": {
+ "name": "ActionType",
+ "modelAsString": true
+ }
+ }
+ }
+ },
+ "OperationListResult": {
+ "description": "A list of REST API operations supported by an Azure Resource Provider. It contains an URL link to get the next set of results.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Operation"
+ },
+ "description": "List of operations supported by the resource provider",
+ "readOnly": true
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of operation list results (if there are any).",
+ "readOnly": true
+ }
+ }
+ },
"locationData": {
"description": "Metadata pertaining to the geographic location of the resource.",
"type": "object",
@@ -429,7 +521,7 @@
"type": "string"
},
"identity": {
- "description": "The client id of the identity which will be used to access key vault.",
+ "description": "The client ID of the identity which will be used to access key vault.",
"type": "string"
}
}
diff --git a/specification/common-types/resource-management/v2/types.json b/specification/common-types/resource-management/v2/types.json
index 7ef5fc2bb4a0..049687613be5 100644
--- a/specification/common-types/resource-management/v2/types.json
+++ b/specification/common-types/resource-management/v2/types.json
@@ -7,11 +7,12 @@
"paths": {},
"definitions": {
"Resource": {
+ "description": "Common fields that are returned in the response for all Azure Resource Manager resources",
"properties": {
"id": {
"readOnly": true,
"type": "string",
- "description": "Fully qualified resource Id for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
+ "description": "Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
},
"name": {
"readOnly": true,
@@ -21,15 +22,14 @@
"type": {
"readOnly": true,
"type": "string",
- "description": "The type of the resource. Ex- Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts."
+ "description": "The type of the resource. E.g. \"Microsoft.Compute/virtualMachines\" or \"Microsoft.Storage/storageAccounts\""
}
},
- "description": "The resource model definition for a ARM tracked top level resource",
"x-ms-azure-resource": true
},
"AzureEntityResource": {
"x-ms-client-name": "AzureEntityResource",
- "description": "The resource model definition for a Azure Resource Manager resource with an etag.",
+ "description": "The resource model definition for an Azure Resource Manager resource with an etag.",
"properties": {
"etag": {
"type": "string",
@@ -44,7 +44,7 @@
]
},
"TrackedResource": {
- "description": "The resource model definition for a ARM tracked top level resource",
+ "description": "The resource model definition for an Azure Resource Manager tracked top level resource",
"properties": {
"tags": {
"type": "object",
@@ -77,7 +77,7 @@
]
},
"ProxyResource": {
- "description": "The resource model definition for a ARM proxy resource. It will have everything other than required location and tags",
+ "description": "The resource model definition for an Azure Resource Manager proxy resource. It will have everything other than required location and tags",
"allOf": [
{
"$ref": "#/definitions/Resource"
@@ -93,7 +93,7 @@
"x-ms-mutability": [
"read"
],
- "description": "Fully qualified resource Id for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
+ "description": "Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
},
"name": {
"readOnly": true,
@@ -106,7 +106,7 @@
"x-ms-mutability": [
"read"
],
- "description": "The type of the resource. Ex- Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts.."
+ "description": "The type of the resource. E.g. \"Microsoft.Compute/virtualMachines\" or \"Microsoft.Storage/storageAccounts\""
},
"location": {
"type": "string",
@@ -123,7 +123,7 @@
"create",
"update"
],
- "description": "The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another azure resource. If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource."
+ "description": "The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another Azure resource. If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource."
},
"kind": {
"type": "string",
@@ -207,7 +207,7 @@
"capacity": {
"type": "integer",
"format": "int32",
- "description": "If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the resource this may be omitted."
+ "description": "If the SKU supports scale out/in then the capacity integer indicates the current scaling-factor of the resource. If scale out/in is not possible for the resource this may be omitted."
}
},
"required": [
@@ -270,47 +270,51 @@
"product"
]
},
+ "ErrorDetail": {
+ "description": "The error detail.",
+ "properties": {
+ "code": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The error code."
+ },
+ "message": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The error message."
+ },
+ "target": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The error target."
+ },
+ "details": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorDetail"
+ },
+ "description": "The error details."
+ },
+ "additionalInfo": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorAdditionalInfo"
+ },
+ "description": "The error additional info."
+ }
+ }
+ },
"ErrorResponse": {
+ "title": "Error response",
+ "description": "Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.).",
"properties": {
"error": {
- "type": "object",
"description": "The error object.",
- "properties": {
- "code": {
- "readOnly": true,
- "type": "string",
- "description": "The error code."
- },
- "message": {
- "readOnly": true,
- "type": "string",
- "description": "The error message."
- },
- "target": {
- "readOnly": true,
- "type": "string",
- "description": "The error target."
- },
- "details": {
- "readOnly": true,
- "type": "array",
- "items": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "description": "The error details."
- },
- "additionalInfo": {
- "readOnly": true,
- "type": "array",
- "items": {
- "$ref": "#/definitions/ErrorAdditionalInfo"
- },
- "description": "The error additional info."
- }
- }
+ "$ref": "#/definitions/ErrorDetail"
}
- },
- "description": "The resource management error response."
+ }
},
"ErrorAdditionalInfo": {
"properties": {
@@ -327,6 +331,91 @@
},
"description": "The resource management error additional info."
},
+ "Operation": {
+ "description": "Details of a REST API operation, returned from the Resource Provider Operations API",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "The name of the operation, as per Resource-Based Access Control (RBAC). Examples: \"Microsoft.Compute/virtualMachines/write\", \"Microsoft.Compute/virtualMachines/capture/action\"",
+ "type": "string",
+ "readOnly": true
+ },
+ "isDataAction": {
+ "description": "Whether the operation applies to data-plane. This is \"true\" for data-plane operations and \"false\" for ARM/control-plane operations.",
+ "type": "boolean",
+ "readOnly": true
+ },
+ "display": {
+ "description": "Localized display information for this particular operation.",
+ "properties": {
+ "provider": {
+ "description": "The localized friendly form of the resource provider name, e.g. \"Microsoft Monitoring Insights\" or \"Microsoft Compute\".",
+ "type": "string",
+ "readOnly": true
+ },
+ "resource": {
+ "description": "The localized friendly name of the resource type related to this operation. E.g. \"Virtual Machines\" or \"Job Schedule Collections\".",
+ "type": "string",
+ "readOnly": true
+ },
+ "operation": {
+ "description": "The concise, localized friendly name for the operation; suitable for dropdowns. E.g. \"Create or Update Virtual Machine\", \"Restart Virtual Machine\".",
+ "type": "string",
+ "readOnly": true
+ },
+ "description": {
+ "description": "The short, localized friendly description of the operation; suitable for tool tips and detailed views.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "origin": {
+ "description": "The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default value is \"user,system\"",
+ "type": "string",
+ "readOnly": true,
+ "enum": [
+ "user",
+ "system",
+ "user,system"
+ ],
+ "x-ms-enum": {
+ "name": "Origin",
+ "modelAsString": true
+ }
+ },
+ "actionType": {
+ "description": "Enum. Indicates the action type. \"Internal\" refers to actions that are for internal only APIs.",
+ "type": "string",
+ "readOnly": true,
+ "enum": [
+ "Internal"
+ ],
+ "x-ms-enum": {
+ "name": "ActionType",
+ "modelAsString": true
+ }
+ }
+ }
+ },
+ "OperationListResult": {
+ "description": "A list of REST API operations supported by an Azure Resource Provider. It contains an URL link to get the next set of results.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Operation"
+ },
+ "description": "List of operations supported by the resource provider",
+ "readOnly": true
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of operation list results (if there are any).",
+ "readOnly": true
+ }
+ }
+ },
"locationData": {
"description": "Metadata pertaining to the geographic location of the resource.",
"type": "object",
@@ -436,7 +525,7 @@
"type": "string"
},
"identity": {
- "description": "The client id of the identity which will be used to access key vault.",
+ "description": "The client ID of the identity which will be used to access key vault.",
"type": "string"
}
}
diff --git a/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/CommunicationService.json b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/CommunicationService.json
index 6e840a1d9a20..33b5c40e5fef 100644
--- a/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/CommunicationService.json
+++ b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/CommunicationService.json
@@ -62,6 +62,60 @@
}
}
},
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Communication/checkNameAvailability": {
+ "post": {
+ "description": "Checks that the CommunicationService name is valid and is not already in use.",
+ "operationId": "CommunicationService_CheckNameAvailability",
+ "summary": "Check Name Availability",
+ "tags": [
+ "CommunicationService"
+ ],
+ "parameters": [
+ {
+ "name": "nameAvailabilityParameters",
+ "in": "body",
+ "schema": {
+ "$ref": "#/definitions/NameAvailabilityParameters"
+ },
+ "description": "Parameters supplied to the operation."
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The response describes the name availability.",
+ "schema": {
+ "$ref": "#/definitions/NameAvailability"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "Check name availability available": {
+ "$ref": "./examples/checkNameAvailabilityAvailable.json"
+ },
+ "Check name availability unavailable": {
+ "$ref": "./examples/checkNameAvailabilityUnavailable.json"
+ }
+ }
+ }
+ },
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Communication/communicationServices/{communicationServiceName}/linkNotificationHub": {
"post": {
"description": "Links an Azure Notification Hub to this communication service.",
@@ -763,6 +817,42 @@
}
}
},
+ "NameAvailabilityParameters": {
+ "description": "Data POST-ed to the nameAvailability action",
+ "required": [
+ "type",
+ "name"
+ ],
+ "type": "object",
+ "properties": {
+ "type": {
+ "description": "The resource type. Should be always \"Microsoft.Communication/CommunicationServices\".",
+ "type": "string"
+ },
+ "name": {
+ "description": "The CommunicationService name to validate. e.g.\"my-CommunicationService-name-here\"",
+ "type": "string"
+ }
+ }
+ },
+ "NameAvailability": {
+ "description": "Result of the request to check name availability. It contains a flag and possible reason of failure.",
+ "type": "object",
+ "properties": {
+ "nameAvailable": {
+ "description": "Indicates whether the name is available or not.",
+ "type": "boolean"
+ },
+ "reason": {
+ "description": "The reason of the availability. Required if name is not available.",
+ "type": "string"
+ },
+ "message": {
+ "description": "The message of the operation.",
+ "type": "string"
+ }
+ }
+ },
"LinkNotificationHubParameters": {
"description": "Description of an Azure Notification Hub to link to the communication service",
"required": [
@@ -796,7 +886,7 @@
"type": "object",
"properties": {
"id": {
- "description": "The operation Id.",
+ "description": "Fully qualified ID for the operation status.",
"type": "string",
"readOnly": true
},
diff --git a/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/checkNameAvailabilityAvailable.json b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/checkNameAvailabilityAvailable.json
new file mode 100644
index 000000000000..ed8a879a190e
--- /dev/null
+++ b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/checkNameAvailabilityAvailable.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "subscriptionId": "12345",
+ "api-version": "2020-08-20-preview",
+ "nameAvailabilityParameters": {
+ "type": "Microsoft.Communication/CommunicationServices",
+ "name": "MyCommunicationService"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "nameAvailable": true,
+ "reason": "NameAvailable",
+ "message": "Requested name is available for the requested type"
+ }
+ }
+ }
+}
diff --git a/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/checkNameAvailabilityUnavailable.json b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/checkNameAvailabilityUnavailable.json
new file mode 100644
index 000000000000..a2e050f47ccc
--- /dev/null
+++ b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/checkNameAvailabilityUnavailable.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "subscriptionId": "12345",
+ "api-version": "2020-08-20-preview",
+ "nameAvailabilityParameters": {
+ "type": "Microsoft.Communication/CommunicationServices",
+ "name": "MyCommunicationService"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "nameAvailable": false,
+ "reason": "AlreadyExists",
+ "message": "Requested name is unavailable for the requested type"
+ }
+ }
+ }
+}
diff --git a/specification/communication/resource-manager/readme.az.md b/specification/communication/resource-manager/readme.az.md
new file mode 100644
index 000000000000..100de551bd7f
--- /dev/null
+++ b/specification/communication/resource-manager/readme.az.md
@@ -0,0 +1,42 @@
+## AZ
+
+These settings apply only when `--az` is specified on the command line.
+
+``` yaml $(az) && $(target-mode) != 'core'
+az:
+ extensions: communication
+ namespace: azure.mgmt.communication
+ package-name: azure-mgmt-communication
+az-output-folder: $(azure-cli-extension-folder)/src/communication
+python-sdk-output-folder: "$(az-output-folder)/azext_communication/vendored_sdks/communication"
+# add additinal configuration here specific for Azure CLI
+# refer to the faq.md for more details
+```
+
+# Az.Communication
+
+``` yaml
+extension-mode: preview
+
+cli:
+ cli-directive:
+
+# -------- CommunicationService --------
+ - where:
+ group: CommunicationService
+ set:
+ name: service
+ - where:
+ group: CommunicationService
+ param: CommunicationServiceName
+ name: name
+ alias:
+ - name
+ - n
+
+# -------- OperationStatuses --------
+ - where:
+ group: OperationStatuses
+ set:
+ name: status
+```
diff --git a/specification/communication/resource-manager/readme.cli.md b/specification/communication/resource-manager/readme.cli.md
new file mode 100644
index 000000000000..73709bacea41
--- /dev/null
+++ b/specification/communication/resource-manager/readme.cli.md
@@ -0,0 +1,9 @@
+
+# Az.Communication
+This directory contains the Cli common model for the Spool Communication service.
+
+> Metadata
+``` yaml
+# Migrated from Powershell's readme
+
+```
diff --git a/specification/communication/resource-manager/readme.java.md b/specification/communication/resource-manager/readme.java.md
new file mode 100644
index 000000000000..9c6341c30e98
--- /dev/null
+++ b/specification/communication/resource-manager/readme.java.md
@@ -0,0 +1,33 @@
+## Java
+
+These settings apply only when `--java` is specified on the command line.
+Please also specify `--azure-libraries-for-java-folder=`.
+
+``` yaml $(java)
+azure-arm: true
+fluent: true
+namespace: com.microsoft.azure.management.communication
+license-header: MICROSOFT_MIT_NO_CODEGEN
+payload-flattening-threshold: 1
+output-folder: $(azure-libraries-for-java-folder)/azure-mgmt-communication
+```
+
+### Java multi-api
+
+``` yaml $(java) && $(multiapi)
+batch:
+ - tag: package-2020-08-20-preview
+```
+
+### Tag: package-2020-08-20-preview and java
+
+These settings apply only when `--tag=package-2020-08-20-preview --java` is specified on the command line.
+Please also specify `--azure-libraries-for-java=`.
+
+``` yaml $(tag) == 'package-2020-08-20-preview' && $(java) && $(multiapi)
+java:
+ namespace: com.microsoft.azure.management.communication.v2020_08_20_preview
+ output-folder: $(azure-libraries-for-java-folder)/sdk/communication/mgmt-v2020_08_20_preview
+regenerate-manager: true
+generate-interface: true
+```
\ No newline at end of file
diff --git a/specification/communication/resource-manager/readme.md b/specification/communication/resource-manager/readme.md
index f5b5483ca415..7a2e2d116712 100644
--- a/specification/communication/resource-manager/readme.md
+++ b/specification/communication/resource-manager/readme.md
@@ -54,6 +54,8 @@ swagger-to-sdk:
- repo: azure-sdk-for-python-track2
- repo: azure-sdk-for-go
- repo: azure-sdk-for-js
+ - repo: azure-sdk-for-java
+ - repo: azure-cli-extensions
```
## CSharp
diff --git a/specification/communication/resource-manager/readme.python.md b/specification/communication/resource-manager/readme.python.md
index 18112d3b5145..74a33158e6ad 100644
--- a/specification/communication/resource-manager/readme.python.md
+++ b/specification/communication/resource-manager/readme.python.md
@@ -17,6 +17,19 @@ python:
clear-output-folder: true
```
+``` yaml $(python) && $(python-mode) == 'update' && !$(track2)
+python:
+ no-namespace-folders: true
+ output-folder: $(python-sdks-folder)/communication/azure-mgmt-communication/azure/mgmt/communication
+```
+
+``` yaml $(python) && $(python-mode) == 'create' && !$(track2)
+python:
+ basic-setup-py: true
+ output-folder: $(python-sdks-folder)/communication/azure/mgmt/communication
+```
+
+
These settings apply only when `--track2` is specified on the command line.
``` yaml $(track2)
@@ -27,18 +40,12 @@ no-namespace-folders: true
package-version: 1.0.0rc1
```
-```yaml $(python) && $(python-mode) == 'update'
-python:
- no-namespace-folders: true
- output-folder: $(python-sdks-folder)/communication/azure-mgmt-communication/azure/mgmt/communication
+```yaml $(python) && $(python-mode) == 'update' && $(track2)
no-namespace-folders: true
output-folder: $(python-sdks-folder)/communication/azure-mgmt-communication/azure/mgmt/communication
```
-```yaml $(python) && $(python-mode) == 'create'
-python:
- basic-setup-py: true
- output-folder: $(python-sdks-folder)/communication/azure-mgmt-communication
+```yaml $(python) && $(python-mode) == 'create' && $(track2)
basic-setup-py: true
-output-folder: $(python-sdks-folder)/communication/azure-mgmt-communication
+output-folder: $(python-sdks-folder)/communication/azure/mgmt/communication
```
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2019-07-01/compute.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2019-07-01/compute.json
index f3792d7075c4..a62367787669 100644
--- a/specification/compute/resource-manager/Microsoft.Compute/stable/2019-07-01/compute.json
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2019-07-01/compute.json
@@ -2597,7 +2597,7 @@
"VirtualMachines"
],
"operationId": "VirtualMachines_ConvertToManagedDisks",
- "description": "Converts virtual machine disks from blob-based to managed disks. Virtual machine must be stop-deallocated before invoking this operation.",
+ "description": "Converts virtual machine disks from blob-based to managed disks. Virtual machine must be stop-deallocated before invoking this operation. For Windows, please refer to [Convert a virtual machine from unmanaged disks to managed disks.](https://docs.microsoft.com/en-us/azure/virtual-machines/windows/convert-unmanaged-to-managed-disks). For Linux, please refer to [Convert a virtual machine from unmanaged disks to managed disks.](https://docs.microsoft.com/en-us/azure/virtual-machines/linux/convert-unmanaged-to-managed-disks).",
"parameters": [
{
"name": "resourceGroupName",
@@ -2628,6 +2628,11 @@
"description": "Accepted"
}
},
+ "x-ms-examples": {
+ "Generalize a Virtual Machine.": {
+ "$ref": "./examples/ConvertToManagedDisks.json"
+ }
+ },
"x-ms-long-running-operation": true
}
},
@@ -3108,7 +3113,7 @@
"VirtualMachines"
],
"operationId": "VirtualMachines_PerformMaintenance",
- "description": "The operation to perform maintenance on a virtual machine.",
+ "description": "Shuts down the virtual machine, moves it to an already updated node, and powers it back on during the self-service phase of planned maintenance.",
"parameters": [
{
"name": "resourceGroupName",
@@ -5555,7 +5560,7 @@
"VirtualMachineScaleSetVMs"
],
"operationId": "VirtualMachineScaleSetVMs_PerformMaintenance",
- "description": "Performs maintenance on a virtual machine in a VM scale set.",
+ "description": "Shuts down the virtual machine in a VMScaleSet, moves it to an already updated node, and powers it back on during the self-service phase of planned maintenance.",
"parameters": [
{
"name": "resourceGroupName",
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2019-07-01/examples/ConvertToManagedDisks.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2019-07-01/examples/ConvertToManagedDisks.json
new file mode 100644
index 000000000000..1fbfea58c94c
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2019-07-01/examples/ConvertToManagedDisks.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2019-07-01",
+ "vmName": "myVMName"
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2019-12-01/compute.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2019-12-01/compute.json
index 86380f4c18dc..dab0c1d0b7a3 100644
--- a/specification/compute/resource-manager/Microsoft.Compute/stable/2019-12-01/compute.json
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2019-12-01/compute.json
@@ -2894,7 +2894,7 @@
"VirtualMachines"
],
"operationId": "VirtualMachines_ConvertToManagedDisks",
- "description": "Converts virtual machine disks from blob-based to managed disks. Virtual machine must be stop-deallocated before invoking this operation.",
+ "description": "Converts virtual machine disks from blob-based to managed disks. Virtual machine must be stop-deallocated before invoking this operation. For Windows, please refer to [Convert a virtual machine from unmanaged disks to managed disks.](https://docs.microsoft.com/en-us/azure/virtual-machines/windows/convert-unmanaged-to-managed-disks). For Linux, please refer to [Convert a virtual machine from unmanaged disks to managed disks.](https://docs.microsoft.com/en-us/azure/virtual-machines/linux/convert-unmanaged-to-managed-disks).",
"parameters": [
{
"name": "resourceGroupName",
@@ -2925,6 +2925,11 @@
"description": "Accepted"
}
},
+ "x-ms-examples": {
+ "Generalize a Virtual Machine.": {
+ "$ref": "./examples/ConvertToManagedDisks.json"
+ }
+ },
"x-ms-long-running-operation": true
}
},
@@ -3405,7 +3410,7 @@
"VirtualMachines"
],
"operationId": "VirtualMachines_PerformMaintenance",
- "description": "The operation to perform maintenance on a virtual machine.",
+ "description": "Shuts down the virtual machine, moves it to an already updated node, and powers it back on during the self-service phase of planned maintenance.",
"parameters": [
{
"name": "resourceGroupName",
@@ -5946,7 +5951,7 @@
"VirtualMachineScaleSetVMs"
],
"operationId": "VirtualMachineScaleSetVMs_PerformMaintenance",
- "description": "Performs maintenance on a virtual machine in a VM scale set.",
+ "description": "Shuts down the virtual machine in a VMScaleSet, moves it to an already updated node, and powers it back on during the self-service phase of planned maintenance.",
"parameters": [
{
"name": "resourceGroupName",
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2019-12-01/examples/ConvertToManagedDisks.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2019-12-01/examples/ConvertToManagedDisks.json
new file mode 100644
index 000000000000..39ec366b8d4d
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2019-12-01/examples/ConvertToManagedDisks.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2019-12-01",
+ "vmName": "myVMName"
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-01/compute.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-01/compute.json
index 6143bc1b9d43..77bcda8f1e9d 100644
--- a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-01/compute.json
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-01/compute.json
@@ -5181,7 +5181,7 @@
"in": "body",
"required": true,
"schema": {
- "$ref": "#/definitions/VirtualMachineExtension"
+ "$ref": "#/definitions/VirtualMachineScaleSetVMExtension"
},
"description": "Parameters supplied to the Create Virtual Machine Extension operation."
},
@@ -5196,13 +5196,13 @@
"200": {
"description": "OK",
"schema": {
- "$ref": "#/definitions/VirtualMachineExtension"
+ "$ref": "#/definitions/VirtualMachineScaleSetVMExtension"
}
},
"201": {
"description": "Created",
"schema": {
- "$ref": "#/definitions/VirtualMachineExtension"
+ "$ref": "#/definitions/VirtualMachineScaleSetVMExtension"
}
},
"default": {
@@ -5259,7 +5259,7 @@
"in": "body",
"required": true,
"schema": {
- "$ref": "#/definitions/VirtualMachineExtensionUpdate"
+ "$ref": "#/definitions/VirtualMachineScaleSetVMExtensionUpdate"
},
"description": "Parameters supplied to the Update Virtual Machine Extension operation."
},
@@ -5274,7 +5274,7 @@
"200": {
"description": "OK",
"schema": {
- "$ref": "#/definitions/VirtualMachineExtension"
+ "$ref": "#/definitions/VirtualMachineScaleSetVMExtension"
}
},
"default": {
@@ -5410,7 +5410,7 @@
"200": {
"description": "OK",
"schema": {
- "$ref": "#/definitions/VirtualMachineExtension"
+ "$ref": "#/definitions/VirtualMachineScaleSetVMExtension"
}
},
"default": {
@@ -5474,7 +5474,7 @@
"200": {
"description": "OK",
"schema": {
- "$ref": "#/definitions/VirtualMachineExtensionsListResult"
+ "$ref": "#/definitions/VirtualMachineScaleSetVMExtensionsListResult"
}
},
"default": {
@@ -7340,6 +7340,30 @@
],
"description": "Describes a Virtual Machine Extension."
},
+ "VirtualMachineScaleSetVMExtension": {
+ "properties": {
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The name of the extension."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource type"
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/VirtualMachineExtensionProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/SubResourceReadOnly"
+ }
+ ],
+ "description": "Describes a VMSS VM Extension."
+ },
"VirtualMachineExtensionUpdate": {
"properties": {
"properties": {
@@ -7354,6 +7378,30 @@
],
"description": "Describes a Virtual Machine Extension."
},
+ "VirtualMachineScaleSetVMExtensionUpdate": {
+ "properties": {
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The name of the extension."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource type"
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/VirtualMachineExtensionUpdateProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/SubResourceReadOnly"
+ }
+ ],
+ "description": "Describes a VMSS VM Extension."
+ },
"VirtualMachineExtensionsListResult": {
"properties": {
"value": {
@@ -7366,6 +7414,18 @@
},
"description": "The List Extension operation response"
},
+ "VirtualMachineScaleSetVMExtensionsListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualMachineScaleSetVMExtension"
+ },
+ "description": "The list of VMSS VM extensions"
+ }
+ },
+ "description": "The List VMSS VM Extension operation response"
+ },
"VirtualMachineSoftwarePatchProperties": {
"properties": {
"patchId": {
@@ -8980,7 +9040,7 @@
},
"licenseType": {
"type": "string",
- "description": "Specifies that the image or disk that is being used was licensed on-premises. This element is only used for images that contain the Windows Server operating system. Possible values are: Windows_Client Windows_Server If this element is included in a request for an update, the value must match the initial value. This value cannot be updated. For more information, see [Azure Hybrid Use Benefit for Windows Server](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-hybrid-use-benefit-licensing?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json) Minimum api-version: 2015-06-15"
+ "description": "Specifies that the image or disk that is being used was licensed on-premises. Possible values for Windows Server operating system are: Windows_Client Windows_Server Possible values for Linux Server operating system are: RHEL_BYOS (for RHEL) SLES_BYOS (for SUSE) For more information, see [Azure Hybrid Use Benefit for Windows Server](https://docs.microsoft.com/azure/virtual-machines/windows/hybrid-use-benefit-licensing) [Azure Hybrid Use Benefit for Linux Server](https://docs.microsoft.com/azure/virtual-machines/linux/azure-hybrid-benefit-linux) Minimum api-version: 2015-06-15"
},
"vmId": {
"readOnly": true,
@@ -10265,7 +10325,7 @@
},
"licenseType": {
"type": "string",
- "description": "Specifies that the image or disk that is being used was licensed on-premises. This element is only used for images that contain the Windows Server operating system. Possible values are: Windows_Client Windows_Server If this element is included in a request for an update, the value must match the initial value. This value cannot be updated. For more information, see [Azure Hybrid Use Benefit for Windows Server](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-hybrid-use-benefit-licensing?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json) Minimum api-version: 2015-06-15"
+ "description": "Specifies that the image or disk that is being used was licensed on-premises. Possible values for Windows Server operating system are: Windows_Client Windows_Server Possible values for Linux Server operating system are: RHEL_BYOS (for RHEL) SLES_BYOS (for SUSE) For more information, see [Azure Hybrid Use Benefit for Windows Server](https://docs.microsoft.com/azure/virtual-machines/windows/hybrid-use-benefit-licensing) [Azure Hybrid Use Benefit for Linux Server](https://docs.microsoft.com/azure/virtual-machines/linux/azure-hybrid-benefit-linux) Minimum api-version: 2015-06-15"
},
"priority": {
"$ref": "#/definitions/priority",
@@ -10964,7 +11024,7 @@
},
"licenseType": {
"type": "string",
- "description": "Specifies that the image or disk that is being used was licensed on-premises. This element is only used for images that contain the Windows Server operating system. Possible values are: Windows_Client Windows_Server If this element is included in a request for an update, the value must match the initial value. This value cannot be updated. For more information, see [Azure Hybrid Use Benefit for Windows Server](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-hybrid-use-benefit-licensing?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json) Minimum api-version: 2015-06-15"
+ "description": "Specifies that the image or disk that is being used was licensed on-premises. Possible values for Windows Server operating system are: Windows_Client Windows_Server Possible values for Linux Server operating system are: RHEL_BYOS (for RHEL) SLES_BYOS (for SUSE) For more information, see [Azure Hybrid Use Benefit for Windows Server](https://docs.microsoft.com/azure/virtual-machines/windows/hybrid-use-benefit-licensing) [Azure Hybrid Use Benefit for Linux Server](https://docs.microsoft.com/azure/virtual-machines/linux/azure-hybrid-benefit-linux) Minimum api-version: 2015-06-15"
},
"modelDefinitionApplied": {
"readOnly": true,
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-01/examples/CreateOrUpdateVirtualMachineScaleSetVMExtensions.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-01/examples/CreateOrUpdateVirtualMachineScaleSetVMExtensions.json
index 5e3dbf00975a..40185d51f90e 100644
--- a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-01/examples/CreateOrUpdateVirtualMachineScaleSetVMExtensions.json
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-01/examples/CreateOrUpdateVirtualMachineScaleSetVMExtensions.json
@@ -7,7 +7,6 @@
"vmExtensionName": "myVMExtension",
"api-version": "2020-06-01",
"extensionParameters": {
- "location": "westus",
"properties": {
"autoUpgradeMinorVersion": true,
"publisher": "extPublisher",
@@ -23,7 +22,6 @@
"201": {
"body": {
"name": "myVMExtension",
- "location": "westus",
"type": "Microsoft.Compute/virtualMachineScaleSets/virtualMachines/extensions",
"id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myvmScaleSet/virtualMachines/0/extensions/myVMExtension",
"properties": {
@@ -41,7 +39,6 @@
"200": {
"body": {
"name": "myVMExtension",
- "location": "westus",
"type": "Microsoft.Compute/virtualMachineScaleSets/virtualMachines/extensions",
"id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myvmScaleSet/virtualMachines/0/extensions/myVMExtension",
"properties": {
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-01/examples/GetVirtualMachineScaleSetVMExtensions.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-01/examples/GetVirtualMachineScaleSetVMExtensions.json
index 2c27ae1e263c..fbba0cdbf56c 100644
--- a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-01/examples/GetVirtualMachineScaleSetVMExtensions.json
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-01/examples/GetVirtualMachineScaleSetVMExtensions.json
@@ -21,7 +21,6 @@
}
},
"name": "myVMExtension",
- "location": "westus",
"type": "Microsoft.Compute/virtualMachineScaleSets/virtualMachines/extensions",
"id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myvmScaleSet/virtualMachines/0/extensions/myVMExtension"
}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-01/examples/ListVirtualMachineScaleSetVMExtensions.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-01/examples/ListVirtualMachineScaleSetVMExtensions.json
index f2120acb750a..f670b23fd41d 100644
--- a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-01/examples/ListVirtualMachineScaleSetVMExtensions.json
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-01/examples/ListVirtualMachineScaleSetVMExtensions.json
@@ -22,7 +22,6 @@
}
},
"name": "myVMExtension",
- "location": "westus",
"type": "Microsoft.Compute/virtualMachineScaleSets/virtualMachines/extensions",
"id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myvmScaleSet/virtualMachines/0/extensions/myVMExtension"
},
@@ -38,7 +37,6 @@
}
},
"name": "myVMExtension1",
- "location": "westus",
"type": "Microsoft.Compute/virtualMachineScaleSets/virtualMachines/extensions",
"id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myvmScaleSet/virtualMachines/0/extensions/myVMExtension1"
}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-01/examples/UpdateVirtualMachineScaleSetVMExtensions.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-01/examples/UpdateVirtualMachineScaleSetVMExtensions.json
index 659ea562168a..c1a159448f23 100644
--- a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-01/examples/UpdateVirtualMachineScaleSetVMExtensions.json
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-01/examples/UpdateVirtualMachineScaleSetVMExtensions.json
@@ -22,7 +22,6 @@
"200": {
"body": {
"name": "myVMExtension",
- "location": "westus",
"type": "Microsoft.Compute/virtualMachineScaleSets/virtualMachines/extensions",
"id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myvmScaleSet/virtualMachines/0/extensions/myVMExtension",
"properties": {
diff --git a/specification/compute/resource-manager/readme.csharp.md b/specification/compute/resource-manager/readme.csharp.md
index 3e85a94bd63f..8cb171aff28e 100644
--- a/specification/compute/resource-manager/readme.csharp.md
+++ b/specification/compute/resource-manager/readme.csharp.md
@@ -94,3 +94,15 @@ output-folder: $(csharp-sdks-folder)/$(csharp-profile)/Compute/Management.Comput
batch:
- tag: profile-hybrid-2019-03-01
```
+
+### Profile: hybrid_2020_09_01
+
+These settings apply only when `--csharp-profile=hybrid_2020_09_01` is specified on the command line.
+
+``` yaml $(csharp-profile)=='hybrid_2020_09_01'
+namespace: Microsoft.Azure.Management.Profiles.$(csharp-profile).Compute
+output-folder: $(csharp-sdks-folder)/$(csharp-profile)/Compute/Management.Compute/Generated
+
+batch:
+ - tag: profile-hybrid-2020-09-01
+ ```
\ No newline at end of file
diff --git a/specification/compute/resource-manager/readme.java.md b/specification/compute/resource-manager/readme.java.md
new file mode 100644
index 000000000000..4b16da654574
--- /dev/null
+++ b/specification/compute/resource-manager/readme.java.md
@@ -0,0 +1,114 @@
+## Java
+
+These settings apply only when `--java` is specified on the command line.
+Please also specify `--azure-libraries-for-java-folder=`.
+
+``` yaml $(java)
+azure-arm: true
+fluent: true
+namespace: com.microsoft.azure.management.compute
+license-header: MICROSOFT_MIT_NO_CODEGEN
+payload-flattening-threshold: 1
+output-folder: $(azure-libraries-for-java-folder)/azure-mgmt-compute
+```
+
+### Java multi-api
+
+```yaml $(java) && $(multiapi)
+batch:
+ - tag: package-2020-06-01
+ - tag: package-2019-07
+ - tag: package-disks-2018-04
+ - tag: package-compute-only-2017-12
+ - tag: package-skus-2017-09
+ - tag: package-compute-2017-03
+```
+
+### Tag: package-2020-06-01 and java
+
+These settings apply only when `--tag=package-2020-06-01 --java` is specified on the command line.
+Please also specify `--azure-libraries-for-java-folder=`.
+
+``` yaml $(tag) == 'package-2020-06-01' && $(java) && $(multiapi)
+java:
+ namespace: com.microsoft.azure.management.compute.v2020_06_01
+ output-folder: $(azure-libraries-for-java-folder)/sdk/compute/mgmt-v2020_06_01
+regenerate-manager: true
+generate-interface: true
+```
+
+### Tag: package-2019-07 and java
+
+These settings apply only when `--tag=package-2019-07 --java` is specified on the command line.
+Please also specify `--azure-libraries-for-java-folder=`.
+
+``` yaml $(tag) == 'package-2019-07' && $(java) && $(multiapi)
+java:
+ namespace: com.microsoft.azure.management.compute.v2019_07_01
+ output-folder: $(azure-libraries-for-java-folder)/sdk/compute/mgmt-v2019_07_01
+regenerate-manager: true
+generate-interface: true
+```
+
+### Tag: package-disks-2018-04 and java
+
+These settings apply only when `--tag=package-disks-2018-04 --java` is specified on the command line.
+Please also specify `--azure-libraries-for-java-folder=`.
+
+``` yaml $(tag) == 'package-disks-2018-04' && $(java) && $(multiapi)
+java:
+ namespace: com.microsoft.azure.management.compute.v2018_04_01
+ output-folder: $(azure-libraries-for-java-folder)/sdk/compute/mgmt-v2018_04_01
+regenerate-manager: true
+generate-interface: true
+```
+
+### Tag: package-compute-only-2017-12 and java
+
+These settings apply only when `--tag=package-compute-only-2017-12 --java` is specified on the command line.
+Please also specify `--azure-libraries-for-java-folder=`.
+
+``` yaml $(tag) == 'package-compute-only-2017-12' && $(java) && $(multiapi)
+java:
+ namespace: com.microsoft.azure.management.compute.v2017_12_01
+ output-folder: $(azure-libraries-for-java-folder)/sdk/compute/mgmt-v2017_12_01
+regenerate-manager: true
+generate-interface: true
+```
+
+### Tag: package-skus-2017-09 and java
+
+These settings apply only when `--tag=package-skus-2017-09 --java` is specified on the command line.
+Please also specify `--azure-libraries-for-java-folder=`.
+
+``` yaml $(tag) == 'package-skus-2017-09' && $(java) && $(multiapi)
+java:
+ namespace: com.microsoft.azure.management.compute.v2017_09_01
+ output-folder: $(azure-libraries-for-java-folder)/sdk/compute/mgmt-v2017_09_01
+regenerate-manager: true
+generate-interface: true
+```
+
+### Tag: package-compute-2017-03 and java
+
+These settings apply only when `--tag=package-compute-2017-03 --java` is specified on the command line.
+Please also specify `--azure-libraries-for-java-folder=`.
+
+``` yaml $(tag) == 'package-compute-2017-03' && $(java) && $(multiapi)
+java:
+ namespace: com.microsoft.azure.management.compute.v2017_03_30
+ output-folder: $(azure-libraries-for-java-folder)/sdk/compute/mgmt-v2017_03_30
+regenerate-manager: true
+generate-interface: true
+```
+
+### Tag: profile-hybrid-2019-03-01
+
+These settings apply only when `--tag=profile-hybrid-2019-03-01` is specified on the command line.
+Creating this tag to pick proper resources from the hybrid profile.
+
+``` yaml $(tag) == 'profile-hybrid-2019-03-01'
+input-file:
+- Microsoft.Compute/stable/2017-12-01/compute.json
+- Microsoft.Compute/stable/2017-03-30/disk.json
+```
\ No newline at end of file
diff --git a/specification/compute/resource-manager/readme.md b/specification/compute/resource-manager/readme.md
index 77a4f29a7025..8d001c98db39 100644
--- a/specification/compute/resource-manager/readme.md
+++ b/specification/compute/resource-manager/readme.md
@@ -770,106 +770,19 @@ See configuration in [readme.go.md](./readme.go.md)
## Java
-These settings apply only when `--java` is specified on the command line.
-Please also specify `--azure-libraries-for-java-folder=`.
+See configuration in [readme.java.md](./readme.java.md)
-``` yaml $(java)
-azure-arm: true
-fluent: true
-namespace: com.microsoft.azure.management.compute
-license-header: MICROSOFT_MIT_NO_CODEGEN
-payload-flattening-threshold: 1
-output-folder: $(azure-libraries-for-java-folder)/azure-mgmt-compute
-```
-
-### Java multi-api
-
-```yaml $(java) && $(multiapi)
-batch:
- - tag: package-2020-06-01
- - tag: package-disks-2018-04
- - tag: package-compute-only-2017-12
- - tag: package-skus-2017-09
- - tag: package-compute-2017-03
-```
-
-### Tag: package-2020-06-01 and java
-
-These settings apply only when `--tag=package-2020-06-01 --java` is specified on the command line.
-Please also specify `--azure-libraries-for-java-folder=`.
-
-``` yaml $(tag) == 'package-2020-06-01' && $(java) && $(multiapi)
-java:
- namespace: com.microsoft.azure.management.compute.v2020_06_01
- output-folder: $(azure-libraries-for-java-folder)/sdk/compute/mgmt-v2020_06_01
-regenerate-manager: true
-generate-interface: true
-```
-
-### Tag: package-disks-2018-04 and java
-
-These settings apply only when `--tag=package-disks-2018-04 --java` is specified on the command line.
-Please also specify `--azure-libraries-for-java-folder=`.
-
-``` yaml $(tag) == 'package-disks-2018-04' && $(java) && $(multiapi)
-java:
- namespace: com.microsoft.azure.management.compute.v2018_04_01
- output-folder: $(azure-libraries-for-java-folder)/sdk/compute/mgmt-v2018_04_01
-regenerate-manager: true
-generate-interface: true
-```
-
-### Tag: package-compute-only-2017-12 and java
-
-These settings apply only when `--tag=package-compute-only-2017-12 --java` is specified on the command line.
-Please also specify `--azure-libraries-for-java-folder=`.
-
-``` yaml $(tag) == 'package-compute-only-2017-12' && $(java) && $(multiapi)
-java:
- namespace: com.microsoft.azure.management.compute.v2017_12_01
- output-folder: $(azure-libraries-for-java-folder)/sdk/compute/mgmt-v2017_12_01
-regenerate-manager: true
-generate-interface: true
-```
-
-### Tag: package-skus-2017-09 and java
-
-These settings apply only when `--tag=package-skus-2017-09 --java` is specified on the command line.
-Please also specify `--azure-libraries-for-java-folder=`.
-
-``` yaml $(tag) == 'package-skus-2017-09' && $(java) && $(multiapi)
-java:
- namespace: com.microsoft.azure.management.compute.v2017_09_01
- output-folder: $(azure-libraries-for-java-folder)/sdk/compute/mgmt-v2017_09_01
-regenerate-manager: true
-generate-interface: true
-```
-
-### Tag: package-compute-2017-03 and java
+### Tag: profile-hybrid-2020-09-01
-These settings apply only when `--tag=package-compute-2017-03 --java` is specified on the command line.
-Please also specify `--azure-libraries-for-java-folder=`.
-
-``` yaml $(tag) == 'package-compute-2017-03' && $(java) && $(multiapi)
-java:
- namespace: com.microsoft.azure.management.compute.v2017_03_30
- output-folder: $(azure-libraries-for-java-folder)/sdk/compute/mgmt-v2017_03_30
-regenerate-manager: true
-generate-interface: true
-```
-
-### Tag: profile-hybrid-2019-03-01
-
-These settings apply only when `--tag=profile-hybrid-2019-03-01` is specified on the command line.
+These settings apply only when `--tag=profile-hybrid-2020-09-01` is specified on the command line.
Creating this tag to pick proper resources from the hybrid profile.
-``` yaml $(tag) == 'profile-hybrid-2019-03-01'
+``` yaml $(tag) == 'profile-hybrid-2020-09-01'
input-file:
-- Microsoft.Compute/stable/2017-12-01/compute.json
-- Microsoft.Compute/stable/2017-03-30/disk.json
+- Microsoft.Compute/stable/2020-06-01/compute.json
+- Microsoft.Compute/stable/2019-07-01/disk.json
```
## AzureResourceSchema
-See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
-
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
\ No newline at end of file
diff --git a/specification/compute/resource-manager/readme.typescript.md b/specification/compute/resource-manager/readme.typescript.md
index e1e93d3bc56d..b6fd59f1adbd 100644
--- a/specification/compute/resource-manager/readme.typescript.md
+++ b/specification/compute/resource-manager/readme.typescript.md
@@ -45,3 +45,18 @@ typescript:
batch:
- tag: profile-hybrid-2019-03-01
```
+
+### Profile: profile-hybrid-2020-09-01
+
+These settings apply only when `--profile=profile-hybrid-2020-09-01` is specified on the command line.
+
+``` yaml $(profile)=='profile-hybrid-2020-09-01'
+typescript:
+ package-name: "@azure/arm-compute-profile-2020-09-01-hybrid"
+ output-folder: "$(typescript-sdks-folder)/sdk/compute/arm-compute-profile-2020-09-01-hybrid"
+ clear-output-folder: true
+ azure-arm: true
+ generate-metadata: true
+ batch:
+ - tag: profile-hybrid-2020-09-01
+```
\ No newline at end of file
diff --git a/specification/confluent/resource-manager/Microsoft.Confluent/preview/2020-03-01-preview/confluent.json b/specification/confluent/resource-manager/Microsoft.Confluent/preview/2020-03-01-preview/confluent.json
index ac78123f302a..f08e586fac81 100644
--- a/specification/confluent/resource-manager/Microsoft.Confluent/preview/2020-03-01-preview/confluent.json
+++ b/specification/confluent/resource-manager/Microsoft.Confluent/preview/2020-03-01-preview/confluent.json
@@ -33,6 +33,88 @@
}
},
"paths": {
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Confluent/agreements": {
+ "get": {
+ "tags": [
+ "Agreements"
+ ],
+ "summary": "List Confluent marketplace agreements in the subscription.",
+ "operationId": "MarketplaceAgreements_List",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/ConfluentAgreementResourceListResponse"
+ }
+ },
+ "default": {
+ "description": "Default error response.",
+ "schema": {
+ "$ref": "#/definitions/ResourceProviderDefaultErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "MarketplaceAgreements_List": {
+ "$ref": "./examples/MarketplaceAgreements_List.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Confluent/agreements/default": {
+ "put": {
+ "tags": [
+ "Agreements"
+ ],
+ "summary": "Create Confluent Marketplace agreement in the subscription.",
+ "operationId": "MarketplaceAgreements_Create",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "in": "body",
+ "name": "body",
+ "schema": {
+ "$ref": "#/definitions/ConfluentAgreementResource"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/ConfluentAgreementResource"
+ }
+ },
+ "default": {
+ "description": "Default error response.",
+ "schema": {
+ "$ref": "#/definitions/ResourceProviderDefaultErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "MarketplaceAgreements_Create": {
+ "$ref": "./examples/MarketplaceAgreements_Create.json"
+ }
+ }
+ }
+ },
"/providers/Microsoft.Confluent/operations": {
"get": {
"tags": [
@@ -374,6 +456,88 @@
}
},
"definitions": {
+ "ConfluentAgreementProperties": {
+ "description": "Terms properties for Marketplace and Confluent.",
+ "type": "object",
+ "properties": {
+ "publisher": {
+ "description": "Publisher identifier string.",
+ "type": "string"
+ },
+ "product": {
+ "description": "Product identifier string.",
+ "type": "string"
+ },
+ "plan": {
+ "description": "Plan identifier string.",
+ "type": "string"
+ },
+ "licenseTextLink": {
+ "description": "Link to HTML with Microsoft and Publisher terms.",
+ "type": "string"
+ },
+ "privacyPolicyLink": {
+ "description": "Link to the privacy policy of the publisher.",
+ "type": "string"
+ },
+ "retrieveDatetime": {
+ "format": "date-time",
+ "description": "Date and time in UTC of when the terms were accepted. This is empty if Accepted is false.",
+ "type": "string"
+ },
+ "signature": {
+ "description": "Terms signature.",
+ "type": "string"
+ },
+ "accepted": {
+ "description": "If any version of the terms have been accepted, otherwise false.",
+ "type": "boolean"
+ }
+ }
+ },
+ "ConfluentAgreementResource": {
+ "description": "Agreement Terms definition",
+ "type": "object",
+ "x-ms-azure-resource": true,
+ "properties": {
+ "id": {
+ "description": "The ARM id of the resource.",
+ "type": "string",
+ "readOnly": true
+ },
+ "name": {
+ "description": "The name of the agreement.",
+ "type": "string",
+ "readOnly": true
+ },
+ "type": {
+ "description": "The type of the agreement.",
+ "type": "string",
+ "readOnly": true
+ },
+ "properties": {
+ "$ref": "#/definitions/ConfluentAgreementProperties",
+ "description": "Represents the properties of the resource."
+ }
+ }
+ },
+ "ConfluentAgreementResourceListResponse": {
+ "description": "Response of a agreements operation.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Results of a list operation.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ConfluentAgreementResource"
+ }
+ },
+ "nextLink": {
+ "description": "Link to the next set of results, if any.",
+ "type": "string"
+ }
+ }
+ },
"OperationDisplay": {
"description": "The object that represents the operation.",
"type": "object",
@@ -561,7 +725,7 @@
},
"emailAddress": {
"description": "Email address",
- "pattern": "^[\\w\\.\\-+!%\"\\s]+@[a-zA-Z0-9_\\-]+?\\.[a-zA-Z0-9]{2,7}$",
+ "pattern": "^\\S+@\\S+\\.\\S+$",
"type": "string"
}
}
diff --git a/specification/confluent/resource-manager/Microsoft.Confluent/preview/2020-03-01-preview/examples/MarketplaceAgreements_Create.json b/specification/confluent/resource-manager/Microsoft.Confluent/preview/2020-03-01-preview/examples/MarketplaceAgreements_Create.json
new file mode 100644
index 000000000000..7ae461e9df31
--- /dev/null
+++ b/specification/confluent/resource-manager/Microsoft.Confluent/preview/2020-03-01-preview/examples/MarketplaceAgreements_Create.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "api-version": "2020-03-01-preview",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "requestBody": {
+ "properties": {
+ "accepted": true
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Confluent/agreements/default",
+ "name": "default",
+ "type": "Microsoft.Confluent/agreements",
+ "properties": {
+ "publisher": "pubid1",
+ "product": "offid1",
+ "plan": "planid1",
+ "licenseTextLink": "test.licenseLink1",
+ "privacyPolicyLink": "test.privacyPolicyLink1",
+ "retrieveDatetime": "2020-11-05T17:33:07.12132Z",
+ "signature": "YKWOQOKH2BCKZ46O7SCKHANWEENRFRU5WB4LXDFUYWCBWTS4AG4SGQXCOZYIR5ZJCZTXRMZKYZMO2BJSL5YKPLAR4LBFRUNS6CRYE7A",
+ "accepted": true
+ }
+ }
+ }
+ }
+}
diff --git a/specification/confluent/resource-manager/Microsoft.Confluent/preview/2020-03-01-preview/examples/MarketplaceAgreements_List.json b/specification/confluent/resource-manager/Microsoft.Confluent/preview/2020-03-01-preview/examples/MarketplaceAgreements_List.json
new file mode 100644
index 000000000000..a436d71482aa
--- /dev/null
+++ b/specification/confluent/resource-manager/Microsoft.Confluent/preview/2020-03-01-preview/examples/MarketplaceAgreements_List.json
@@ -0,0 +1,45 @@
+{
+ "parameters": {
+ "api-version": "2020-03-01-preview",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "id1",
+ "name": "planid1",
+ "type": "Microsoft.MarketplaceOrdering/offertypes",
+ "properties": {
+ "publisher": "pubid1",
+ "product": "offid1",
+ "plan": "planid1",
+ "licenseTextLink": "test.licenseLink1",
+ "privacyPolicyLink": "test.privacyPolicyLink1",
+ "retrieveDatetime": "2017-08-15T11:33:07.12132Z",
+ "signature": "ASDFSDAFWEFASDGWERLWER",
+ "accepted": true
+ }
+ },
+ {
+ "id": "id2",
+ "name": "planid2",
+ "type": "Microsoft.MarketplaceOrdering/offertypes",
+ "properties": {
+ "publisher": "pubid2",
+ "product": "offid2",
+ "plan": "planid2",
+ "licenseTextLink": "test.licenseLin2k",
+ "privacyPolicyLink": "test.privacyPolicyLink2",
+ "retrieveDatetime": "2017-08-14T11:33:07.12132Z",
+ "signature": "ASDFSDAFWEFASDGWERLWER",
+ "accepted": true
+ }
+ }
+ ],
+ "nextLink": null
+ }
+ }
+ }
+}
diff --git a/specification/confluent/resource-manager/readme.go.md b/specification/confluent/resource-manager/readme.go.md
index b77f72b8db96..11ba4585bdff 100644
--- a/specification/confluent/resource-manager/readme.go.md
+++ b/specification/confluent/resource-manager/readme.go.md
@@ -9,6 +9,13 @@ go:
clear-output-folder: true
```
+### Go multi-api
+
+``` yaml $(go) && $(multiapi)
+batch:
+ - tag: package-2020-03-01-preview
+```
+
### Tag: package-2020-03-01-preview and go
These settings apply only when `--tag=package-2020-03-01-preview --go` is specified on the command line.
diff --git a/specification/confluent/resource-manager/readme.md b/specification/confluent/resource-manager/readme.md
index 42587e59dd49..abc71a674bb0 100644
--- a/specification/confluent/resource-manager/readme.md
+++ b/specification/confluent/resource-manager/readme.md
@@ -51,6 +51,7 @@ This is not used by Autorest itself.
swagger-to-sdk:
- repo: azure-sdk-for-net
- repo: azure-sdk-for-python
+ - repo: azure-sdk-for-python-track2
- repo: azure-sdk-for-java
- repo: azure-sdk-for-go
- repo: azure-sdk-for-js
diff --git a/specification/confluent/resource-manager/readme.python.md b/specification/confluent/resource-manager/readme.python.md
index f419f0b48043..e26460adc6cc 100644
--- a/specification/confluent/resource-manager/readme.python.md
+++ b/specification/confluent/resource-manager/readme.python.md
@@ -4,7 +4,7 @@ These settings apply only when `--python` is specified on the command line.
Please also specify `--python-sdks-folder=`.
Use `--python-mode=update` if you already have a setup.py and just want to update the code itself.
-``` yaml $(python)
+``` yaml $(python) && !$(track2)
python-mode: create
python:
azure-arm: true
@@ -12,16 +12,30 @@ python:
payload-flattening-threshold: 2
namespace: azure.mgmt.confluent
package-name: azure-mgmt-confluent
- package-version: 2020-03-01-preview
+ package-version: 1.0.0b1
clear-output-folder: true
```
+``` yaml $(python) && $(track2)
+python-mode: create
+azure-arm: true
+license-header: MICROSOFT_MIT_NO_VERSION
+payload-flattening-threshold: 2
+namespace: azure.mgmt.confluent
+package-name: azure-mgmt-confluent
+package-version: 1.0.0b1
+clear-output-folder: true
+```
``` yaml $(python) && $(python-mode) == 'update'
python:
no-namespace-folders: true
output-folder: $(python-sdks-folder)/azure-mgmt-confluent/azure/mgmt/confluent
+no-namespace-folders: true
+output-folder: $(python-sdks-folder)/azure-mgmt-confluent/azure/mgmt/confluent
```
``` yaml $(python) && $(python-mode) == 'create'
python:
basic-setup-py: true
output-folder: $(python-sdks-folder)/azure-mgmt-confluent
+basic-setup-py: true
+output-folder: $(python-sdks-folder)/azure-mgmt-confluent
```
\ No newline at end of file
diff --git a/specification/consumption/resource-manager/Microsoft.Consumption/stable/2019-10-01/consumption.json b/specification/consumption/resource-manager/Microsoft.Consumption/stable/2019-10-01/consumption.json
index ee96fd1212d6..2059f1b46751 100644
--- a/specification/consumption/resource-manager/Microsoft.Consumption/stable/2019-10-01/consumption.json
+++ b/specification/consumption/resource-manager/Microsoft.Consumption/stable/2019-10-01/consumption.json
@@ -1099,6 +1099,9 @@
"$ref": "#/definitions/ReservationRecommendationsListResult"
}
},
+ "204": {
+ "description": "An empty response is sent when there are no recommendations."
+ },
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
@@ -2985,6 +2988,14 @@
}
],
"properties": {
+ "location": {
+ "type": "string",
+ "description": "Resource Location."
+ },
+ "sku": {
+ "type": "string",
+ "description": "Resource sku"
+ },
"properties": {
"x-ms-client-flatten": true,
"$ref": "#/definitions/ReservationRecommendationDetailsProperties",
@@ -3055,6 +3066,10 @@
"type": "number",
"readOnly": true
},
+ "reservedUnitCount": {
+ "description": "The number of reserved units used to calculate savings. Always 1 for virtual machines.",
+ "type": "number"
+ },
"savings": {
"description": "The amount saved by purchasing the recommended quantity of reservation.",
"type": "number",
@@ -3553,7 +3568,7 @@
"x-ms-discriminator-value": "Modern",
"allOf": [
{
- "$ref": "#/definitions/Resource"
+ "$ref": "#/definitions/ReservationTransactionResource"
}
],
"properties": {
@@ -3700,7 +3715,7 @@
"type": "object",
"allOf": [
{
- "$ref": "#/definitions/Resource"
+ "$ref": "#/definitions/ReservationTransactionResource"
}
],
"properties": {
@@ -4906,6 +4921,35 @@
},
"x-ms-azure-resource": true
},
+ "ReservationTransactionResource": {
+ "description": "The Resource model definition.",
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource Id."
+ },
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource name."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource type."
+ },
+ "tags": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Resource tags."
+ }
+ },
+ "x-ms-azure-resource": true
+ },
"ResourceAttributes": {
"description": "The Resource model definition.",
"properties": {
diff --git a/specification/consumption/resource-manager/Microsoft.Consumption/stable/2019-10-01/examples/ReservationRecommendationsByBillingAccount.json b/specification/consumption/resource-manager/Microsoft.Consumption/stable/2019-10-01/examples/ReservationRecommendationsByBillingAccount.json
index d7ab001244eb..4995135cb464 100644
--- a/specification/consumption/resource-manager/Microsoft.Consumption/stable/2019-10-01/examples/ReservationRecommendationsByBillingAccount.json
+++ b/specification/consumption/resource-manager/Microsoft.Consumption/stable/2019-10-01/examples/ReservationRecommendationsByBillingAccount.json
@@ -76,6 +76,7 @@
],
"nextLink": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Consumption/reservationRecommendations?api-version=2019-10-01&$skiptoken=AQAAAA%3D%3D&"
}
- }
+ },
+ "204": {}
}
}
diff --git a/specification/consumption/resource-manager/Microsoft.Consumption/stable/2019-10-01/examples/ReservationRecommendationsByBillingProfile.json b/specification/consumption/resource-manager/Microsoft.Consumption/stable/2019-10-01/examples/ReservationRecommendationsByBillingProfile.json
index 10f286f0974a..1c4685847cd2 100644
--- a/specification/consumption/resource-manager/Microsoft.Consumption/stable/2019-10-01/examples/ReservationRecommendationsByBillingProfile.json
+++ b/specification/consumption/resource-manager/Microsoft.Consumption/stable/2019-10-01/examples/ReservationRecommendationsByBillingProfile.json
@@ -94,6 +94,7 @@
],
"nextLink": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Consumption/reservationRecommendations?api-version=2019-10-01&$skiptoken=AQAAAA%3D%3D&"
}
- }
+ },
+ "204": {}
}
}
diff --git a/specification/consumption/resource-manager/Microsoft.Consumption/stable/2019-10-01/examples/ReservationRecommendationsByResourceGroup.json b/specification/consumption/resource-manager/Microsoft.Consumption/stable/2019-10-01/examples/ReservationRecommendationsByResourceGroup.json
index e5176552a10c..cb4004683623 100644
--- a/specification/consumption/resource-manager/Microsoft.Consumption/stable/2019-10-01/examples/ReservationRecommendationsByResourceGroup.json
+++ b/specification/consumption/resource-manager/Microsoft.Consumption/stable/2019-10-01/examples/ReservationRecommendationsByResourceGroup.json
@@ -48,6 +48,7 @@
],
"nextLink": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testGroup/providers/Microsoft.Consumption/reservationRecommendations?api-version=2019-10-01&$skiptoken=AQAAAA%3D%3D&"
}
- }
+ },
+ "204": {}
}
}
diff --git a/specification/consumption/resource-manager/Microsoft.Consumption/stable/2019-10-01/examples/ReservationRecommendationsBySubscription.json b/specification/consumption/resource-manager/Microsoft.Consumption/stable/2019-10-01/examples/ReservationRecommendationsBySubscription.json
index a2b9649823d1..7f14a59aae9b 100644
--- a/specification/consumption/resource-manager/Microsoft.Consumption/stable/2019-10-01/examples/ReservationRecommendationsBySubscription.json
+++ b/specification/consumption/resource-manager/Microsoft.Consumption/stable/2019-10-01/examples/ReservationRecommendationsBySubscription.json
@@ -48,6 +48,7 @@
],
"nextLink": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Consumption/reservationRecommendations?api-version=2019-10-01&$skiptoken=AQAAAA%3D%3D&"
}
- }
+ },
+ "204": {}
}
}
diff --git a/specification/consumption/resource-manager/Microsoft.Consumption/stable/2019-10-01/examples/ReservationRecommendationsFilterBySubscriptionForScopeLookBackPeriod.json b/specification/consumption/resource-manager/Microsoft.Consumption/stable/2019-10-01/examples/ReservationRecommendationsFilterBySubscriptionForScopeLookBackPeriod.json
index 8cb515b0cb1b..dbfd4e8d4878 100644
--- a/specification/consumption/resource-manager/Microsoft.Consumption/stable/2019-10-01/examples/ReservationRecommendationsFilterBySubscriptionForScopeLookBackPeriod.json
+++ b/specification/consumption/resource-manager/Microsoft.Consumption/stable/2019-10-01/examples/ReservationRecommendationsFilterBySubscriptionForScopeLookBackPeriod.json
@@ -69,6 +69,7 @@
],
"nextLink": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Consumption/reservationRecommendations?api-version=2019-10-01&$filter=properties/scope+eq+'Single'+AND+properties/lookBackPeriod+eq+'Last7Days'&$skiptoken=AQAAAA%3D%3D&"
}
- }
+ },
+ "204": {}
}
}
diff --git a/specification/consumption/resource-manager/Microsoft.Consumption/stable/2019-10-01/examples/ReservationTransactionsListByEnrollmentNumber.json b/specification/consumption/resource-manager/Microsoft.Consumption/stable/2019-10-01/examples/ReservationTransactionsListByEnrollmentNumber.json
index 9e2cd5457ab2..185bcd6abb8d 100644
--- a/specification/consumption/resource-manager/Microsoft.Consumption/stable/2019-10-01/examples/ReservationTransactionsListByEnrollmentNumber.json
+++ b/specification/consumption/resource-manager/Microsoft.Consumption/stable/2019-10-01/examples/ReservationTransactionsListByEnrollmentNumber.json
@@ -12,7 +12,7 @@
"id": "/billingAccounts/123456/providers/Microsoft.Consumption/reservationtransactions/201909091919",
"name": "201909091919",
"type": "Microsoft.Consumption/reservationTransactions",
- "tags": {},
+ "tags": [],
"properties": {
"eventDate": "2019-09-09T19:19:04Z",
"reservationOrderId": "00000000-0000-0000-0000-000000000000",
@@ -40,7 +40,7 @@
"id": "/billingAccounts/123456/providers/Microsoft.Consumption/reservationtransactions/201909091919",
"name": "201909091919",
"type": "Microsoft.Consumption/reservationTransactions",
- "tags": {},
+ "tags": [],
"properties": {
"eventDate": "2019-09-09T19:19:04Z",
"reservationOrderId": "00000000-0000-0000-0000-000000000000",
diff --git a/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/containerInstance.json b/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/containerInstance.json
new file mode 100644
index 000000000000..f50953347f13
--- /dev/null
+++ b/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/containerInstance.json
@@ -0,0 +1,2071 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2020-11-01",
+ "title": "ContainerInstanceManagementClient"
+ },
+ "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}/providers/Microsoft.ContainerInstance/containerGroups": {
+ "get": {
+ "operationId": "ContainerGroups_List",
+ "x-ms-examples": {
+ "ContainerGroupsList": {
+ "$ref": "./examples/ContainerGroupsList.json"
+ }
+ },
+ "summary": "Get a list of container groups in the specified subscription.",
+ "description": "Get a list of container groups in the specified subscription. This operation returns properties of each container group including containers, image registry credentials, restart policy, IP address type, OS type, state, and volumes.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ContainerGroupListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerInstance/containerGroups": {
+ "get": {
+ "operationId": "ContainerGroups_ListByResourceGroup",
+ "x-ms-examples": {
+ "ContainerGroupsListByResourceGroup": {
+ "$ref": "./examples/ContainerGroupsListByResourceGroup.json"
+ }
+ },
+ "summary": "Get a list of container groups in the specified subscription and resource group.",
+ "description": "Get a list of container groups in a specified subscription and resource group. This operation returns properties of each container group including containers, image registry credentials, restart policy, IP address type, OS type, state, and volumes.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ContainerGroupListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerInstance/containerGroups/{containerGroupName}": {
+ "get": {
+ "operationId": "ContainerGroups_Get",
+ "x-ms-examples": {
+ "ContainerGroupsGet_Succeeded": {
+ "$ref": "./examples/ContainerGroupsGet_Succeeded.json"
+ },
+ "ContainerGroupsGet_Failed": {
+ "$ref": "./examples/ContainerGroupsGet_Failed.json"
+ }
+ },
+ "summary": "Get the properties of the specified container group.",
+ "description": "Gets the properties of the specified container group in the specified subscription and resource group. The operation returns the properties of each container group including containers, image registry credentials, restart policy, IP address type, OS type, state, and volumes.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ContainerGroupNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ContainerGroup"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "put": {
+ "operationId": "ContainerGroups_CreateOrUpdate",
+ "x-ms-examples": {
+ "ContainerGroupsCreateOrUpdate": {
+ "$ref": "./examples/ContainerGroupsCreateOrUpdate.json"
+ }
+ },
+ "summary": "Create or update container groups.",
+ "description": "Create or update container groups with specified configurations.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ContainerGroupNameParameter"
+ },
+ {
+ "name": "containerGroup",
+ "description": "The properties of the container group to be created or updated.",
+ "required": true,
+ "in": "body",
+ "schema": {
+ "$ref": "#/definitions/ContainerGroup"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ContainerGroup"
+ }
+ },
+ "201": {
+ "description": "Created - the container group is created.",
+ "schema": {
+ "$ref": "#/definitions/ContainerGroup"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "patch": {
+ "operationId": "ContainerGroups_Update",
+ "x-ms-examples": {
+ "ContainerGroupsUpdate": {
+ "$ref": "./examples/ContainerGroupsUpdate.json"
+ }
+ },
+ "summary": "Update container groups.",
+ "description": "Updates container group tags with specified values.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ContainerGroupNameParameter"
+ },
+ {
+ "name": "Resource",
+ "description": "The container group resource with just the tags to be updated.",
+ "required": true,
+ "in": "body",
+ "schema": {
+ "$ref": "#/definitions/Resource"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ContainerGroup"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "operationId": "ContainerGroups_Delete",
+ "x-ms-examples": {
+ "ContainerGroupsDelete": {
+ "$ref": "./examples/ContainerGroupsDelete.json"
+ }
+ },
+ "summary": "Delete the specified container group.",
+ "description": "Delete the specified container group in the specified subscription and resource group. The operation does not delete other resources provided by the user, such as volumes.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ContainerGroupNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ContainerGroup"
+ }
+ },
+ "202": {
+ "description": "Delete started."
+ },
+ "204": {
+ "description": "No Content - the specified container group was not found."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerInstance/containerGroups/{containerGroupName}/restart": {
+ "post": {
+ "operationId": "ContainerGroups_Restart",
+ "x-ms-examples": {
+ "ContainerRestart": {
+ "$ref": "./examples/ContainerGroupsRestart.json"
+ }
+ },
+ "summary": "Restarts all containers in a container group.",
+ "description": "Restarts all containers in a container group in place. If container image has updates, new image will be downloaded.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ContainerGroupNameParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "NoContent"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerInstance/containerGroups/{containerGroupName}/stop": {
+ "post": {
+ "operationId": "ContainerGroups_Stop",
+ "x-ms-examples": {
+ "ContainerStop": {
+ "$ref": "./examples/ContainerGroupsStop.json"
+ }
+ },
+ "summary": "Stops all containers in a container group.",
+ "description": "Stops all containers in a container group. Compute resources will be deallocated and billing will stop.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ContainerGroupNameParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "NoContent"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerInstance/containerGroups/{containerGroupName}/start": {
+ "post": {
+ "operationId": "ContainerGroups_Start",
+ "x-ms-examples": {
+ "ContainerStart": {
+ "$ref": "./examples/ContainerGroupsStart.json"
+ }
+ },
+ "summary": "Starts all containers in a container group.",
+ "description": "Starts all containers in a container group. Compute resources will be allocated and billing will start.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ContainerGroupNameParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "NoContent"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/providers/Microsoft.ContainerInstance/operations": {
+ "get": {
+ "tags": [
+ "Operations"
+ ],
+ "operationId": "Operations_List",
+ "x-ms-examples": {
+ "OperationsList": {
+ "$ref": "./examples/OperationsList.json"
+ }
+ },
+ "description": "List the operations for Azure Container Instance service.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/OperationListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.ContainerInstance/locations/{location}/usages": {
+ "get": {
+ "operationId": "Location_ListUsage",
+ "x-ms-examples": {
+ "ContainerUsage": {
+ "$ref": "./examples/ContainerGroupUsage.json"
+ }
+ },
+ "description": "Get the usage for a subscription",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/LocationParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/UsageListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerInstance/containerGroups/{containerGroupName}/containers/{containerName}/logs": {
+ "get": {
+ "operationId": "Containers_ListLogs",
+ "x-ms-examples": {
+ "ContainerListLogs": {
+ "$ref": "./examples/ContainerListLogs.json"
+ }
+ },
+ "summary": "Get the logs for a specified container instance.",
+ "description": "Get the logs for a specified container instance in a specified resource group and container group.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ContainerGroupNameParameter"
+ },
+ {
+ "name": "containerName",
+ "in": "path",
+ "description": "The name of the container instance.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "tail",
+ "in": "query",
+ "description": "The number of lines to show from the tail of the container instance log. If not provided, all available logs are shown up to 4mb.",
+ "type": "integer"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/Logs"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerInstance/containerGroups/{containerGroupName}/containers/{containerName}/exec": {
+ "post": {
+ "operationId": "Containers_ExecuteCommand",
+ "x-ms-examples": {
+ "ContainerExec": {
+ "$ref": "./examples/ContainerExec.json"
+ }
+ },
+ "summary": "Executes a command in a specific container instance.",
+ "description": "Executes a command for a specific container instance in a specified resource group and container group.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ContainerGroupNameParameter"
+ },
+ {
+ "name": "containerName",
+ "in": "path",
+ "description": "The name of the container instance.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "containerExecRequest",
+ "in": "body",
+ "description": "The request for the exec command.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ContainerExecRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ContainerExecResponse"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.ContainerInstance/locations/{location}/cachedImages": {
+ "get": {
+ "operationId": "Location_ListCachedImages",
+ "x-ms-examples": {
+ "CachedImages": {
+ "$ref": "./examples/CachedImagesList.json"
+ }
+ },
+ "summary": "Get the list of cached images.",
+ "description": "Get the list of cached images on specific OS type for a subscription in a region.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/LocationParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/CachedImagesListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.ContainerInstance/locations/{location}/capabilities": {
+ "get": {
+ "operationId": "Location_ListCapabilities",
+ "x-ms-examples": {
+ "GetCapabilities": {
+ "$ref": "./examples/CapabilitiesList.json"
+ }
+ },
+ "summary": "Get the list of capabilities of the location.",
+ "description": "Get the list of CPU/memory/GPU capabilities of a region.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/LocationParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/CapabilitiesListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "Container": {
+ "description": "A container instance.",
+ "type": "object",
+ "required": [
+ "properties",
+ "name"
+ ],
+ "properties": {
+ "name": {
+ "description": "The user-provided name of the container instance.",
+ "type": "string"
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "description": "The properties of the container instance.",
+ "$ref": "#/definitions/ContainerProperties"
+ }
+ }
+ },
+ "ContainerProperties": {
+ "description": "The container instance properties.",
+ "type": "object",
+ "required": [
+ "image",
+ "resources"
+ ],
+ "properties": {
+ "image": {
+ "description": "The name of the image used to create the container instance.",
+ "type": "string"
+ },
+ "command": {
+ "description": "The commands to execute within the container instance in exec form.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ports": {
+ "description": "The exposed ports on the container instance.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ContainerPort"
+ }
+ },
+ "environmentVariables": {
+ "description": "The environment variables to set in the container instance.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EnvironmentVariable"
+ }
+ },
+ "instanceView": {
+ "description": "The instance view of the container instance. Only valid in response.",
+ "readOnly": true,
+ "type": "object",
+ "properties": {
+ "restartCount": {
+ "readOnly": true,
+ "type": "integer",
+ "description": "The number of times that the container instance has been restarted."
+ },
+ "currentState": {
+ "readOnly": true,
+ "description": "Current container instance state.",
+ "$ref": "#/definitions/ContainerState"
+ },
+ "previousState": {
+ "readOnly": true,
+ "description": "Previous container instance state.",
+ "$ref": "#/definitions/ContainerState"
+ },
+ "events": {
+ "readOnly": true,
+ "description": "The events of the container instance.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Event"
+ }
+ }
+ }
+ },
+ "resources": {
+ "description": "The resource requirements of the container instance.",
+ "$ref": "#/definitions/ResourceRequirements"
+ },
+ "volumeMounts": {
+ "description": "The volume mounts available to the container instance.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VolumeMount"
+ }
+ },
+ "livenessProbe": {
+ "description": "The liveness probe.",
+ "$ref": "#/definitions/ContainerProbe"
+ },
+ "readinessProbe": {
+ "description": "The readiness probe.",
+ "$ref": "#/definitions/ContainerProbe"
+ }
+ }
+ },
+ "ContainerState": {
+ "description": "The container instance state.",
+ "type": "object",
+ "readOnly": true,
+ "properties": {
+ "state": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The state of the container instance."
+ },
+ "startTime": {
+ "type": "string",
+ "readOnly": true,
+ "format": "date-time",
+ "description": "The date-time when the container instance state started."
+ },
+ "exitCode": {
+ "type": "integer",
+ "readOnly": true,
+ "description": "The container instance exit codes correspond to those from the `docker run` command."
+ },
+ "finishTime": {
+ "type": "string",
+ "readOnly": true,
+ "format": "date-time",
+ "description": "The date-time when the container instance state finished."
+ },
+ "detailStatus": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The human-readable status of the container instance state."
+ }
+ }
+ },
+ "Event": {
+ "description": "A container group or container instance event.",
+ "type": "object",
+ "readOnly": true,
+ "properties": {
+ "count": {
+ "type": "integer",
+ "readOnly": true,
+ "description": "The count of the event."
+ },
+ "firstTimestamp": {
+ "type": "string",
+ "readOnly": true,
+ "format": "date-time",
+ "description": "The date-time of the earliest logged event."
+ },
+ "lastTimestamp": {
+ "type": "string",
+ "readOnly": true,
+ "format": "date-time",
+ "description": "The date-time of the latest logged event."
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The event name."
+ },
+ "message": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The event message."
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The event type."
+ }
+ }
+ },
+ "ResourceRequirements": {
+ "description": "The resource requirements.",
+ "type": "object",
+ "required": [
+ "requests"
+ ],
+ "properties": {
+ "requests": {
+ "description": "The resource requests of this container instance.",
+ "$ref": "#/definitions/ResourceRequests"
+ },
+ "limits": {
+ "description": "The resource limits of this container instance.",
+ "$ref": "#/definitions/ResourceLimits"
+ }
+ }
+ },
+ "ResourceRequests": {
+ "description": "The resource requests.",
+ "type": "object",
+ "required": [
+ "memoryInGB",
+ "cpu"
+ ],
+ "properties": {
+ "memoryInGB": {
+ "description": "The memory request in GB of this container instance.",
+ "type": "number",
+ "format": "double"
+ },
+ "cpu": {
+ "description": "The CPU request of this container instance.",
+ "type": "number",
+ "format": "double"
+ },
+ "gpu": {
+ "description": "The GPU request of this container instance.",
+ "$ref": "#/definitions/GpuResource"
+ }
+ }
+ },
+ "ResourceLimits": {
+ "description": "The resource limits.",
+ "type": "object",
+ "properties": {
+ "memoryInGB": {
+ "description": "The memory limit in GB of this container instance.",
+ "type": "number",
+ "format": "double"
+ },
+ "cpu": {
+ "description": "The CPU limit of this container instance.",
+ "type": "number",
+ "format": "double"
+ },
+ "gpu": {
+ "description": "The GPU limit of this container instance.",
+ "$ref": "#/definitions/GpuResource"
+ }
+ }
+ },
+ "GpuResource": {
+ "description": "The GPU resource.",
+ "type": "object",
+ "required": [
+ "count",
+ "sku"
+ ],
+ "properties": {
+ "count": {
+ "description": "The count of the GPU resource.",
+ "type": "integer",
+ "format": "int32"
+ },
+ "sku": {
+ "type": "string",
+ "description": "The SKU of the GPU resource.",
+ "enum": [
+ "K80",
+ "P100",
+ "V100"
+ ],
+ "x-ms-enum": {
+ "name": "GpuSku",
+ "modelAsString": true
+ }
+ }
+ }
+ },
+ "AzureFileVolume": {
+ "description": "The properties of the Azure File volume. Azure File shares are mounted as volumes.",
+ "type": "object",
+ "required": [
+ "shareName",
+ "storageAccountName"
+ ],
+ "properties": {
+ "shareName": {
+ "description": "The name of the Azure File share to be mounted as a volume.",
+ "type": "string"
+ },
+ "readOnly": {
+ "description": "The flag indicating whether the Azure File shared mounted as a volume is read-only.",
+ "type": "boolean"
+ },
+ "storageAccountName": {
+ "description": "The name of the storage account that contains the Azure File share.",
+ "type": "string"
+ },
+ "storageAccountKey": {
+ "description": "The storage account access key used to access the Azure File share.",
+ "type": "string"
+ }
+ }
+ },
+ "EmptyDirVolume": {
+ "description": "The empty directory volume.",
+ "type": "object",
+ "properties": {}
+ },
+ "SecretVolume": {
+ "description": "The secret volume.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "GitRepoVolume": {
+ "description": "Represents a volume that is populated with the contents of a git repository",
+ "required": [
+ "repository"
+ ],
+ "properties": {
+ "directory": {
+ "description": "Target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.",
+ "type": "string"
+ },
+ "repository": {
+ "description": "Repository URL",
+ "type": "string"
+ },
+ "revision": {
+ "description": "Commit hash for the specified revision.",
+ "type": "string"
+ }
+ }
+ },
+ "Volume": {
+ "description": "The properties of the volume.",
+ "type": "object",
+ "required": [
+ "name"
+ ],
+ "properties": {
+ "name": {
+ "description": "The name of the volume.",
+ "type": "string"
+ },
+ "azureFile": {
+ "description": "The Azure File volume.",
+ "$ref": "#/definitions/AzureFileVolume"
+ },
+ "emptyDir": {
+ "description": "The empty directory volume.",
+ "$ref": "#/definitions/EmptyDirVolume"
+ },
+ "secret": {
+ "description": "The secret volume.",
+ "$ref": "#/definitions/SecretVolume"
+ },
+ "gitRepo": {
+ "description": "The git repo volume.",
+ "$ref": "#/definitions/GitRepoVolume"
+ }
+ }
+ },
+ "VolumeMount": {
+ "description": "The properties of the volume mount.",
+ "type": "object",
+ "required": [
+ "name",
+ "mountPath"
+ ],
+ "properties": {
+ "name": {
+ "description": "The name of the volume mount.",
+ "type": "string"
+ },
+ "mountPath": {
+ "description": "The path within the container where the volume should be mounted. Must not contain colon (:).",
+ "type": "string"
+ },
+ "readOnly": {
+ "description": "The flag indicating whether the volume mount is read-only.",
+ "type": "boolean"
+ }
+ }
+ },
+ "ContainerExec": {
+ "type": "object",
+ "description": "The container execution command, for liveness or readiness probe",
+ "properties": {
+ "command": {
+ "description": "The commands to execute within the container.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "ContainerHttpGet": {
+ "type": "object",
+ "description": "The container Http Get settings, for liveness or readiness probe",
+ "properties": {
+ "path": {
+ "description": "The path to probe.",
+ "type": "string"
+ },
+ "port": {
+ "type": "integer",
+ "description": "The port number to probe.",
+ "format": "int32"
+ },
+ "scheme": {
+ "description": "The scheme.",
+ "type": "string",
+ "enum": [
+ "http",
+ "https"
+ ],
+ "x-ms-enum": {
+ "name": "Scheme",
+ "modelAsString": true
+ }
+ }
+ },
+ "required": [
+ "port"
+ ]
+ },
+ "ContainerProbe": {
+ "type": "object",
+ "description": "The container probe, for liveness or readiness",
+ "properties": {
+ "exec": {
+ "description": "The execution command to probe",
+ "$ref": "#/definitions/ContainerExec"
+ },
+ "httpGet": {
+ "description": "The Http Get settings to probe",
+ "$ref": "#/definitions/ContainerHttpGet"
+ },
+ "initialDelaySeconds": {
+ "description": "The initial delay seconds.",
+ "type": "integer",
+ "format": "int32"
+ },
+ "periodSeconds": {
+ "description": "The period seconds.",
+ "type": "integer",
+ "format": "int32"
+ },
+ "failureThreshold": {
+ "description": "The failure threshold.",
+ "type": "integer",
+ "format": "int32"
+ },
+ "successThreshold": {
+ "description": "The success threshold.",
+ "type": "integer",
+ "format": "int32"
+ },
+ "timeoutSeconds": {
+ "description": "The timeout seconds.",
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ },
+ "ContainerGroup": {
+ "description": "A container group.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ },
+ {
+ "type": "object",
+ "required": [
+ "properties"
+ ],
+ "properties": {
+ "identity": {
+ "$ref": "#/definitions/ContainerGroupIdentity",
+ "description": "The identity of the container group, if configured."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "type": "object",
+ "description": "The container group properties",
+ "properties": {
+ "provisioningState": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The provisioning state of the container group. This only appears in the response."
+ },
+ "containers": {
+ "type": "array",
+ "description": "The containers within the container group.",
+ "items": {
+ "$ref": "#/definitions/Container"
+ }
+ },
+ "imageRegistryCredentials": {
+ "type": "array",
+ "description": "The image registry credentials by which the container group is created from.",
+ "items": {
+ "$ref": "#/definitions/ImageRegistryCredential"
+ }
+ },
+ "restartPolicy": {
+ "type": "string",
+ "description": "Restart policy for all containers within the container group. \n- `Always` Always restart\n- `OnFailure` Restart on failure\n- `Never` Never restart\n",
+ "enum": [
+ "Always",
+ "OnFailure",
+ "Never"
+ ],
+ "x-ms-enum": {
+ "name": "ContainerGroupRestartPolicy",
+ "modelAsString": true
+ }
+ },
+ "ipAddress": {
+ "description": "The IP address type of the container group.",
+ "$ref": "#/definitions/IpAddress"
+ },
+ "osType": {
+ "type": "string",
+ "description": "The operating system type required by the containers in the container group.",
+ "enum": [
+ "Windows",
+ "Linux"
+ ],
+ "x-ms-enum": {
+ "name": "OperatingSystemTypes",
+ "modelAsString": true
+ }
+ },
+ "volumes": {
+ "type": "array",
+ "description": "The list of volumes that can be mounted by containers in this container group.",
+ "items": {
+ "$ref": "#/definitions/Volume"
+ }
+ },
+ "instanceView": {
+ "description": "The instance view of the container group. Only valid in response.",
+ "readOnly": true,
+ "type": "object",
+ "properties": {
+ "events": {
+ "description": "The events of this container group.",
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Event"
+ }
+ },
+ "state": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The state of the container group. Only valid in response."
+ }
+ }
+ },
+ "diagnostics": {
+ "description": "The diagnostic information for a container group.",
+ "$ref": "#/definitions/ContainerGroupDiagnostics"
+ },
+ "networkProfile": {
+ "description": "The network profile information for a container group.",
+ "$ref": "#/definitions/ContainerGroupNetworkProfile"
+ },
+ "dnsConfig": {
+ "description": "The DNS config information for a container group.",
+ "$ref": "#/definitions/DnsConfiguration"
+ },
+ "sku": {
+ "description": "The SKU for a container group.",
+ "$ref": "#/definitions/ContainerGroupSku"
+ },
+ "encryptionProperties": {
+ "description": "The encryption properties for a container group.",
+ "$ref": "#/definitions/EncryptionProperties"
+ },
+ "initContainers": {
+ "type": "array",
+ "description": "The init containers for a container group.",
+ "items": {
+ "$ref": "#/definitions/InitContainerDefinition"
+ }
+ }
+ },
+ "required": [
+ "containers",
+ "osType"
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "ContainerGroupIdentity": {
+ "description": "Identity for the container group.",
+ "properties": {
+ "principalId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The principal id of the container group identity. This property will only be provided for a system assigned identity."
+ },
+ "tenantId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The tenant id associated with the container group. This property will only be provided for a system assigned identity."
+ },
+ "type": {
+ "type": "string",
+ "description": "The type of identity used for the container group. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the container group.",
+ "enum": [
+ "SystemAssigned",
+ "UserAssigned",
+ "SystemAssigned, UserAssigned",
+ "None"
+ ],
+ "x-ms-enum": {
+ "name": "ResourceIdentityType",
+ "modelAsString": false
+ }
+ },
+ "userAssignedIdentities": {
+ "type": "object",
+ "description": "The list of user identities associated with the container group. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.",
+ "additionalProperties": {
+ "type": "object",
+ "properties": {
+ "principalId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The principal id of user assigned identity."
+ },
+ "clientId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The client id of user assigned identity."
+ }
+ }
+ }
+ }
+ }
+ },
+ "ImageRegistryCredential": {
+ "description": "Image registry credential.",
+ "type": "object",
+ "properties": {
+ "server": {
+ "type": "string",
+ "description": "The Docker image registry server without a protocol such as \"http\" and \"https\"."
+ },
+ "username": {
+ "type": "string",
+ "description": "The username for the private registry."
+ },
+ "password": {
+ "type": "string",
+ "description": "The password for the private registry."
+ }
+ },
+ "required": [
+ "server",
+ "username"
+ ]
+ },
+ "ContainerGroupDiagnostics": {
+ "description": "Container group diagnostic information.",
+ "type": "object",
+ "properties": {
+ "logAnalytics": {
+ "description": "Container group log analytics information.",
+ "$ref": "#/definitions/LogAnalytics"
+ }
+ }
+ },
+ "LogAnalytics": {
+ "description": "Container group log analytics information.",
+ "type": "object",
+ "properties": {
+ "workspaceId": {
+ "description": "The workspace id for log analytics",
+ "type": "string"
+ },
+ "workspaceKey": {
+ "description": "The workspace key for log analytics",
+ "type": "string"
+ },
+ "logType": {
+ "type": "string",
+ "description": "The log type to be used.",
+ "enum": [
+ "ContainerInsights",
+ "ContainerInstanceLogs"
+ ],
+ "x-ms-enum": {
+ "name": "LogAnalyticsLogType",
+ "modelAsString": true
+ }
+ },
+ "metadata": {
+ "type": "object",
+ "description": "Metadata for log analytics.",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "workspaceResourceId": {
+ "type": "object",
+ "description": "The workspace resource id for log analytics",
+ "additionalProperties": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "workspaceId",
+ "workspaceKey"
+ ]
+ },
+ "ContainerGroupNetworkProfile": {
+ "description": "Container group network profile information.",
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "The identifier for a network profile.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "id"
+ ]
+ },
+ "IpAddress": {
+ "description": "IP address for the container group.",
+ "type": "object",
+ "properties": {
+ "ports": {
+ "type": "array",
+ "description": "The list of ports exposed on the container group.",
+ "items": {
+ "$ref": "#/definitions/Port"
+ }
+ },
+ "type": {
+ "type": "string",
+ "description": "Specifies if the IP is exposed to the public internet or private VNET.",
+ "enum": [
+ "Public",
+ "Private"
+ ],
+ "x-ms-enum": {
+ "name": "ContainerGroupIpAddressType",
+ "modelAsString": true
+ }
+ },
+ "ip": {
+ "type": "string",
+ "description": "The IP exposed to the public internet."
+ },
+ "dnsNameLabel": {
+ "type": "string",
+ "description": "The Dns name label for the IP."
+ },
+ "fqdn": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The FQDN for the IP."
+ }
+ },
+ "required": [
+ "ports",
+ "type"
+ ]
+ },
+ "Port": {
+ "description": "The port exposed on the container group.",
+ "type": "object",
+ "properties": {
+ "protocol": {
+ "type": "string",
+ "description": "The protocol associated with the port.",
+ "enum": [
+ "TCP",
+ "UDP"
+ ],
+ "x-ms-enum": {
+ "name": "ContainerGroupNetworkProtocol",
+ "modelAsString": true
+ }
+ },
+ "port": {
+ "type": "integer",
+ "description": "The port number.",
+ "format": "int32"
+ }
+ },
+ "required": [
+ "port"
+ ]
+ },
+ "ContainerPort": {
+ "description": "The port exposed on the container instance.",
+ "type": "object",
+ "properties": {
+ "protocol": {
+ "type": "string",
+ "description": "The protocol associated with the port.",
+ "enum": [
+ "TCP",
+ "UDP"
+ ],
+ "x-ms-enum": {
+ "name": "ContainerNetworkProtocol",
+ "modelAsString": true
+ }
+ },
+ "port": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The port number exposed within the container group."
+ }
+ },
+ "required": [
+ "port"
+ ]
+ },
+ "EnvironmentVariable": {
+ "description": "The environment variable to set within the container instance.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the environment variable."
+ },
+ "value": {
+ "type": "string",
+ "description": "The value of the environment variable."
+ },
+ "secureValue": {
+ "type": "string",
+ "description": "The value of the secure environment variable."
+ }
+ },
+ "required": [
+ "name"
+ ]
+ },
+ "OperationListResult": {
+ "description": "The operation list response that contains all operations for Azure Container Instance service.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Operation"
+ },
+ "description": "The list of operations."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URI to fetch the next page of operations."
+ }
+ }
+ },
+ "Operation": {
+ "description": "An operation for Azure Container Instance service.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the operation."
+ },
+ "display": {
+ "description": "The display information of the operation.",
+ "type": "object",
+ "properties": {
+ "provider": {
+ "description": "The name of the provider of the operation.",
+ "type": "string"
+ },
+ "resource": {
+ "type": "string",
+ "description": "The name of the resource type of the operation."
+ },
+ "operation": {
+ "description": "The friendly name of the operation.",
+ "type": "string"
+ },
+ "description": {
+ "description": "The description of the operation.",
+ "type": "string"
+ }
+ }
+ },
+ "properties": {
+ "type": "object",
+ "description": "The additional properties.",
+ "x-ms-client-flatten": true
+ },
+ "origin": {
+ "type": "string",
+ "description": "The intended executor of the operation.",
+ "enum": [
+ "User",
+ "System"
+ ],
+ "x-ms-enum": {
+ "name": "ContainerInstanceOperationsOrigin",
+ "modelAsString": true
+ }
+ }
+ },
+ "required": [
+ "name",
+ "display"
+ ]
+ },
+ "UsageListResult": {
+ "description": "The response containing the usage data",
+ "type": "object",
+ "properties": {
+ "value": {
+ "readOnly": true,
+ "type": "array",
+ "description": "The usage data.",
+ "items": {
+ "$ref": "#/definitions/Usage"
+ }
+ }
+ }
+ },
+ "Usage": {
+ "description": "A single usage result",
+ "type": "object",
+ "properties": {
+ "unit": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Unit of the usage result"
+ },
+ "currentValue": {
+ "readOnly": true,
+ "type": "integer",
+ "description": "The current usage of the resource"
+ },
+ "limit": {
+ "readOnly": true,
+ "type": "integer",
+ "description": "The maximum permitted usage of the resource."
+ },
+ "name": {
+ "readOnly": true,
+ "type": "object",
+ "description": "The name object of the resource",
+ "properties": {
+ "value": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The name of the resource"
+ },
+ "localizedValue": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The localized name of the resource"
+ }
+ }
+ }
+ }
+ },
+ "ContainerGroupListResult": {
+ "description": "The container group list response that contains the container group properties.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ContainerGroup"
+ },
+ "description": "The list of container groups."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URI to fetch the next page of container groups."
+ }
+ }
+ },
+ "Logs": {
+ "description": "The logs.",
+ "type": "object",
+ "properties": {
+ "content": {
+ "type": "string",
+ "description": "The content of the log."
+ }
+ }
+ },
+ "ContainerExecRequest": {
+ "description": "The container exec request.",
+ "type": "object",
+ "properties": {
+ "command": {
+ "type": "string",
+ "description": "The command to be executed."
+ },
+ "terminalSize": {
+ "type": "object",
+ "description": "The size of the terminal.",
+ "properties": {
+ "rows": {
+ "type": "integer",
+ "description": "The row size of the terminal"
+ },
+ "cols": {
+ "type": "integer",
+ "description": "The column size of the terminal"
+ }
+ }
+ }
+ }
+ },
+ "ContainerExecResponse": {
+ "description": "The information for the container exec command.",
+ "type": "object",
+ "properties": {
+ "webSocketUri": {
+ "type": "string",
+ "description": "The uri for the exec websocket."
+ },
+ "password": {
+ "type": "string",
+ "description": "The password to start the exec command."
+ }
+ }
+ },
+ "DnsConfiguration": {
+ "description": "DNS configuration for the container group.",
+ "type": "object",
+ "required": [
+ "nameServers"
+ ],
+ "properties": {
+ "nameServers": {
+ "description": "The DNS servers for the container group.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "searchDomains": {
+ "description": "The DNS search domains for hostname lookup in the container group.",
+ "type": "string"
+ },
+ "options": {
+ "description": "The DNS options for the container group.",
+ "type": "string"
+ }
+ }
+ },
+ "Resource": {
+ "type": "object",
+ "description": "The Resource model definition.",
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource id."
+ },
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource name."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource type."
+ },
+ "location": {
+ "type": "string",
+ "description": "The resource location."
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "The resource tags."
+ }
+ },
+ "x-ms-azure-resource": true
+ },
+ "CachedImagesListResult": {
+ "description": "The response containing cached images.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/cachedImages"
+ },
+ "description": "The list of cached images."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URI to fetch the next page of cached images."
+ }
+ }
+ },
+ "cachedImages": {
+ "description": "The cached image and OS type.",
+ "type": "object",
+ "required": [
+ "osType",
+ "image"
+ ],
+ "properties": {
+ "osType": {
+ "type": "string",
+ "description": "The OS type of the cached image."
+ },
+ "image": {
+ "type": "string",
+ "description": "The cached image name."
+ }
+ }
+ },
+ "CapabilitiesListResult": {
+ "description": "The response containing list of capabilities.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Capabilities"
+ },
+ "description": "The list of capabilities."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URI to fetch the next page of capabilities."
+ }
+ }
+ },
+ "Capabilities": {
+ "description": "The regional capabilities.",
+ "type": "object",
+ "properties": {
+ "resourceType": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The resource type that this capability describes."
+ },
+ "osType": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The OS type that this capability describes."
+ },
+ "location": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The resource location."
+ },
+ "ipAddressType": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The ip address type that this capability describes."
+ },
+ "gpu": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The GPU sku that this capability describes."
+ },
+ "capabilities": {
+ "type": "object",
+ "readOnly": true,
+ "description": "The supported capabilities.",
+ "properties": {
+ "maxMemoryInGB": {
+ "type": "number",
+ "readOnly": true,
+ "description": "The maximum allowed memory request in GB."
+ },
+ "maxCpu": {
+ "type": "number",
+ "readOnly": true,
+ "description": "The maximum allowed CPU request in cores."
+ },
+ "maxGpuCount": {
+ "type": "number",
+ "readOnly": true,
+ "description": "The maximum allowed GPU count."
+ }
+ }
+ }
+ }
+ },
+ "ContainerGroupSku": {
+ "description": "The container group SKU.",
+ "type": "string",
+ "enum": [
+ "Standard",
+ "Dedicated"
+ ],
+ "x-ms-enum": {
+ "name": "ContainerGroupSku",
+ "modelAsString": true
+ }
+ },
+ "EncryptionProperties": {
+ "description": "The container group encryption properties.",
+ "type": "object",
+ "properties": {
+ "vaultBaseUrl": {
+ "description": "The keyvault base url.",
+ "type": "string"
+ },
+ "keyName": {
+ "description": "The encryption key name.",
+ "type": "string"
+ },
+ "keyVersion": {
+ "description": "The encryption key version.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "vaultBaseUrl",
+ "keyName",
+ "keyVersion"
+ ]
+ },
+ "InitContainerDefinition": {
+ "description": "The init container definition.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "The name for the init container.",
+ "type": "string"
+ },
+ "properties": {
+ "description": "The properties for the init container.",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/InitContainerPropertiesDefinition"
+ }
+ },
+ "required": [
+ "name",
+ "properties"
+ ]
+ },
+ "InitContainerPropertiesDefinition": {
+ "description": "The init container definition properties.",
+ "type": "object",
+ "properties": {
+ "image": {
+ "description": "The image of the init container.",
+ "type": "string"
+ },
+ "command": {
+ "description": "The command to execute within the init container in exec form.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "environmentVariables": {
+ "description": "The environment variables to set in the init container.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EnvironmentVariable"
+ }
+ },
+ "instanceView": {
+ "description": "The instance view of the init container. Only valid in response.",
+ "readOnly": true,
+ "type": "object",
+ "properties": {
+ "restartCount": {
+ "readOnly": true,
+ "type": "integer",
+ "description": "The number of times that the init container has been restarted."
+ },
+ "currentState": {
+ "readOnly": true,
+ "description": "The current state of the init container.",
+ "$ref": "#/definitions/ContainerState"
+ },
+ "previousState": {
+ "readOnly": true,
+ "description": "The previous state of the init container.",
+ "$ref": "#/definitions/ContainerState"
+ },
+ "events": {
+ "readOnly": true,
+ "description": "The events of the init container.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Event"
+ }
+ }
+ }
+ },
+ "volumeMounts": {
+ "description": "The volume mounts available to the init container.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VolumeMount"
+ }
+ }
+ }
+ },
+ "CloudError": {
+ "x-ms-external": true,
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/CloudErrorBody"
+ }
+ },
+ "description": "An error response from the Container Instance service."
+ },
+ "CloudErrorBody": {
+ "x-ms-external": true,
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "An identifier for the error. Codes are invariant and are intended to be consumed programmatically."
+ },
+ "message": {
+ "type": "string",
+ "description": "A message describing the error, intended to be suitable for display in a user interface."
+ },
+ "target": {
+ "type": "string",
+ "description": "The target of the particular error. For example, the name of the property in error."
+ },
+ "details": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CloudErrorBody"
+ },
+ "description": "A list of additional details about the error."
+ }
+ },
+ "description": "An error response from the Container Instance service."
+ }
+ },
+ "parameters": {
+ "SubscriptionIdParameter": {
+ "name": "subscriptionId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
+ "x-ms-parameter-location": "client"
+ },
+ "LocationParameter": {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The identifier for the physical azure location.",
+ "x-ms-parameter-location": "method"
+ },
+ "ApiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "Client API version",
+ "x-ms-parameter-location": "client"
+ },
+ "ResourceGroupNameParameter": {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group.",
+ "x-ms-parameter-location": "method"
+ },
+ "ContainerGroupNameParameter": {
+ "name": "containerGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the container group.",
+ "x-ms-parameter-location": "method"
+ },
+ "OperationIdParameter": {
+ "name": "operationId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The operation Id.",
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/examples/CachedImagesList.json b/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/examples/CachedImagesList.json
new file mode 100644
index 000000000000..752fe5d39f92
--- /dev/null
+++ b/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/examples/CachedImagesList.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "location": "westcentralus",
+ "api-version": "2020-11-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "osType": "Linux",
+ "image": "ubuntu:16.04"
+ },
+ {
+ "osType": "Linux",
+ "image": "alpine:3.6"
+ },
+ {
+ "osType": "Windows",
+ "image": "microsoft/nanoserver:10.0.14393.2485"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/examples/CapabilitiesList.json b/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/examples/CapabilitiesList.json
new file mode 100644
index 000000000000..704ac4eadce5
--- /dev/null
+++ b/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/examples/CapabilitiesList.json
@@ -0,0 +1,39 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "location": "westus",
+ "api-version": "2020-11-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "resourceType": "containerGroups",
+ "osType": "Linux",
+ "location": "West US",
+ "ipAddressType": "Public",
+ "gpu": "K80",
+ "capabilities": {
+ "maxMemoryInGB": 14,
+ "maxCpu": 4,
+ "maxGpuCount": 4
+ }
+ },
+ {
+ "resourceType": "containerGroups",
+ "osType": "Windows",
+ "location": "West US",
+ "ipAddressType": "Public",
+ "gpu": "None",
+ "capabilities": {
+ "maxMemoryInGB": 14,
+ "maxCpu": 4,
+ "maxGpuCount": 0
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/examples/ContainerExec.json b/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/examples/ContainerExec.json
new file mode 100644
index 000000000000..195e4a14a896
--- /dev/null
+++ b/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/examples/ContainerExec.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "api-version": "2020-11-01",
+ "resourceGroupName": "demo",
+ "containerGroupName": "demo1",
+ "containerName": "container1",
+ "containerExecRequest": {
+ "command": "/bin/bash",
+ "terminalSize": {
+ "rows": 12,
+ "cols": 12
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "webSocketUri": "wss://web-socket-uri",
+ "password": "password"
+ }
+ }
+ }
+}
diff --git a/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/examples/ContainerGroupUsage.json b/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/examples/ContainerGroupUsage.json
new file mode 100644
index 000000000000..8471e4616afe
--- /dev/null
+++ b/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/examples/ContainerGroupUsage.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "location": "westcentralus",
+ "api-version": "2020-11-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "unit": "Count",
+ "currentValue": 1,
+ "limit": 2000,
+ "name": {
+ "value": "ContainerGroups",
+ "localizedValue": "Container Groups"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/examples/ContainerGroupsCreateOrUpdate.json b/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/examples/ContainerGroupsCreateOrUpdate.json
new file mode 100644
index 000000000000..edcfdfd7f65c
--- /dev/null
+++ b/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/examples/ContainerGroupsCreateOrUpdate.json
@@ -0,0 +1,302 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "api-version": "2020-11-01",
+ "resourceGroupName": "demo",
+ "containerGroupName": "demo1",
+ "containerGroup": {
+ "location": "west us",
+ "identity": {
+ "type": "SystemAssigned, UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity-name": {}
+ }
+ },
+ "properties": {
+ "containers": [
+ {
+ "name": "demo1",
+ "properties": {
+ "command": [],
+ "environmentVariables": [],
+ "image": "nginx",
+ "ports": [
+ {
+ "port": 80
+ }
+ ],
+ "resources": {
+ "requests": {
+ "cpu": 1,
+ "memoryInGB": 1.5,
+ "gpu": {
+ "count": 1,
+ "sku": "K80"
+ }
+ }
+ },
+ "volumeMounts": [
+ {
+ "name": "volume1",
+ "mountPath": "/mnt/volume1",
+ "readOnly": false
+ },
+ {
+ "name": "volume2",
+ "mountPath": "/mnt/volume2",
+ "readOnly": false
+ },
+ {
+ "name": "volume3",
+ "mountPath": "/mnt/volume3",
+ "readOnly": true
+ }
+ ]
+ }
+ }
+ ],
+ "diagnostics": {
+ "logAnalytics": {
+ "workspaceId": "workspaceid",
+ "workspaceKey": "workspaceKey",
+ "logType": "ContainerInsights",
+ "metadata": {
+ "test-key": "test-metadata-value"
+ }
+ }
+ },
+ "networkProfile": {
+ "id": "test-network-profile-id"
+ },
+ "dnsConfig": {
+ "nameServers": [
+ "1.1.1.1"
+ ],
+ "searchDomains": "cluster.local svc.cluster.local",
+ "options": "ndots:2"
+ },
+ "imageRegistryCredentials": [],
+ "ipAddress": {
+ "ports": [
+ {
+ "protocol": "TCP",
+ "port": 80
+ }
+ ],
+ "type": "Public",
+ "dnsNameLabel": "dnsnamelabel1"
+ },
+ "osType": "Linux",
+ "volumes": [
+ {
+ "name": "volume1",
+ "azureFile": {
+ "shareName": "shareName",
+ "storageAccountName": "accountName",
+ "storageAccountKey": "accountKey"
+ }
+ },
+ {
+ "name": "volume2",
+ "emptyDir": {}
+ },
+ {
+ "name": "volume3",
+ "secret": {
+ "secretKey1": "SecretValue1InBase64",
+ "secretKey2": "SecretValue2InBase64"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/demo/providers/Microsoft.ContainerInstance/containerGroups/demo1",
+ "location": "WestUs",
+ "name": "demo1",
+ "properties": {
+ "containers": [
+ {
+ "name": "demo1",
+ "properties": {
+ "command": [],
+ "environmentVariables": [],
+ "image": "nginx",
+ "ports": [
+ {
+ "port": 80
+ }
+ ],
+ "resources": {
+ "requests": {
+ "cpu": 1,
+ "memoryInGB": 1.5,
+ "gpu": {
+ "count": 1,
+ "sku": "K80"
+ }
+ }
+ },
+ "volumeMounts": [
+ {
+ "name": "volume1",
+ "mountPath": "/mnt/volume1",
+ "readOnly": false
+ },
+ {
+ "name": "volume2",
+ "mountPath": "/mnt/volume2",
+ "readOnly": false
+ },
+ {
+ "name": "volume3",
+ "mountPath": "/mnt/volume3",
+ "readOnly": true
+ }
+ ]
+ }
+ }
+ ],
+ "diagnostics": {
+ "logAnalytics": {
+ "workspaceId": "workspaceid",
+ "workspaceKey": ""
+ }
+ },
+ "dnsConfig": {
+ "nameServers": [
+ "1.1.1.1"
+ ],
+ "searchDomains": "cluster.local svc.cluster.local",
+ "options": "ndots:2"
+ },
+ "imageRegistryCredentials": [],
+ "ipAddress": {
+ "ip": "10.0.0.1",
+ "ports": [
+ {
+ "port": 80,
+ "protocol": "TCP"
+ }
+ ],
+ "type": "Public",
+ "dnsNameLabel": "dnsnamelabel1",
+ "fqdn": "dnsnamelabel1.azure-container.io"
+ },
+ "osType": "Linux",
+ "provisioningState": "Succeeded",
+ "volumes": [
+ {
+ "name": "volume1",
+ "azureFile": {
+ "shareName": "shareName",
+ "storageAccountName": "accountName"
+ }
+ },
+ {
+ "name": "volume2",
+ "emptyDir": {}
+ },
+ {
+ "name": "volume3",
+ "secret": {}
+ }
+ ]
+ },
+ "type": "Microsoft.ContainerInstance/containerGroups"
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/demo/providers/Microsoft.ContainerInstance/containerGroups/demo1",
+ "location": "WestUs",
+ "name": "demo1",
+ "properties": {
+ "containers": [
+ {
+ "name": "demo1",
+ "properties": {
+ "command": [],
+ "environmentVariables": [],
+ "image": "nginx",
+ "ports": [
+ {
+ "port": 80
+ }
+ ],
+ "resources": {
+ "requests": {
+ "cpu": 1,
+ "memoryInGB": 1.5,
+ "gpu": {
+ "count": 1,
+ "sku": "K80"
+ }
+ }
+ },
+ "volumeMounts": [
+ {
+ "name": "volume1",
+ "mountPath": "/mnt/volume1",
+ "readOnly": false
+ },
+ {
+ "name": "volume2",
+ "mountPath": "/mnt/volume2",
+ "readOnly": false
+ },
+ {
+ "name": "volume3",
+ "mountPath": "/mnt/volume3",
+ "readOnly": true
+ }
+ ]
+ }
+ }
+ ],
+ "dnsConfig": {
+ "nameServers": [
+ "1.1.1.1"
+ ]
+ },
+ "imageRegistryCredentials": [],
+ "ipAddress": {
+ "ip": "10.0.0.1",
+ "ports": [
+ {
+ "port": 80,
+ "protocol": "TCP"
+ }
+ ],
+ "type": "Public",
+ "dnsNameLabel": "dnsnamelabel1",
+ "fqdn": "dnsnamelabel1.azure-container.io"
+ },
+ "osType": "Linux",
+ "provisioningState": "Succeeded",
+ "volumes": [
+ {
+ "name": "volume1",
+ "azureFile": {
+ "shareName": "shareName",
+ "storageAccountName": "accountName"
+ }
+ },
+ {
+ "name": "volume2",
+ "emptyDir": {}
+ },
+ {
+ "name": "volume3",
+ "secret": {}
+ }
+ ]
+ },
+ "type": "Microsoft.ContainerInstance/containerGroups"
+ }
+ }
+ }
+}
diff --git a/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/examples/ContainerGroupsDelete.json b/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/examples/ContainerGroupsDelete.json
new file mode 100644
index 000000000000..3e639ff47f1a
--- /dev/null
+++ b/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/examples/ContainerGroupsDelete.json
@@ -0,0 +1,78 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "api-version": "2020-11-01",
+ "resourceGroupName": "demo",
+ "containerGroupName": "demo1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/demo/providers/Microsoft.ContainerInstance/containerGroups/demo1",
+ "location": "WestUs",
+ "name": "demo1",
+ "properties": {
+ "containers": [
+ {
+ "name": "demo1",
+ "properties": {
+ "command": [],
+ "environmentVariables": [],
+ "image": "nginx",
+ "ports": [
+ {
+ "port": 80
+ }
+ ],
+ "resources": {
+ "requests": {
+ "cpu": 1,
+ "memoryInGB": 1.5
+ }
+ },
+ "volumeMounts": [
+ {
+ "mountPath": "/mnt/volume1",
+ "name": "volume1",
+ "readOnly": false
+ }
+ ]
+ }
+ }
+ ],
+ "imageRegistryCredentials": [
+ {
+ "server": "azcloudconsoleregistry.azurecr.io",
+ "username": "azcloudconsoleregistry"
+ }
+ ],
+ "ipAddress": {
+ "ip": "10.0.0.1",
+ "ports": [
+ {
+ "port": 80,
+ "protocol": "TCP"
+ }
+ ],
+ "type": "Public"
+ },
+ "osType": "Linux",
+ "provisioningState": "Succeeded",
+ "volumes": [
+ {
+ "azureFile": {
+ "readOnly": false,
+ "shareName": "share1",
+ "storageAccountName": "storage1"
+ },
+ "name": "volume1"
+ }
+ ]
+ },
+ "type": "Microsoft.ContainerInstance/containerGroups"
+ }
+ },
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/examples/ContainerGroupsGet_Failed.json b/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/examples/ContainerGroupsGet_Failed.json
new file mode 100644
index 000000000000..b14f806fa12b
--- /dev/null
+++ b/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/examples/ContainerGroupsGet_Failed.json
@@ -0,0 +1,115 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "demo",
+ "containerGroupName": "demo1",
+ "api-version": "2020-11-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/demo/providers/Microsoft.ContainerInstance/containerGroups/demo1",
+ "location": "WestUs",
+ "name": "demo1",
+ "properties": {
+ "containers": [
+ {
+ "name": "demo1",
+ "properties": {
+ "command": [],
+ "environmentVariables": [],
+ "image": "nginx",
+ "instanceView": {
+ "restartCount": 0,
+ "currentState": {
+ "state": "Waiting",
+ "startTime": "2017-08-08T00:09:10Z",
+ "detailStatus": ""
+ },
+ "events": [
+ {
+ "count": 1,
+ "firstTimestamp": "2017-08-08T00:09:01Z",
+ "lastTimestamp": "2017-08-08T00:09:01Z",
+ "message": "pulling image \"nginx\"",
+ "name": "Pulling",
+ "type": "Normal"
+ },
+ {
+ "count": 1,
+ "firstTimestamp": "2017-08-08T00:09:10Z",
+ "lastTimestamp": "2017-08-08T00:09:10Z",
+ "message": "Successfully pulled image \"nginx\"",
+ "name": "Pulled",
+ "type": "Normal"
+ }
+ ]
+ },
+ "ports": [
+ {
+ "port": 80
+ }
+ ],
+ "resources": {
+ "requests": {
+ "cpu": 1,
+ "memoryInGB": 1.5
+ }
+ },
+ "volumeMounts": [
+ {
+ "mountPath": "/mnt/volume1",
+ "name": "volume1",
+ "readOnly": false
+ }
+ ]
+ }
+ }
+ ],
+ "imageRegistryCredentials": [
+ {
+ "server": "azcloudconsoleregistry.azurecr.io",
+ "username": "azcloudconsoleregistry"
+ }
+ ],
+ "instanceView": {
+ "events": [
+ {
+ "count": 1,
+ "firstTimestamp": "2017-10-08T00:19:10Z",
+ "lastTimestamp": "2017-10-08T00:19:10Z",
+ "message": "Output: mount error(2): Permission denied",
+ "name": "FailedMount",
+ "type": "Normal"
+ }
+ ],
+ "state": "Pending"
+ },
+ "ipAddress": {
+ "ip": "10.0.0.1",
+ "ports": [
+ {
+ "port": 80,
+ "protocol": "TCP"
+ }
+ ],
+ "type": "Public"
+ },
+ "osType": "Linux",
+ "provisioningState": "Failed",
+ "volumes": [
+ {
+ "azureFile": {
+ "readOnly": false,
+ "shareName": "share1",
+ "storageAccountName": "storage1"
+ },
+ "name": "volume1"
+ }
+ ]
+ },
+ "type": "Microsoft.ContainerInstance/containerGroups"
+ }
+ }
+ }
+}
diff --git a/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/examples/ContainerGroupsGet_Succeeded.json b/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/examples/ContainerGroupsGet_Succeeded.json
new file mode 100644
index 000000000000..60f497ba4f01
--- /dev/null
+++ b/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/examples/ContainerGroupsGet_Succeeded.json
@@ -0,0 +1,76 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "demo",
+ "containerGroupName": "demo1",
+ "api-version": "2020-11-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/demo/providers/Microsoft.ContainerInstance/containerGroups/demo1",
+ "location": "WestUs",
+ "name": "demo1",
+ "properties": {
+ "containers": [
+ {
+ "name": "demo1",
+ "properties": {
+ "command": [],
+ "environmentVariables": [],
+ "image": "nginx",
+ "ports": [
+ {
+ "port": 80
+ }
+ ],
+ "resources": {
+ "requests": {
+ "cpu": 1,
+ "memoryInGB": 1.5
+ }
+ },
+ "volumeMounts": [
+ {
+ "mountPath": "/mnt/volume1",
+ "name": "volume1",
+ "readOnly": false
+ }
+ ]
+ }
+ }
+ ],
+ "imageRegistryCredentials": [
+ {
+ "server": "azcloudconsoleregistry.azurecr.io",
+ "username": "azcloudconsoleregistry"
+ }
+ ],
+ "ipAddress": {
+ "ip": "10.0.0.1",
+ "ports": [
+ {
+ "port": 80,
+ "protocol": "TCP"
+ }
+ ],
+ "type": "Public"
+ },
+ "osType": "Linux",
+ "provisioningState": "Succeeded",
+ "volumes": [
+ {
+ "azureFile": {
+ "readOnly": false,
+ "shareName": "share1",
+ "storageAccountName": "storage1"
+ },
+ "name": "volume1"
+ }
+ ]
+ },
+ "type": "Microsoft.ContainerInstance/containerGroups"
+ }
+ }
+ }
+}
diff --git a/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/examples/ContainerGroupsList.json b/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/examples/ContainerGroupsList.json
new file mode 100644
index 000000000000..60d913df6f16
--- /dev/null
+++ b/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/examples/ContainerGroupsList.json
@@ -0,0 +1,87 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "api-version": "2020-11-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/demo/providers/Microsoft.ContainerInstance/containerGroups/demo1",
+ "location": "WestUs",
+ "name": "demo1",
+ "properties": {
+ "containers": [
+ {
+ "name": "demo1",
+ "properties": {
+ "command": [],
+ "environmentVariables": [],
+ "image": "nginx",
+ "instanceView": {
+ "restartCount": 0,
+ "currentState": {
+ "state": "Running",
+ "startTime": "2017-10-17T17:27:21Z",
+ "detailStatus": ""
+ },
+ "events": []
+ },
+ "ports": [
+ {
+ "port": 80
+ }
+ ],
+ "resources": {
+ "requests": {
+ "cpu": 1,
+ "memoryInGB": 1.5
+ }
+ },
+ "volumeMounts": [
+ {
+ "mountPath": "/mnt/volume1",
+ "name": "volume1",
+ "readOnly": false
+ }
+ ]
+ }
+ }
+ ],
+ "imageRegistryCredentials": [
+ {
+ "server": "azcloudconsoleregistry.azurecr.io",
+ "username": "azcloudconsoleregistry"
+ }
+ ],
+ "ipAddress": {
+ "ip": "10.0.0.1",
+ "ports": [
+ {
+ "port": 80,
+ "protocol": "TCP"
+ }
+ ],
+ "type": "Public"
+ },
+ "osType": "Linux",
+ "provisioningState": "Succeeded",
+ "volumes": [
+ {
+ "azureFile": {
+ "readOnly": false,
+ "shareName": "share1",
+ "storageAccountName": "storage1"
+ },
+ "name": "volume1"
+ }
+ ]
+ },
+ "type": "Microsoft.ContainerInstance/containerGroups"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/examples/ContainerGroupsListByResourceGroup.json b/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/examples/ContainerGroupsListByResourceGroup.json
new file mode 100644
index 000000000000..4060ad090d41
--- /dev/null
+++ b/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/examples/ContainerGroupsListByResourceGroup.json
@@ -0,0 +1,79 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "demo",
+ "api-version": "2020-11-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/demo/providers/Microsoft.ContainerInstance/containerGroups/demo1",
+ "location": "WestUs",
+ "name": "demo1",
+ "properties": {
+ "containers": [
+ {
+ "name": "demo1",
+ "properties": {
+ "command": [],
+ "environmentVariables": [],
+ "image": "nginx",
+ "ports": [
+ {
+ "port": 80
+ }
+ ],
+ "resources": {
+ "requests": {
+ "cpu": 1,
+ "memoryInGB": 1.5
+ }
+ },
+ "volumeMounts": [
+ {
+ "mountPath": "/mnt/volume1",
+ "name": "volume1",
+ "readOnly": false
+ }
+ ]
+ }
+ }
+ ],
+ "imageRegistryCredentials": [
+ {
+ "server": "azcloudconsoleregistry.azurecr.io",
+ "username": "azcloudconsoleregistry"
+ }
+ ],
+ "ipAddress": {
+ "ip": "10.0.0.1",
+ "ports": [
+ {
+ "port": 80,
+ "protocol": "TCP"
+ }
+ ],
+ "type": "Public"
+ },
+ "osType": "Linux",
+ "provisioningState": "Succeeded",
+ "volumes": [
+ {
+ "azureFile": {
+ "readOnly": false,
+ "shareName": "share1",
+ "storageAccountName": "storage1"
+ },
+ "name": "volume1"
+ }
+ ]
+ },
+ "type": "Microsoft.ContainerInstance/containerGroups"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/examples/ContainerGroupsRestart.json b/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/examples/ContainerGroupsRestart.json
new file mode 100644
index 000000000000..ec725c948b4a
--- /dev/null
+++ b/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/examples/ContainerGroupsRestart.json
@@ -0,0 +1,11 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "api-version": "2020-11-01",
+ "resourceGroupName": "demo",
+ "containerGroupName": "demo1"
+ },
+ "responses": {
+ "204": {}
+ }
+}
diff --git a/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/examples/ContainerGroupsStart.json b/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/examples/ContainerGroupsStart.json
new file mode 100644
index 000000000000..ec725c948b4a
--- /dev/null
+++ b/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/examples/ContainerGroupsStart.json
@@ -0,0 +1,11 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "api-version": "2020-11-01",
+ "resourceGroupName": "demo",
+ "containerGroupName": "demo1"
+ },
+ "responses": {
+ "204": {}
+ }
+}
diff --git a/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/examples/ContainerGroupsStop.json b/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/examples/ContainerGroupsStop.json
new file mode 100644
index 000000000000..ec725c948b4a
--- /dev/null
+++ b/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/examples/ContainerGroupsStop.json
@@ -0,0 +1,11 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "api-version": "2020-11-01",
+ "resourceGroupName": "demo",
+ "containerGroupName": "demo1"
+ },
+ "responses": {
+ "204": {}
+ }
+}
diff --git a/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/examples/ContainerGroupsUpdate.json b/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/examples/ContainerGroupsUpdate.json
new file mode 100644
index 000000000000..7327dba01f6b
--- /dev/null
+++ b/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/examples/ContainerGroupsUpdate.json
@@ -0,0 +1,100 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "api-version": "2020-11-01",
+ "resourceGroupName": "demoResource",
+ "containerGroupName": "demo1",
+ "Resource": {
+ "tags": {
+ "tag1key": "tag1Value",
+ "tag2key": "tag2Value"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/demoResource/providers/Microsoft.ContainerInstance/containerGroups/demo1",
+ "location": "WestUs",
+ "name": "demo1",
+ "type": "Microsoft.ContainerInstance/containerGroups",
+ "tags": {
+ "tag1key": "tag1Value",
+ "tag2key": "tag2Value"
+ },
+ "properties": {
+ "containers": [
+ {
+ "name": "demo1",
+ "properties": {
+ "command": [],
+ "environmentVariables": [],
+ "image": "nginx",
+ "ports": [
+ {
+ "port": 80
+ }
+ ],
+ "resources": {
+ "requests": {
+ "cpu": 1,
+ "memoryInGB": 1.5
+ }
+ },
+ "volumeMounts": [
+ {
+ "name": "volume1",
+ "mountPath": "/mnt/volume1",
+ "readOnly": false
+ },
+ {
+ "name": "volume2",
+ "mountPath": "/mnt/volume2",
+ "readOnly": false
+ },
+ {
+ "name": "volume3",
+ "mountPath": "/mnt/volume3",
+ "readOnly": true
+ }
+ ]
+ }
+ }
+ ],
+ "imageRegistryCredentials": [],
+ "ipAddress": {
+ "ip": "10.0.0.1",
+ "ports": [
+ {
+ "port": 80,
+ "protocol": "TCP"
+ }
+ ],
+ "type": "Public",
+ "dnsNameLabel": "dnsnamelabel1",
+ "fqdn": "dnsnamelabel1.azure-container.io"
+ },
+ "osType": "Linux",
+ "provisioningState": "Succeeded",
+ "volumes": [
+ {
+ "name": "volume1",
+ "azureFile": {
+ "shareName": "shareName",
+ "storageAccountName": "accountName"
+ }
+ },
+ {
+ "name": "volume2",
+ "emptyDir": {}
+ },
+ {
+ "name": "volume3",
+ "secret": {}
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/examples/ContainerListLogs.json b/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/examples/ContainerListLogs.json
new file mode 100644
index 000000000000..6d8efcce7bff
--- /dev/null
+++ b/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/examples/ContainerListLogs.json
@@ -0,0 +1,17 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "api-version": "2020-11-01",
+ "resourceGroupName": "demo",
+ "containerGroupName": "demo1",
+ "containerName": "container1",
+ "tail": 10
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "content": "log content"
+ }
+ }
+ }
+}
diff --git a/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/examples/OperationsList.json b/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/examples/OperationsList.json
new file mode 100644
index 000000000000..964eb505c0c3
--- /dev/null
+++ b/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/stable/2020-11-01/examples/OperationsList.json
@@ -0,0 +1,23 @@
+{
+ "parameters": {
+ "api-version": "2020-11-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "Microsoft.ContainerInstance/containerGroups/read",
+ "display": {
+ "provider": "Microsoft Container Instance",
+ "resource": "Container Group",
+ "operation": "Get Container Groups",
+ "description": "Get all container goups."
+ },
+ "origin": "User"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/containerinstance/resource-manager/readme.md b/specification/containerinstance/resource-manager/readme.md
index f2c0f633cb1a..ef06775fa2c4 100644
--- a/specification/containerinstance/resource-manager/readme.md
+++ b/specification/containerinstance/resource-manager/readme.md
@@ -26,15 +26,23 @@ These are the global settings for the ContainerInstance API.
``` yaml
openapi-type: arm
-tag: package-2019-12
+tag: package-2020-11
```
+### Tag: package-2020-11
+
+These settings apply only when `--tag=package-2020-11` is specified on the command line.
+
+```yaml $(tag) == 'package-2020-11'
+input-file:
+ - Microsoft.ContainerInstance/stable/2020-11-01/containerInstance.json
+```
### Tag: package-2019-12
These settings apply only when `--tag=package-2019-12` is specified on the command line.
-```yaml $(tag) == 'package-2019-12'
+``` yaml $(tag) == 'package-2019-12'
input-file:
- Microsoft.ContainerInstance/stable/2019-12-01/containerInstance.json
```
@@ -173,8 +181,6 @@ See configuration in [readme.ruby.md](./readme.ruby.md)
See configuration in [readme.typescript.md](./readme.typescript.md)
-
## AzureResourceSchema
See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
-
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-11-01/managedClusters.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-11-01/managedClusters.json
index 0be553652cb2..b44df8600c26 100644
--- a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-11-01/managedClusters.json
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-11-01/managedClusters.json
@@ -1953,6 +1953,7 @@
"identityProfile": {
"additionalProperties": {
"readOnly": true,
+ "x-ms-client-name": "managedClusterPropertiesIdentityProfileValue",
"allOf": [
{
"$ref": "#/definitions/UserAssignedIdentity"
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-01-01/managedClusters.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-01-01/managedClusters.json
index 9052f5a6c66f..1c6015442cd7 100644
--- a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-01-01/managedClusters.json
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-01-01/managedClusters.json
@@ -1957,6 +1957,7 @@
"identityProfile": {
"additionalProperties": {
"readOnly": true,
+ "x-ms-client-name": "managedClusterPropertiesIdentityProfileValue",
"allOf": [
{
"$ref": "#/definitions/UserAssignedIdentity"
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-02-01/managedClusters.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-02-01/managedClusters.json
index 4572d2dec90e..7db9c1f6ae29 100644
--- a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-02-01/managedClusters.json
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-02-01/managedClusters.json
@@ -2006,6 +2006,7 @@
"identityProfile": {
"additionalProperties": {
"readOnly": true,
+ "x-ms-client-name": "managedClusterPropertiesIdentityProfileValue",
"allOf": [
{
"$ref": "#/definitions/UserAssignedIdentity"
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-03-01/managedClusters.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-03-01/managedClusters.json
index 772ab033df01..1a5e30ed6674 100644
--- a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-03-01/managedClusters.json
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-03-01/managedClusters.json
@@ -1896,6 +1896,7 @@
"$ref": "#/definitions/Resource"
},
{
+ "x-ms-client-name": "BaseManagedCluster",
"properties": {
"properties": {
"description": "Properties of a managed cluster.",
@@ -2031,6 +2032,7 @@
"identityProfile": {
"additionalProperties": {
"readOnly": true,
+ "x-ms-client-name": "managedClusterPropertiesIdentityProfileValue",
"allOf": [
{
"$ref": "#/definitions/UserAssignedIdentity"
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-04-01/managedClusters.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-04-01/managedClusters.json
index 3a813866b029..5949af0c20ca 100644
--- a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-04-01/managedClusters.json
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-04-01/managedClusters.json
@@ -1914,6 +1914,7 @@
"$ref": "#/definitions/Resource"
},
{
+ "x-ms-client-name": "BaseManagedCluster",
"properties": {
"properties": {
"description": "Properties of a managed cluster.",
@@ -2049,6 +2050,7 @@
"identityProfile": {
"additionalProperties": {
"readOnly": true,
+ "x-ms-client-name": "managedClusterPropertiesIdentityProfileValue",
"allOf": [
{
"$ref": "#/definitions/UserAssignedIdentity"
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-06-01/managedClusters.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-06-01/managedClusters.json
index b953c50c7963..3c38950a3bf6 100644
--- a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-06-01/managedClusters.json
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-06-01/managedClusters.json
@@ -2126,6 +2126,7 @@
"$ref": "#/definitions/Resource"
},
{
+ "x-ms-client-name": "BaseManagedCluster",
"properties": {
"properties": {
"description": "Properties of a managed cluster.",
@@ -2261,6 +2262,7 @@
"identityProfile": {
"additionalProperties": {
"readOnly": true,
+ "x-ms-client-name": "managedClusterPropertiesIdentityProfileValue",
"allOf": [
{
"$ref": "#/definitions/UserAssignedIdentity"
@@ -2317,6 +2319,7 @@
"type": "object",
"additionalProperties": {
"type": "object",
+ "x-ms-client-name": "ManagedClusterIdentityUserAssignedIdentitiesValue",
"properties": {
"principalId": {
"readOnly": true,
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/managedClusters.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/managedClusters.json
index d1c2f34c1d52..256425b5f329 100644
--- a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/managedClusters.json
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/managedClusters.json
@@ -2196,6 +2196,7 @@
"$ref": "#/definitions/Resource"
},
{
+ "x-ms-client-name": "BaseManagedCluster",
"properties": {
"properties": {
"description": "Properties of a managed cluster.",
@@ -2331,9 +2332,11 @@
"identityProfile": {
"additionalProperties": {
"readOnly": true,
+ "x-ms-client-name": "managedClusterPropertiesIdentityProfileValue",
"allOf": [
{
- "$ref": "#/definitions/UserAssignedIdentity"
+ "$ref": "#/definitions/UserAssignedIdentity",
+ "x-ms-client-name": "managedClusterPropertiesIdentityProfileValue"
}
]
},
@@ -2387,6 +2390,7 @@
"type": "object",
"additionalProperties": {
"type": "object",
+ "x-ms-client-name": "ManagedClusterIdentityUserAssignedIdentitiesValue",
"properties": {
"principalId": {
"readOnly": true,
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/managedClusters.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/managedClusters.json
index aa5a00d3e6c5..9efdbb35b3b7 100644
--- a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/managedClusters.json
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/managedClusters.json
@@ -2391,6 +2391,7 @@
"$ref": "#/definitions/Resource"
},
{
+ "x-ms-client-name": "BaseManagedCluster",
"properties": {
"properties": {
"description": "Properties of a managed cluster.",
@@ -2561,6 +2562,7 @@
"identityProfile": {
"additionalProperties": {
"readOnly": true,
+ "x-ms-client-name": "managedClusterPropertiesIdentityProfileValue",
"allOf": [
{
"$ref": "#/definitions/UserAssignedIdentity"
@@ -2634,6 +2636,7 @@
"type": "object",
"additionalProperties": {
"type": "object",
+ "x-ms-client-name": "ManagedClusterIdentityUserAssignedIdentitiesValue",
"properties": {
"principalId": {
"readOnly": true,
diff --git a/specification/containerservice/resource-manager/readme.md b/specification/containerservice/resource-manager/readme.md
index b24570f6bfd1..678212247201 100644
--- a/specification/containerservice/resource-manager/readme.md
+++ b/specification/containerservice/resource-manager/readme.md
@@ -547,9 +547,11 @@ This is not used by Autorest itself.
``` yaml $(swagger-to-sdk)
swagger-to-sdk:
+
- repo: azure-sdk-for-python
after_scripts:
- python ./scripts/multiapi_init_gen.py azure-mgmt-containerservice
+ - repo: azure-sdk-for-python-track2
- repo: azure-sdk-for-java
- repo: azure-sdk-for-go
- repo: azure-sdk-for-js
diff --git a/specification/containerservice/resource-manager/readme.python.md b/specification/containerservice/resource-manager/readme.python.md
index 7a02ff59401b..fac4cac743a5 100644
--- a/specification/containerservice/resource-manager/readme.python.md
+++ b/specification/containerservice/resource-manager/readme.python.md
@@ -2,7 +2,7 @@
These settings apply only when `--python` is specified on the command line.
-```yaml $(python)
+```yaml $(python) && !$(track2)
python:
azure-arm: true
license-header: MICROSOFT_MIT_NO_VERSION
@@ -12,11 +12,43 @@ python:
no-namespace-folders: true
```
+```yaml $(python) && $(track2)
+azure-arm: true
+license-header: MICROSOFT_MIT_NO_VERSION
+package-name: azure-mgmt-containerservice
+clear-output-folder: true
+no-namespace-folders: true
+```
+
### Python multi-api
Generate all API versions currently shipped for this package
-```yaml $(python) && $(multiapi)
+```yaml $(python) && $(multiapi) && !$(track2)
+batch:
+ - tag: package-2020-09-01-only
+ - tag: package-2020-07-01-only
+ - tag: package-2020-06-01-only
+ - tag: package-2020-04-01-only
+ - tag: package-2020-03-01-only
+ - tag: package-2020-02-01-only
+ - tag: package-2020-01-01-only
+ - tag: package-2019-11-01-only
+ - tag: package-2019-10-27-preview-only
+ - tag: package-2019-10-01-only
+ - tag: package-2019-08-01-only
+ - tag: package-2019-06-01-only
+ - tag: package-2019-04-30-only
+ - tag: package-2019-04-01-only
+ - tag: package-2019-02-only
+ - tag: package-2018-09-preview-only
+ - tag: package-2019-09-preview-only
+ - tag: package-2018-08-preview-only
+ - tag: package-2018-03-only
+ - tag: package-2017-07-only-extended
+```
+
+```yaml $(python) && $(multiapi) && $(track2)
batch:
- tag: package-2020-09-01-only
- tag: package-2020-07-01-only
@@ -38,8 +70,15 @@ batch:
- tag: package-2018-08-preview-only
- tag: package-2018-03-only
- tag: package-2017-07-only-extended
+ - multiapiscript: true
```
+``` yaml $(multiapiscript)
+output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/
+clear-output-folder: false
+perform-load: false
+```
+
### Tag: package-2020-09-01-only and python
These settings apply only when `--tag=package-2020-09-01-only --python` is specified on the command line.
@@ -49,6 +88,8 @@ Please also specify `--python-sdks-folder=`.
``` yaml $(tag) == 'package-2020-06-01-only' && $(python)
+namespace: azure.mgmt.containerservice.v2020_06_01
+output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2020_06_01
python:
namespace: azure.mgmt.containerservice.v2020_06_01
output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2020_06_01
@@ -79,6 +124,8 @@ These settings apply only when `--tag=package-2020-04-01-only --python` is speci
Please also specify `--python-sdks-folder=`.
``` yaml $(tag) == 'package-2020-04-01-only' && $(python)
+namespace: azure.mgmt.containerservice.v2020_04_01
+output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2020_04_01
python:
namespace: azure.mgmt.containerservice.v2020_04_01
output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2020_04_01
@@ -90,6 +137,8 @@ These settings apply only when `--tag=package-2020-03-01-only --python` is speci
Please also specify `--python-sdks-folder=`.
``` yaml $(tag) == 'package-2020-03-01-only' && $(python)
+namespace: azure.mgmt.containerservice.v2020_03_01
+output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2020_03_01
python:
namespace: azure.mgmt.containerservice.v2020_03_01
output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2020_03_01
@@ -101,6 +150,8 @@ These settings apply only when `--tag=package-2020-02-01-only --python` is speci
Please also specify `--python-sdks-folder=`.
``` yaml $(tag) == 'package-2020-02-01-only' && $(python)
+namespace: azure.mgmt.containerservice.v2020_02_01
+output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2020_02_01
python:
namespace: azure.mgmt.containerservice.v2020_02_01
output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2020_02_01
@@ -112,6 +163,8 @@ These settings apply only when `--tag=package-2020-01-01-only --python` is speci
Please also specify `--python-sdks-folder=`.
``` yaml $(tag) == 'package-2020-01-01-only' && $(python)
+namespace: azure.mgmt.containerservice.v2020_01_01
+output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2020_01_01
python:
namespace: azure.mgmt.containerservice.v2020_01_01
output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2020_01_01
@@ -123,6 +176,8 @@ These settings apply only when `--tag=package-2019-11-01-only --python` is speci
Please also specify `--python-sdks-folder=`.
``` yaml $(tag) == 'package-2019-11-01-only' && $(python)
+namespace: azure.mgmt.containerservice.v2019_11_01
+output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2019_11_01
python:
namespace: azure.mgmt.containerservice.v2019_11_01
output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2019_11_01
@@ -134,6 +189,8 @@ These settings apply only when `--tag=package-2019-10-27-preview-only --python`
Please also specify `--python-sdks-folder=`.
``` yaml $(tag) == 'package-2019-10-27-preview-only' && $(python)
+namespace: azure.mgmt.containerservice.v2019_10_27_preview
+output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2019_10_27_preview
python:
namespace: azure.mgmt.containerservice.v2019_10_27_preview
output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2019_10_27_preview
@@ -145,6 +202,8 @@ These settings apply only when `--tag=package-2019-10-01-only --python` is speci
Please also specify `--python-sdks-folder=`.
``` yaml $(tag) == 'package-2019-10-01-only' && $(python)
+namespace: azure.mgmt.containerservice.v2019_10_01
+output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2019_10_01
python:
namespace: azure.mgmt.containerservice.v2019_10_01
output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2019_10_01
@@ -156,6 +215,8 @@ These settings apply only when `--tag=package-2019-08-01-only --python` is speci
Please also specify `--python-sdks-folder=`.
``` yaml $(tag) == 'package-2019-08-01-only' && $(python)
+namespace: azure.mgmt.containerservice.v2019_08_01
+output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2019_08_01
python:
namespace: azure.mgmt.containerservice.v2019_08_01
output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2019_08_01
@@ -167,6 +228,8 @@ These settings apply only when `--tag=package-2019-06-01-only --python` is speci
Please also specify `--python-sdks-folder=`.
``` yaml $(tag) == 'package-2019-06-01-only' && $(python)
+namespace: azure.mgmt.containerservice.v2019_06_01
+output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2019_06_01
python:
namespace: azure.mgmt.containerservice.v2019_06_01
output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2019_06_01
@@ -178,6 +241,8 @@ These settings apply only when `--tag=package-2019-04-30-only --python` is speci
Please also specify `--python-sdks-folder=`.
``` yaml $(tag) == 'package-2019-04-30-only' && $(python)
+namespace: azure.mgmt.containerservice.v2019_04_30
+output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2019_04_30
python:
namespace: azure.mgmt.containerservice.v2019_04_30
output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2019_04_30
@@ -189,6 +254,8 @@ These settings apply only when `--tag=package-2019-04-01-only --python` is speci
Please also specify `--python-sdks-folder=`.
``` yaml $(tag) == 'package-2019-04-01-only' && $(python)
+namespace: azure.mgmt.containerservice.v2019_04_01
+output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2019_04_01
python:
namespace: azure.mgmt.containerservice.v2019_04_01
output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2019_04_01
@@ -200,6 +267,8 @@ These settings apply only when `--tag=package-2019-02-only --python` is specifie
Please also specify `--python-sdks-folder=`.
``` yaml $(tag) == 'package-2019-02-only' && $(python)
+namespace: azure.mgmt.containerservice.v2019_02_01
+output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2019_02_01
python:
namespace: azure.mgmt.containerservice.v2019_02_01
output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2019_02_01
@@ -211,6 +280,8 @@ These settings apply only when `--tag=package-2018-09-preview-only --python` is
Please also specify `--python-sdks-folder=`.
``` yaml $(tag) == 'package-2018-09-preview-only' && $(python)
+namespace: azure.mgmt.containerservice.v2018_09_30_preview
+output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2018_09_30_preview
python:
namespace: azure.mgmt.containerservice.v2018_09_30_preview
output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2018_09_30_preview
@@ -222,6 +293,8 @@ These settings apply only when `--tag=package-2018-08-preview-only --python` is
Please also specify `--python-sdks-folder=`.
``` yaml $(tag) == 'package-2018-08-preview-only' && $(python)
+namespace: azure.mgmt.containerservice.v2018_08_01_preview
+output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2018_08_01_preview
python:
namespace: azure.mgmt.containerservice.v2018_08_01_preview
output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2018_08_01_preview
@@ -233,6 +306,8 @@ These settings apply only when `--tag=package-2018-03-only --python` is specifie
Please also specify `--python-sdks-folder=`.
``` yaml $(tag) == 'package-2018-03-only' && $(python)
+namespace: azure.mgmt.containerservice.v2018_03_31
+output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2018_03_31
python:
namespace: azure.mgmt.containerservice.v2018_03_31
output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2018_03_31
@@ -244,6 +319,8 @@ These settings apply only when `--tag=package-2017-07-only-extended --python` is
Please also specify `--python-sdks-folder=`.
``` yaml $(tag) == 'package-2017-07-only-extended' && $(python)
+namespace: azure.mgmt.containerservice.v2017_07_01
+output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2017_07_01
python:
namespace: azure.mgmt.containerservice.v2017_07_01
output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2017_07_01
@@ -255,6 +332,8 @@ These settings apply only when `--tag=package-2019-09-preview-only --python` is
Please also specify `--python-sdks-folder=`.
``` yaml $(tag) == 'package-2019-09-preview-only' && $(python)
+namespace: azure.mgmt.containerservice.v2019_09_30_preview
+output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2019_09_30_preview
python:
namespace: azure.mgmt.containerservice.v2019_09_30_preview
output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2019_09_30_preview
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2019-08-01/cosmos-db.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2019-08-01/cosmos-db.json
index 24cfa490f52e..cebdcb22a9cb 100644
--- a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2019-08-01/cosmos-db.json
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2019-08-01/cosmos-db.json
@@ -45,7 +45,7 @@
"description": "Retrieves the properties of an existing Azure Cosmos DB database account.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -77,7 +77,7 @@
"x-ms-long-running-operation": true,
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -121,7 +121,7 @@
"x-ms-long-running-operation": true,
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -162,7 +162,7 @@
"x-ms-long-running-operation": true,
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -196,7 +196,7 @@
"x-ms-long-running-operation": true,
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -241,7 +241,7 @@
"$ref": "#/parameters/apiVersionParameter"
},
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -274,7 +274,7 @@
"$ref": "#/parameters/apiVersionParameter"
},
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -301,7 +301,7 @@
"description": "Lists the access keys for the specified Azure Cosmos DB database account.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -337,7 +337,7 @@
"description": "Lists the connection strings for the specified Azure Cosmos DB database account.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -371,7 +371,7 @@
"x-ms-long-running-operation": true,
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -420,7 +420,7 @@
"x-ms-long-running-operation": true,
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -468,7 +468,7 @@
"description": "Lists the read-only access keys for the specified Azure Cosmos DB database account.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -499,7 +499,7 @@
"description": "Lists the read-only access keys for the specified Azure Cosmos DB database account.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -533,7 +533,7 @@
"x-ms-long-running-operation": true,
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -635,7 +635,7 @@
"description": "Retrieves the metrics determined by the given filter for the given database account.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -674,7 +674,7 @@
"description": "Retrieves the metrics determined by the given filter for the given database account and database.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -716,7 +716,7 @@
"description": "Retrieves the metrics determined by the given filter for the given database account and collection.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -761,7 +761,7 @@
"description": "Retrieves the metrics determined by the given filter for the given database account, collection and region.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -809,7 +809,7 @@
"description": "Retrieves the metrics determined by the given filter for the given database account and region.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -851,7 +851,7 @@
"description": "Retrieves the metrics determined by the given filter for the given account, source and target region. This url is only for PBS and Replication Latency data",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -896,7 +896,7 @@
"description": "Retrieves the metrics determined by the given filter for the given account target region. This url is only for PBS and Replication Latency data",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -938,7 +938,7 @@
"description": "Retrieves the metrics determined by the given filter for the given database account. This url is only for PBS and Replication Latency data",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -977,7 +977,7 @@
"description": "Retrieves the metrics determined by the given filter for the given collection and region, split by partition.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -1025,7 +1025,7 @@
"description": "Retrieves the metrics determined by the given filter for the given collection, split by partition.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -1070,7 +1070,7 @@
"description": "Retrieves the metrics determined by the given filter for the given partition key range id.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -1118,7 +1118,7 @@
"description": "Retrieves the metrics determined by the given filter for the given partition key range id and region.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -1166,7 +1166,7 @@
"description": "Retrieves the usages (most recent data) for the given database account.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -1205,7 +1205,7 @@
"description": "Retrieves the usages (most recent data) for the given database.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -1247,7 +1247,7 @@
"description": "Retrieves the usages (most recent storage data) for the given collection.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -1292,7 +1292,7 @@
"description": "Retrieves the usages (most recent storage data) for the given collection, split by partition.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -1337,7 +1337,7 @@
"description": "Retrieves metric definitions for the given database.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -1376,7 +1376,7 @@
"description": "Retrieves metric definitions for the given collection.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -1418,7 +1418,7 @@
"description": "Retrieves metric definitions for the given database account.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -1454,7 +1454,7 @@
"description": "Lists the SQL databases under an existing Azure Cosmos DB database account.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -1490,7 +1490,7 @@
"description": "Gets the SQL database under an existing Azure Cosmos DB database account with the provided name.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -1525,7 +1525,7 @@
"x-ms-long-running-operation": true,
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -1572,7 +1572,7 @@
"x-ms-long-running-operation": true,
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -1608,7 +1608,7 @@
"description": "Gets the RUs per second of the SQL database under an existing Azure Cosmos DB database account with the provided name.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -1643,7 +1643,7 @@
"x-ms-long-running-operation": true,
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -1691,7 +1691,7 @@
"description": "Lists the SQL container under an existing Azure Cosmos DB database account.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -1730,7 +1730,7 @@
"description": "Gets the SQL container under an existing Azure Cosmos DB database account.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -1768,7 +1768,7 @@
"x-ms-long-running-operation": true,
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -1818,7 +1818,7 @@
"x-ms-long-running-operation": true,
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -1857,7 +1857,7 @@
"description": "Gets the RUs per second of the SQL container under an existing Azure Cosmos DB database account.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -1895,7 +1895,7 @@
"x-ms-long-running-operation": true,
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -1946,7 +1946,7 @@
"description": "Lists the SQL storedProcedure under an existing Azure Cosmos DB database account.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -1988,7 +1988,7 @@
"description": "Gets the SQL storedProcedure under an existing Azure Cosmos DB database account.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -2029,7 +2029,7 @@
"x-ms-long-running-operation": true,
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -2082,7 +2082,7 @@
"x-ms-long-running-operation": true,
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -2124,7 +2124,7 @@
"description": "Lists the SQL userDefinedFunction under an existing Azure Cosmos DB database account.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -2166,7 +2166,7 @@
"description": "Gets the SQL userDefinedFunction under an existing Azure Cosmos DB database account.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -2207,7 +2207,7 @@
"x-ms-long-running-operation": true,
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -2260,7 +2260,7 @@
"x-ms-long-running-operation": true,
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -2302,7 +2302,7 @@
"description": "Lists the SQL trigger under an existing Azure Cosmos DB database account.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -2344,7 +2344,7 @@
"description": "Gets the SQL trigger under an existing Azure Cosmos DB database account.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -2385,7 +2385,7 @@
"x-ms-long-running-operation": true,
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -2438,7 +2438,7 @@
"x-ms-long-running-operation": true,
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -2480,7 +2480,7 @@
"description": "Lists the MongoDB databases under an existing Azure Cosmos DB database account.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -2516,7 +2516,7 @@
"description": "Gets the MongoDB databases under an existing Azure Cosmos DB database account with the provided name.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -2551,7 +2551,7 @@
"x-ms-long-running-operation": true,
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -2598,7 +2598,7 @@
"x-ms-long-running-operation": true,
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -2634,7 +2634,7 @@
"description": "Gets the RUs per second of the MongoDB database under an existing Azure Cosmos DB database account with the provided name.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -2669,7 +2669,7 @@
"x-ms-long-running-operation": true,
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -2717,7 +2717,7 @@
"description": "Lists the MongoDB collection under an existing Azure Cosmos DB database account.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -2756,7 +2756,7 @@
"description": "Gets the MongoDB collection under an existing Azure Cosmos DB database account.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -2794,7 +2794,7 @@
"x-ms-long-running-operation": true,
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -2844,7 +2844,7 @@
"x-ms-long-running-operation": true,
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -2883,7 +2883,7 @@
"description": "Gets the RUs per second of the MongoDB collection under an existing Azure Cosmos DB database account with the provided name.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -2921,7 +2921,7 @@
"x-ms-long-running-operation": true,
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -2972,7 +2972,7 @@
"description": "Lists the Tables under an existing Azure Cosmos DB database account.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -3008,7 +3008,7 @@
"description": "Gets the Tables under an existing Azure Cosmos DB database account with the provided name.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -3043,7 +3043,7 @@
"x-ms-long-running-operation": true,
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -3090,7 +3090,7 @@
"x-ms-long-running-operation": true,
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -3126,7 +3126,7 @@
"description": "Gets the RUs per second of the Table under an existing Azure Cosmos DB database account with the provided name.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -3161,7 +3161,7 @@
"x-ms-long-running-operation": true,
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -3209,7 +3209,7 @@
"description": "Lists the Cassandra keyspaces under an existing Azure Cosmos DB database account.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -3245,7 +3245,7 @@
"description": "Gets the Cassandra keyspaces under an existing Azure Cosmos DB database account with the provided name.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -3280,7 +3280,7 @@
"x-ms-long-running-operation": true,
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -3327,7 +3327,7 @@
"x-ms-long-running-operation": true,
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -3363,7 +3363,7 @@
"description": "Gets the RUs per second of the Cassandra Keyspace under an existing Azure Cosmos DB database account with the provided name.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -3398,7 +3398,7 @@
"x-ms-long-running-operation": true,
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -3446,7 +3446,7 @@
"description": "Lists the Cassandra table under an existing Azure Cosmos DB database account.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -3485,7 +3485,7 @@
"description": "Gets the Cassandra table under an existing Azure Cosmos DB database account.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -3523,7 +3523,7 @@
"x-ms-long-running-operation": true,
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -3573,7 +3573,7 @@
"x-ms-long-running-operation": true,
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -3612,7 +3612,7 @@
"description": "Gets the RUs per second of the Cassandra table under an existing Azure Cosmos DB database account with the provided name.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -3650,7 +3650,7 @@
"x-ms-long-running-operation": true,
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -3701,7 +3701,7 @@
"description": "Lists the Gremlin databases under an existing Azure Cosmos DB database account.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -3737,7 +3737,7 @@
"description": "Gets the Gremlin databases under an existing Azure Cosmos DB database account with the provided name.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -3772,7 +3772,7 @@
"x-ms-long-running-operation": true,
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -3819,7 +3819,7 @@
"x-ms-long-running-operation": true,
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -3855,7 +3855,7 @@
"description": "Gets the RUs per second of the Gremlin database under an existing Azure Cosmos DB database account with the provided name.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -3890,7 +3890,7 @@
"x-ms-long-running-operation": true,
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -3938,7 +3938,7 @@
"description": "Lists the Gremlin graph under an existing Azure Cosmos DB database account.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -3977,7 +3977,7 @@
"description": "Gets the Gremlin graph under an existing Azure Cosmos DB database account.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -4015,7 +4015,7 @@
"x-ms-long-running-operation": true,
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -4065,7 +4065,7 @@
"x-ms-long-running-operation": true,
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -4104,7 +4104,7 @@
"description": "Gets the Gremlin graph throughput under an existing Azure Cosmos DB database account with the provided name.",
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -4142,7 +4142,7 @@
"x-ms-long-running-operation": true,
"parameters": [
{
- "$ref": "#/parameters/subscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/resourceGroupNameParameter"
@@ -7035,13 +7035,6 @@
}
},
"parameters": {
- "subscriptionIdParameter": {
- "name": "subscriptionId",
- "in": "path",
- "description": "Azure subscription ID.",
- "required": true,
- "type": "string"
- },
"apiVersionParameter": {
"name": "api-version",
"in": "query",
diff --git a/specification/cost-management/resource-manager/Microsoft.CostManagement/stable/2019-11-01/costmanagement.json b/specification/cost-management/resource-manager/Microsoft.CostManagement/stable/2019-11-01/costmanagement.json
index 16f9d8c22663..fe19fb417e7f 100644
--- a/specification/cost-management/resource-manager/Microsoft.CostManagement/stable/2019-11-01/costmanagement.json
+++ b/specification/cost-management/resource-manager/Microsoft.CostManagement/stable/2019-11-01/costmanagement.json
@@ -1098,6 +1098,135 @@
}
}
},
+ "/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/providers/Microsoft.CostManagement/generateReservationDetailsReport": {
+ "post": {
+ "tags": [
+ "ReservedInstances"
+ ],
+ "operationId": "GenerateReservationDetailsReport_ByBillingAccountId",
+ "description": "Generates the reservations details report for provided date range asynchronously based on enrollment id.",
+ "externalDocs": {
+ "url": "https://docs.microsoft.com/en-us/rest/api/costmanagement/"
+ },
+ "x-ms-examples": {
+ "ReservationDetails": {
+ "$ref": "./examples/GenerateReservationDetailsReportByBillingAccount.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/enrollmentIdParameter"
+ },
+ {
+ "$ref": "#/parameters/startDateParameter"
+ },
+ {
+ "$ref": "#/parameters/endDateParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request processing completed.",
+ "schema": {
+ "$ref": "#/definitions/OperationStatus"
+ }
+ },
+ "202": {
+ "description": "Accepted. Request will be processed. Use the location header to check the status.",
+ "headers": {
+ "Location": {
+ "description": "The URL to check the status of the asynchronous operation.",
+ "type": "string"
+ },
+ "Retry-After": {
+ "description": "The amount of delay to use while the status of the operation is checked. The value is expressed in seconds.",
+ "format": "int32",
+ "type": "integer"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/providers/Microsoft.CostManagement/generateReservationDetailsReport": {
+ "post": {
+ "tags": [
+ "ReservedInstances"
+ ],
+ "operationId": "GenerateReservationDetailsReport_ByBillingProfileId",
+ "description": "Generates the reservations details report for provided date range asynchronously by billing profile.",
+ "externalDocs": {
+ "url": "https://docs.microsoft.com/en-us/rest/api/costmanagement/"
+ },
+ "x-ms-examples": {
+ "ReservationDetails": {
+ "$ref": "./examples/GenerateReservationDetailsReportByBillingProfile.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/billingAccountIdParameter"
+ },
+ {
+ "$ref": "#/parameters/billingProfileIdParameter"
+ },
+ {
+ "$ref": "#/parameters/startDateParameter"
+ },
+ {
+ "$ref": "#/parameters/endDateParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request processing completed.",
+ "schema": {
+ "$ref": "#/definitions/OperationStatus"
+ }
+ },
+ "202": {
+ "description": "Accepted. Request will be processed. Use the Location header to check the status.",
+ "headers": {
+ "Location": {
+ "description": "The URL to check the status of the asynchronous operation.",
+ "type": "string"
+ },
+ "Retry-After": {
+ "description": "The amount of delay to use while the status of the operation is checked. The value is expressed in seconds.",
+ "format": "int32",
+ "type": "integer"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
"/providers/Microsoft.CostManagement/operations": {
"get": {
"tags": [
@@ -1453,6 +1582,16 @@
"format": "date-time",
"readOnly": true
},
+ "dateRange": {
+ "description": "Selected date range for viewing cost in.",
+ "type": "string",
+ "readOnly": true
+ },
+ "currency": {
+ "description": "Selected currency.",
+ "type": "string",
+ "readOnly": true
+ },
"query": {
"description": "Query body configuration. Required.",
"type": "object",
@@ -2267,6 +2406,53 @@
}
}
},
+ "Status": {
+ "description": "The status of the long running operation.",
+ "properties": {
+ "status": {
+ "description": "The status of the long running operation.",
+ "type": "string",
+ "enum": [
+ "Running",
+ "Completed",
+ "Failed"
+ ],
+ "x-ms-enum": {
+ "name": "OperationStatusType",
+ "modelAsString": true
+ }
+ }
+ }
+ },
+ "OperationStatus": {
+ "description": "The status of the long running operation.",
+ "properties": {
+ "status": {
+ "description": "The status of the long running operation.",
+ "$ref": "#/definitions/Status"
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "type": "object",
+ "description": "The properties of the resource generated.",
+ "$ref": "#/definitions/ReportURL"
+ }
+ }
+ },
+ "ReportURL": {
+ "description": "The URL to download the generated report.",
+ "properties": {
+ "reportUrl": {
+ "description": "The URL to download the generated report.",
+ "type": "string"
+ },
+ "validUntil": {
+ "description": "The time at which report URL becomes invalid.",
+ "type": "string",
+ "format": "date-time"
+ }
+ }
+ },
"QueryDatasetConfiguration": {
"description": "The configuration of dataset in the query.",
"properties": {
@@ -2474,6 +2660,30 @@
"type": "string",
"x-ms-parameter-location": "method"
},
+ "startDateParameter": {
+ "name": "startDate",
+ "in": "query",
+ "description": "Start Date",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "endDateParameter": {
+ "name": "endDate",
+ "in": "query",
+ "description": "End Date",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "enrollmentIdParameter": {
+ "name": "billingAccountId",
+ "in": "path",
+ "description": "Enrollment ID (Legacy BillingAccount ID)",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
"billingAccountIdParameter": {
"name": "billingAccountId",
"in": "path",
@@ -2482,6 +2692,14 @@
"type": "string",
"x-ms-parameter-location": "method"
},
+ "billingProfileIdParameter": {
+ "name": "billingProfileId",
+ "in": "path",
+ "description": "BillingProfile ID",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
"managementGroupIdParameter": {
"name": "managementGroupId",
"in": "path",
diff --git a/specification/cost-management/resource-manager/Microsoft.CostManagement/stable/2019-11-01/examples/GenerateReservationDetailsReportByBillingAccount.json b/specification/cost-management/resource-manager/Microsoft.CostManagement/stable/2019-11-01/examples/GenerateReservationDetailsReportByBillingAccount.json
new file mode 100644
index 000000000000..d8c8f0f40faf
--- /dev/null
+++ b/specification/cost-management/resource-manager/Microsoft.CostManagement/stable/2019-11-01/examples/GenerateReservationDetailsReportByBillingAccount.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "billingAccountId": "9845612",
+ "startDate": "2020-01-01",
+ "endDate": "2020-01-30",
+ "api-version": "2019-11-01"
+ },
+ "responses": {
+ "202": {
+ "headers": {
+ "Location": "https://management.azure.com/providers/Microsoft.Billing/billingAccounts/9845612/providers/Microsoft.CostManagement/reservationDetailsOperationResults/cf9f95c9-af6b-41dd-a622-e6f4fc60c3ee?api-version=2019-11-01",
+ "Retry-After": "60"
+ }
+ },
+ "200": {
+ "body": {
+ "status": "Completed",
+ "properties": {
+ "reportUrl": "https://storage.blob.core.windows.net/details/20200911/00000000-0000-0000-0000-000000000000?sv=2016-05-31&sr=b&sig=jep8HT2aphfUkyERRZa5LRfd9RPzjXbzB%2F9TNiQ",
+ "validUntil": "2020-09-12T02:56:55.5021869Z"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cost-management/resource-manager/Microsoft.CostManagement/stable/2019-11-01/examples/GenerateReservationDetailsReportByBillingProfile.json b/specification/cost-management/resource-manager/Microsoft.CostManagement/stable/2019-11-01/examples/GenerateReservationDetailsReportByBillingProfile.json
new file mode 100644
index 000000000000..a4bd203ef284
--- /dev/null
+++ b/specification/cost-management/resource-manager/Microsoft.CostManagement/stable/2019-11-01/examples/GenerateReservationDetailsReportByBillingProfile.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "billingAccountId": "00000000-0000-0000-0000-000000000000",
+ "billingProfileId": "CZSFR-SDFXC-DSDF",
+ "startDate": "2020-01-01",
+ "endDate": "2020-01-30",
+ "api-version": "2019-11-01"
+ },
+ "responses": {
+ "202": {
+ "headers": {
+ "Location": "https://management.azure.com/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000/billingProfiles/CZSFR-SDFXC-DSDF/providers/Microsoft.CostManagement/reservationDetailsOperationResults/cf9f95c9-af6b-41dd-a622-e6f4fc60c3ee?api-version=2019-11-01",
+ "Retry-After": "60"
+ }
+ },
+ "200": {
+ "body": {
+ "status": "Completed",
+ "properties": {
+ "reportUrl": "https://storage.blob.core.windows.net/details/20200911/00000000-0000-0000-0000-000000000000?sv=2016-05-31&sr=b&sig=jep8HT2aphfUkyERRZa5LRfd9RPzjXbzB%2F9TNiQ",
+ "validUntil": "2020-09-12T02:56:55.5021869Z"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/databox.json b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/databox.json
new file mode 100644
index 000000000000..068771392d92
--- /dev/null
+++ b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/databox.json
@@ -0,0 +1,4785 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2020-11-01",
+ "title": "DataBoxManagementClient"
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "paths": {
+ "/providers/Microsoft.DataBox/operations": {
+ "get": {
+ "tags": [
+ "Operations"
+ ],
+ "description": "This method gets all the operations.",
+ "operationId": "Operations_List",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The supported operations list.",
+ "schema": {
+ "$ref": "#/definitions/OperationList"
+ }
+ },
+ "default": {
+ "description": "Error response describing reason for operation failure.",
+ "schema": {
+ "$ref": "#/definitions/ApiError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "OperationsGet": {
+ "$ref": "./examples/OperationsGet.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.DataBox/jobs": {
+ "get": {
+ "tags": [
+ "Jobs"
+ ],
+ "description": "Lists all the jobs available under the subscription.",
+ "operationId": "Jobs_List",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "name": "$skipToken",
+ "in": "query",
+ "description": "$skipToken is supported on Get list of jobs, which provides the next page in the list of jobs.",
+ "required": false,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "List of jobs available under the subscription.",
+ "schema": {
+ "$ref": "#/definitions/JobResourceList"
+ }
+ },
+ "default": {
+ "description": "Error response describing reason for operation failure.",
+ "schema": {
+ "$ref": "#/definitions/ApiError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "JobsList": {
+ "$ref": "./examples/JobsList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBox/locations/{location}/availableSkus": {
+ "post": {
+ "tags": [
+ "Service"
+ ],
+ "description": "This method provides the list of available skus for the given subscription, resource group and location.",
+ "operationId": "Service_ListAvailableSkusByResourceGroup",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/locationParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "name": "availableSkuRequest",
+ "in": "body",
+ "description": "Filters for showing the available skus.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/AvailableSkuRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The list of available skus under Resource group.",
+ "schema": {
+ "$ref": "#/definitions/AvailableSkusResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing reason for operation failure.",
+ "schema": {
+ "$ref": "#/definitions/ApiError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "AvailableSkusPost": {
+ "$ref": "./examples/AvailableSkusPost.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.DataBox/locations/{location}/validateAddress": {
+ "post": {
+ "tags": [
+ "Service"
+ ],
+ "description": "[DEPRECATED NOTICE: This operation will soon be removed]. This method validates the customer shipping address and provide alternate addresses if any.",
+ "operationId": "Service_ValidateAddress",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/locationParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "name": "validateAddress",
+ "in": "body",
+ "description": "Shipping address of the customer.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ValidateAddress"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The valid and alternate addresses.",
+ "schema": {
+ "$ref": "#/definitions/AddressValidationOutput"
+ }
+ },
+ "default": {
+ "description": "Error response describing reason for operation failure.",
+ "schema": {
+ "$ref": "#/definitions/ApiError"
+ }
+ }
+ },
+ "deprecated": true,
+ "x-ms-examples": {
+ "ValidateAddressPost": {
+ "$ref": "./examples/ValidateAddressPost.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBox/locations/{location}/validateInputs": {
+ "post": {
+ "tags": [
+ "Service"
+ ],
+ "description": "This method does all necessary pre-job creation validation under resource group.",
+ "operationId": "Service_ValidateInputsByResourceGroup",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/locationParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "name": "validationRequest",
+ "in": "body",
+ "description": "Inputs of the customer.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ValidationRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The validation status and responses of each validating parameter.",
+ "schema": {
+ "$ref": "#/definitions/ValidationResponse"
+ }
+ },
+ "default": {
+ "description": "Error response describing reason for operation failure.",
+ "schema": {
+ "$ref": "#/definitions/ApiError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ValidateInputsByResourceGroup": {
+ "$ref": "./examples/ValidateInputsByResourceGroup.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.DataBox/locations/{location}/validateInputs": {
+ "post": {
+ "tags": [
+ "Service"
+ ],
+ "description": "This method does all necessary pre-job creation validation under subscription.",
+ "operationId": "Service_ValidateInputs",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/locationParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "name": "validationRequest",
+ "in": "body",
+ "description": "Inputs of the customer.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ValidationRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The validation status and responses of each validating parameter.",
+ "schema": {
+ "$ref": "#/definitions/ValidationResponse"
+ }
+ },
+ "default": {
+ "description": "Error response describing reason for operation failure.",
+ "schema": {
+ "$ref": "#/definitions/ApiError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ValidateInputs": {
+ "$ref": "./examples/ValidateInputs.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBox/jobs": {
+ "get": {
+ "tags": [
+ "Jobs"
+ ],
+ "description": "Lists all the jobs available under the given resource group.",
+ "operationId": "Jobs_ListByResourceGroup",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "name": "$skipToken",
+ "in": "query",
+ "description": "$skipToken is supported on Get list of jobs, which provides the next page in the list of jobs.",
+ "required": false,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "List of jobs by resource group.",
+ "schema": {
+ "$ref": "#/definitions/JobResourceList"
+ }
+ },
+ "default": {
+ "description": "Error response describing reason for operation failure.",
+ "schema": {
+ "$ref": "#/definitions/ApiError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "JobsListByResourceGroup": {
+ "$ref": "./examples/JobsListByResourceGroup.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBox/jobs/{jobName}": {
+ "get": {
+ "tags": [
+ "Jobs"
+ ],
+ "description": "Gets information about the specified job.",
+ "operationId": "Jobs_Get",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/jobNameParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "description": "$expand is supported on details parameter for job, which provides details on the job stages.",
+ "required": false,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Job object.",
+ "schema": {
+ "$ref": "#/definitions/JobResource"
+ }
+ },
+ "default": {
+ "description": "Error response describing reason for operation failure.",
+ "schema": {
+ "$ref": "#/definitions/ApiError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "JobsGet": {
+ "$ref": "./examples/JobsGet.json"
+ },
+ "JobsGetCmk": {
+ "$ref": "./examples/JobsGetCmk.json"
+ },
+ "JobsGetExport": {
+ "$ref": "./examples/JobsGetExport.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Jobs"
+ ],
+ "description": "Creates a new job with the specified parameters. Existing job cannot be updated with this API and should instead be updated with the Update job API.",
+ "operationId": "Jobs_Create",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/jobNameParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "name": "jobResource",
+ "in": "body",
+ "description": "Job details from request body.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/JobResource"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Job object.",
+ "schema": {
+ "$ref": "#/definitions/JobResource"
+ }
+ },
+ "202": {
+ "description": "Accepted request for create Job."
+ },
+ "default": {
+ "description": "Error response describing reason for operation failure.",
+ "schema": {
+ "$ref": "#/definitions/ApiError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "JobsCreate": {
+ "$ref": "./examples/JobsCreate.json"
+ },
+ "JobsCreateDevicePassword": {
+ "$ref": "./examples/JobsCreateDevicePassword.json"
+ },
+ "JobsCreateExport": {
+ "$ref": "./examples/JobsCreateExport.json"
+ },
+ "JobsCreateDoubleEncryption": {
+ "$ref": "./examples/JobsCreateDoubleEncryption.json"
+ },
+ "JobsCreateWithUserAssignedIdentity": {
+ "$ref": "./examples/JobsCreateWithUserAssignedIdentity.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Jobs"
+ ],
+ "description": "Deletes a job.",
+ "operationId": "Jobs_Delete",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/jobNameParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Just for swagger we are adding this status code."
+ },
+ "202": {
+ "description": "Accepted request for delete Job."
+ },
+ "204": {
+ "description": "Job deleted."
+ },
+ "default": {
+ "description": "Error response describing reason for operation failure.",
+ "schema": {
+ "$ref": "#/definitions/ApiError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "JobsDelete": {
+ "$ref": "./examples/JobsDelete.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Jobs"
+ ],
+ "description": "Updates the properties of an existing job.",
+ "operationId": "Jobs_Update",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/jobNameParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "description": "Defines the If-Match condition. The patch will be performed only if the ETag of the job on the server matches this value.",
+ "type": "string"
+ },
+ {
+ "name": "jobResourceUpdateParameter",
+ "in": "body",
+ "description": "Job update parameters from request body.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/JobResourceUpdateParameter"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Job object.",
+ "schema": {
+ "$ref": "#/definitions/JobResource"
+ }
+ },
+ "202": {
+ "description": "Accepted request for job updated."
+ },
+ "default": {
+ "description": "Error response describing reason for operation failure.",
+ "schema": {
+ "$ref": "#/definitions/ApiError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "JobsPatch": {
+ "$ref": "./examples/JobsPatch.json"
+ },
+ "JobsPatchCmk": {
+ "$ref": "./examples/JobsPatchCmk.json"
+ },
+ "JobsPatchSystemAssignedToUserAssigned": {
+ "$ref": "./examples/JobsPatchSystemAssignedToUserAssigned.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBox/jobs/{jobName}/bookShipmentPickUp": {
+ "post": {
+ "tags": [
+ "Jobs"
+ ],
+ "description": "Book shipment pick up.",
+ "operationId": "Jobs_BookShipmentPickUp",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/jobNameParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "name": "shipmentPickUpRequest",
+ "in": "body",
+ "description": "Details of shipment pick up request.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ShipmentPickUpRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Booked shipment pick up successfully.",
+ "schema": {
+ "$ref": "#/definitions/ShipmentPickUpResponse"
+ }
+ },
+ "default": {
+ "description": "Error response describing reason for operation failure.",
+ "schema": {
+ "$ref": "#/definitions/ApiError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "BookShipmentPickupPost": {
+ "$ref": "./examples/BookShipmentPickupPost.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBox/jobs/{jobName}/cancel": {
+ "post": {
+ "tags": [
+ "Jobs"
+ ],
+ "description": "CancelJob.",
+ "operationId": "Jobs_Cancel",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/jobNameParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "name": "cancellationReason",
+ "in": "body",
+ "description": "Reason for cancellation.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CancellationReason"
+ }
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Job cancelled."
+ },
+ "default": {
+ "description": "Error response describing reason for operation failure.",
+ "schema": {
+ "$ref": "#/definitions/ApiError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "JobsCancelPost": {
+ "$ref": "./examples/JobsCancelPost.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBox/jobs/{jobName}/listCredentials": {
+ "post": {
+ "tags": [
+ "Jobs"
+ ],
+ "description": "This method gets the unencrypted secrets related to the job.",
+ "operationId": "Jobs_ListCredentials",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/jobNameParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "List of unencrypted credentials of the job.",
+ "schema": {
+ "$ref": "#/definitions/UnencryptedCredentialsList"
+ }
+ },
+ "default": {
+ "description": "Error response describing reason for operation failure.",
+ "schema": {
+ "$ref": "#/definitions/ApiError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "x-ms-examples": {
+ "JobsListCredentials": {
+ "$ref": "./examples/JobsListCredentials.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.DataBox/locations/{location}/regionConfiguration": {
+ "post": {
+ "tags": [
+ "Service"
+ ],
+ "description": "This API provides configuration details specific to given region/location at Subscription level.",
+ "operationId": "Service_RegionConfiguration",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/locationParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "name": "regionConfigurationRequest",
+ "in": "body",
+ "description": "Request body to get the configuration for the region.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/RegionConfigurationRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Region configuration response.",
+ "schema": {
+ "$ref": "#/definitions/RegionConfigurationResponse"
+ }
+ },
+ "default": {
+ "description": "Error response describing reason for operation failure.",
+ "schema": {
+ "$ref": "#/definitions/ApiError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "RegionConfiguration": {
+ "$ref": "./examples/RegionConfiguration.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBox/locations/{location}/regionConfiguration": {
+ "post": {
+ "tags": [
+ "Service"
+ ],
+ "description": "This API provides configuration details specific to given region/location at Resource group level.",
+ "operationId": "Service_RegionConfigurationByResourceGroup",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/locationParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "name": "regionConfigurationRequest",
+ "in": "body",
+ "description": "Request body to get the configuration for the region at resource group level.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/RegionConfigurationRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Region configuration response.",
+ "schema": {
+ "$ref": "#/definitions/RegionConfigurationResponse"
+ }
+ },
+ "default": {
+ "description": "Error response describing reason for operation failure.",
+ "schema": {
+ "$ref": "#/definitions/ApiError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "RegionConfigurationByResourceGroup": {
+ "$ref": "./examples/RegionConfigurationByResourceGroup.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "AccountCredentialDetails": {
+ "description": "Credential details of the account.",
+ "type": "object",
+ "properties": {
+ "accountName": {
+ "description": "Name of the account.",
+ "type": "string",
+ "readOnly": true
+ },
+ "dataAccountType": {
+ "description": "Type of the account.",
+ "enum": [
+ "StorageAccount",
+ "ManagedDisk"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "DataAccountType",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "StorageAccount",
+ "description": "Storage Accounts ."
+ },
+ {
+ "value": "ManagedDisk",
+ "description": "Azure Managed disk storage."
+ }
+ ]
+ }
+ },
+ "accountConnectionString": {
+ "description": "Connection string of the account endpoint to use the account as a storage endpoint on the device.",
+ "type": "string",
+ "readOnly": true
+ },
+ "shareCredentialDetails": {
+ "description": "Per share level unencrypted access credentials.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ShareCredentialDetails"
+ },
+ "readOnly": true
+ }
+ }
+ },
+ "AdditionalErrorInfo": {
+ "type": "object",
+ "description": "Additional error info.",
+ "properties": {
+ "type": {
+ "description": "Additional error type.",
+ "type": "string"
+ },
+ "info": {
+ "description": "Additional error info.",
+ "type": "object"
+ }
+ }
+ },
+ "AddressValidationOutput": {
+ "description": "Output of the address validation api.",
+ "type": "object",
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/AddressValidationProperties",
+ "description": "The address validation properties.",
+ "readOnly": true,
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "AddressValidationProperties": {
+ "description": "The address validation output.",
+ "required": [
+ "validationType"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ValidationInputResponse"
+ }
+ ],
+ "properties": {
+ "validationStatus": {
+ "description": "The address validation status.",
+ "enum": [
+ "Valid",
+ "Invalid",
+ "Ambiguous"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "AddressValidationStatus",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "Valid",
+ "description": "Address provided is valid."
+ },
+ {
+ "value": "Invalid",
+ "description": "Address provided is invalid or not supported."
+ },
+ {
+ "value": "Ambiguous",
+ "description": "Address provided is ambiguous, please choose one of the alternate addresses returned."
+ }
+ ]
+ }
+ },
+ "alternateAddresses": {
+ "description": "List of alternate addresses.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ShippingAddress"
+ },
+ "readOnly": true
+ }
+ },
+ "x-ms-discriminator-value": "ValidateAddress"
+ },
+ "ApiError": {
+ "required": [
+ "error"
+ ],
+ "type": "object",
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/ErrorDetail"
+ }
+ }
+ },
+ "ApplianceNetworkConfiguration": {
+ "description": "The Network Adapter configuration of a DataBox.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Name of the network.",
+ "type": "string",
+ "readOnly": true
+ },
+ "macAddress": {
+ "description": "Mac Address.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "ArmBaseObject": {
+ "description": "Base class for all objects under resource.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Name of the object.",
+ "type": "string",
+ "readOnly": true
+ },
+ "id": {
+ "description": "Id of the object.",
+ "type": "string",
+ "readOnly": true
+ },
+ "type": {
+ "description": "Type of the object.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "AvailableSkuRequest": {
+ "description": "The filters for showing the available skus.",
+ "required": [
+ "transferType",
+ "country",
+ "location"
+ ],
+ "type": "object",
+ "properties": {
+ "transferType": {
+ "description": "Type of the transfer.",
+ "enum": [
+ "ImportToAzure",
+ "ExportFromAzure"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "TransferType",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "ImportToAzure",
+ "description": "Import data to azure."
+ },
+ {
+ "value": "ExportFromAzure",
+ "description": "Export data from azure."
+ }
+ ]
+ }
+ },
+ "country": {
+ "description": "ISO country code. Country for hardware shipment. For codes check: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements",
+ "type": "string"
+ },
+ "location": {
+ "description": "Location for data transfer. For locations check: https://management.azure.com/subscriptions/SUBSCRIPTIONID/locations?api-version=2018-01-01",
+ "type": "string"
+ },
+ "skuNames": {
+ "description": "Sku Names to filter for available skus",
+ "type": "array",
+ "items": {
+ "enum": [
+ "DataBox",
+ "DataBoxDisk",
+ "DataBoxHeavy"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "SkuName",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "DataBox",
+ "description": "Data Box."
+ },
+ {
+ "value": "DataBoxDisk",
+ "description": "Data Box Disk."
+ },
+ {
+ "value": "DataBoxHeavy",
+ "description": "Data Box Heavy."
+ }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "AvailableSkusResult": {
+ "description": "The available skus operation response.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of available skus.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SkuInformation"
+ },
+ "readOnly": true
+ },
+ "nextLink": {
+ "description": "Link for the next set of skus.",
+ "type": "string"
+ }
+ }
+ },
+ "AzureFileFilterDetails": {
+ "description": "Filter details to transfer Azure files",
+ "type": "object",
+ "properties": {
+ "filePrefixList": {
+ "description": "Prefix list of the Azure files to be transferred.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "filePathList": {
+ "description": "List of full path of the files to be transferred.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "fileShareList": {
+ "description": "List of file shares to be transferred.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "BlobFilterDetails": {
+ "description": "Filter details to transfer Azure Blobs",
+ "type": "object",
+ "properties": {
+ "blobPrefixList": {
+ "description": "Prefix list of the Azure blobs to be transferred.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "blobPathList": {
+ "description": "List of full path of the blobs to be transferred.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "containerList": {
+ "description": "List of blob containers to be transferred.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "CancellationReason": {
+ "description": "Reason for cancellation.",
+ "required": [
+ "reason"
+ ],
+ "type": "object",
+ "properties": {
+ "reason": {
+ "description": "Reason for cancellation.",
+ "type": "string"
+ }
+ }
+ },
+ "CloudError": {
+ "description": "Cloud error.",
+ "type": "object",
+ "properties": {
+ "code": {
+ "description": "Cloud error code.",
+ "type": "string"
+ },
+ "message": {
+ "description": "Cloud error message.",
+ "type": "string"
+ },
+ "target": {
+ "description": "Cloud error target.",
+ "type": "string"
+ },
+ "details": {
+ "description": "Cloud error details.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CloudError"
+ },
+ "readOnly": true
+ },
+ "additionalInfo": {
+ "description": "Cloud error additional info.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AdditionalErrorInfo"
+ },
+ "readOnly": true
+ }
+ },
+ "x-ms-external": true
+ },
+ "ContactDetails": {
+ "description": "Contact Details.",
+ "required": [
+ "contactName",
+ "phone",
+ "emailList"
+ ],
+ "type": "object",
+ "properties": {
+ "contactName": {
+ "description": "Contact name of the person.",
+ "type": "string"
+ },
+ "phone": {
+ "description": "Phone number of the contact person.",
+ "type": "string"
+ },
+ "phoneExtension": {
+ "description": "Phone extension number of the contact person.",
+ "type": "string"
+ },
+ "mobile": {
+ "description": "Mobile number of the contact person.",
+ "type": "string"
+ },
+ "emailList": {
+ "description": "List of Email-ids to be notified about job progress.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "notificationPreference": {
+ "description": "Notification preference for a job stage.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NotificationPreference"
+ }
+ }
+ }
+ },
+ "CopyLogDetails": {
+ "description": "Details for log generated during copy.",
+ "required": [
+ "copyLogDetailsType"
+ ],
+ "type": "object",
+ "properties": {
+ "copyLogDetailsType": {
+ "description": "Indicates the type of job details.",
+ "enum": [
+ "DataBox",
+ "DataBoxDisk",
+ "DataBoxHeavy"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "ClassDiscriminator",
+ "modelAsExtensible": false,
+ "values": [
+ {
+ "value": "DataBox",
+ "description": "Data Box orders."
+ },
+ {
+ "value": "DataBoxDisk",
+ "description": "Data Box Disk orders."
+ },
+ {
+ "value": "DataBoxHeavy",
+ "description": "Data Box Heavy orders."
+ }
+ ]
+ }
+ }
+ },
+ "discriminator": "copyLogDetailsType"
+ },
+ "CopyProgress": {
+ "description": "Copy progress.",
+ "type": "object",
+ "properties": {
+ "storageAccountName": {
+ "description": "Name of the storage account. This will be empty for data account types other than storage account.",
+ "type": "string",
+ "readOnly": true
+ },
+ "transferType": {
+ "description": "Transfer type of data",
+ "enum": [
+ "ImportToAzure",
+ "ExportFromAzure"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "TransferType",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "ImportToAzure",
+ "description": "Import data to azure."
+ },
+ {
+ "value": "ExportFromAzure",
+ "description": "Export data from azure."
+ }
+ ]
+ }
+ },
+ "dataAccountType": {
+ "description": "Data Account Type.",
+ "enum": [
+ "StorageAccount",
+ "ManagedDisk"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "DataAccountType",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "StorageAccount",
+ "description": "Storage Accounts ."
+ },
+ {
+ "value": "ManagedDisk",
+ "description": "Azure Managed disk storage."
+ }
+ ]
+ }
+ },
+ "accountId": {
+ "description": "Id of the account where the data needs to be uploaded.",
+ "type": "string",
+ "readOnly": true
+ },
+ "bytesProcessed": {
+ "format": "int64",
+ "description": "To indicate bytes transferred.",
+ "type": "integer",
+ "readOnly": true
+ },
+ "totalBytesToProcess": {
+ "format": "int64",
+ "description": "Total amount of data to be processed by the job.",
+ "type": "integer",
+ "readOnly": true
+ },
+ "filesProcessed": {
+ "format": "int64",
+ "description": "Number of files processed",
+ "type": "integer",
+ "readOnly": true
+ },
+ "totalFilesToProcess": {
+ "format": "int64",
+ "description": "Total files to process",
+ "type": "integer",
+ "readOnly": true
+ },
+ "invalidFilesProcessed": {
+ "format": "int64",
+ "description": "Number of files not adhering to azure naming conventions which were processed by automatic renaming",
+ "type": "integer",
+ "readOnly": true
+ },
+ "invalidFileBytesUploaded": {
+ "format": "int64",
+ "description": "Total amount of data not adhering to azure naming conventions which were processed by automatic renaming",
+ "type": "integer",
+ "readOnly": true
+ },
+ "renamedContainerCount": {
+ "format": "int64",
+ "description": "Number of folders not adhering to azure naming conventions which were processed by automatic renaming",
+ "type": "integer",
+ "readOnly": true
+ },
+ "filesErroredOut": {
+ "format": "int64",
+ "description": "Number of files which could not be copied",
+ "type": "integer",
+ "readOnly": true
+ },
+ "directoriesErroredOut": {
+ "format": "int64",
+ "description": "To indicate directories errored out in the job.",
+ "type": "integer",
+ "readOnly": true
+ },
+ "invalidDirectoriesProcessed": {
+ "format": "int64",
+ "description": "To indicate directories renamed",
+ "type": "integer",
+ "readOnly": true
+ },
+ "isEnumerationInProgress": {
+ "description": "To indicate if enumeration of data is in progress. \r\nUntil this is true, the TotalBytesToProcess may not be valid.",
+ "type": "boolean",
+ "readOnly": true
+ }
+ }
+ },
+ "CreateJobValidations": {
+ "description": "It does all pre-job creation validations.",
+ "required": [
+ "validationCategory",
+ "individualRequestDetails"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ValidationRequest"
+ }
+ ],
+ "properties": {},
+ "x-ms-discriminator-value": "JobCreationValidation"
+ },
+ "CreateOrderLimitForSubscriptionValidationRequest": {
+ "description": "Request to validate create order limit for current subscription.",
+ "required": [
+ "deviceType",
+ "validationType"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ValidationInputRequest"
+ }
+ ],
+ "properties": {
+ "deviceType": {
+ "description": "Device type to be used for the job.",
+ "enum": [
+ "DataBox",
+ "DataBoxDisk",
+ "DataBoxHeavy"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "SkuName",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "DataBox",
+ "description": "Data Box."
+ },
+ {
+ "value": "DataBoxDisk",
+ "description": "Data Box Disk."
+ },
+ {
+ "value": "DataBoxHeavy",
+ "description": "Data Box Heavy."
+ }
+ ]
+ }
+ }
+ },
+ "x-ms-discriminator-value": "ValidateCreateOrderLimit"
+ },
+ "CreateOrderLimitForSubscriptionValidationResponseProperties": {
+ "description": "Properties of create order limit for subscription validation response.",
+ "required": [
+ "validationType"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ValidationInputResponse"
+ }
+ ],
+ "properties": {
+ "status": {
+ "description": "Create order limit validation status.",
+ "enum": [
+ "Valid",
+ "Invalid",
+ "Skipped"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "ValidationStatus",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "Valid",
+ "description": "Validation is successful"
+ },
+ {
+ "value": "Invalid",
+ "description": "Validation is not successful"
+ },
+ {
+ "value": "Skipped",
+ "description": "Validation is skipped"
+ }
+ ]
+ }
+ }
+ },
+ "x-ms-discriminator-value": "ValidateCreateOrderLimit"
+ },
+ "DataAccountDetails": {
+ "description": "Account details of the data to be transferred",
+ "required": [
+ "dataAccountType"
+ ],
+ "type": "object",
+ "properties": {
+ "dataAccountType": {
+ "description": "Account Type of the data to be transferred.",
+ "enum": [
+ "StorageAccount",
+ "ManagedDisk"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "DataAccountType",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "StorageAccount",
+ "description": "Storage Accounts ."
+ },
+ {
+ "value": "ManagedDisk",
+ "description": "Azure Managed disk storage."
+ }
+ ]
+ }
+ },
+ "sharePassword": {
+ "description": "Password for all the shares to be created on the device. Should not be passed for TransferType:ExportFromAzure jobs. If this is not passed, the service will generate password itself. This will not be returned in Get Call. Password Requirements : Password must be minimum of 12 and maximum of 64 characters. Password must have at least one uppercase alphabet, one number and one special character. Password cannot have the following characters : IilLoO0 Password can have only alphabets, numbers and these characters : @#\\-$%^!+=;:_()]+",
+ "type": "string",
+ "x-ms-secret": true,
+ "x-ms-mutability": [
+ "create"
+ ]
+ }
+ },
+ "discriminator": "dataAccountType"
+ },
+ "DataBoxAccountCopyLogDetails": {
+ "description": "Copy log details for a storage account of a DataBox job",
+ "required": [
+ "copyLogDetailsType"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/CopyLogDetails"
+ }
+ ],
+ "properties": {
+ "accountName": {
+ "description": "Account name.",
+ "type": "string",
+ "readOnly": true
+ },
+ "copyLogLink": {
+ "description": "Link for copy logs.",
+ "type": "string",
+ "readOnly": true
+ },
+ "copyVerboseLogLink": {
+ "description": "Link for copy verbose logs. This will be set only when LogCollectionLevel is set to Verbose.",
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "x-ms-discriminator-value": "DataBox"
+ },
+ "DataBoxDiskCopyLogDetails": {
+ "description": "Copy Log Details for a disk",
+ "required": [
+ "copyLogDetailsType"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/CopyLogDetails"
+ }
+ ],
+ "properties": {
+ "diskSerialNumber": {
+ "description": "Disk Serial Number.",
+ "type": "string",
+ "readOnly": true
+ },
+ "errorLogLink": {
+ "description": "Link for copy error logs.",
+ "type": "string",
+ "readOnly": true
+ },
+ "verboseLogLink": {
+ "description": "Link for copy verbose logs.",
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "x-ms-discriminator-value": "DataBoxDisk"
+ },
+ "DataBoxDiskCopyProgress": {
+ "description": "DataBox Disk Copy Progress",
+ "type": "object",
+ "properties": {
+ "serialNumber": {
+ "description": "The serial number of the disk",
+ "type": "string",
+ "readOnly": true
+ },
+ "bytesCopied": {
+ "format": "int64",
+ "description": "Bytes copied during the copy of disk.",
+ "type": "integer",
+ "readOnly": true
+ },
+ "percentComplete": {
+ "format": "int32",
+ "description": "Indicates the percentage completed for the copy of the disk.",
+ "type": "integer",
+ "readOnly": true
+ },
+ "status": {
+ "description": "The Status of the copy",
+ "enum": [
+ "NotStarted",
+ "InProgress",
+ "Completed",
+ "CompletedWithErrors",
+ "Failed",
+ "NotReturned",
+ "HardwareError",
+ "DeviceFormatted",
+ "DeviceMetadataModified",
+ "StorageAccountNotAccessible",
+ "UnsupportedData"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "CopyStatus",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "NotStarted",
+ "description": "Data copy hasn't started yet."
+ },
+ {
+ "value": "InProgress",
+ "description": "Data copy is in progress."
+ },
+ {
+ "value": "Completed",
+ "description": "Data copy completed."
+ },
+ {
+ "value": "CompletedWithErrors",
+ "description": "Data copy completed with errors."
+ },
+ {
+ "value": "Failed",
+ "description": "Data copy failed. No data was copied."
+ },
+ {
+ "value": "NotReturned",
+ "description": "No copy triggered as device was not returned."
+ },
+ {
+ "value": "HardwareError",
+ "description": "The Device has hit hardware issues."
+ },
+ {
+ "value": "DeviceFormatted",
+ "description": "Data copy failed. The Device was formatted by user."
+ },
+ {
+ "value": "DeviceMetadataModified",
+ "description": "Data copy failed. Device metadata was modified by user."
+ },
+ {
+ "value": "StorageAccountNotAccessible",
+ "description": "Data copy failed. Storage Account was not accessible during copy."
+ },
+ {
+ "value": "UnsupportedData",
+ "description": "Data copy failed. The Device data content is not supported."
+ }
+ ]
+ }
+ }
+ }
+ },
+ "DataBoxDiskJobDetails": {
+ "description": "DataBox Disk Job Details.",
+ "required": [
+ "contactDetails",
+ "jobDetailsType"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/JobDetails"
+ }
+ ],
+ "properties": {
+ "preferredDisks": {
+ "description": "User preference on what size disks are needed for the job. The map is from the disk size in TB to the count. Eg. {2,5} means 5 disks of 2 TB size. Key is string but will be checked against an int.",
+ "type": "object",
+ "additionalProperties": {
+ "format": "int32",
+ "type": "integer"
+ }
+ },
+ "copyProgress": {
+ "description": "Copy progress per disk.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DataBoxDiskCopyProgress"
+ },
+ "readOnly": true
+ },
+ "disksAndSizeDetails": {
+ "description": "Contains the map of disk serial number to the disk size being used for the job. Is returned only after the disks are shipped to the customer.",
+ "type": "object",
+ "additionalProperties": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "readOnly": true
+ },
+ "passkey": {
+ "description": "User entered passkey for DataBox Disk job.",
+ "type": "string"
+ }
+ },
+ "x-ms-discriminator-value": "DataBoxDisk"
+ },
+ "DataBoxDiskJobSecrets": {
+ "description": "The secrets related to disk job.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/JobSecrets"
+ }
+ ],
+ "properties": {
+ "diskSecrets": {
+ "description": "Contains the list of secrets object for that device.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DiskSecret"
+ },
+ "readOnly": true
+ },
+ "passKey": {
+ "description": "PassKey for the disk Job.",
+ "type": "string",
+ "readOnly": true
+ },
+ "isPasskeyUserDefined": {
+ "description": "Whether passkey was provided by user.",
+ "type": "boolean",
+ "readOnly": true
+ }
+ },
+ "x-ms-discriminator-value": "DataBoxDisk"
+ },
+ "DataBoxHeavyAccountCopyLogDetails": {
+ "description": "Copy log details for a storage account for Databox heavy",
+ "required": [
+ "copyLogDetailsType"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/CopyLogDetails"
+ }
+ ],
+ "properties": {
+ "accountName": {
+ "description": "Account name.",
+ "type": "string",
+ "readOnly": true
+ },
+ "copyLogLink": {
+ "description": "Link for copy logs.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "readOnly": true
+ },
+ "copyVerboseLogLink": {
+ "description": "Link for copy verbose logs. This will be set only when the LogCollectionLevel is set to verbose.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "readOnly": true
+ }
+ },
+ "x-ms-discriminator-value": "DataBoxHeavy"
+ },
+ "DataBoxHeavyJobDetails": {
+ "description": "Databox Heavy Device Job Details",
+ "required": [
+ "contactDetails",
+ "jobDetailsType"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/JobDetails"
+ }
+ ],
+ "properties": {
+ "copyProgress": {
+ "description": "Copy progress per account.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CopyProgress"
+ },
+ "readOnly": true
+ },
+ "devicePassword": {
+ "description": "Set Device password for unlocking Databox Heavy. Should not be passed for TransferType:ExportFromAzure jobs. If this is not passed, the service will generate password itself. This will not be returned in Get Call. Password Requirements : Password must be minimum of 12 and maximum of 64 characters. Password must have at least one uppercase alphabet, one number and one special character. Password cannot have the following characters : IilLoO0 Password can have only alphabets, numbers and these characters : @#\\-$%^!+=;:_()]+",
+ "type": "string"
+ }
+ },
+ "x-ms-discriminator-value": "DataBoxHeavy"
+ },
+ "DataBoxHeavyJobSecrets": {
+ "description": "The secrets related to a databox heavy job.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/JobSecrets"
+ }
+ ],
+ "properties": {
+ "cabinetPodSecrets": {
+ "description": "Contains the list of secret objects for a databox heavy job.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DataBoxHeavySecret"
+ },
+ "readOnly": true
+ }
+ },
+ "x-ms-discriminator-value": "DataBoxHeavy"
+ },
+ "DataBoxHeavySecret": {
+ "description": "The secrets related to a databox heavy.",
+ "type": "object",
+ "properties": {
+ "deviceSerialNumber": {
+ "description": "Serial number of the assigned device.",
+ "type": "string",
+ "readOnly": true
+ },
+ "devicePassword": {
+ "description": "Password for out of the box experience on device.",
+ "type": "string",
+ "readOnly": true
+ },
+ "networkConfigurations": {
+ "description": "Network configuration of the appliance.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplianceNetworkConfiguration"
+ },
+ "readOnly": true
+ },
+ "encodedValidationCertPubKey": {
+ "description": "The base 64 encoded public key to authenticate with the device",
+ "type": "string",
+ "readOnly": true
+ },
+ "accountCredentialDetails": {
+ "description": "Per account level access credentials.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AccountCredentialDetails"
+ },
+ "readOnly": true
+ }
+ }
+ },
+ "DataBoxJobDetails": {
+ "description": "Databox Job Details",
+ "required": [
+ "contactDetails",
+ "jobDetailsType"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/JobDetails"
+ }
+ ],
+ "properties": {
+ "copyProgress": {
+ "description": "Copy progress per storage account.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CopyProgress"
+ },
+ "readOnly": true
+ },
+ "devicePassword": {
+ "description": "Set Device password for unlocking Databox. Should not be passed for TransferType:ExportFromAzure jobs. If this is not passed, the service will generate password itself. This will not be returned in Get Call. Password Requirements : Password must be minimum of 12 and maximum of 64 characters. Password must have at least one uppercase alphabet, one number and one special character. Password cannot have the following characters : IilLoO0 Password can have only alphabets, numbers and these characters : @#\\-$%^!+=;:_()]+",
+ "type": "string"
+ }
+ },
+ "x-ms-discriminator-value": "DataBox"
+ },
+ "DataboxJobSecrets": {
+ "description": "The secrets related to a databox job.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/JobSecrets"
+ }
+ ],
+ "properties": {
+ "podSecrets": {
+ "description": "Contains the list of secret objects for a job.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DataBoxSecret"
+ }
+ }
+ },
+ "x-ms-discriminator-value": "DataBox"
+ },
+ "DataBoxScheduleAvailabilityRequest": {
+ "description": "Request body to get the availability for scheduling data box orders orders.",
+ "required": [
+ "storageLocation",
+ "skuName"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ScheduleAvailabilityRequest"
+ }
+ ],
+ "properties": {},
+ "x-ms-discriminator-value": "DataBox"
+ },
+ "DataBoxSecret": {
+ "description": "The secrets related to a DataBox.",
+ "type": "object",
+ "properties": {
+ "deviceSerialNumber": {
+ "description": "Serial number of the assigned device.",
+ "type": "string",
+ "readOnly": true
+ },
+ "devicePassword": {
+ "description": "Password for out of the box experience on device.",
+ "type": "string",
+ "readOnly": true
+ },
+ "networkConfigurations": {
+ "description": "Network configuration of the appliance.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplianceNetworkConfiguration"
+ },
+ "readOnly": true
+ },
+ "encodedValidationCertPubKey": {
+ "description": "The base 64 encoded public key to authenticate with the device",
+ "type": "string",
+ "readOnly": true
+ },
+ "accountCredentialDetails": {
+ "description": "Per account level access credentials.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AccountCredentialDetails"
+ },
+ "readOnly": true
+ }
+ }
+ },
+ "DataExportDetails": {
+ "description": "Details of the data to be used for exporting data from azure.",
+ "required": [
+ "transferConfiguration",
+ "accountDetails"
+ ],
+ "type": "object",
+ "properties": {
+ "transferConfiguration": {
+ "$ref": "#/definitions/TransferConfiguration",
+ "description": "Configuration for the data transfer."
+ },
+ "logCollectionLevel": {
+ "description": "Level of the logs to be collected.",
+ "enum": [
+ "Error",
+ "Verbose"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "LogCollectionLevel",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "Error",
+ "description": "Only Errors will be collected in the logs."
+ },
+ {
+ "value": "Verbose",
+ "description": "Verbose logging (includes Errors, CRC, size information and others)."
+ }
+ ]
+ }
+ },
+ "accountDetails": {
+ "$ref": "#/definitions/DataAccountDetails",
+ "description": "Account details of the data to be transferred"
+ }
+ }
+ },
+ "DataImportDetails": {
+ "description": "Details of the data to be used for importing data to azure.",
+ "required": [
+ "accountDetails"
+ ],
+ "type": "object",
+ "properties": {
+ "accountDetails": {
+ "$ref": "#/definitions/DataAccountDetails",
+ "description": "Account details of the data to be transferred"
+ }
+ }
+ },
+ "DataLocationToServiceLocationMap": {
+ "description": "Map of data location to service location",
+ "type": "object",
+ "properties": {
+ "dataLocation": {
+ "description": "Location of the data.",
+ "type": "string",
+ "readOnly": true
+ },
+ "serviceLocation": {
+ "description": "Location of the service.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "DataTransferDetailsValidationRequest": {
+ "description": "Request to validate export and import data details.",
+ "required": [
+ "deviceType",
+ "transferType",
+ "validationType"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ValidationInputRequest"
+ }
+ ],
+ "properties": {
+ "dataExportDetails": {
+ "description": "List of DataTransfer details to be used to export data from azure.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DataExportDetails"
+ }
+ },
+ "dataImportDetails": {
+ "description": "List of DataTransfer details to be used to import data to azure.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DataImportDetails"
+ }
+ },
+ "deviceType": {
+ "description": "Device type.",
+ "enum": [
+ "DataBox",
+ "DataBoxDisk",
+ "DataBoxHeavy"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "SkuName",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "DataBox",
+ "description": "Data Box."
+ },
+ {
+ "value": "DataBoxDisk",
+ "description": "Data Box Disk."
+ },
+ {
+ "value": "DataBoxHeavy",
+ "description": "Data Box Heavy."
+ }
+ ]
+ }
+ },
+ "transferType": {
+ "description": "Type of the transfer.",
+ "enum": [
+ "ImportToAzure",
+ "ExportFromAzure"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "TransferType",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "ImportToAzure",
+ "description": "Import data to azure."
+ },
+ {
+ "value": "ExportFromAzure",
+ "description": "Export data from azure."
+ }
+ ]
+ }
+ }
+ },
+ "x-ms-discriminator-value": "ValidateDataTransferDetails"
+ },
+ "DataTransferDetailsValidationResponseProperties": {
+ "description": "Properties of data transfer details validation response.",
+ "required": [
+ "validationType"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ValidationInputResponse"
+ }
+ ],
+ "properties": {
+ "status": {
+ "description": "Data transfer details validation status.",
+ "enum": [
+ "Valid",
+ "Invalid",
+ "Skipped"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "ValidationStatus",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "Valid",
+ "description": "Validation is successful"
+ },
+ {
+ "value": "Invalid",
+ "description": "Validation is not successful"
+ },
+ {
+ "value": "Skipped",
+ "description": "Validation is skipped"
+ }
+ ]
+ }
+ }
+ },
+ "x-ms-discriminator-value": "ValidateDataTransferDetails"
+ },
+ "DcAccessSecurityCode": {
+ "description": "Dc access security code",
+ "type": "object",
+ "properties": {
+ "reverseDcAccessCode": {
+ "description": "Reverse Dc access security code.",
+ "type": "string"
+ },
+ "forwardDcAccessCode": {
+ "description": "Forward Dc access security code.",
+ "type": "string"
+ }
+ }
+ },
+ "Details": {
+ "required": [
+ "code",
+ "message"
+ ],
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "string"
+ },
+ "message": {
+ "type": "string"
+ }
+ }
+ },
+ "DiskScheduleAvailabilityRequest": {
+ "description": "Request body to get the availability for scheduling disk orders.",
+ "required": [
+ "storageLocation",
+ "skuName",
+ "expectedDataSizeInTerabytes"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ScheduleAvailabilityRequest"
+ }
+ ],
+ "properties": {
+ "expectedDataSizeInTerabytes": {
+ "format": "int32",
+ "description": "The expected size of the data, which needs to be transferred in this job, in terabytes.",
+ "type": "integer"
+ }
+ },
+ "x-ms-discriminator-value": "DataBoxDisk"
+ },
+ "DiskSecret": {
+ "description": "Contains all the secrets of a Disk.",
+ "type": "object",
+ "properties": {
+ "diskSerialNumber": {
+ "description": "Serial number of the assigned disk.",
+ "type": "string",
+ "readOnly": true
+ },
+ "bitLockerKey": {
+ "description": "Bit Locker key of the disk which can be used to unlock the disk to copy data.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "EncryptionPreferences": {
+ "description": "Preferences related to the Encryption.",
+ "type": "object",
+ "properties": {
+ "doubleEncryption": {
+ "description": "Defines secondary layer of software-based encryption enablement.",
+ "enum": [
+ "Enabled",
+ "Disabled"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "DoubleEncryption",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "Enabled",
+ "description": "Software-based encryption is enabled."
+ },
+ {
+ "value": "Disabled",
+ "description": "Software-based encryption is disabled."
+ }
+ ]
+ }
+ }
+ }
+ },
+ "ErrorDetail": {
+ "required": [
+ "code",
+ "message"
+ ],
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "string"
+ },
+ "message": {
+ "type": "string"
+ },
+ "details": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Details"
+ }
+ },
+ "target": {
+ "type": "string"
+ }
+ }
+ },
+ "FilterFileDetails": {
+ "description": "Details of the filter files to be used for data transfer.",
+ "required": [
+ "filterFileType",
+ "filterFilePath"
+ ],
+ "type": "object",
+ "properties": {
+ "filterFileType": {
+ "description": "Type of the filter file.",
+ "enum": [
+ "AzureBlob",
+ "AzureFile"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "FilterFileType",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "AzureBlob",
+ "description": "Filter file is of the type AzureBlob."
+ },
+ {
+ "value": "AzureFile",
+ "description": "Filter file is of the type AzureFiles."
+ }
+ ]
+ }
+ },
+ "filterFilePath": {
+ "description": "Path of the file that contains the details of all items to transfer.",
+ "type": "string"
+ }
+ }
+ },
+ "HeavyScheduleAvailabilityRequest": {
+ "description": "Request body to get the availability for scheduling heavy orders.",
+ "required": [
+ "storageLocation",
+ "skuName"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ScheduleAvailabilityRequest"
+ }
+ ],
+ "properties": {},
+ "x-ms-discriminator-value": "DataBoxHeavy"
+ },
+ "IdentityProperties": {
+ "description": "Managed identity properties.",
+ "type": "object",
+ "properties": {
+ "type": {
+ "description": "Managed service identity type.",
+ "type": "string"
+ },
+ "userAssigned": {
+ "$ref": "#/definitions/UserAssignedProperties",
+ "description": "User assigned identity properties."
+ }
+ }
+ },
+ "JobDeliveryInfo": {
+ "description": "Additional delivery info.",
+ "type": "object",
+ "properties": {
+ "scheduledDateTime": {
+ "format": "date-time",
+ "description": "Scheduled date time.",
+ "type": "string"
+ }
+ }
+ },
+ "JobDetails": {
+ "description": "Job details.",
+ "required": [
+ "contactDetails",
+ "jobDetailsType"
+ ],
+ "type": "object",
+ "properties": {
+ "jobStages": {
+ "description": "List of stages that run in the job.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/JobStages"
+ },
+ "readOnly": true
+ },
+ "contactDetails": {
+ "$ref": "#/definitions/ContactDetails",
+ "description": "Contact details for notification and shipping."
+ },
+ "shippingAddress": {
+ "$ref": "#/definitions/ShippingAddress",
+ "description": "Shipping address of the customer."
+ },
+ "deliveryPackage": {
+ "$ref": "#/definitions/PackageShippingDetails",
+ "description": "Delivery package shipping details.",
+ "readOnly": true
+ },
+ "returnPackage": {
+ "$ref": "#/definitions/PackageShippingDetails",
+ "description": "Return package shipping details.",
+ "readOnly": true
+ },
+ "dataImportDetails": {
+ "description": "Details of the data to be imported into azure.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DataImportDetails"
+ }
+ },
+ "dataExportDetails": {
+ "description": "Details of the data to be exported from azure.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DataExportDetails"
+ }
+ },
+ "jobDetailsType": {
+ "description": "Indicates the type of job details.",
+ "enum": [
+ "DataBox",
+ "DataBoxDisk",
+ "DataBoxHeavy"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "ClassDiscriminator",
+ "modelAsExtensible": false,
+ "values": [
+ {
+ "value": "DataBox",
+ "description": "Data Box orders."
+ },
+ {
+ "value": "DataBoxDisk",
+ "description": "Data Box Disk orders."
+ },
+ {
+ "value": "DataBoxHeavy",
+ "description": "Data Box Heavy orders."
+ }
+ ]
+ }
+ },
+ "preferences": {
+ "$ref": "#/definitions/Preferences",
+ "description": "Preferences for the order."
+ },
+ "copyLogDetails": {
+ "description": "List of copy log details.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CopyLogDetails"
+ },
+ "readOnly": true
+ },
+ "reverseShipmentLabelSasKey": {
+ "description": "Shared access key to download the return shipment label",
+ "type": "string",
+ "readOnly": true
+ },
+ "chainOfCustodySasKey": {
+ "description": "Shared access key to download the chain of custody logs",
+ "type": "string",
+ "readOnly": true
+ },
+ "keyEncryptionKey": {
+ "$ref": "#/definitions/KeyEncryptionKey",
+ "description": "Details about which key encryption type is being used.",
+ "readOnly": true
+ },
+ "expectedDataSizeInTerabytes": {
+ "format": "int32",
+ "description": "The expected size of the data, which needs to be transferred in this job, in terabytes.",
+ "type": "integer"
+ }
+ },
+ "discriminator": "jobDetailsType"
+ },
+ "JobProperties": {
+ "description": "Job Properties",
+ "required": [
+ "transferType"
+ ],
+ "type": "object",
+ "properties": {
+ "transferType": {
+ "description": "Type of the data transfer.",
+ "enum": [
+ "ImportToAzure",
+ "ExportFromAzure"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "TransferType",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "ImportToAzure",
+ "description": "Import data to azure."
+ },
+ {
+ "value": "ExportFromAzure",
+ "description": "Export data from azure."
+ }
+ ]
+ }
+ },
+ "isCancellable": {
+ "description": "Describes whether the job is cancellable or not.",
+ "type": "boolean",
+ "readOnly": true
+ },
+ "isDeletable": {
+ "description": "Describes whether the job is deletable or not.",
+ "type": "boolean",
+ "readOnly": true
+ },
+ "isShippingAddressEditable": {
+ "description": "Describes whether the shipping address is editable or not.",
+ "type": "boolean",
+ "readOnly": true
+ },
+ "isPrepareToShipEnabled": {
+ "description": "Is Prepare To Ship Enabled on this job",
+ "type": "boolean",
+ "readOnly": true
+ },
+ "status": {
+ "description": "Name of the stage which is in progress.",
+ "enum": [
+ "DeviceOrdered",
+ "DevicePrepared",
+ "Dispatched",
+ "Delivered",
+ "PickedUp",
+ "AtAzureDC",
+ "DataCopy",
+ "Completed",
+ "CompletedWithErrors",
+ "Cancelled",
+ "Failed_IssueReportedAtCustomer",
+ "Failed_IssueDetectedAtAzureDC",
+ "Aborted",
+ "CompletedWithWarnings",
+ "ReadyToDispatchFromAzureDC",
+ "ReadyToReceiveAtAzureDC"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "StageName",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "DeviceOrdered",
+ "description": "An order has been created."
+ },
+ {
+ "value": "DevicePrepared",
+ "description": "A device has been prepared for the order."
+ },
+ {
+ "value": "Dispatched",
+ "description": "Device has been dispatched to the user of the order."
+ },
+ {
+ "value": "Delivered",
+ "description": "Device has been delivered to the user of the order."
+ },
+ {
+ "value": "PickedUp",
+ "description": "Device has been picked up from user and in transit to Azure datacenter."
+ },
+ {
+ "value": "AtAzureDC",
+ "description": "Device has been received at Azure datacenter from the user."
+ },
+ {
+ "value": "DataCopy",
+ "description": "Data copy from the device at Azure datacenter."
+ },
+ {
+ "value": "Completed",
+ "description": "Order has completed."
+ },
+ {
+ "value": "CompletedWithErrors",
+ "description": "Order has completed with errors."
+ },
+ {
+ "value": "Cancelled",
+ "description": "Order has been cancelled."
+ },
+ {
+ "value": "Failed_IssueReportedAtCustomer",
+ "description": "Order has failed due to issue reported by user."
+ },
+ {
+ "value": "Failed_IssueDetectedAtAzureDC",
+ "description": "Order has failed due to issue detected at Azure datacenter."
+ },
+ {
+ "value": "Aborted",
+ "description": "Order has been aborted."
+ },
+ {
+ "value": "CompletedWithWarnings",
+ "description": "Order has completed with warnings."
+ },
+ {
+ "value": "ReadyToDispatchFromAzureDC",
+ "description": "Device is ready to be handed to customer from Azure DC."
+ },
+ {
+ "value": "ReadyToReceiveAtAzureDC",
+ "description": "Device can be dropped off at Azure DC."
+ }
+ ]
+ }
+ },
+ "startTime": {
+ "format": "date-time",
+ "description": "Time at which the job was started in UTC ISO 8601 format.",
+ "type": "string",
+ "readOnly": true
+ },
+ "error": {
+ "$ref": "#/definitions/CloudError",
+ "description": "Top level error for the job.",
+ "readOnly": true
+ },
+ "details": {
+ "$ref": "#/definitions/JobDetails",
+ "description": "Details of a job run. This field will only be sent for expand details filter."
+ },
+ "cancellationReason": {
+ "description": "Reason for cancellation.",
+ "type": "string",
+ "readOnly": true
+ },
+ "deliveryType": {
+ "description": "Delivery type of Job.",
+ "enum": [
+ "NonScheduled",
+ "Scheduled"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "JobDeliveryType",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "NonScheduled",
+ "description": "Non Scheduled job."
+ },
+ {
+ "value": "Scheduled",
+ "description": "Scheduled job."
+ }
+ ]
+ }
+ },
+ "deliveryInfo": {
+ "$ref": "#/definitions/JobDeliveryInfo",
+ "description": "Delivery Info of Job."
+ },
+ "isCancellableWithoutFee": {
+ "description": "Flag to indicate cancellation of scheduled job.",
+ "type": "boolean",
+ "readOnly": true
+ }
+ }
+ },
+ "JobResource": {
+ "description": "Job Resource.",
+ "required": [
+ "properties"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/JobProperties",
+ "description": "Properties of a job.",
+ "x-ms-client-flatten": true
+ },
+ "name": {
+ "description": "Name of the object.",
+ "type": "string",
+ "readOnly": true
+ },
+ "id": {
+ "description": "Id of the object.",
+ "type": "string",
+ "readOnly": true
+ },
+ "type": {
+ "description": "Type of the object.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "JobResourceList": {
+ "description": "Job Resource Collection",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of job resources.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/JobResource"
+ }
+ },
+ "nextLink": {
+ "description": "Link for the next set of job resources.",
+ "type": "string"
+ }
+ }
+ },
+ "JobResourceUpdateParameter": {
+ "description": "The JobResourceUpdateParameter.",
+ "type": "object",
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/UpdateJobProperties",
+ "description": "Properties of a job to be updated.",
+ "x-ms-client-flatten": true
+ },
+ "tags": {
+ "description": "The list of key value pairs that describe the resource. These tags can be used in viewing and grouping this resource (across resource groups).",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "identity": {
+ "$ref": "#/definitions/ResourceIdentity",
+ "description": "Msi identity of the resource"
+ }
+ }
+ },
+ "JobSecrets": {
+ "description": "The base class for the secrets",
+ "required": [
+ "jobSecretsType"
+ ],
+ "type": "object",
+ "properties": {
+ "jobSecretsType": {
+ "description": "Used to indicate what type of job secrets object.",
+ "enum": [
+ "DataBox",
+ "DataBoxDisk",
+ "DataBoxHeavy"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "ClassDiscriminator",
+ "modelAsExtensible": false,
+ "values": [
+ {
+ "value": "DataBox",
+ "description": "Data Box orders."
+ },
+ {
+ "value": "DataBoxDisk",
+ "description": "Data Box Disk orders."
+ },
+ {
+ "value": "DataBoxHeavy",
+ "description": "Data Box Heavy orders."
+ }
+ ]
+ }
+ },
+ "dcAccessSecurityCode": {
+ "$ref": "#/definitions/DcAccessSecurityCode",
+ "description": "Dc Access Security Code for Customer Managed Shipping",
+ "readOnly": true
+ },
+ "error": {
+ "$ref": "#/definitions/CloudError",
+ "description": "Error while fetching the secrets.",
+ "readOnly": true
+ }
+ },
+ "discriminator": "jobSecretsType"
+ },
+ "JobStages": {
+ "description": "Job stages.",
+ "type": "object",
+ "properties": {
+ "stageName": {
+ "description": "Name of the job stage.",
+ "enum": [
+ "DeviceOrdered",
+ "DevicePrepared",
+ "Dispatched",
+ "Delivered",
+ "PickedUp",
+ "AtAzureDC",
+ "DataCopy",
+ "Completed",
+ "CompletedWithErrors",
+ "Cancelled",
+ "Failed_IssueReportedAtCustomer",
+ "Failed_IssueDetectedAtAzureDC",
+ "Aborted",
+ "CompletedWithWarnings",
+ "ReadyToDispatchFromAzureDC",
+ "ReadyToReceiveAtAzureDC"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "StageName",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "DeviceOrdered",
+ "description": "An order has been created."
+ },
+ {
+ "value": "DevicePrepared",
+ "description": "A device has been prepared for the order."
+ },
+ {
+ "value": "Dispatched",
+ "description": "Device has been dispatched to the user of the order."
+ },
+ {
+ "value": "Delivered",
+ "description": "Device has been delivered to the user of the order."
+ },
+ {
+ "value": "PickedUp",
+ "description": "Device has been picked up from user and in transit to Azure datacenter."
+ },
+ {
+ "value": "AtAzureDC",
+ "description": "Device has been received at Azure datacenter from the user."
+ },
+ {
+ "value": "DataCopy",
+ "description": "Data copy from the device at Azure datacenter."
+ },
+ {
+ "value": "Completed",
+ "description": "Order has completed."
+ },
+ {
+ "value": "CompletedWithErrors",
+ "description": "Order has completed with errors."
+ },
+ {
+ "value": "Cancelled",
+ "description": "Order has been cancelled."
+ },
+ {
+ "value": "Failed_IssueReportedAtCustomer",
+ "description": "Order has failed due to issue reported by user."
+ },
+ {
+ "value": "Failed_IssueDetectedAtAzureDC",
+ "description": "Order has failed due to issue detected at Azure datacenter."
+ },
+ {
+ "value": "Aborted",
+ "description": "Order has been aborted."
+ },
+ {
+ "value": "CompletedWithWarnings",
+ "description": "Order has completed with warnings."
+ },
+ {
+ "value": "ReadyToDispatchFromAzureDC",
+ "description": "Device is ready to be handed to customer from Azure DC."
+ },
+ {
+ "value": "ReadyToReceiveAtAzureDC",
+ "description": "Device can be dropped off at Azure DC."
+ }
+ ]
+ }
+ },
+ "displayName": {
+ "description": "Display name of the job stage.",
+ "type": "string",
+ "readOnly": true
+ },
+ "stageStatus": {
+ "description": "Status of the job stage.",
+ "enum": [
+ "None",
+ "InProgress",
+ "Succeeded",
+ "Failed",
+ "Cancelled",
+ "Cancelling",
+ "SucceededWithErrors",
+ "WaitingForCustomerAction",
+ "SucceededWithWarnings"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "StageStatus",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "None",
+ "description": "No status available yet."
+ },
+ {
+ "value": "InProgress",
+ "description": "Stage is in progress."
+ },
+ {
+ "value": "Succeeded",
+ "description": "Stage has succeeded."
+ },
+ {
+ "value": "Failed",
+ "description": "Stage has failed."
+ },
+ {
+ "value": "Cancelled",
+ "description": "Stage has been cancelled."
+ },
+ {
+ "value": "Cancelling",
+ "description": "Stage is cancelling."
+ },
+ {
+ "value": "SucceededWithErrors",
+ "description": "Stage has succeeded with errors."
+ },
+ {
+ "value": "WaitingForCustomerAction",
+ "description": "Stage is stuck until customer takes some action."
+ },
+ {
+ "value": "SucceededWithWarnings",
+ "description": "Stage has succeeded with warnings."
+ }
+ ]
+ }
+ },
+ "stageTime": {
+ "format": "date-time",
+ "description": "Time for the job stage in UTC ISO 8601 format.",
+ "type": "string",
+ "readOnly": true
+ },
+ "jobStageDetails": {
+ "description": "Job Stage Details",
+ "type": "object",
+ "readOnly": true
+ }
+ }
+ },
+ "KeyEncryptionKey": {
+ "description": "Encryption key containing details about key to encrypt different keys.",
+ "required": [
+ "kekType"
+ ],
+ "type": "object",
+ "properties": {
+ "kekType": {
+ "description": "Type of encryption key used for key encryption.",
+ "enum": [
+ "MicrosoftManaged",
+ "CustomerManaged"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "KekType",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "MicrosoftManaged",
+ "description": "Key encryption key is managed by Microsoft."
+ },
+ {
+ "value": "CustomerManaged",
+ "description": "Key encryption key is managed by the Customer."
+ }
+ ]
+ }
+ },
+ "identityProperties": {
+ "$ref": "#/definitions/IdentityProperties",
+ "description": "Managed identity properties used for key encryption."
+ },
+ "kekUrl": {
+ "description": "Key encryption key. It is required in case of Customer managed KekType.",
+ "type": "string"
+ },
+ "kekVaultResourceID": {
+ "description": "Kek vault resource id. It is required in case of Customer managed KekType.",
+ "type": "string"
+ }
+ }
+ },
+ "ManagedDiskDetails": {
+ "description": "Details of the managed disks.",
+ "required": [
+ "resourceGroupId",
+ "stagingStorageAccountId",
+ "dataAccountType"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/DataAccountDetails"
+ }
+ ],
+ "properties": {
+ "resourceGroupId": {
+ "description": "Resource Group Id of the compute disks.",
+ "type": "string"
+ },
+ "stagingStorageAccountId": {
+ "description": "Resource Id of the storage account that can be used to copy the vhd for staging.",
+ "type": "string"
+ }
+ },
+ "x-ms-discriminator-value": "ManagedDisk"
+ },
+ "NotificationPreference": {
+ "description": "Notification preference for a job stage.",
+ "required": [
+ "stageName",
+ "sendNotification"
+ ],
+ "type": "object",
+ "properties": {
+ "stageName": {
+ "description": "Name of the stage.",
+ "enum": [
+ "DevicePrepared",
+ "Dispatched",
+ "Delivered",
+ "PickedUp",
+ "AtAzureDC",
+ "DataCopy"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "NotificationStageName",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "DevicePrepared",
+ "description": "Notification at device prepared stage."
+ },
+ {
+ "value": "Dispatched",
+ "description": "Notification at device dispatched stage."
+ },
+ {
+ "value": "Delivered",
+ "description": "Notification at device delivered stage."
+ },
+ {
+ "value": "PickedUp",
+ "description": "Notification at device picked up from user stage."
+ },
+ {
+ "value": "AtAzureDC",
+ "description": "Notification at device received at Azure datacenter stage."
+ },
+ {
+ "value": "DataCopy",
+ "description": "Notification at data copy started stage."
+ }
+ ]
+ }
+ },
+ "sendNotification": {
+ "description": "Notification is required or not.",
+ "type": "boolean"
+ }
+ }
+ },
+ "Operation": {
+ "description": "Operation entity.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Name of the operation. Format: {resourceProviderNamespace}/{resourceType}/{read|write|delete|action}",
+ "type": "string",
+ "readOnly": true
+ },
+ "display": {
+ "$ref": "#/definitions/OperationDisplay",
+ "description": "Operation display values.",
+ "readOnly": true
+ },
+ "properties": {
+ "$ref": "#/definitions/OperationProperties",
+ "description": "Operation properties.",
+ "readOnly": true,
+ "x-ms-client-flatten": true
+ },
+ "origin": {
+ "description": "Origin of the operation. Can be : user|system|user,system",
+ "type": "string",
+ "readOnly": true
+ },
+ "isDataAction": {
+ "description": "Indicates whether the operation is a data action",
+ "type": "boolean"
+ }
+ }
+ },
+ "OperationDisplay": {
+ "description": "Operation display",
+ "type": "object",
+ "properties": {
+ "provider": {
+ "description": "Provider name.",
+ "type": "string"
+ },
+ "resource": {
+ "description": "Resource name.",
+ "type": "string"
+ },
+ "operation": {
+ "description": "Localized name of the operation for display purpose.",
+ "type": "string"
+ },
+ "description": {
+ "description": "Localized description of the operation for display purpose.",
+ "type": "string"
+ }
+ }
+ },
+ "OperationList": {
+ "description": "Operation Collection.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of operations.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Operation"
+ },
+ "readOnly": true
+ },
+ "nextLink": {
+ "description": "Link for the next set of operations.",
+ "type": "string"
+ }
+ }
+ },
+ "OperationProperties": {
+ "description": "Operation properties.",
+ "type": "object",
+ "properties": {}
+ },
+ "PackageShippingDetails": {
+ "description": "Shipping details.",
+ "type": "object",
+ "properties": {
+ "carrierName": {
+ "description": "Name of the carrier.",
+ "type": "string",
+ "readOnly": true
+ },
+ "trackingId": {
+ "description": "Tracking Id of shipment.",
+ "type": "string",
+ "readOnly": true
+ },
+ "trackingUrl": {
+ "description": "Url where shipment can be tracked.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "Preferences": {
+ "description": "Preferences related to the order",
+ "type": "object",
+ "properties": {
+ "preferredDataCenterRegion": {
+ "description": "Preferred data center region.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "transportPreferences": {
+ "$ref": "#/definitions/TransportPreferences",
+ "description": "Preferences related to the shipment logistics of the sku."
+ },
+ "encryptionPreferences": {
+ "$ref": "#/definitions/EncryptionPreferences",
+ "description": "Preferences related to the Encryption."
+ }
+ }
+ },
+ "PreferencesValidationRequest": {
+ "description": "Request to validate preference of transport and data center.",
+ "required": [
+ "deviceType",
+ "validationType"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ValidationInputRequest"
+ }
+ ],
+ "properties": {
+ "preference": {
+ "description": "Preference of transport and data center.",
+ "$ref": "#/definitions/Preferences"
+ },
+ "deviceType": {
+ "description": "Device type to be used for the job.",
+ "enum": [
+ "DataBox",
+ "DataBoxDisk",
+ "DataBoxHeavy"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "SkuName",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "DataBox",
+ "description": "Data Box."
+ },
+ {
+ "value": "DataBoxDisk",
+ "description": "Data Box Disk."
+ },
+ {
+ "value": "DataBoxHeavy",
+ "description": "Data Box Heavy."
+ }
+ ]
+ }
+ }
+ },
+ "x-ms-discriminator-value": "ValidatePreferences"
+ },
+ "PreferencesValidationResponseProperties": {
+ "description": "Properties of data center and transport preference validation response.",
+ "required": [
+ "validationType"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ValidationInputResponse"
+ }
+ ],
+ "properties": {
+ "status": {
+ "description": "Validation status of requested data center and transport.",
+ "enum": [
+ "Valid",
+ "Invalid",
+ "Skipped"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "ValidationStatus",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "Valid",
+ "description": "Validation is successful"
+ },
+ {
+ "value": "Invalid",
+ "description": "Validation is not successful"
+ },
+ {
+ "value": "Skipped",
+ "description": "Validation is skipped"
+ }
+ ]
+ }
+ }
+ },
+ "x-ms-discriminator-value": "ValidatePreferences"
+ },
+ "RegionConfigurationRequest": {
+ "description": "Request body to get the configuration for the region.",
+ "type": "object",
+ "properties": {
+ "scheduleAvailabilityRequest": {
+ "$ref": "#/definitions/ScheduleAvailabilityRequest",
+ "description": "Request body to get the availability for scheduling orders."
+ },
+ "transportAvailabilityRequest": {
+ "$ref": "#/definitions/TransportAvailabilityRequest",
+ "description": "Request body to get the transport availability for given sku."
+ }
+ }
+ },
+ "RegionConfigurationResponse": {
+ "description": "Configuration response specific to a region.",
+ "type": "object",
+ "properties": {
+ "scheduleAvailabilityResponse": {
+ "$ref": "#/definitions/ScheduleAvailabilityResponse",
+ "description": "Schedule availability for given sku in a region.",
+ "readOnly": true
+ },
+ "transportAvailabilityResponse": {
+ "$ref": "#/definitions/TransportAvailabilityResponse",
+ "description": "Transport options available for given sku in a region.",
+ "readOnly": true
+ }
+ }
+ },
+ "Resource": {
+ "description": "Model of the Resource.",
+ "required": [
+ "location",
+ "sku"
+ ],
+ "type": "object",
+ "properties": {
+ "location": {
+ "description": "The location of the resource. This will be one of the supported and registered Azure Regions (e.g. West US, East US, Southeast Asia, etc.). The region of a resource cannot be changed once it is created, but if an identical region is specified on update the request will succeed.",
+ "type": "string",
+ "x-ms-mutability": [
+ "read",
+ "create"
+ ]
+ },
+ "tags": {
+ "description": "The list of key value pairs that describe the resource. These tags can be used in viewing and grouping this resource (across resource groups).",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "sku": {
+ "$ref": "#/definitions/Sku",
+ "description": "The sku type."
+ },
+ "identity": {
+ "$ref": "#/definitions/ResourceIdentity",
+ "description": "Msi identity of the resource"
+ }
+ },
+ "x-ms-azure-resource": true
+ },
+ "ResourceIdentity": {
+ "description": "Msi identity details of the resource",
+ "type": "object",
+ "properties": {
+ "type": {
+ "description": "Identity type",
+ "type": "string"
+ },
+ "principalId": {
+ "description": "Service Principal Id backing the Msi",
+ "type": "string",
+ "readOnly": true
+ },
+ "tenantId": {
+ "description": "Home Tenant Id",
+ "type": "string",
+ "readOnly": true
+ },
+ "userAssignedIdentities": {
+ "description": "User Assigned Identities",
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/UserAssignedIdentity"
+ }
+ }
+ }
+ },
+ "ScheduleAvailabilityRequest": {
+ "description": "Request body to get the availability for scheduling orders.",
+ "required": [
+ "storageLocation",
+ "skuName"
+ ],
+ "type": "object",
+ "properties": {
+ "storageLocation": {
+ "description": "Location for data transfer. For locations check: https://management.azure.com/subscriptions/SUBSCRIPTIONID/locations?api-version=2018-01-01",
+ "type": "string"
+ },
+ "skuName": {
+ "description": "Sku Name for which the order is to be scheduled.",
+ "enum": [
+ "DataBox",
+ "DataBoxDisk",
+ "DataBoxHeavy"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "SkuName",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "DataBox",
+ "description": "Data Box."
+ },
+ {
+ "value": "DataBoxDisk",
+ "description": "Data Box Disk."
+ },
+ {
+ "value": "DataBoxHeavy",
+ "description": "Data Box Heavy."
+ }
+ ]
+ }
+ },
+ "country": {
+ "description": "Country in which storage location should be supported.",
+ "type": "string"
+ }
+ },
+ "discriminator": "skuName"
+ },
+ "ScheduleAvailabilityResponse": {
+ "description": "Schedule availability for given sku in a region.",
+ "type": "object",
+ "properties": {
+ "availableDates": {
+ "description": "List of dates available to schedule",
+ "type": "array",
+ "items": {
+ "format": "date-time",
+ "type": "string"
+ },
+ "readOnly": true
+ }
+ }
+ },
+ "ShareCredentialDetails": {
+ "description": "Credential details of the shares in account.",
+ "type": "object",
+ "properties": {
+ "shareName": {
+ "description": "Name of the share.",
+ "type": "string",
+ "readOnly": true
+ },
+ "shareType": {
+ "description": "Type of the share.",
+ "enum": [
+ "UnknownType",
+ "HCS",
+ "BlockBlob",
+ "PageBlob",
+ "AzureFile",
+ "ManagedDisk",
+ "AzurePremiumFiles"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "ShareDestinationFormatType",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "UnknownType",
+ "description": "Unknown format."
+ },
+ {
+ "value": "HCS",
+ "description": "Storsimple data format."
+ },
+ {
+ "value": "BlockBlob",
+ "description": "Azure storage block blob format."
+ },
+ {
+ "value": "PageBlob",
+ "description": "Azure storage page blob format."
+ },
+ {
+ "value": "AzureFile",
+ "description": "Azure storage file format."
+ },
+ {
+ "value": "ManagedDisk",
+ "description": "Azure Compute Disk."
+ },
+ {
+ "value": "AzurePremiumFiles",
+ "description": "Azure storage Premium Files format"
+ }
+ ]
+ }
+ },
+ "userName": {
+ "description": "User name for the share.",
+ "type": "string",
+ "readOnly": true
+ },
+ "password": {
+ "description": "Password for the share.",
+ "type": "string",
+ "readOnly": true
+ },
+ "supportedAccessProtocols": {
+ "description": "Access protocols supported on the device.",
+ "type": "array",
+ "items": {
+ "enum": [
+ "SMB",
+ "NFS"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "AccessProtocol",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "SMB",
+ "description": "Server Message Block protocol(SMB)."
+ },
+ {
+ "value": "NFS",
+ "description": "Network File System protocol(NFS)."
+ }
+ ]
+ }
+ },
+ "readOnly": true
+ }
+ }
+ },
+ "ShipmentPickUpRequest": {
+ "description": "Shipment pick up request details.",
+ "required": [
+ "startTime",
+ "endTime",
+ "shipmentLocation"
+ ],
+ "type": "object",
+ "properties": {
+ "startTime": {
+ "format": "date-time",
+ "description": "Minimum date after which the pick up should commence, this must be in local time of pick up area.",
+ "type": "string"
+ },
+ "endTime": {
+ "format": "date-time",
+ "description": "Maximum date before which the pick up should commence, this must be in local time of pick up area.",
+ "type": "string"
+ },
+ "shipmentLocation": {
+ "description": "Shipment Location in the pickup place. Eg.front desk",
+ "type": "string"
+ }
+ }
+ },
+ "ShipmentPickUpResponse": {
+ "description": "Shipment pick up response.",
+ "type": "object",
+ "properties": {
+ "confirmationNumber": {
+ "description": "Confirmation number for the pick up request.",
+ "type": "string",
+ "readOnly": true
+ },
+ "readyByTime": {
+ "format": "date-time",
+ "description": "Time by which shipment should be ready for pick up, this is in local time of pick up area.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "ShippingAddress": {
+ "description": "Shipping address where customer wishes to receive the device.",
+ "required": [
+ "streetAddress1",
+ "country"
+ ],
+ "type": "object",
+ "properties": {
+ "streetAddress1": {
+ "description": "Street Address line 1.",
+ "type": "string"
+ },
+ "streetAddress2": {
+ "description": "Street Address line 2.",
+ "type": "string"
+ },
+ "streetAddress3": {
+ "description": "Street Address line 3.",
+ "type": "string"
+ },
+ "city": {
+ "description": "Name of the City.",
+ "type": "string"
+ },
+ "stateOrProvince": {
+ "description": "Name of the State or Province.",
+ "type": "string"
+ },
+ "country": {
+ "description": "Name of the Country.",
+ "type": "string"
+ },
+ "postalCode": {
+ "description": "Postal code.",
+ "type": "string"
+ },
+ "zipExtendedCode": {
+ "description": "Extended Zip Code.",
+ "type": "string"
+ },
+ "companyName": {
+ "description": "Name of the company.",
+ "type": "string"
+ },
+ "addressType": {
+ "description": "Type of address.",
+ "enum": [
+ "None",
+ "Residential",
+ "Commercial"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "AddressType",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "None",
+ "description": "Address type not known."
+ },
+ {
+ "value": "Residential",
+ "description": "Residential Address."
+ },
+ {
+ "value": "Commercial",
+ "description": "Commercial Address."
+ }
+ ]
+ }
+ }
+ }
+ },
+ "Sku": {
+ "description": "The Sku.",
+ "required": [
+ "name"
+ ],
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "The sku name.",
+ "enum": [
+ "DataBox",
+ "DataBoxDisk",
+ "DataBoxHeavy"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "SkuName",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "DataBox",
+ "description": "Data Box."
+ },
+ {
+ "value": "DataBoxDisk",
+ "description": "Data Box Disk."
+ },
+ {
+ "value": "DataBoxHeavy",
+ "description": "Data Box Heavy."
+ }
+ ]
+ }
+ },
+ "displayName": {
+ "description": "The display name of the sku.",
+ "type": "string"
+ },
+ "family": {
+ "description": "The sku family.",
+ "type": "string"
+ }
+ }
+ },
+ "SkuAvailabilityValidationRequest": {
+ "description": "Request to validate sku availability.",
+ "required": [
+ "deviceType",
+ "transferType",
+ "country",
+ "location",
+ "validationType"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ValidationInputRequest"
+ }
+ ],
+ "properties": {
+ "deviceType": {
+ "description": "Device type to be used for the job.",
+ "enum": [
+ "DataBox",
+ "DataBoxDisk",
+ "DataBoxHeavy"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "SkuName",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "DataBox",
+ "description": "Data Box."
+ },
+ {
+ "value": "DataBoxDisk",
+ "description": "Data Box Disk."
+ },
+ {
+ "value": "DataBoxHeavy",
+ "description": "Data Box Heavy."
+ }
+ ]
+ }
+ },
+ "transferType": {
+ "description": "Type of the transfer.",
+ "enum": [
+ "ImportToAzure",
+ "ExportFromAzure"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "TransferType",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "ImportToAzure",
+ "description": "Import data to azure."
+ },
+ {
+ "value": "ExportFromAzure",
+ "description": "Export data from azure."
+ }
+ ]
+ }
+ },
+ "country": {
+ "description": "ISO country code. Country for hardware shipment. For codes check: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements",
+ "type": "string"
+ },
+ "location": {
+ "description": "Location for data transfer. For locations check: https://management.azure.com/subscriptions/SUBSCRIPTIONID/locations?api-version=2018-01-01",
+ "type": "string"
+ }
+ },
+ "x-ms-discriminator-value": "ValidateSkuAvailability"
+ },
+ "SkuAvailabilityValidationResponseProperties": {
+ "description": "Properties of sku availability validation response.",
+ "required": [
+ "validationType"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ValidationInputResponse"
+ }
+ ],
+ "properties": {
+ "status": {
+ "description": "Sku availability validation status.",
+ "enum": [
+ "Valid",
+ "Invalid",
+ "Skipped"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "ValidationStatus",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "Valid",
+ "description": "Validation is successful"
+ },
+ {
+ "value": "Invalid",
+ "description": "Validation is not successful"
+ },
+ {
+ "value": "Skipped",
+ "description": "Validation is skipped"
+ }
+ ]
+ }
+ }
+ },
+ "x-ms-discriminator-value": "ValidateSkuAvailability"
+ },
+ "SkuCapacity": {
+ "description": "Capacity of the sku.",
+ "type": "object",
+ "properties": {
+ "usable": {
+ "description": "Usable capacity in TB.",
+ "type": "string",
+ "readOnly": true
+ },
+ "maximum": {
+ "description": "Maximum capacity in TB.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "SkuCost": {
+ "description": "Describes metadata for retrieving price info.",
+ "type": "object",
+ "properties": {
+ "meterId": {
+ "description": "Meter id of the Sku.",
+ "type": "string",
+ "readOnly": true
+ },
+ "meterType": {
+ "description": "The type of the meter.",
+ "type": "string",
+ "readOnly": true
+ },
+ "multiplier": {
+ "format": "double",
+ "description": "Multiplier specifies the region specific value to be multiplied with 1$ guid. Eg: Our new regions will be using 1$ shipping guid with appropriate multiplier specific to region.",
+ "type": "number",
+ "readOnly": true
+ }
+ }
+ },
+ "SkuInformation": {
+ "description": "Information of the sku.",
+ "type": "object",
+ "properties": {
+ "sku": {
+ "$ref": "#/definitions/Sku",
+ "description": "The Sku.",
+ "readOnly": true
+ },
+ "enabled": {
+ "description": "The sku is enabled or not.",
+ "type": "boolean",
+ "readOnly": true
+ },
+ "properties": {
+ "$ref": "#/definitions/SkuProperties",
+ "description": "Properties of the sku.",
+ "readOnly": true,
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "SkuProperties": {
+ "description": "Properties of the sku.",
+ "type": "object",
+ "properties": {
+ "dataLocationToServiceLocationMap": {
+ "description": "The map of data location to service location.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DataLocationToServiceLocationMap"
+ },
+ "readOnly": true
+ },
+ "capacity": {
+ "$ref": "#/definitions/SkuCapacity",
+ "description": "Capacity of the Sku.",
+ "readOnly": true
+ },
+ "costs": {
+ "description": "Cost of the Sku.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SkuCost"
+ },
+ "readOnly": true
+ },
+ "apiVersions": {
+ "description": "Api versions that support this Sku.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "readOnly": true
+ },
+ "disabledReason": {
+ "description": "Reason why the Sku is disabled.",
+ "enum": [
+ "None",
+ "Country",
+ "Region",
+ "Feature",
+ "OfferType",
+ "NoSubscriptionInfo"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "SkuDisabledReason",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "None",
+ "description": "SKU is not disabled."
+ },
+ {
+ "value": "Country",
+ "description": "SKU is not available in the requested country."
+ },
+ {
+ "value": "Region",
+ "description": "SKU is not available to push data to the requested Azure region."
+ },
+ {
+ "value": "Feature",
+ "description": "Required features are not enabled for the SKU."
+ },
+ {
+ "value": "OfferType",
+ "description": "Subscription does not have required offer types for the SKU."
+ },
+ {
+ "value": "NoSubscriptionInfo",
+ "description": "Subscription has not registered to Microsoft.DataBox and Service does not have the subscription notification."
+ }
+ ]
+ }
+ },
+ "disabledReasonMessage": {
+ "description": "Message for why the Sku is disabled.",
+ "type": "string",
+ "readOnly": true
+ },
+ "requiredFeature": {
+ "description": "Required feature to access the sku.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "StorageAccountDetails": {
+ "description": "Details for the storage account.",
+ "required": [
+ "storageAccountId",
+ "dataAccountType"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/DataAccountDetails"
+ }
+ ],
+ "properties": {
+ "storageAccountId": {
+ "description": "Storage Account Resource Id.",
+ "type": "string"
+ }
+ },
+ "x-ms-discriminator-value": "StorageAccount"
+ },
+ "SubscriptionIsAllowedToCreateJobValidationRequest": {
+ "description": "Request to validate subscription permission to create jobs.",
+ "required": [
+ "validationType"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ValidationInputRequest"
+ }
+ ],
+ "properties": {},
+ "x-ms-discriminator-value": "ValidateSubscriptionIsAllowedToCreateJob"
+ },
+ "SubscriptionIsAllowedToCreateJobValidationResponseProperties": {
+ "description": "Properties of subscription permission to create job validation response.",
+ "required": [
+ "validationType"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ValidationInputResponse"
+ }
+ ],
+ "properties": {
+ "status": {
+ "description": "Validation status of subscription permission to create job.",
+ "enum": [
+ "Valid",
+ "Invalid",
+ "Skipped"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "ValidationStatus",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "Valid",
+ "description": "Validation is successful"
+ },
+ {
+ "value": "Invalid",
+ "description": "Validation is not successful"
+ },
+ {
+ "value": "Skipped",
+ "description": "Validation is skipped"
+ }
+ ]
+ }
+ }
+ },
+ "x-ms-discriminator-value": "ValidateSubscriptionIsAllowedToCreateJob"
+ },
+ "TransferAllDetails": {
+ "description": "Details to transfer all data.",
+ "required": [
+ "dataAccountType"
+ ],
+ "type": "object",
+ "properties": {
+ "dataAccountType": {
+ "description": "Type of the account of data",
+ "enum": [
+ "StorageAccount",
+ "ManagedDisk"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "DataAccountType",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "StorageAccount",
+ "description": "Storage Accounts ."
+ },
+ {
+ "value": "ManagedDisk",
+ "description": "Azure Managed disk storage."
+ }
+ ]
+ }
+ },
+ "transferAllBlobs": {
+ "description": "To indicate if all Azure blobs have to be transferred",
+ "type": "boolean"
+ },
+ "transferAllFiles": {
+ "description": "To indicate if all Azure Files have to be transferred",
+ "type": "boolean"
+ }
+ }
+ },
+ "TransferConfiguration": {
+ "description": "Configuration for defining the transfer of data.",
+ "required": [
+ "transferConfigurationType"
+ ],
+ "type": "object",
+ "properties": {
+ "transferConfigurationType": {
+ "description": "Type of the configuration for transfer.",
+ "enum": [
+ "TransferAll",
+ "TransferUsingFilter"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "TransferConfigurationType",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "TransferAll",
+ "description": "Transfer all the data."
+ },
+ {
+ "value": "TransferUsingFilter",
+ "description": "Transfer using filter."
+ }
+ ]
+ }
+ },
+ "transferFilterDetails": {
+ "description": "Map of filter type and the details to filter. This field is required only if the TransferConfigurationType is given as TransferUsingFilter.",
+ "type": "object",
+ "properties": {
+ "include": {
+ "description": "Details of the filtering the transfer of data.",
+ "$ref": "#/definitions/TransferFilterDetails"
+ }
+ }
+ },
+ "transferAllDetails": {
+ "description": "Map of filter type and the details to transfer all data. This field is required only if the TransferConfigurationType is given as TransferAll",
+ "type": "object",
+ "properties": {
+ "include": {
+ "description": "Details to transfer all data.",
+ "$ref": "#/definitions/TransferAllDetails"
+ }
+ }
+ }
+ }
+ },
+ "TransferFilterDetails": {
+ "description": "Details of the filtering the transfer of data.",
+ "required": [
+ "dataAccountType"
+ ],
+ "type": "object",
+ "properties": {
+ "dataAccountType": {
+ "description": "Type of the account of data.",
+ "enum": [
+ "StorageAccount",
+ "ManagedDisk"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "DataAccountType",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "StorageAccount",
+ "description": "Storage Accounts ."
+ },
+ {
+ "value": "ManagedDisk",
+ "description": "Azure Managed disk storage."
+ }
+ ]
+ }
+ },
+ "blobFilterDetails": {
+ "$ref": "#/definitions/BlobFilterDetails",
+ "description": "Filter details to transfer blobs."
+ },
+ "azureFileFilterDetails": {
+ "$ref": "#/definitions/AzureFileFilterDetails",
+ "description": "Filter details to transfer Azure files."
+ },
+ "filterFileDetails": {
+ "description": "Details of the filter files to be used for data transfer.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/FilterFileDetails"
+ }
+ }
+ }
+ },
+ "TransportAvailabilityDetails": {
+ "description": "Transport options availability details for given region.",
+ "type": "object",
+ "properties": {
+ "shipmentType": {
+ "description": "Transport Shipment Type supported for given region.",
+ "enum": [
+ "CustomerManaged",
+ "MicrosoftManaged"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "TransportShipmentTypes",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "CustomerManaged",
+ "description": "Shipment Logistics is handled by the customer."
+ },
+ {
+ "value": "MicrosoftManaged",
+ "description": "Shipment Logistics is handled by Microsoft."
+ }
+ ]
+ }
+ }
+ }
+ },
+ "TransportAvailabilityRequest": {
+ "description": "Request body to get the transport availability for given sku.",
+ "type": "object",
+ "properties": {
+ "skuName": {
+ "description": "Type of the device.",
+ "enum": [
+ "DataBox",
+ "DataBoxDisk",
+ "DataBoxHeavy"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "SkuName",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "DataBox",
+ "description": "Data Box."
+ },
+ {
+ "value": "DataBoxDisk",
+ "description": "Data Box Disk."
+ },
+ {
+ "value": "DataBoxHeavy",
+ "description": "Data Box Heavy."
+ }
+ ]
+ }
+ }
+ }
+ },
+ "TransportAvailabilityResponse": {
+ "description": "Transport options available for given sku in a region.",
+ "type": "object",
+ "properties": {
+ "transportAvailabilityDetails": {
+ "description": "List of transport availability details for given region",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/TransportAvailabilityDetails"
+ },
+ "readOnly": true
+ }
+ }
+ },
+ "TransportPreferences": {
+ "description": "Preferences related to the shipment logistics of the sku",
+ "required": [
+ "preferredShipmentType"
+ ],
+ "type": "object",
+ "properties": {
+ "preferredShipmentType": {
+ "description": "Indicates Shipment Logistics type that the customer preferred.",
+ "enum": [
+ "CustomerManaged",
+ "MicrosoftManaged"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "TransportShipmentTypes",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "CustomerManaged",
+ "description": "Shipment Logistics is handled by the customer."
+ },
+ {
+ "value": "MicrosoftManaged",
+ "description": "Shipment Logistics is handled by Microsoft."
+ }
+ ]
+ }
+ }
+ }
+ },
+ "UnencryptedCredentials": {
+ "description": "Unencrypted credentials for accessing device.",
+ "type": "object",
+ "properties": {
+ "jobName": {
+ "description": "Name of the job.",
+ "type": "string",
+ "readOnly": true
+ },
+ "jobSecrets": {
+ "$ref": "#/definitions/JobSecrets",
+ "description": "Secrets related to this job.",
+ "readOnly": true
+ }
+ }
+ },
+ "UnencryptedCredentialsList": {
+ "description": "List of unencrypted credentials for accessing device.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of unencrypted credentials.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/UnencryptedCredentials"
+ }
+ },
+ "nextLink": {
+ "description": "Link for the next set of unencrypted credentials.",
+ "type": "string"
+ }
+ }
+ },
+ "UpdateJobDetails": {
+ "description": "Job details for update.",
+ "type": "object",
+ "properties": {
+ "contactDetails": {
+ "$ref": "#/definitions/ContactDetails",
+ "description": "Contact details for notification and shipping."
+ },
+ "shippingAddress": {
+ "$ref": "#/definitions/ShippingAddress",
+ "description": "Shipping address of the customer."
+ },
+ "keyEncryptionKey": {
+ "$ref": "#/definitions/KeyEncryptionKey",
+ "description": "Key encryption key for the job."
+ }
+ }
+ },
+ "UpdateJobProperties": {
+ "description": "Job Properties for update",
+ "type": "object",
+ "properties": {
+ "details": {
+ "$ref": "#/definitions/UpdateJobDetails",
+ "description": "Details of a job to be updated."
+ }
+ }
+ },
+ "UserAssignedIdentity": {
+ "description": "Class defining User assigned identity details.",
+ "type": "object",
+ "properties": {
+ "principalId": {
+ "description": "The principal id of user assigned identity.",
+ "type": "string",
+ "readOnly": true
+ },
+ "clientId": {
+ "description": "The client id of user assigned identity.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "UserAssignedProperties": {
+ "description": "User assigned identity properties.",
+ "type": "object",
+ "properties": {
+ "resourceId": {
+ "description": "Arm resource id for user assigned identity to be used to fetch MSI token.",
+ "type": "string"
+ }
+ }
+ },
+ "ValidateAddress": {
+ "description": "The requirements to validate customer address where the device needs to be shipped.",
+ "required": [
+ "shippingAddress",
+ "deviceType",
+ "validationType"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ValidationInputRequest"
+ }
+ ],
+ "properties": {
+ "shippingAddress": {
+ "$ref": "#/definitions/ShippingAddress",
+ "description": "Shipping address of the customer."
+ },
+ "deviceType": {
+ "description": "Device type to be used for the job.",
+ "enum": [
+ "DataBox",
+ "DataBoxDisk",
+ "DataBoxHeavy"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "SkuName",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "DataBox",
+ "description": "Data Box."
+ },
+ {
+ "value": "DataBoxDisk",
+ "description": "Data Box Disk."
+ },
+ {
+ "value": "DataBoxHeavy",
+ "description": "Data Box Heavy."
+ }
+ ]
+ }
+ },
+ "transportPreferences": {
+ "$ref": "#/definitions/TransportPreferences",
+ "description": "Preferences related to the shipment logistics of the sku."
+ }
+ },
+ "x-ms-discriminator-value": "ValidateAddress"
+ },
+ "ValidationInputRequest": {
+ "description": "Minimum fields that must be present in any type of validation request.",
+ "required": [
+ "validationType"
+ ],
+ "type": "object",
+ "properties": {
+ "validationType": {
+ "description": "Identifies the type of validation request.",
+ "enum": [
+ "ValidateAddress",
+ "ValidateSubscriptionIsAllowedToCreateJob",
+ "ValidatePreferences",
+ "ValidateCreateOrderLimit",
+ "ValidateSkuAvailability",
+ "ValidateDataTransferDetails"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "ValidationInputDiscriminator",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "ValidateAddress",
+ "description": "Identify request and response of address validation."
+ },
+ {
+ "value": "ValidateSubscriptionIsAllowedToCreateJob",
+ "description": "Identify request and response for validation of subscription permission to create job."
+ },
+ {
+ "value": "ValidatePreferences",
+ "description": "Identify request and response of preference validation."
+ },
+ {
+ "value": "ValidateCreateOrderLimit",
+ "description": "Identify request and response of create order limit for subscription validation."
+ },
+ {
+ "value": "ValidateSkuAvailability",
+ "description": "Identify request and response of active job limit for sku availability."
+ },
+ {
+ "value": "ValidateDataTransferDetails",
+ "description": "Identify request and response of data transfer details validation."
+ }
+ ]
+ }
+ }
+ },
+ "discriminator": "validationType"
+ },
+ "ValidationInputResponse": {
+ "description": "Minimum properties that should be present in each individual validation response.",
+ "required": [
+ "validationType"
+ ],
+ "type": "object",
+ "properties": {
+ "validationType": {
+ "description": "Identifies the type of validation response.",
+ "enum": [
+ "ValidateAddress",
+ "ValidateSubscriptionIsAllowedToCreateJob",
+ "ValidatePreferences",
+ "ValidateCreateOrderLimit",
+ "ValidateSkuAvailability",
+ "ValidateDataTransferDetails"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "ValidationInputDiscriminator",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "ValidateAddress",
+ "description": "Identify request and response of address validation."
+ },
+ {
+ "value": "ValidateSubscriptionIsAllowedToCreateJob",
+ "description": "Identify request and response for validation of subscription permission to create job."
+ },
+ {
+ "value": "ValidatePreferences",
+ "description": "Identify request and response of preference validation."
+ },
+ {
+ "value": "ValidateCreateOrderLimit",
+ "description": "Identify request and response of create order limit for subscription validation."
+ },
+ {
+ "value": "ValidateSkuAvailability",
+ "description": "Identify request and response of active job limit for sku availability."
+ },
+ {
+ "value": "ValidateDataTransferDetails",
+ "description": "Identify request and response of data transfer details validation."
+ }
+ ]
+ }
+ },
+ "error": {
+ "$ref": "#/definitions/CloudError",
+ "description": "Error code and message of validation response.",
+ "readOnly": true
+ }
+ },
+ "discriminator": "validationType"
+ },
+ "ValidationRequest": {
+ "description": "Minimum request requirement of any validation category.",
+ "required": [
+ "validationCategory",
+ "individualRequestDetails"
+ ],
+ "type": "object",
+ "properties": {
+ "validationCategory": {
+ "description": "Identify the nature of validation.",
+ "enum": [
+ "JobCreationValidation"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "ValidationCategory",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "JobCreationValidation",
+ "description": "Identify request of pre-job creation validations."
+ }
+ ]
+ }
+ },
+ "individualRequestDetails": {
+ "description": "List of request details contain validationType and its request as key and value respectively.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ValidationInputRequest"
+ }
+ }
+ },
+ "discriminator": "validationCategory"
+ },
+ "ValidationResponse": {
+ "description": "Response of pre job creation validations.",
+ "type": "object",
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/ValidationResponseProperties",
+ "description": "Properties of pre job creation validation response.",
+ "readOnly": true,
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "ValidationResponseProperties": {
+ "description": "Properties of pre job creation validation response.",
+ "type": "object",
+ "properties": {
+ "status": {
+ "description": "Overall validation status.",
+ "enum": [
+ "AllValidToProceed",
+ "InputsRevisitRequired",
+ "CertainInputValidationsSkipped"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "OverallValidationStatus",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "AllValidToProceed",
+ "description": "Every input request is valid."
+ },
+ {
+ "value": "InputsRevisitRequired",
+ "description": "Some input requests are not valid."
+ },
+ {
+ "value": "CertainInputValidationsSkipped",
+ "description": "Certain input validations skipped."
+ }
+ ]
+ }
+ },
+ "individualResponseDetails": {
+ "description": "List of response details contain validationType and its response as key and value respectively.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ValidationInputResponse"
+ },
+ "readOnly": true
+ }
+ }
+ }
+ },
+ "parameters": {
+ "apiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "description": "The API Version",
+ "required": true,
+ "type": "string"
+ },
+ "jobNameParameter": {
+ "name": "jobName",
+ "in": "path",
+ "description": "The name of the job Resource within the specified resource group. job names must be between 3 and 24 characters in length and use any alphanumeric and underscore only",
+ "required": true,
+ "type": "string",
+ "maxLength": 24,
+ "minLength": 3,
+ "pattern": "^[-\\w\\.]+$",
+ "x-ms-parameter-location": "method"
+ },
+ "locationParameter": {
+ "name": "location",
+ "in": "path",
+ "description": "The location of the resource",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "resourceGroupNameParameter": {
+ "name": "resourceGroupName",
+ "in": "path",
+ "description": "The Resource Group Name",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "subscriptionIdParameter": {
+ "name": "subscriptionId",
+ "in": "path",
+ "description": "The Subscription Id",
+ "required": true,
+ "type": "string"
+ }
+ },
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "description": "Azure Active Directory OAuth2 Flow",
+ "flow": "implicit",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
+ "security": [
+ {
+ "azure_auth": [
+ "user_impersonation"
+ ]
+ }
+ ]
+}
diff --git a/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/AvailableSkusPost.json b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/AvailableSkusPost.json
new file mode 100644
index 000000000000..b152fbd9b733
--- /dev/null
+++ b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/AvailableSkusPost.json
@@ -0,0 +1,280 @@
+{
+ "parameters": {
+ "subscriptionId": "fa68082f-8ff7-4a25-95c7-ce9da541242f",
+ "resourceGroupName": "bvttoolrg6",
+ "location": "westus",
+ "api-version": "2020-11-01",
+ "x-ms-client-request-id": [
+ "ce815189-a9cc-4288-8166-d78f211bed5a"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.29017.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.18363.",
+ "Microsoft.Azure.Management.DataBox.DataBoxManagementClient/1.1.0"
+ ],
+ "Content-Type": [
+ "application/json; charset=utf-8"
+ ],
+ "Content-Length": [
+ "84"
+ ],
+ "availableSkuRequest": {
+ "transferType": "ImportToAzure",
+ "country": "US",
+ "location": "westus"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "sku": {
+ "name": "DataBox"
+ },
+ "enabled": true,
+ "properties": {
+ "dataLocationToServiceLocationMap": [
+ {
+ "dataLocation": "westus",
+ "serviceLocation": "westus"
+ },
+ {
+ "dataLocation": "centralus",
+ "serviceLocation": "westus"
+ },
+ {
+ "dataLocation": "eastus",
+ "serviceLocation": "westus"
+ },
+ {
+ "dataLocation": "eastus2",
+ "serviceLocation": "westus"
+ },
+ {
+ "dataLocation": "northcentralus",
+ "serviceLocation": "westus"
+ },
+ {
+ "dataLocation": "southcentralus",
+ "serviceLocation": "westus"
+ },
+ {
+ "dataLocation": "westcentralus",
+ "serviceLocation": "westus"
+ },
+ {
+ "dataLocation": "westus2",
+ "serviceLocation": "westus"
+ },
+ {
+ "dataLocation": "centraluseuap",
+ "serviceLocation": "centraluseuap"
+ },
+ {
+ "dataLocation": "eastus2euap",
+ "serviceLocation": "eastus2euap"
+ }
+ ],
+ "capacity": {
+ "usable": "80",
+ "maximum": "100"
+ },
+ "costs": [
+ {
+ "meterId": "0cf23ffc-0b64-49e6-9bdd-1db885349042",
+ "meterType": "DataBoxServiceFee",
+ "multiplier": 1
+ },
+ {
+ "meterId": "a701f058-119b-4713-a923-bed7da4b7801",
+ "meterType": "DataBoxShippingFee",
+ "multiplier": 1
+ },
+ {
+ "meterId": "049fa331-0a48-4a81-9991-a6bef3c79fed",
+ "meterType": "DataBoxExtraDayFee",
+ "multiplier": 1
+ },
+ {
+ "meterId": "c3ea978d-6a0a-4632-b094-4fffcafcb057",
+ "meterType": "DataBoxLostOrDamagedDeviceFee",
+ "multiplier": 1
+ }
+ ],
+ "apiVersions": [
+ "2018-01-01"
+ ],
+ "disabledReason": "None"
+ }
+ },
+ {
+ "sku": {
+ "name": "DataBoxDisk"
+ },
+ "enabled": true,
+ "properties": {
+ "dataLocationToServiceLocationMap": [
+ {
+ "dataLocation": "westus",
+ "serviceLocation": "westus"
+ },
+ {
+ "dataLocation": "centralus",
+ "serviceLocation": "westus"
+ },
+ {
+ "dataLocation": "eastus",
+ "serviceLocation": "westus"
+ },
+ {
+ "dataLocation": "eastus2",
+ "serviceLocation": "westus"
+ },
+ {
+ "dataLocation": "northcentralus",
+ "serviceLocation": "westus"
+ },
+ {
+ "dataLocation": "southcentralus",
+ "serviceLocation": "westus"
+ },
+ {
+ "dataLocation": "westcentralus",
+ "serviceLocation": "westus"
+ },
+ {
+ "dataLocation": "westus2",
+ "serviceLocation": "westus"
+ },
+ {
+ "dataLocation": "centraluseuap",
+ "serviceLocation": "centraluseuap"
+ },
+ {
+ "dataLocation": "eastus2euap",
+ "serviceLocation": "eastus2euap"
+ }
+ ],
+ "capacity": {
+ "usable": "35",
+ "maximum": "40"
+ },
+ "costs": [
+ {
+ "meterId": "d95cd8b5-b6f1-4cd9-ae86-a016d1945d6f",
+ "meterType": "DataBoxDiskServiceFee",
+ "multiplier": 1
+ },
+ {
+ "meterId": "4b8cf572-cb04-4ef3-9528-2cda4e9b544e",
+ "meterType": "DataBoxDiskShippingFee",
+ "multiplier": 1
+ },
+ {
+ "meterId": "b6ae9bbf-815d-49dd-bb2b-77c497b72ba4",
+ "meterType": "DataBoxDiskDailyUsageFee",
+ "multiplier": 1
+ },
+ {
+ "meterId": "08bc0ea1-6c82-421b-b953-2a7a65810d2e",
+ "meterType": "DataBoxDiskLostDeviceFee",
+ "multiplier": 1
+ }
+ ],
+ "apiVersions": [
+ "2018-01-01"
+ ],
+ "disabledReason": "None"
+ }
+ },
+ {
+ "sku": {
+ "name": "DataBoxHeavy"
+ },
+ "enabled": true,
+ "properties": {
+ "dataLocationToServiceLocationMap": [
+ {
+ "dataLocation": "westus",
+ "serviceLocation": "westus"
+ },
+ {
+ "dataLocation": "centralus",
+ "serviceLocation": "westus"
+ },
+ {
+ "dataLocation": "eastus",
+ "serviceLocation": "westus"
+ },
+ {
+ "dataLocation": "eastus2",
+ "serviceLocation": "westus"
+ },
+ {
+ "dataLocation": "northcentralus",
+ "serviceLocation": "westus"
+ },
+ {
+ "dataLocation": "southcentralus",
+ "serviceLocation": "westus"
+ },
+ {
+ "dataLocation": "westcentralus",
+ "serviceLocation": "westus"
+ },
+ {
+ "dataLocation": "westus2",
+ "serviceLocation": "westus"
+ },
+ {
+ "dataLocation": "centraluseuap",
+ "serviceLocation": "centraluseuap"
+ },
+ {
+ "dataLocation": "eastus2euap",
+ "serviceLocation": "eastus2euap"
+ }
+ ],
+ "capacity": {
+ "usable": "800",
+ "maximum": "1000"
+ },
+ "costs": [
+ {
+ "meterId": "d0dccaaf-3de9-4c7a-ba97-f83551b90126",
+ "meterType": "DataBoxHeavyServiceFee",
+ "multiplier": 1
+ },
+ {
+ "meterId": "7b49d11f-d4f7-4029-a197-04998fd282f9",
+ "meterType": "DataBoxHeavyShippingFee",
+ "multiplier": 1
+ },
+ {
+ "meterId": "c2c66d53-11b4-4f11-9642-43c7c336f0b7",
+ "meterType": "DataBoxHeavyExtraDayFee",
+ "multiplier": 1
+ },
+ {
+ "meterId": "188dcd7e-fbd7-4a41-aa42-162b81b0510f",
+ "meterType": "DataBoxHeavyLostOrDamagedDeviceFee",
+ "multiplier": 1
+ }
+ ],
+ "apiVersions": [
+ "2018-01-01"
+ ],
+ "disabledReason": "None",
+ "requiredFeature": "HeavyCreateAccess"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/BookShipmentPickupPost.json b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/BookShipmentPickupPost.json
new file mode 100644
index 000000000000..bec928ad7c87
--- /dev/null
+++ b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/BookShipmentPickupPost.json
@@ -0,0 +1,39 @@
+{
+ "parameters": {
+ "subscriptionId": "fa68082f-8ff7-4a25-95c7-ce9da541242f",
+ "resourceGroupName": "bvttoolrg6",
+ "jobName": "TJ-636646322037905056",
+ "api-version": "2019-09-01",
+ "x-ms-client-request-id": [
+ "e1437186-b41d-492e-9b7a-e197c28a517a"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.27817.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.18362.",
+ "Microsoft.Azure.Management.DataBox.DataBoxManagementClient/1.2.0"
+ ],
+ "Content-Type": [
+ "application/json; charset=utf-8"
+ ],
+ "Content-Length": [
+ "118"
+ ],
+ "shipmentPickUpRequest": {
+ "startTime": "2019-09-20T18:30:00Z",
+ "endTime": "2019-09-22T18:30:00Z",
+ "shipmentLocation": "Front desk"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "confirmationNumber": "2929602E9CP",
+ "readyByTime": "2019-09-20T18:30:00Z"
+ }
+ }
+ }
+}
diff --git a/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/JobsCancelPost.json b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/JobsCancelPost.json
new file mode 100644
index 000000000000..9203b2b65bf0
--- /dev/null
+++ b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/JobsCancelPost.json
@@ -0,0 +1,33 @@
+{
+ "parameters": {
+ "subscriptionId": "fa68082f-8ff7-4a25-95c7-ce9da541242f",
+ "resourceGroupName": "SdkRg5154",
+ "jobName": "SdkJob952",
+ "api-version": "2020-11-01",
+ "$expand": "details",
+ "x-ms-client-request-id": [
+ "95fc15f7-4976-46bb-8370-74ed4cb676be"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.29017.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.18363.",
+ "Microsoft.Azure.Management.DataBox.DataBoxManagementClient/1.1.0"
+ ],
+ "Content-Type": [
+ "application/json; charset=utf-8"
+ ],
+ "Content-Length": [
+ "30"
+ ],
+ "cancellationReason": {
+ "reason": "CancelTest"
+ }
+ },
+ "responses": {
+ "204": {}
+ }
+}
diff --git a/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/JobsCreate.json b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/JobsCreate.json
new file mode 100644
index 000000000000..00263e181498
--- /dev/null
+++ b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/JobsCreate.json
@@ -0,0 +1,184 @@
+{
+ "parameters": {
+ "subscriptionId": "fa68082f-8ff7-4a25-95c7-ce9da541242f",
+ "resourceGroupName": "SdkRg5154",
+ "jobName": "SdkJob952",
+ "api-version": "2020-11-01",
+ "x-ms-client-request-id": [
+ "04f2835f-a2a2-4f25-96df-568460e5be24"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.29017.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.18363.",
+ "Microsoft.Azure.Management.DataBox.DataBoxManagementClient/1.1.0"
+ ],
+ "Content-Type": [
+ "application/json; charset=utf-8"
+ ],
+ "Content-Length": [
+ "1064"
+ ],
+ "jobResource": {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "details": {
+ "jobDetailsType": "DataBox",
+ "contactDetails": {
+ "contactName": "Public SDK Test",
+ "phone": "1234567890",
+ "phoneExtension": "1234",
+ "emailList": [
+ "testing@microsoft.com"
+ ]
+ },
+ "shippingAddress": {
+ "streetAddress1": "16 TOWNSEND ST",
+ "streetAddress2": "Unit 1",
+ "city": "San Francisco",
+ "stateOrProvince": "CA",
+ "country": "US",
+ "postalCode": "94107",
+ "companyName": "Microsoft",
+ "addressType": "Commercial"
+ },
+ "dataImportDetails": [
+ {
+ "accountDetails": {
+ "dataAccountType": "StorageAccount",
+ "storageAccountId": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/databoxbvt/providers/Microsoft.Storage/storageAccounts/databoxbvttestaccount"
+ }
+ }
+ ]
+ }
+ },
+ "location": "westus",
+ "sku": {
+ "name": "DataBox"
+ }
+ }
+ },
+ "responses": {
+ "202": {},
+ "200": {
+ "body": {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "isCancellable": true,
+ "isDeletable": false,
+ "isShippingAddressEditable": true,
+ "status": "DeviceOrdered",
+ "startTime": "2019-09-21T14:49:49.0027611+05:30",
+ "details": {
+ "copyProgress": [],
+ "jobStages": [
+ {
+ "stageName": "DeviceOrdered",
+ "displayName": "Ordered",
+ "stageStatus": "Succeeded",
+ "stageTime": "2019-09-21T14:49:52.3995743+05:30"
+ },
+ {
+ "stageName": "DevicePrepared",
+ "displayName": "Processed",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "Dispatched",
+ "displayName": "Dispatched",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "Delivered",
+ "displayName": "Delivered",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "PickedUp",
+ "displayName": "Picked up",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "AtAzureDC",
+ "displayName": "Received",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "DataCopy",
+ "displayName": "Data copy in progress",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "Completed",
+ "displayName": "Completed",
+ "stageStatus": "None"
+ }
+ ],
+ "contactDetails": {
+ "contactName": "Public SDK Test",
+ "phone": "1234567890",
+ "phoneExtension": "1234",
+ "emailList": [
+ "testing@microsoft.com"
+ ],
+ "notificationPreference": [
+ {
+ "stageName": "DevicePrepared",
+ "sendNotification": true
+ },
+ {
+ "stageName": "Dispatched",
+ "sendNotification": true
+ },
+ {
+ "stageName": "Delivered",
+ "sendNotification": true
+ },
+ {
+ "stageName": "PickedUp",
+ "sendNotification": true
+ },
+ {
+ "stageName": "AtAzureDC",
+ "sendNotification": true
+ },
+ {
+ "stageName": "DataCopy",
+ "sendNotification": true
+ }
+ ]
+ },
+ "shippingAddress": {
+ "streetAddress1": "16 TOWNSEND ST",
+ "streetAddress2": "Unit 1",
+ "city": "San Francisco",
+ "stateOrProvince": "CA",
+ "country": "US",
+ "postalCode": "94107",
+ "companyName": "Microsoft",
+ "addressType": "Commercial"
+ },
+ "jobDetailsType": "DataBox",
+ "copyLogDetails": []
+ },
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": true
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "name": "SdkJob952",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/SdkRg5154/providers/Microsoft.DataBox/jobs/SdkJob952",
+ "type": "Microsoft.DataBox/jobs"
+ }
+ }
+ }
+}
diff --git a/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/JobsCreateDevicePassword.json b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/JobsCreateDevicePassword.json
new file mode 100644
index 000000000000..7328395015a5
--- /dev/null
+++ b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/JobsCreateDevicePassword.json
@@ -0,0 +1,186 @@
+{
+ "parameters": {
+ "subscriptionId": "fa68082f-8ff7-4a25-95c7-ce9da541242f",
+ "resourceGroupName": "SdkRg7478",
+ "jobName": "SdkJob9640",
+ "api-version": "2020-11-01",
+ "x-ms-client-request-id": [
+ "c4c8f926-ebbe-4c07-ae1a-b716911058df"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.29017.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.18363.",
+ "Microsoft.Azure.Management.DataBox.DataBoxManagementClient/1.1.0"
+ ],
+ "Content-Type": [
+ "application/json; charset=utf-8"
+ ],
+ "Content-Length": [
+ "1168"
+ ],
+ "jobResource": {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "details": {
+ "jobDetailsType": "DataBox",
+ "devicePassword": "Abcd223@22344",
+ "contactDetails": {
+ "contactName": "Public SDK Test",
+ "phone": "1234567890",
+ "phoneExtension": "1234",
+ "emailList": [
+ "testing@microsoft.com"
+ ]
+ },
+ "shippingAddress": {
+ "streetAddress1": "16 TOWNSEND ST",
+ "streetAddress2": "Unit 1",
+ "city": "San Francisco",
+ "stateOrProvince": "CA",
+ "country": "US",
+ "postalCode": "94107",
+ "companyName": "Microsoft",
+ "addressType": "Commercial"
+ },
+ "dataImportDetails": [
+ {
+ "accountDetails": {
+ "dataAccountType": "StorageAccount",
+ "storageAccountId": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/databoxbvt1/providers/Microsoft.Storage/storageAccounts/databoxbvttestaccount2",
+ "sharePassword": "Abcd223@22344Abcd223@22344"
+ }
+ }
+ ]
+ }
+ },
+ "location": "westus",
+ "sku": {
+ "name": "DataBox"
+ }
+ }
+ },
+ "responses": {
+ "202": {},
+ "200": {
+ "body": {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "isCancellable": true,
+ "isDeletable": false,
+ "isShippingAddressEditable": true,
+ "status": "DeviceOrdered",
+ "startTime": "2019-09-21T14:49:49.0027611+05:30",
+ "details": {
+ "copyProgress": [],
+ "jobStages": [
+ {
+ "stageName": "DeviceOrdered",
+ "displayName": "Ordered",
+ "stageStatus": "Succeeded",
+ "stageTime": "2019-09-21T14:49:52.3995743+05:30"
+ },
+ {
+ "stageName": "DevicePrepared",
+ "displayName": "Processed",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "Dispatched",
+ "displayName": "Dispatched",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "Delivered",
+ "displayName": "Delivered",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "PickedUp",
+ "displayName": "Picked up",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "AtAzureDC",
+ "displayName": "Received",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "DataCopy",
+ "displayName": "Data copy in progress",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "Completed",
+ "displayName": "Completed",
+ "stageStatus": "None"
+ }
+ ],
+ "contactDetails": {
+ "contactName": "Public SDK Test",
+ "phone": "1234567890",
+ "phoneExtension": "1234",
+ "emailList": [
+ "testing@microsoft.com"
+ ],
+ "notificationPreference": [
+ {
+ "stageName": "DevicePrepared",
+ "sendNotification": true
+ },
+ {
+ "stageName": "Dispatched",
+ "sendNotification": true
+ },
+ {
+ "stageName": "Delivered",
+ "sendNotification": true
+ },
+ {
+ "stageName": "PickedUp",
+ "sendNotification": true
+ },
+ {
+ "stageName": "AtAzureDC",
+ "sendNotification": true
+ },
+ {
+ "stageName": "DataCopy",
+ "sendNotification": true
+ }
+ ]
+ },
+ "shippingAddress": {
+ "streetAddress1": "16 TOWNSEND ST",
+ "streetAddress2": "Unit 1",
+ "city": "San Francisco",
+ "stateOrProvince": "CA",
+ "country": "US",
+ "postalCode": "94107",
+ "companyName": "Microsoft",
+ "addressType": "Commercial"
+ },
+ "jobDetailsType": "DataBox",
+ "copyLogDetails": []
+ },
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": true
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "name": "SdkJob9640",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/SdkRg7478/providers/Microsoft.DataBox/jobs/SdkJob9640",
+ "type": "Microsoft.DataBox/jobs"
+ }
+ }
+ }
+}
diff --git a/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/JobsCreateDoubleEncryption.json b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/JobsCreateDoubleEncryption.json
new file mode 100644
index 000000000000..3710dbc740bf
--- /dev/null
+++ b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/JobsCreateDoubleEncryption.json
@@ -0,0 +1,189 @@
+{
+ "parameters": {
+ "subscriptionId": "fa68082f-8ff7-4a25-95c7-ce9da541242f",
+ "resourceGroupName": "SdkRg608",
+ "jobName": "SdkJob6599",
+ "api-version": "2020-11-01",
+ "x-ms-client-request-id": [
+ "c9c24c55-fd51-4374-839e-60ee5f0d8832"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.29220.03",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.19041.",
+ "Microsoft.Azure.Management.DataBox.DataBoxManagementClient/1.2.0"
+ ],
+ "Content-Type": [
+ "application/json; charset=utf-8"
+ ],
+ "Content-Length": [
+ "1186"
+ ],
+ "jobResource": {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "details": {
+ "jobDetailsType": "DataBox",
+ "contactDetails": {
+ "contactName": "Public SDK Test",
+ "phone": "1234567890",
+ "phoneExtension": "1234",
+ "emailList": [
+ "testing@microsoft.com"
+ ]
+ },
+ "shippingAddress": {
+ "streetAddress1": "16 TOWNSEND ST",
+ "streetAddress2": "Unit 1",
+ "city": "San Francisco",
+ "stateOrProvince": "CA",
+ "country": "US",
+ "postalCode": "94107",
+ "companyName": "Microsoft",
+ "addressType": "Commercial"
+ },
+ "dataImportDetails": [
+ {
+ "accountDetails": {
+ "dataAccountType": "StorageAccount",
+ "storageAccountId": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/databoxbvt/providers/Microsoft.Storage/storageAccounts/databoxbvttestaccount"
+ }
+ }
+ ],
+ "preferences": {
+ "encryptionPreferences": {
+ "doubleEncryption": "Enabled"
+ }
+ }
+ }
+ },
+ "location": "westus",
+ "sku": {
+ "name": "DataBox"
+ }
+ }
+ },
+ "responses": {
+ "202": {},
+ "200": {
+ "body": {
+ "properties": {
+ "transferType": "ExportFromAzure",
+ "isCancellable": true,
+ "isDeletable": false,
+ "isShippingAddressEditable": true,
+ "status": "DeviceOrdered",
+ "startTime": "2019-09-21T14:49:49.0027611+05:30",
+ "details": {
+ "copyProgress": [],
+ "jobStages": [
+ {
+ "stageName": "DeviceOrdered",
+ "displayName": "Ordered",
+ "stageStatus": "Succeeded",
+ "stageTime": "2019-09-21T14:49:52.3995743+05:30"
+ },
+ {
+ "stageName": "DevicePrepared",
+ "displayName": "Processed",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "DataCopy",
+ "displayName": "Data copy in progress",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "Dispatched",
+ "displayName": "Dispatched",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "Delivered",
+ "displayName": "Delivered",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "PickedUp",
+ "displayName": "Picked up",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "AtAzureDC",
+ "displayName": "Received",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "Completed",
+ "displayName": "Completed",
+ "stageStatus": "None"
+ }
+ ],
+ "contactDetails": {
+ "contactName": "Public SDK Test",
+ "phone": "1234567890",
+ "phoneExtension": "1234",
+ "emailList": [
+ "testing@microsoft.com"
+ ],
+ "notificationPreference": [
+ {
+ "stageName": "DevicePrepared",
+ "sendNotification": true
+ },
+ {
+ "stageName": "DataCopy",
+ "sendNotification": true
+ },
+ {
+ "stageName": "Dispatched",
+ "sendNotification": true
+ },
+ {
+ "stageName": "Delivered",
+ "sendNotification": true
+ },
+ {
+ "stageName": "PickedUp",
+ "sendNotification": true
+ },
+ {
+ "stageName": "AtAzureDC",
+ "sendNotification": true
+ }
+ ]
+ },
+ "shippingAddress": {
+ "streetAddress1": "16 TOWNSEND ST",
+ "streetAddress2": "Unit 1",
+ "city": "San Francisco",
+ "stateOrProvince": "CA",
+ "country": "US",
+ "postalCode": "94107",
+ "companyName": "Microsoft",
+ "addressType": "Commercial"
+ },
+ "jobDetailsType": "DataBox",
+ "copyLogDetails": []
+ },
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": true
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "name": "SdkJob6599",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/SdkRg608/providers/Microsoft.DataBox/jobs/SdkJob6599",
+ "type": "Microsoft.DataBox/jobs"
+ }
+ }
+ }
+}
diff --git a/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/JobsCreateExport.json b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/JobsCreateExport.json
new file mode 100644
index 000000000000..4356fc39fd85
--- /dev/null
+++ b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/JobsCreateExport.json
@@ -0,0 +1,194 @@
+{
+ "parameters": {
+ "subscriptionId": "fa68082f-8ff7-4a25-95c7-ce9da541242f",
+ "resourceGroupName": "SdkRg8091",
+ "jobName": "SdkJob6429",
+ "api-version": "2020-11-01",
+ "x-ms-client-request-id": [
+ "80eaafc7-e8b7-4c5a-ad81-b1ecb9573cd4"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.29017.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.18363.",
+ "Microsoft.Azure.Management.DataBox.DataBoxManagementClient/1.1.0"
+ ],
+ "Content-Type": [
+ "application/json; charset=utf-8"
+ ],
+ "Content-Length": [
+ "1395"
+ ],
+ "jobResource": {
+ "properties": {
+ "transferType": "ExportFromAzure",
+ "details": {
+ "jobDetailsType": "DataBox",
+ "contactDetails": {
+ "contactName": "Public SDK Test",
+ "phone": "1234567890",
+ "phoneExtension": "1234",
+ "emailList": [
+ "testing@microsoft.com"
+ ]
+ },
+ "shippingAddress": {
+ "streetAddress1": "16 TOWNSEND ST",
+ "streetAddress2": "Unit 1",
+ "city": "San Francisco",
+ "stateOrProvince": "CA",
+ "country": "US",
+ "postalCode": "94107",
+ "companyName": "Microsoft",
+ "addressType": "Commercial"
+ },
+ "dataExportDetails": [
+ {
+ "transferConfiguration": {
+ "transferConfigurationType": "TransferAll",
+ "transferAllDetails": {
+ "include": {
+ "dataAccountType": "StorageAccount",
+ "transferAllBlobs": true,
+ "transferAllFiles": true
+ }
+ }
+ },
+ "accountDetails": {
+ "dataAccountType": "StorageAccount",
+ "storageAccountId": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/akvenkat/providers/Microsoft.Storage/storageAccounts/aaaaaa2"
+ }
+ }
+ ]
+ }
+ },
+ "location": "westus",
+ "sku": {
+ "name": "DataBox"
+ }
+ }
+ },
+ "responses": {
+ "202": {},
+ "200": {
+ "body": {
+ "properties": {
+ "transferType": "ExportFromAzure",
+ "isCancellable": true,
+ "isDeletable": false,
+ "isShippingAddressEditable": true,
+ "status": "DeviceOrdered",
+ "startTime": "2019-09-21T14:49:49.0027611+05:30",
+ "details": {
+ "copyProgress": [],
+ "jobStages": [
+ {
+ "stageName": "DeviceOrdered",
+ "displayName": "Ordered",
+ "stageStatus": "Succeeded",
+ "stageTime": "2019-09-21T14:49:52.3995743+05:30"
+ },
+ {
+ "stageName": "DevicePrepared",
+ "displayName": "Processed",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "DataCopy",
+ "displayName": "Data copy in progress",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "Dispatched",
+ "displayName": "Dispatched",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "Delivered",
+ "displayName": "Delivered",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "PickedUp",
+ "displayName": "Picked up",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "AtAzureDC",
+ "displayName": "Received",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "Completed",
+ "displayName": "Completed",
+ "stageStatus": "None"
+ }
+ ],
+ "contactDetails": {
+ "contactName": "Public SDK Test",
+ "phone": "1234567890",
+ "phoneExtension": "1234",
+ "emailList": [
+ "testing@microsoft.com"
+ ],
+ "notificationPreference": [
+ {
+ "stageName": "DevicePrepared",
+ "sendNotification": true
+ },
+ {
+ "stageName": "DataCopy",
+ "sendNotification": true
+ },
+ {
+ "stageName": "Dispatched",
+ "sendNotification": true
+ },
+ {
+ "stageName": "Delivered",
+ "sendNotification": true
+ },
+ {
+ "stageName": "PickedUp",
+ "sendNotification": true
+ },
+ {
+ "stageName": "AtAzureDC",
+ "sendNotification": true
+ }
+ ]
+ },
+ "shippingAddress": {
+ "streetAddress1": "16 TOWNSEND ST",
+ "streetAddress2": "Unit 1",
+ "city": "San Francisco",
+ "stateOrProvince": "CA",
+ "country": "US",
+ "postalCode": "94107",
+ "companyName": "Microsoft",
+ "addressType": "Commercial"
+ },
+ "jobDetailsType": "DataBox",
+ "copyLogDetails": []
+ },
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": true
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "name": "SdkJob6429",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/SdkRg8091/providers/Microsoft.DataBox/jobs/SdkJob6429",
+ "type": "Microsoft.DataBox/jobs"
+ }
+ }
+ }
+}
diff --git a/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/JobsCreateWithUserAssignedIdentity.json b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/JobsCreateWithUserAssignedIdentity.json
new file mode 100644
index 000000000000..ccc4f82aff22
--- /dev/null
+++ b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/JobsCreateWithUserAssignedIdentity.json
@@ -0,0 +1,190 @@
+{
+ "parameters": {
+ "subscriptionId": "fa68082f-8ff7-4a25-95c7-ce9da541242f",
+ "resourceGroupName": "SdkRg7552",
+ "jobName": "SdkJob5337",
+ "api-version": "2020-11-01",
+ "x-ms-client-request-id": [
+ "618b064d-967c-4156-a8dd-a9867cc22af9"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.29220.03",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.19041.",
+ "Microsoft.Azure.Management.DataBox.DataBoxManagementClient/1.2.0"
+ ],
+ "Content-Type": [
+ "application/json; charset=utf-8"
+ ],
+ "Content-Length": [
+ "1318"
+ ],
+ "jobResource": {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "details": {
+ "jobDetailsType": "DataBox",
+ "contactDetails": {
+ "contactName": "Public SDK Test",
+ "phone": "1234567890",
+ "phoneExtension": "1234",
+ "emailList": [
+ "testing@microsoft.com"
+ ]
+ },
+ "shippingAddress": {
+ "streetAddress1": "16 TOWNSEND ST",
+ "streetAddress2": "Unit 1",
+ "city": "San Francisco",
+ "stateOrProvince": "CA",
+ "country": "US",
+ "postalCode": "94107",
+ "companyName": "Microsoft",
+ "addressType": "Commercial"
+ },
+ "dataImportDetails": [
+ {
+ "accountDetails": {
+ "dataAccountType": "StorageAccount",
+ "storageAccountId": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/databoxbvt1/providers/Microsoft.Storage/storageAccounts/databoxbvttestaccount2"
+ }
+ }
+ ]
+ }
+ },
+ "location": "westus",
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/akvenkat/providers/Microsoft.ManagedIdentity/userAssignedIdentities/sdkIdentity": {}
+ }
+ }
+ }
+ },
+ "responses": {
+ "202": {},
+ "200": {
+ "body": {
+ "properties": {
+ "transferType": "ExportFromAzure",
+ "isCancellable": true,
+ "isDeletable": false,
+ "isShippingAddressEditable": true,
+ "status": "DeviceOrdered",
+ "startTime": "2019-09-21T14:49:49.0027611+05:30",
+ "details": {
+ "copyProgress": [],
+ "jobStages": [
+ {
+ "stageName": "DeviceOrdered",
+ "displayName": "Ordered",
+ "stageStatus": "Succeeded",
+ "stageTime": "2019-09-21T14:49:52.3995743+05:30"
+ },
+ {
+ "stageName": "DevicePrepared",
+ "displayName": "Processed",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "DataCopy",
+ "displayName": "Data copy in progress",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "Dispatched",
+ "displayName": "Dispatched",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "Delivered",
+ "displayName": "Delivered",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "PickedUp",
+ "displayName": "Picked up",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "AtAzureDC",
+ "displayName": "Received",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "Completed",
+ "displayName": "Completed",
+ "stageStatus": "None"
+ }
+ ],
+ "contactDetails": {
+ "contactName": "Public SDK Test",
+ "phone": "1234567890",
+ "phoneExtension": "1234",
+ "emailList": [
+ "testing@microsoft.com"
+ ],
+ "notificationPreference": [
+ {
+ "stageName": "DevicePrepared",
+ "sendNotification": true
+ },
+ {
+ "stageName": "DataCopy",
+ "sendNotification": true
+ },
+ {
+ "stageName": "Dispatched",
+ "sendNotification": true
+ },
+ {
+ "stageName": "Delivered",
+ "sendNotification": true
+ },
+ {
+ "stageName": "PickedUp",
+ "sendNotification": true
+ },
+ {
+ "stageName": "AtAzureDC",
+ "sendNotification": true
+ }
+ ]
+ },
+ "shippingAddress": {
+ "streetAddress1": "16 TOWNSEND ST",
+ "streetAddress2": "Unit 1",
+ "city": "San Francisco",
+ "stateOrProvince": "CA",
+ "country": "US",
+ "postalCode": "94107",
+ "companyName": "Microsoft",
+ "addressType": "Commercial"
+ },
+ "jobDetailsType": "DataBox",
+ "copyLogDetails": []
+ },
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": true
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "name": "SdkJob5337",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/SdkRg7552/providers/Microsoft.DataBox/jobs/SdkJob5337",
+ "type": "Microsoft.DataBox/jobs"
+ }
+ }
+ }
+}
diff --git a/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/JobsDelete.json b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/JobsDelete.json
new file mode 100644
index 000000000000..c408ddf7352f
--- /dev/null
+++ b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/JobsDelete.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "subscriptionId": "fa68082f-8ff7-4a25-95c7-ce9da541242f",
+ "resourceGroupName": "SdkRg5154",
+ "jobName": "SdkJob952",
+ "api-version": "2020-11-01",
+ "$expand": "details",
+ "x-ms-client-request-id": [
+ "f5c227e2-13d8-4ce9-9ef2-f3c63f6935b9"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.29017.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.18363.",
+ "Microsoft.Azure.Management.DataBox.DataBoxManagementClient/1.1.0"
+ ]
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/JobsGet.json b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/JobsGet.json
new file mode 100644
index 000000000000..c8dc2863f7df
--- /dev/null
+++ b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/JobsGet.json
@@ -0,0 +1,166 @@
+{
+ "parameters": {
+ "subscriptionId": "fa68082f-8ff7-4a25-95c7-ce9da541242f",
+ "resourceGroupName": "SdkRg5154",
+ "jobName": "SdkJob952",
+ "api-version": "2020-11-01",
+ "$expand": "details",
+ "x-ms-client-request-id": [
+ "e76214b0-6013-499e-8f91-3a287f421f2e"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.29017.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.18363.",
+ "Microsoft.Azure.Management.DataBox.DataBoxManagementClient/1.1.0"
+ ]
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "isCancellable": true,
+ "isDeletable": false,
+ "isShippingAddressEditable": true,
+ "isPrepareToShipEnabled": true,
+ "status": "DeviceOrdered",
+ "startTime": "2020-08-07T10:50:36.3341513+05:30",
+ "details": {
+ "copyProgress": [],
+ "jobStages": [
+ {
+ "stageName": "DeviceOrdered",
+ "displayName": "Ordered",
+ "stageStatus": "Succeeded",
+ "stageTime": "2020-08-07T10:50:40.1872217+05:30"
+ },
+ {
+ "stageName": "DevicePrepared",
+ "displayName": "Processed",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "Dispatched",
+ "displayName": "Dispatched",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "Delivered",
+ "displayName": "Delivered",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "PickedUp",
+ "displayName": "Picked up",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "AtAzureDC",
+ "displayName": "Received",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "DataCopy",
+ "displayName": "Data copy in progress",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "Completed",
+ "displayName": "Completed",
+ "stageStatus": "None"
+ }
+ ],
+ "contactDetails": {
+ "contactName": "Public SDK Test",
+ "phone": "1234567890",
+ "phoneExtension": "1234",
+ "emailList": [
+ "testing@microsoft.com"
+ ],
+ "notificationPreference": [
+ {
+ "stageName": "DevicePrepared",
+ "sendNotification": true
+ },
+ {
+ "stageName": "Dispatched",
+ "sendNotification": true
+ },
+ {
+ "stageName": "Delivered",
+ "sendNotification": true
+ },
+ {
+ "stageName": "PickedUp",
+ "sendNotification": true
+ },
+ {
+ "stageName": "AtAzureDC",
+ "sendNotification": true
+ },
+ {
+ "stageName": "DataCopy",
+ "sendNotification": true
+ }
+ ]
+ },
+ "shippingAddress": {
+ "streetAddress1": "16 TOWNSEND ST",
+ "streetAddress2": "Unit 1",
+ "city": "San Francisco",
+ "stateOrProvince": "CA",
+ "country": "US",
+ "postalCode": "94107",
+ "companyName": "Microsoft",
+ "addressType": "Commercial"
+ },
+ "deliveryPackage": {
+ "carrierName": "",
+ "trackingId": "",
+ "trackingUrl": ""
+ },
+ "returnPackage": {
+ "carrierName": "",
+ "trackingId": "",
+ "trackingUrl": ""
+ },
+ "dataImportDetails": [
+ {
+ "accountDetails": {
+ "storageAccountId": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/databoxbvt/providers/Microsoft.Storage/storageAccounts/databoxbvttestaccount",
+ "dataAccountType": "StorageAccount"
+ }
+ }
+ ],
+ "jobDetailsType": "DataBox",
+ "copyLogDetails": [],
+ "reverseShipmentLabelSasKey": "https://wusbeta.blob.core.windows.net/customer-reverse-shipment-instructions/CustomerShipmentInstructions_MicrosoftManaged.PDF?sv=2018-03-28&sr=b&sig=urwfAELvNV69IGHdcXlRCn6o3O3dWZQKaRipmoAdrI0%3D&st=2020-08-07T05%3A10%3A58Z&se=2020-08-08T05%3A20%3A58Z&sp=r",
+ "keyEncryptionKey": {
+ "kekType": "MicrosoftManaged"
+ }
+ },
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": true
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "SdkJob952",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/SdkRg5154/providers/Microsoft.DataBox/jobs/SdkJob952",
+ "type": "Microsoft.DataBox/jobs"
+ }
+ }
+ }
+}
diff --git a/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/JobsGetCmk.json b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/JobsGetCmk.json
new file mode 100644
index 000000000000..73882b877d1f
--- /dev/null
+++ b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/JobsGetCmk.json
@@ -0,0 +1,170 @@
+{
+ "parameters": {
+ "subscriptionId": "fa68082f-8ff7-4a25-95c7-ce9da541242f",
+ "resourceGroupName": "SdkRg7937",
+ "jobName": "SdkJob1735",
+ "api-version": "2020-11-01",
+ "$expand": "details",
+ "x-ms-client-request-id": [
+ "c8cf9d3e-55f1-488f-bcee-53f4939f44e8"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.29017.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.18363.",
+ "Microsoft.Azure.Management.DataBox.DataBoxManagementClient/1.1.0"
+ ]
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "isCancellable": true,
+ "isDeletable": false,
+ "isShippingAddressEditable": true,
+ "isPrepareToShipEnabled": true,
+ "status": "DeviceOrdered",
+ "startTime": "2020-08-07T10:47:42.0009935+05:30",
+ "details": {
+ "copyProgress": [],
+ "jobStages": [
+ {
+ "stageName": "DeviceOrdered",
+ "displayName": "Ordered",
+ "stageStatus": "Succeeded",
+ "stageTime": "2020-08-07T10:47:44.8736499+05:30"
+ },
+ {
+ "stageName": "DevicePrepared",
+ "displayName": "Processed",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "Dispatched",
+ "displayName": "Dispatched",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "Delivered",
+ "displayName": "Delivered",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "PickedUp",
+ "displayName": "Picked up",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "AtAzureDC",
+ "displayName": "Received",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "DataCopy",
+ "displayName": "Data copy in progress",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "Completed",
+ "displayName": "Completed",
+ "stageStatus": "None"
+ }
+ ],
+ "contactDetails": {
+ "contactName": "Public SDK Test",
+ "phone": "1234567890",
+ "phoneExtension": "1234",
+ "emailList": [
+ "testing@microsoft.com"
+ ],
+ "notificationPreference": [
+ {
+ "stageName": "DevicePrepared",
+ "sendNotification": true
+ },
+ {
+ "stageName": "Dispatched",
+ "sendNotification": true
+ },
+ {
+ "stageName": "Delivered",
+ "sendNotification": true
+ },
+ {
+ "stageName": "PickedUp",
+ "sendNotification": true
+ },
+ {
+ "stageName": "AtAzureDC",
+ "sendNotification": true
+ },
+ {
+ "stageName": "DataCopy",
+ "sendNotification": true
+ }
+ ]
+ },
+ "shippingAddress": {
+ "streetAddress1": "16 TOWNSEND ST",
+ "streetAddress2": "Unit 1",
+ "city": "San Francisco",
+ "stateOrProvince": "CA",
+ "country": "US",
+ "postalCode": "94107",
+ "companyName": "Microsoft",
+ "addressType": "Commercial"
+ },
+ "deliveryPackage": {
+ "carrierName": "",
+ "trackingId": "",
+ "trackingUrl": ""
+ },
+ "returnPackage": {
+ "carrierName": "",
+ "trackingId": "",
+ "trackingUrl": ""
+ },
+ "dataImportDetails": [
+ {
+ "accountDetails": {
+ "storageAccountId": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/databoxbvt1/providers/Microsoft.Storage/storageAccounts/databoxbvttestaccount2",
+ "dataAccountType": "StorageAccount"
+ }
+ }
+ ],
+ "jobDetailsType": "DataBox",
+ "copyLogDetails": [],
+ "reverseShipmentLabelSasKey": "https://wusbeta.blob.core.windows.net/customer-reverse-shipment-instructions/CustomerShipmentInstructions_MicrosoftManaged.PDF?sv=2018-03-28&sr=b&sig=JSZSeKrFrrwWbZ4zd7PNdGdNYKExKpxa98vRDDH6ZIk%3D&st=2020-08-07T05%3A08%3A51Z&se=2020-08-08T05%3A18%3A51Z&sp=r",
+ "keyEncryptionKey": {
+ "kekType": "CustomerManaged",
+ "kekUrl": "https://sdkkeyvault.vault.azure.net/keys/SSDKEY/",
+ "kekVaultResourceID": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/akvenkat/providers/Microsoft.KeyVault/vaults/SDKKeyVault"
+ }
+ },
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": true
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "SystemAssigned",
+ "principalId": "9a68a7c4-0a18-4d06-a5fb-7058e9e98458",
+ "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47"
+ },
+ "name": "SdkJob1735",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/SdkRg7937/providers/Microsoft.DataBox/jobs/SdkJob1735",
+ "type": "Microsoft.DataBox/jobs"
+ }
+ }
+ }
+}
diff --git a/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/JobsGetExport.json b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/JobsGetExport.json
new file mode 100644
index 000000000000..f5a346dce6e3
--- /dev/null
+++ b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/JobsGetExport.json
@@ -0,0 +1,135 @@
+{
+ "parameters": {
+ "subscriptionId": "fa68082f-8ff7-4a25-95c7-ce9da541242f",
+ "resourceGroupName": "SdkRg8091",
+ "jobName": "SdkJob6429",
+ "api-version": "2020-11-01",
+ "$expand": "details",
+ "x-ms-client-request-id": [
+ "b3739c7c-02b6-46c2-a04c-da6f8bca279c"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.29017.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.18363.",
+ "Microsoft.Azure.Management.DataBox.DataBoxManagementClient/1.1.0"
+ ]
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "transferType": "ExportFromAzure",
+ "isCancellable": false,
+ "isDeletable": true,
+ "isShippingAddressEditable": false,
+ "isPrepareToShipEnabled": true,
+ "status": "Cancelled",
+ "startTime": "2020-08-07T10:49:08.7195419+05:30",
+ "details": {
+ "copyProgress": [
+ {
+ "storageAccountName": "aaaaaa2",
+ "transferType": "ExportFromAzure",
+ "dataAccountType": "StorageAccount",
+ "accountId": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/akvenkat/providers/Microsoft.Storage/storageAccounts/aaaaaa2",
+ "bytesProcessed": 0,
+ "totalBytesToProcess": 0,
+ "isEnumerationInProgress": false
+ }
+ ],
+ "jobStages": [
+ {
+ "stageName": "DeviceOrdered",
+ "displayName": "Ordered",
+ "stageStatus": "Succeeded",
+ "stageTime": "2020-08-07T10:49:12.7675644+05:30"
+ },
+ {
+ "stageName": "Cancelled",
+ "displayName": "Canceled",
+ "stageStatus": "Succeeded",
+ "stageTime": "2020-08-07T10:49:57.2572438+05:30"
+ }
+ ],
+ "contactDetails": {
+ "contactName": " ",
+ "emailList": [],
+ "phone": "1234567890",
+ "phoneExtension": "1234",
+ "notificationPreference": []
+ },
+ "shippingAddress": {
+ "streetAddress1": "16 TOWNSEND ST",
+ "streetAddress2": "Unit 1",
+ "city": "San Francisco",
+ "stateOrProvince": "CA",
+ "country": "US",
+ "postalCode": "94107",
+ "companyName": "Microsoft",
+ "addressType": "Commercial"
+ },
+ "deliveryPackage": {
+ "carrierName": "",
+ "trackingId": "",
+ "trackingUrl": ""
+ },
+ "returnPackage": {
+ "carrierName": "",
+ "trackingId": "",
+ "trackingUrl": ""
+ },
+ "dataImportDetails": [],
+ "dataExportDetails": [
+ {
+ "transferConfiguration": {
+ "transferConfigurationType": "TransferAll",
+ "transferFilterDetails": {},
+ "transferAllDetails": {
+ "include": {
+ "dataAccountType": "StorageAccount",
+ "transferAllBlobs": true,
+ "transferAllFiles": true
+ }
+ }
+ },
+ "logCollectionLevel": "Error",
+ "accountDetails": {
+ "storageAccountId": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/akvenkat/providers/Microsoft.Storage/storageAccounts/aaaaaa2",
+ "dataAccountType": "StorageAccount"
+ }
+ }
+ ],
+ "jobDetailsType": "DataBox",
+ "copyLogDetails": [],
+ "reverseShipmentLabelSasKey": "https://wusbeta.blob.core.windows.net/customer-reverse-shipment-instructions/CustomerShipmentInstructions_MicrosoftManaged.PDF?sv=2018-03-28&sr=b&sig=04aL%2FTe7998qQJlhmGI3C0Q%2FxsCVo1t0B4uQUIx7TmQ%3D&st=2020-08-07T05%3A10%3A05Z&se=2020-08-08T05%3A20%3A05Z&sp=r",
+ "chainOfCustodySasKey": "https://wusbeta.blob.core.windows.net/chainofcustody/9a6ee052-bcff-4b5e-a478-7dcbfb86e9fb.txt?sv=2018-03-28&sr=b&sig=JbBBXZKharvfg35ZfmrhowO1DuOpzcZCNUdeFzklvWs%3D&st=2020-08-07T05%3A10%3A05Z&se=2020-08-07T05%3A40%3A05Z&sp=r",
+ "keyEncryptionKey": {
+ "kekType": "MicrosoftManaged"
+ }
+ },
+ "cancellationReason": "CancelTest",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": false
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "SdkJob6429",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/SdkRg8091/providers/Microsoft.DataBox/jobs/SdkJob6429",
+ "type": "Microsoft.DataBox/jobs"
+ }
+ }
+ }
+}
diff --git a/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/JobsList.json b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/JobsList.json
new file mode 100644
index 000000000000..d64a4a51fe40
--- /dev/null
+++ b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/JobsList.json
@@ -0,0 +1,805 @@
+{
+ "parameters": {
+ "subscriptionId": "fa68082f-8ff7-4a25-95c7-ce9da541242f",
+ "api-version": "2020-11-01",
+ "$expand": "details",
+ "x-ms-client-request-id": [
+ "044127c5-663e-4a0f-9061-2fa0ca8058c4"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.29017.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.18363.",
+ "Microsoft.Azure.Management.DataBox.DataBoxManagementClient/1.1.0"
+ ]
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "isCancellable": false,
+ "isDeletable": true,
+ "isShippingAddressEditable": false,
+ "isPrepareToShipEnabled": false,
+ "status": "Cancelled",
+ "startTime": "2018-08-30T14:44:39.77401+05:30",
+ "cancellationReason": "Old job which is still in ordered state cancelled by the service",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": false
+ },
+ "location": "australiaeast",
+ "tags": {},
+ "sku": {
+ "name": "DataBoxDisk"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "mnaustest",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/ausresgrpmn/providers/Microsoft.DataBox/jobs/mnaustest",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "isCancellable": false,
+ "isDeletable": true,
+ "isShippingAddressEditable": false,
+ "isPrepareToShipEnabled": false,
+ "status": "Cancelled",
+ "startTime": "2018-09-10T18:03:22.2578238+05:30",
+ "cancellationReason": "Old job which is still in ordered state cancelled by the service",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": false
+ },
+ "location": "australiaeast",
+ "tags": {},
+ "sku": {
+ "name": "DataBoxDisk"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "portalcontractAUS",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/ausresgrpmn/providers/Microsoft.DataBox/jobs/portalcontractAUS",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "isCancellable": false,
+ "isDeletable": true,
+ "isShippingAddressEditable": false,
+ "isPrepareToShipEnabled": false,
+ "status": "Cancelled",
+ "startTime": "2018-08-30T15:17:17.3753642+05:30",
+ "cancellationReason": "Old job which is still in ordered state cancelled by the service",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": false
+ },
+ "location": "australiaeast",
+ "tags": {},
+ "sku": {
+ "name": "DataBoxDisk"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "testBB-diskAU",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/testBB/providers/Microsoft.DataBox/jobs/testBB-diskAU",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ExportFromAzure",
+ "isCancellable": false,
+ "isDeletable": true,
+ "isShippingAddressEditable": false,
+ "isPrepareToShipEnabled": false,
+ "status": "Cancelled",
+ "startTime": "2020-05-04T11:12:15.5972523+05:30",
+ "cancellationReason": "Old job which is still in ordered state cancelled by the service",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": false
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "allXML",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/akvenkat12/providers/Microsoft.DataBox/jobs/allXML",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ExportFromAzure",
+ "isCancellable": true,
+ "isDeletable": false,
+ "isShippingAddressEditable": true,
+ "isPrepareToShipEnabled": false,
+ "status": "DeviceOrdered",
+ "startTime": "2020-05-07T15:51:08.4479315+05:30",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": true
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "bothExportAllxml",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/akvenkat12/providers/Microsoft.DataBox/jobs/bothExportAllxml",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ExportFromAzure",
+ "isCancellable": false,
+ "isDeletable": true,
+ "isShippingAddressEditable": false,
+ "isPrepareToShipEnabled": false,
+ "status": "Cancelled",
+ "startTime": "2020-05-04T19:44:59.2410723+05:30",
+ "cancellationReason": "Old job which is still in ordered state cancelled by the service",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": false
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "exportAll",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/akvenkat12/providers/Microsoft.DataBox/jobs/exportAll",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "isCancellable": false,
+ "isDeletable": true,
+ "isShippingAddressEditable": false,
+ "isPrepareToShipEnabled": false,
+ "status": "Cancelled",
+ "startTime": "2020-05-04T18:31:05.3036028+05:30",
+ "cancellationReason": "Old job which is still in ordered state cancelled by the service",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": false
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "importRegressnTest",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/akvenkat12/providers/Microsoft.DataBox/jobs/importRegressnTest",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ExportFromAzure",
+ "isCancellable": true,
+ "isDeletable": false,
+ "isShippingAddressEditable": true,
+ "isPrepareToShipEnabled": false,
+ "status": "DeviceOrdered",
+ "startTime": "2020-05-09T01:57:03.8985885+05:30",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": true
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "testBotthXMLAndAll",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/akvenkat12/providers/Microsoft.DataBox/jobs/testBotthXMLAndAll",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ExportFromAzure",
+ "isCancellable": false,
+ "isDeletable": true,
+ "isShippingAddressEditable": false,
+ "isPrepareToShipEnabled": false,
+ "status": "Cancelled",
+ "startTime": "2020-05-05T15:56:52.6983398+05:30",
+ "cancellationReason": "Old job which is still in ordered state cancelled by the service",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": false
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "testExportAllOrder",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/akvenkat12/providers/Microsoft.DataBox/jobs/testExportAllOrder",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ExportFromAzure",
+ "isCancellable": false,
+ "isDeletable": true,
+ "isShippingAddressEditable": false,
+ "isPrepareToShipEnabled": false,
+ "status": "Cancelled",
+ "startTime": "2020-05-04T17:45:25.464989+05:30",
+ "cancellationReason": "Old job which is still in ordered state cancelled by the service",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": false
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "testPayload",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/akvenkat12/providers/Microsoft.DataBox/jobs/testPayload",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ExportFromAzure",
+ "isCancellable": false,
+ "isDeletable": true,
+ "isShippingAddressEditable": false,
+ "isPrepareToShipEnabled": false,
+ "status": "Cancelled",
+ "startTime": "2020-05-04T10:43:04.8775864+05:30",
+ "cancellationReason": "Old job which is still in ordered state cancelled by the service",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": false
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "xmlOnlyOrder",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/akvenkat12/providers/Microsoft.DataBox/jobs/xmlOnlyOrder",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "isCancellable": false,
+ "isDeletable": true,
+ "isShippingAddressEditable": false,
+ "isPrepareToShipEnabled": false,
+ "status": "Cancelled",
+ "startTime": "2018-11-27T15:17:49.0760408+05:30",
+ "cancellationReason": "Old job which is still in ordered state cancelled by the service",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": false
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "testbadresourcegroup",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/akvenkat3198inh0-9)inh(il(h)_fyoin)(upf(yLASD0-FJ(hal-DSNWP0JDS0P3-0SJ93/providers/Microsoft.DataBox/jobs/testbadresourcegroup",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "isCancellable": false,
+ "isDeletable": true,
+ "isShippingAddressEditable": false,
+ "isPrepareToShipEnabled": false,
+ "status": "Cancelled",
+ "startTime": "2019-01-04T09:08:49.9928621+05:30",
+ "cancellationReason": "Old job which is still in ordered state cancelled by the service",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": false
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "andipodtest4jan",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/akvenkat/providers/Microsoft.DataBox/jobs/andipodtest4jan",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ExportFromAzure",
+ "isCancellable": false,
+ "isDeletable": true,
+ "isShippingAddressEditable": false,
+ "isPrepareToShipEnabled": false,
+ "status": "Cancelled",
+ "startTime": "2020-05-28T15:20:48.1058546+05:30",
+ "cancellationReason": "NoLongerNeeded null",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": false
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "dbtest1",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/akvenkat/providers/Microsoft.DataBox/jobs/dbtest1",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "isCancellable": false,
+ "isDeletable": true,
+ "isShippingAddressEditable": false,
+ "isPrepareToShipEnabled": false,
+ "status": "Cancelled",
+ "startTime": "2020-04-14T08:51:18.2067875+05:30",
+ "cancellationReason": "IncorrectOrder null",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": false
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "degautam14-04-Clone",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/akvenkat/providers/Microsoft.DataBox/jobs/degautam14-04-Clone",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ExportFromAzure",
+ "isCancellable": true,
+ "isDeletable": false,
+ "isShippingAddressEditable": true,
+ "isPrepareToShipEnabled": false,
+ "status": "DeviceOrdered",
+ "startTime": "2020-05-27T18:08:30.6622356+05:30",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": true
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "degautamtestexport",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/akvenkat/providers/Microsoft.DataBox/jobs/degautamtestexport",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ExportFromAzure",
+ "isCancellable": true,
+ "isDeletable": false,
+ "isShippingAddressEditable": true,
+ "isPrepareToShipEnabled": false,
+ "status": "DeviceOrdered",
+ "startTime": "2020-05-21T20:41:02.3837388+05:30",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": true
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "DegautamTestExportOrder",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/akvenkat/providers/Microsoft.DataBox/jobs/DegautamTestExportOrder",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ExportFromAzure",
+ "isCancellable": true,
+ "isDeletable": false,
+ "isShippingAddressEditable": true,
+ "isPrepareToShipEnabled": false,
+ "status": "DeviceOrdered",
+ "startTime": "2020-05-24T07:56:23.6839464+05:30",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": true
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "degautamtestorder",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/akvenkat/providers/Microsoft.DataBox/jobs/degautamtestorder",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "isCancellable": false,
+ "isDeletable": true,
+ "isShippingAddressEditable": false,
+ "isPrepareToShipEnabled": false,
+ "status": "Cancelled",
+ "startTime": "2020-04-14T08:48:21.2260174+05:30",
+ "cancellationReason": "IncorrectOrder null",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": false
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "degautamTestOrder14-04",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/akvenkat/providers/Microsoft.DataBox/jobs/degautamTestOrder14-04",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ExportFromAzure",
+ "isCancellable": true,
+ "isDeletable": false,
+ "isShippingAddressEditable": true,
+ "isPrepareToShipEnabled": false,
+ "status": "DeviceOrdered",
+ "startTime": "2020-05-12T12:19:19.8627264+05:30",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": true
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "export",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/akvenkat/providers/Microsoft.DataBox/jobs/export",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ExportFromAzure",
+ "isCancellable": false,
+ "isDeletable": true,
+ "isShippingAddressEditable": false,
+ "isPrepareToShipEnabled": false,
+ "status": "Cancelled",
+ "startTime": "2020-04-05T19:50:20.9692355+05:30",
+ "cancellationReason": "Old job which is still in ordered state cancelled by the service",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": false
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "exportTestResource",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/akvenkat/providers/Microsoft.DataBox/jobs/exportTestResource",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "isCancellable": false,
+ "isDeletable": true,
+ "isShippingAddressEditable": false,
+ "isPrepareToShipEnabled": false,
+ "status": "Cancelled",
+ "startTime": "2020-04-10T15:09:45.7080012+05:30",
+ "cancellationReason": "Old job which is still in ordered state cancelled by the service",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": false
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "sanakTestImportNew",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/akvenkat/providers/Microsoft.DataBox/jobs/sanakTestImportNew",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "isCancellable": false,
+ "isDeletable": true,
+ "isShippingAddressEditable": false,
+ "isPrepareToShipEnabled": false,
+ "status": "Cancelled",
+ "startTime": "2020-04-10T15:13:02.5724966+05:30",
+ "cancellationReason": "Old job which is still in ordered state cancelled by the service",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": false
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "sanakTestImportOld",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/akvenkat/providers/Microsoft.DataBox/jobs/sanakTestImportOld",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ExportFromAzure",
+ "isCancellable": false,
+ "isDeletable": true,
+ "isShippingAddressEditable": false,
+ "isPrepareToShipEnabled": false,
+ "status": "Cancelled",
+ "startTime": "2020-04-20T13:39:28.1940929+05:30",
+ "cancellationReason": "Old job which is still in ordered state cancelled by the service",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": false
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "sanakTestImportOld1",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/akvenkat/providers/Microsoft.DataBox/jobs/sanakTestImportOld1",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "isCancellable": false,
+ "isDeletable": true,
+ "isShippingAddressEditable": false,
+ "isPrepareToShipEnabled": false,
+ "status": "Cancelled",
+ "startTime": "2020-04-10T15:14:59.6879599+05:30",
+ "cancellationReason": "Old job which is still in ordered state cancelled by the service",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": false
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "sanakTestImportOld2",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/akvenkat/providers/Microsoft.DataBox/jobs/sanakTestImportOld2",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "isCancellable": true,
+ "isDeletable": false,
+ "isShippingAddressEditable": true,
+ "isPrepareToShipEnabled": false,
+ "status": "DeviceOrdered",
+ "startTime": "2020-07-21T23:43:34.513148+05:30",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": true
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "saranyagorder",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/akvenkat/providers/Microsoft.DataBox/jobs/saranyagorder",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "isCancellable": false,
+ "isDeletable": true,
+ "isShippingAddressEditable": false,
+ "isPrepareToShipEnabled": false,
+ "status": "Cancelled",
+ "startTime": "2019-07-04T14:01:50.9232807+05:30",
+ "cancellationReason": "IncorrectOrder null",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": false
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "testdeepak04-07",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/akvenkat/providers/Microsoft.DataBox/jobs/testdeepak04-07",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "isCancellable": false,
+ "isDeletable": true,
+ "isShippingAddressEditable": false,
+ "isPrepareToShipEnabled": false,
+ "status": "Cancelled",
+ "startTime": "2019-02-11T12:33:16.6231232+05:30",
+ "cancellationReason": "Old job which is still in ordered state cancelled by the service",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": false
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBoxHeavy"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "testdurga-heavy",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/akvenkat/providers/Microsoft.DataBox/jobs/testdurga-heavy",
+ "type": "Microsoft.DataBox/jobs"
+ }
+ ],
+ "nextLink": "https://management.azure.com/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/providers/Microsoft.DataBox/jobs?api-version=2020-11-01&%24skiptoken=fVJdb5swFP0v0bq3NMaFFipVU5oATRbSxBjz8WYDIQbzoUBISNX%2fPrfVumnaJvnB8rn3nON77suoSs%2fdildFO7p%2fGfmmiz13dD%2fad13T3k8mJa1olpZp1V3Ty%2fGQXsd1OWmPrI0PvOl4XbWTHb3VgQ53Y323uxurFGpjQ4vvxnFqJFRTFajC3aQ51D1P0kM7cXh8qNt6113PaUcf6%2fMkr1n7jTZ83EtcUj5AAMEYqGOgfP3SFrzBdZFWD5u5oTL%2flCUlGWIoepYD7rjqacEfBSvXfWSLY3QBPAlQucImXOT6FWTzba1voXFMJJr4FqC%2bcSS2cYh89QPNFvPznEFNIpoSBqiRd4%2fBTrBcXc%2f4NFvMpjr51FSHVT7VV0ok4motaz9ZZtNsYyEttj3JS2yLM9uTdT9fpI83pmxjaiJ9QtswWAL6obaKgkL2OK4pBS3KPG%2fAAD2uTaXzA7RBStPhqjg5lvBcbDnEbs9%2b0OSJVQwEE4qAd8YFslJPM91SCdNiWYYiaWm57p6DhjuiPmFbcamNnlApuAP3JfZCLfYXg1vV%2bgr8y9Efnl12k%2fzyCp9nVs5IdBvmaz8l0kuFIt9c3oQkVpjY327LKGc%2beteitnnxyzNnAaojM1QTJbt45Tl3lOUhsvbfmRDY8Q1KQDhEBFkrfOpxSdTEWvYJ6ESKf8vCtoYIEoBtI%2f%2fI6y0D72nZMN8aUtkpp%2f%2bXivffzE%2f9f7dBTmPds0puQUX2cmd6JlBPITlusqubRJ7R6%2bsP"
+ }
+ }
+ }
+}
diff --git a/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/JobsListByResourceGroup.json b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/JobsListByResourceGroup.json
new file mode 100644
index 000000000000..61e890cd477b
--- /dev/null
+++ b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/JobsListByResourceGroup.json
@@ -0,0 +1,84 @@
+{
+ "parameters": {
+ "subscriptionId": "fa68082f-8ff7-4a25-95c7-ce9da541242f",
+ "resourceGroupName": "SdkRg5154",
+ "api-version": "2020-11-01",
+ "$expand": "details",
+ "x-ms-client-request-id": [
+ "c1514209-a439-4bd1-b040-76d7539d2509"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.29017.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.18363.",
+ "Microsoft.Azure.Management.DataBox.DataBoxManagementClient/1.1.0"
+ ]
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "isCancellable": true,
+ "isDeletable": false,
+ "isShippingAddressEditable": true,
+ "isPrepareToShipEnabled": true,
+ "status": "DeviceOrdered",
+ "startTime": "2020-07-03T11:55:54.463792+05:30",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": true
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "SystemAssigned",
+ "principalId": "fac84c35-5490-4b11-81b9-770053ccbe3b",
+ "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47"
+ },
+ "name": "SdkJob5928",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/SdkRg5154/providers/Microsoft.DataBox/jobs/SdkJob5928",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "isCancellable": true,
+ "isDeletable": false,
+ "isShippingAddressEditable": true,
+ "isPrepareToShipEnabled": true,
+ "status": "DeviceOrdered",
+ "startTime": "2020-08-07T10:50:36.3341513+05:30",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": true
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "SdkJob952",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/SdkRg5154/providers/Microsoft.DataBox/jobs/SdkJob952",
+ "type": "Microsoft.DataBox/jobs"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/JobsListCredentials.json b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/JobsListCredentials.json
new file mode 100644
index 000000000000..620e05afbfd1
--- /dev/null
+++ b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/JobsListCredentials.json
@@ -0,0 +1,92 @@
+{
+ "parameters": {
+ "subscriptionId": "fa68082f-8ff7-4a25-95c7-ce9da541242f",
+ "resourceGroupName": "bvttoolrg6",
+ "jobName": "TJ-636646322037905056",
+ "api-version": "2020-11-01",
+ "x-ms-client-request-id": [
+ "cda11c92-529b-4b75-b56d-ff1a69ffeeba"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.29017.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.18363.",
+ "Microsoft.Azure.Management.DataBox.DataBoxManagementClient/1.1.0"
+ ]
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "jobName": "TJ-636646322037905056",
+ "jobSecrets": {
+ "podSecrets": [
+ {
+ "deviceSerialNumber": "testimolapod-3ecc44ce",
+ "devicePassword": "cT5nt8R;S%5",
+ "networkConfigurations": [
+ {
+ "name": "DataPort3",
+ "macAddress": "D05099C1F439"
+ },
+ {
+ "name": "DataPort1",
+ "macAddress": "EC0D9A21A6C0"
+ },
+ {
+ "name": "DataPort2",
+ "macAddress": "EC0D9A21A6C1"
+ }
+ ],
+ "encodedValidationCertPubKey": "5CYoAoVKEBa4WgPVis8keX94w30pon4jGMADSqcdE/NlHLChj6Cmhbl4q9QOFKSB/US4AwhS7zY1QS3YMDrkAPfOy7Hi6kWMBpJWZidTq3oXX8FAQjg+IqQESti/2jvAlcDpO2453rgd7Yb6XZ43P8MMTpTjcarI0ImCf//eITQWnFa3AzfIJ9C+hxCCaA7HTYhwQEPUBMwyQJsI6v6WuQysROtlBgx1YtbWFhDVbcqYRSLIbaj+RdzlvxvDJSo70kv+8em5upuDTpVE7xP+WePLlARdSPNwwfRzHnvCUqC2UqXHpRUhQlYnMqAJEcjjroRnyIGumPmmQ8O155X8aw==",
+ "accountCredentialDetails": [
+ {
+ "accountName": "databoxbvttestaccount",
+ "dataAccountType": "StorageAccount",
+ "accountConnectionString": "",
+ "shareCredentialDetails": [
+ {
+ "shareName": "databoxbvttestaccount_PageBlob",
+ "shareType": "PageBlob",
+ "userName": "databoxbvttestac_903",
+ "password": "4N)K4(j6tyR",
+ "supportedAccessProtocols": [
+ "SMB"
+ ]
+ },
+ {
+ "shareName": "databoxbvttestaccount_BlockBlob",
+ "shareType": "BlockBlob",
+ "userName": "databoxbvttestac_903",
+ "password": "4N)K4(j6tyR",
+ "supportedAccessProtocols": [
+ "SMB"
+ ]
+ },
+ {
+ "shareName": "databoxbvttestaccount_AzFile",
+ "shareType": "AzureFile",
+ "userName": "databoxbvttestac_903",
+ "password": "4N)K4(j6tyR",
+ "supportedAccessProtocols": [
+ "SMB"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "jobSecretsType": "DataBox",
+ "dcAccessSecurityCode": {}
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/JobsPatch.json b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/JobsPatch.json
new file mode 100644
index 000000000000..92febae7150b
--- /dev/null
+++ b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/JobsPatch.json
@@ -0,0 +1,73 @@
+{
+ "parameters": {
+ "subscriptionId": "fa68082f-8ff7-4a25-95c7-ce9da541242f",
+ "resourceGroupName": "SdkRg5154",
+ "jobName": "SdkJob952",
+ "api-version": "2020-11-01",
+ "$expand": "details",
+ "x-ms-client-request-id": [
+ "ff3829ca-bcb0-4737-b6e0-52af57f34bb7"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.29017.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.18363.",
+ "Microsoft.Azure.Management.DataBox.DataBoxManagementClient/1.1.0"
+ ],
+ "Content-Type": [
+ "application/json; charset=utf-8"
+ ],
+ "Content-Length": [
+ "584"
+ ],
+ "jobResourceUpdateParameter": {
+ "properties": {
+ "details": {
+ "contactDetails": {
+ "contactName": "Update Job",
+ "phone": "1234567890",
+ "phoneExtension": "1234",
+ "emailList": [
+ "testing@microsoft.com"
+ ]
+ },
+ "shippingAddress": {
+ "streetAddress1": "16 TOWNSEND ST",
+ "streetAddress2": "Unit 1",
+ "city": "San Francisco",
+ "stateOrProvince": "CA",
+ "country": "US",
+ "postalCode": "94107",
+ "companyName": "Microsoft",
+ "addressType": "Commercial"
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "202": {},
+ "200": {
+ "body": {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "isCancellable": true,
+ "isShippingAddressEditable": true,
+ "status": "DeviceOrdered",
+ "startTime": "2018-04-13T16:28:38.9999793+05:30"
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "name": "SdkJob952",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/SdkRg5154/providers/Microsoft.DataBox/jobs/SdkJob952",
+ "type": "Microsoft.DataBox/jobs"
+ }
+ }
+ }
+}
diff --git a/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/JobsPatchCmk.json b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/JobsPatchCmk.json
new file mode 100644
index 000000000000..1992899e8242
--- /dev/null
+++ b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/JobsPatchCmk.json
@@ -0,0 +1,59 @@
+{
+ "parameters": {
+ "subscriptionId": "fa68082f-8ff7-4a25-95c7-ce9da541242f",
+ "resourceGroupName": "SdkRg7937",
+ "jobName": "SdkJob1735",
+ "api-version": "2020-11-01",
+ "x-ms-client-request-id": [
+ "fcab0fa9-7af8-47e0-b570-d703a48ee66b"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.29017.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.18363.",
+ "Microsoft.Azure.Management.DataBox.DataBoxManagementClient/1.1.0"
+ ],
+ "Content-Type": [
+ "application/json; charset=utf-8"
+ ],
+ "Content-Length": [
+ "358"
+ ],
+ "jobResourceUpdateParameter": {
+ "properties": {
+ "details": {
+ "keyEncryptionKey": {
+ "kekType": "CustomerManaged",
+ "kekUrl": "https://sdkkeyvault.vault.azure.net/keys/SSDKEY/",
+ "kekVaultResourceID": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/akvenkat/providers/Microsoft.KeyVault/vaults/SDKKeyVault"
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "202": {},
+ "200": {
+ "body": {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "isCancellable": true,
+ "isShippingAddressEditable": true,
+ "status": "DeviceOrdered",
+ "startTime": "2018-04-13T16:28:38.9999793+05:30"
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "name": "SdkJob1735",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/SdkRg7937/providers/Microsoft.DataBox/jobs/SdkJob1735",
+ "type": "Microsoft.DataBox/jobs"
+ }
+ }
+ }
+}
diff --git a/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/JobsPatchSystemAssignedToUserAssigned.json b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/JobsPatchSystemAssignedToUserAssigned.json
new file mode 100644
index 000000000000..c2d169ad6a82
--- /dev/null
+++ b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/JobsPatchSystemAssignedToUserAssigned.json
@@ -0,0 +1,71 @@
+{
+ "parameters": {
+ "subscriptionId": "fa68082f-8ff7-4a25-95c7-ce9da541242f",
+ "resourceGroupName": "SdkRg9765",
+ "jobName": "SdkJob2965",
+ "api-version": "2020-11-01",
+ "x-ms-client-request-id": [
+ "25b11bec-6551-47a4-9ee2-575245cbfd45"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.29220.03",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.19041.",
+ "Microsoft.Azure.Management.DataBox.DataBoxManagementClient/1.2.0"
+ ],
+ "Content-Type": [
+ "application/json; charset=utf-8"
+ ],
+ "Content-Length": [
+ "923"
+ ],
+ "jobResourceUpdateParameter": {
+ "properties": {
+ "details": {
+ "keyEncryptionKey": {
+ "kekType": "CustomerManaged",
+ "identityProperties": {
+ "type": "UserAssigned",
+ "userAssigned": {
+ "resourceId": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/akvenkat/providers/Microsoft.ManagedIdentity/userAssignedIdentities/sdkIdentity"
+ }
+ },
+ "kekUrl": "https://sdkkeyvault.vault.azure.net/keys/SSDKEY/",
+ "kekVaultResourceID": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/akvenkat/providers/Microsoft.KeyVault/vaults/SDKKeyVault"
+ }
+ }
+ },
+ "identity": {
+ "type": "SystemAssigned,UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/akvenkat/providers/Microsoft.ManagedIdentity/userAssignedIdentities/sdkIdentity": {}
+ }
+ }
+ }
+ },
+ "responses": {
+ "202": {},
+ "200": {
+ "body": {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "isCancellable": true,
+ "isShippingAddressEditable": true,
+ "status": "DeviceOrdered",
+ "startTime": "2018-04-13T16:28:38.9999793+05:30"
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "name": "SdkJob2965",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/SdkRg9765/providers/Microsoft.DataBox/jobs/SdkJob2965",
+ "type": "Microsoft.DataBox/jobs"
+ }
+ }
+ }
+}
diff --git a/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/OperationsGet.json b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/OperationsGet.json
new file mode 100644
index 000000000000..f96f0598e269
--- /dev/null
+++ b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/OperationsGet.json
@@ -0,0 +1,212 @@
+{
+ "parameters": {
+ "api-version": "2020-11-01",
+ "x-ms-client-request-id": [
+ "b9453354-c675-40a8-99c0-8039818c85fd"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.29017.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.18363.",
+ "Microsoft.Azure.Management.DataBox.DataBoxManagementClient/1.1.0"
+ ]
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "Microsoft.DataBox/locations/operationResults/read",
+ "display": {
+ "provider": "Azure Data Box",
+ "resource": "Operation Results",
+ "operation": "List Operation Results",
+ "description": "List or get the Operation Results"
+ },
+ "properties": {},
+ "origin": "user"
+ },
+ {
+ "name": "Microsoft.DataBox/jobs/cancel/action",
+ "display": {
+ "provider": "Azure Data Box",
+ "resource": "Orders",
+ "operation": "Cancel",
+ "description": "Cancels an order in progress."
+ },
+ "properties": {},
+ "origin": "user"
+ },
+ {
+ "name": "Microsoft.DataBox/jobs/bookShipmentPickUp/action",
+ "display": {
+ "provider": "Azure Data Box",
+ "resource": "Orders",
+ "operation": "Book Shipment Pick Up",
+ "description": "Allows to book a pick up for return shipments."
+ },
+ "properties": {},
+ "origin": "user"
+ },
+ {
+ "name": "Microsoft.DataBox/jobs/read",
+ "display": {
+ "provider": "Azure Data Box",
+ "resource": "Orders",
+ "operation": "List Orders",
+ "description": "List or get the Orders"
+ },
+ "properties": {},
+ "origin": "user"
+ },
+ {
+ "name": "Microsoft.DataBox/jobs/delete",
+ "display": {
+ "provider": "Azure Data Box",
+ "resource": "Orders",
+ "operation": "Delete Orders",
+ "description": "Delete the Orders"
+ },
+ "properties": {},
+ "origin": "user"
+ },
+ {
+ "name": "Microsoft.DataBox/jobs/write",
+ "display": {
+ "provider": "Azure Data Box",
+ "resource": "Orders",
+ "operation": "Create or Update Orders",
+ "description": "Create or update the Orders"
+ },
+ "properties": {},
+ "origin": "user"
+ },
+ {
+ "name": "Microsoft.DataBox/jobs/listCredentials/action",
+ "display": {
+ "provider": "Azure Data Box",
+ "resource": "Orders",
+ "operation": "List Credentials",
+ "description": "Lists the unencrypted credentials related to the order."
+ },
+ "properties": {},
+ "origin": "user"
+ },
+ {
+ "name": "Microsoft.DataBox/locations/validateInputs/action",
+ "display": {
+ "provider": "Azure Data Box",
+ "resource": "Validate Inputs",
+ "operation": "Validate Inputs",
+ "description": "This method does all type of validations."
+ },
+ "properties": {},
+ "origin": "user"
+ },
+ {
+ "name": "Microsoft.DataBox/locations/validateAddress/action",
+ "display": {
+ "provider": "Azure Data Box",
+ "resource": "Validate Address",
+ "operation": "Validate Address",
+ "description": "Validates the shipping address and provides alternate addresses if any."
+ },
+ "properties": {},
+ "origin": "user"
+ },
+ {
+ "name": "Microsoft.DataBox/subscriptions/resourceGroups/moveResources/action",
+ "display": {
+ "provider": "Azure Data Box",
+ "resource": "Move Resource",
+ "operation": "Move Resource",
+ "description": "This method performs the resource move."
+ },
+ "properties": {},
+ "origin": "user"
+ },
+ {
+ "name": "Microsoft.DataBox/subscriptions/resourceGroups/validateMoveResources/action",
+ "display": {
+ "provider": "Azure Data Box",
+ "resource": "Move Resource",
+ "operation": "Validate Move Resource Request",
+ "description": "This method validates whether resource move is allowed or not."
+ },
+ "properties": {},
+ "origin": "user"
+ },
+ {
+ "name": "Microsoft.DataBox/locations/availableSkus/action",
+ "display": {
+ "provider": "Azure Data Box",
+ "resource": "Available Skus",
+ "operation": "Availabe Skus",
+ "description": "This method returns the list of available skus."
+ },
+ "properties": {},
+ "origin": "user"
+ },
+ {
+ "name": "Microsoft.DataBox/locations/regionConfiguration/action",
+ "display": {
+ "provider": "Azure Data Box",
+ "resource": "Region Configuration",
+ "operation": "Region Configuration",
+ "description": "This method returns the configurations for the region."
+ },
+ "properties": {},
+ "origin": "user"
+ },
+ {
+ "name": "Microsoft.DataBox/locations/availableSkus/read",
+ "display": {
+ "provider": "Azure Data Box",
+ "resource": "Available Skus",
+ "operation": "List Available Skus",
+ "description": "List or get the Available Skus"
+ },
+ "properties": {},
+ "origin": "user"
+ },
+ {
+ "name": "Microsoft.DataBox/register/action",
+ "display": {
+ "provider": "Azure Data Box",
+ "resource": "Register Microsoft.Databox",
+ "operation": "Register Microsoft.Databox",
+ "description": "Register Provider Microsoft.Databox"
+ },
+ "properties": {},
+ "origin": "user"
+ },
+ {
+ "name": "Microsoft.DataBox/unregister/action",
+ "display": {
+ "provider": "Azure Data Box",
+ "resource": "Register Microsoft.Databox",
+ "operation": "Un-Register Microsoft.Databox",
+ "description": "Un-Register Provider Microsoft.Databox"
+ },
+ "properties": {},
+ "origin": "user"
+ },
+ {
+ "name": "Microsoft.DataBox/operations/read",
+ "display": {
+ "provider": "Azure Data Box",
+ "resource": "Operations",
+ "operation": "List Operations",
+ "description": "List or get the Operations"
+ },
+ "properties": {},
+ "origin": "user"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/RegionConfiguration.json b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/RegionConfiguration.json
new file mode 100644
index 000000000000..ea1758e64f6b
--- /dev/null
+++ b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/RegionConfiguration.json
@@ -0,0 +1,44 @@
+{
+ "parameters": {
+ "subscriptionId": "fa68082f-8ff7-4a25-95c7-ce9da541242f",
+ "location": "westus",
+ "api-version": "2020-11-01",
+ "regionConfigurationRequest": {
+ "scheduleAvailabilityRequest": {
+ "storageLocation": "westus",
+ "skuName": "DataBox"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "scheduleAvailabilityResponse": {
+ "availableDates": [
+ "2019-07-11T00:00:00+00:00",
+ "2019-07-12T00:00:00+00:00",
+ "2019-07-13T00:00:00+00:00",
+ "2019-07-14T00:00:00+00:00",
+ "2019-07-15T00:00:00+00:00",
+ "2019-07-16T00:00:00+00:00",
+ "2019-07-17T00:00:00+00:00",
+ "2019-07-18T00:00:00+00:00",
+ "2019-07-19T00:00:00+00:00",
+ "2019-07-20T00:00:00+00:00",
+ "2019-07-21T00:00:00+00:00",
+ "2019-07-22T00:00:00+00:00",
+ "2019-07-23T00:00:00+00:00",
+ "2019-07-24T00:00:00+00:00",
+ "2019-07-25T00:00:00+00:00",
+ "2019-07-26T00:00:00+00:00",
+ "2019-07-27T00:00:00+00:00",
+ "2019-07-28T00:00:00+00:00",
+ "2019-07-29T00:00:00+00:00",
+ "2019-07-30T00:00:00+00:00",
+ "2019-07-31T00:00:00+00:00"
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/RegionConfigurationByResourceGroup.json b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/RegionConfigurationByResourceGroup.json
new file mode 100644
index 000000000000..653dbcb9e19e
--- /dev/null
+++ b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/RegionConfigurationByResourceGroup.json
@@ -0,0 +1,45 @@
+{
+ "parameters": {
+ "subscriptionId": "fa68082f-8ff7-4a25-95c7-ce9da541242f",
+ "resourceGroupName": "SdkRg4981",
+ "location": "westus",
+ "api-version": "2020-11-01",
+ "regionConfigurationRequest": {
+ "scheduleAvailabilityRequest": {
+ "storageLocation": "westus",
+ "skuName": "DataBox"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "scheduleAvailabilityResponse": {
+ "availableDates": [
+ "2019-07-11T00:00:00+00:00",
+ "2019-07-12T00:00:00+00:00",
+ "2019-07-13T00:00:00+00:00",
+ "2019-07-14T00:00:00+00:00",
+ "2019-07-15T00:00:00+00:00",
+ "2019-07-16T00:00:00+00:00",
+ "2019-07-17T00:00:00+00:00",
+ "2019-07-18T00:00:00+00:00",
+ "2019-07-19T00:00:00+00:00",
+ "2019-07-20T00:00:00+00:00",
+ "2019-07-21T00:00:00+00:00",
+ "2019-07-22T00:00:00+00:00",
+ "2019-07-23T00:00:00+00:00",
+ "2019-07-24T00:00:00+00:00",
+ "2019-07-25T00:00:00+00:00",
+ "2019-07-26T00:00:00+00:00",
+ "2019-07-27T00:00:00+00:00",
+ "2019-07-28T00:00:00+00:00",
+ "2019-07-29T00:00:00+00:00",
+ "2019-07-30T00:00:00+00:00",
+ "2019-07-31T00:00:00+00:00"
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/ValidateAddressPost.json b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/ValidateAddressPost.json
new file mode 100644
index 000000000000..40a3f3c5037d
--- /dev/null
+++ b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/ValidateAddressPost.json
@@ -0,0 +1,61 @@
+{
+ "parameters": {
+ "subscriptionId": "fa68082f-8ff7-4a25-95c7-ce9da541242f",
+ "location": "westus",
+ "api-version": "2020-11-01",
+ "x-ms-client-request-id": [
+ "cfda3c52-b129-4568-aba7-e743edf747c2"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.29017.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.18363.",
+ "Microsoft.Azure.Management.DataBox.DataBoxManagementClient/1.1.0"
+ ],
+ "Content-Type": [
+ "application/json; charset=utf-8"
+ ],
+ "Content-Length": [
+ "351"
+ ],
+ "validateAddress": {
+ "validationType": "ValidateAddress",
+ "shippingAddress": {
+ "streetAddress1": "16 TOWNSEND ST",
+ "streetAddress2": "Unit 1",
+ "city": "San Francisco",
+ "stateOrProvince": "CA",
+ "country": "US",
+ "postalCode": "94107",
+ "companyName": "Microsoft",
+ "addressType": "Commercial"
+ },
+ "deviceType": "DataBox"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "validationStatus": "Valid",
+ "alternateAddresses": [
+ {
+ "streetAddress1": "16 TOWNSEND ST",
+ "streetAddress2": "Unit 1",
+ "streetAddress3": "",
+ "city": "SAN FRANCISCO",
+ "stateOrProvince": "CA",
+ "country": "US",
+ "postalCode": "94107",
+ "addressType": "None"
+ }
+ ],
+ "validationType": "ValidateAddress"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/ValidateInputs.json b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/ValidateInputs.json
new file mode 100644
index 000000000000..cd8a27819782
--- /dev/null
+++ b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/ValidateInputs.json
@@ -0,0 +1,166 @@
+{
+ "parameters": {
+ "subscriptionId": "fa68082f-8ff7-4a25-95c7-ce9da541242f",
+ "location": "westus",
+ "api-version": "2020-11-01",
+ "x-ms-client-request-id": [
+ "129a0589-5017-4f35-a66c-8da38e04aae1"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.29017.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.18363.",
+ "Microsoft.Azure.Management.DataBox.DataBoxManagementClient/1.1.0"
+ ],
+ "Content-Type": [
+ "application/json; charset=utf-8"
+ ],
+ "Content-Length": [
+ "1675"
+ ],
+ "validationRequest": {
+ "validationCategory": "JobCreationValidation",
+ "individualRequestDetails": [
+ {
+ "validationType": "ValidateDataTransferDetails",
+ "dataImportDetails": [
+ {
+ "accountDetails": {
+ "dataAccountType": "StorageAccount",
+ "storageAccountId": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/databoxbvt/providers/Microsoft.Storage/storageAccounts/databoxbvttestaccount"
+ }
+ }
+ ],
+ "deviceType": "DataBox",
+ "transferType": "ImportToAzure"
+ },
+ {
+ "validationType": "ValidateAddress",
+ "shippingAddress": {
+ "streetAddress1": "16 TOWNSEND ST",
+ "streetAddress2": "Unit 1",
+ "city": "San Francisco",
+ "stateOrProvince": "CA",
+ "country": "US",
+ "postalCode": "94107",
+ "companyName": "Microsoft",
+ "addressType": "Commercial"
+ },
+ "deviceType": "DataBox",
+ "transportPreferences": {
+ "preferredShipmentType": "MicrosoftManaged"
+ }
+ },
+ {
+ "validationType": "ValidateSubscriptionIsAllowedToCreateJob"
+ },
+ {
+ "validationType": "ValidateSkuAvailability",
+ "deviceType": "DataBox",
+ "transferType": "ImportToAzure",
+ "country": "US",
+ "location": "westus"
+ },
+ {
+ "validationType": "ValidateCreateOrderLimit",
+ "deviceType": "DataBox"
+ },
+ {
+ "validationType": "ValidatePreferences",
+ "preference": {
+ "transportPreferences": {
+ "preferredShipmentType": "MicrosoftManaged"
+ }
+ },
+ "deviceType": "DataBox"
+ }
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "status": "AllValidToProceed",
+ "individualResponseDetails": [
+ {
+ "status": "Valid",
+ "validationType": "ValidateDataTransferDetails",
+ "error": {
+ "code": "Success",
+ "target": "KeyEncryptionKey",
+ "details": [],
+ "additionalInfo": []
+ }
+ },
+ {
+ "validationStatus": "Valid",
+ "alternateAddresses": [
+ {
+ "streetAddress1": "16 TOWNSEND ST",
+ "streetAddress2": "Unit 1",
+ "streetAddress3": "",
+ "city": "SAN FRANCISCO",
+ "stateOrProvince": "CA",
+ "country": "US",
+ "postalCode": "94107",
+ "addressType": "None"
+ }
+ ],
+ "validationType": "ValidateAddress",
+ "error": {
+ "code": "Success",
+ "target": "KeyEncryptionKey",
+ "details": [],
+ "additionalInfo": []
+ }
+ },
+ {
+ "status": "Valid",
+ "validationType": "ValidateSubscriptionIsAllowedToCreateJob",
+ "error": {
+ "code": "Success",
+ "target": "KeyEncryptionKey",
+ "details": [],
+ "additionalInfo": []
+ }
+ },
+ {
+ "status": "Valid",
+ "validationType": "ValidateSkuAvailability",
+ "error": {
+ "code": "Success",
+ "target": "KeyEncryptionKey",
+ "details": [],
+ "additionalInfo": []
+ }
+ },
+ {
+ "status": "Valid",
+ "validationType": "ValidateCreateOrderLimit",
+ "error": {
+ "code": "Success",
+ "target": "KeyEncryptionKey",
+ "details": [],
+ "additionalInfo": []
+ }
+ },
+ {
+ "status": "Valid",
+ "validationType": "ValidatePreferences",
+ "error": {
+ "code": "Success",
+ "target": "KeyEncryptionKey",
+ "details": [],
+ "additionalInfo": []
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/ValidateInputsByResourceGroup.json b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/ValidateInputsByResourceGroup.json
new file mode 100644
index 000000000000..c70a59c27ffe
--- /dev/null
+++ b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/examples/ValidateInputsByResourceGroup.json
@@ -0,0 +1,167 @@
+{
+ "parameters": {
+ "subscriptionId": "fa68082f-8ff7-4a25-95c7-ce9da541242f",
+ "resourceGroupName": "SdkRg6861",
+ "location": "westus",
+ "api-version": "2020-11-01",
+ "x-ms-client-request-id": [
+ "85f045bb-7659-4a2f-bcf5-96723954afdf"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.29017.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.18363.",
+ "Microsoft.Azure.Management.DataBox.DataBoxManagementClient/1.1.0"
+ ],
+ "Content-Type": [
+ "application/json; charset=utf-8"
+ ],
+ "Content-Length": [
+ "1675"
+ ],
+ "validationRequest": {
+ "validationCategory": "JobCreationValidation",
+ "individualRequestDetails": [
+ {
+ "validationType": "ValidateDataTransferDetails",
+ "dataImportDetails": [
+ {
+ "accountDetails": {
+ "dataAccountType": "StorageAccount",
+ "storageAccountId": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/databoxbvt/providers/Microsoft.Storage/storageAccounts/databoxbvttestaccount"
+ }
+ }
+ ],
+ "deviceType": "DataBox",
+ "transferType": "ImportToAzure"
+ },
+ {
+ "validationType": "ValidateAddress",
+ "shippingAddress": {
+ "streetAddress1": "16 TOWNSEND ST",
+ "streetAddress2": "Unit 1",
+ "city": "San Francisco",
+ "stateOrProvince": "CA",
+ "country": "US",
+ "postalCode": "94107",
+ "companyName": "Microsoft",
+ "addressType": "Commercial"
+ },
+ "deviceType": "DataBox",
+ "transportPreferences": {
+ "preferredShipmentType": "MicrosoftManaged"
+ }
+ },
+ {
+ "validationType": "ValidateSubscriptionIsAllowedToCreateJob"
+ },
+ {
+ "validationType": "ValidateSkuAvailability",
+ "deviceType": "DataBox",
+ "transferType": "ImportToAzure",
+ "country": "US",
+ "location": "westus"
+ },
+ {
+ "validationType": "ValidateCreateOrderLimit",
+ "deviceType": "DataBox"
+ },
+ {
+ "validationType": "ValidatePreferences",
+ "preference": {
+ "transportPreferences": {
+ "preferredShipmentType": "MicrosoftManaged"
+ }
+ },
+ "deviceType": "DataBox"
+ }
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "status": "AllValidToProceed",
+ "individualResponseDetails": [
+ {
+ "status": "Valid",
+ "validationType": "ValidateDataTransferDetails",
+ "error": {
+ "code": "Success",
+ "target": "KeyEncryptionKey",
+ "details": [],
+ "additionalInfo": []
+ }
+ },
+ {
+ "validationStatus": "Valid",
+ "alternateAddresses": [
+ {
+ "streetAddress1": "16 TOWNSEND ST",
+ "streetAddress2": "Unit 1",
+ "streetAddress3": "",
+ "city": "SAN FRANCISCO",
+ "stateOrProvince": "CA",
+ "country": "US",
+ "postalCode": "94107",
+ "addressType": "None"
+ }
+ ],
+ "validationType": "ValidateAddress",
+ "error": {
+ "code": "Success",
+ "target": "KeyEncryptionKey",
+ "details": [],
+ "additionalInfo": []
+ }
+ },
+ {
+ "status": "Valid",
+ "validationType": "ValidateSubscriptionIsAllowedToCreateJob",
+ "error": {
+ "code": "Success",
+ "target": "KeyEncryptionKey",
+ "details": [],
+ "additionalInfo": []
+ }
+ },
+ {
+ "status": "Valid",
+ "validationType": "ValidateSkuAvailability",
+ "error": {
+ "code": "Success",
+ "target": "KeyEncryptionKey",
+ "details": [],
+ "additionalInfo": []
+ }
+ },
+ {
+ "status": "Valid",
+ "validationType": "ValidateCreateOrderLimit",
+ "error": {
+ "code": "Success",
+ "target": "KeyEncryptionKey",
+ "details": [],
+ "additionalInfo": []
+ }
+ },
+ {
+ "status": "Valid",
+ "validationType": "ValidatePreferences",
+ "error": {
+ "code": "Success",
+ "target": "KeyEncryptionKey",
+ "details": [],
+ "additionalInfo": []
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/databox/resource-manager/readme.azureresourceschema.md b/specification/databox/resource-manager/readme.azureresourceschema.md
index d96954178ec5..c4424d428592 100644
--- a/specification/databox/resource-manager/readme.azureresourceschema.md
+++ b/specification/databox/resource-manager/readme.azureresourceschema.md
@@ -6,6 +6,7 @@ These settings apply only when `--azureresourceschema` is specified on the comma
``` yaml $(azureresourceschema) && $(multiapi)
batch:
+ - tag: schema-databox-2020-11-01
- tag: schema-databox-2020-04-01
- tag: schema-databox-2019-09-01
- tag: schema-databox-2018-01-01
@@ -14,6 +15,17 @@ batch:
Please also specify `--azureresourceschema-folder=`.
+### Tag: schema-databox-2020-11-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-databox-2020-11-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DataBox/stable/2020-11-01/databox.json
+
+```
+
### Tag: schema-databox-2020-04-01 and azureresourceschema
``` yaml $(tag) == 'schema-databox-2020-04-01' && $(azureresourceschema)
diff --git a/specification/databox/resource-manager/readme.go.md b/specification/databox/resource-manager/readme.go.md
index 129eb9435784..36d7f11fa3d8 100644
--- a/specification/databox/resource-manager/readme.go.md
+++ b/specification/databox/resource-manager/readme.go.md
@@ -16,6 +16,7 @@ batch:
- tag: package-2018-01
- tag: package-2019-09
- tag: package-2020-04
+ - tag: package-2020-11
```
### Tag: package-2018-01 and go
@@ -43,4 +44,13 @@ Please also specify `--go-sdk-folder=`.
+
+``` yaml $(tag) == 'package-2020-11' && $(go)
+output-folder: $(go-sdk-folder)/services/$(namespace)/mgmt/2020-11-01/$(namespace)
```
\ No newline at end of file
diff --git a/specification/databox/resource-manager/readme.md b/specification/databox/resource-manager/readme.md
index 019369a3cc14..88bd4002d480 100644
--- a/specification/databox/resource-manager/readme.md
+++ b/specification/databox/resource-manager/readme.md
@@ -26,7 +26,16 @@ These are the global settings for the DataBox API.
``` yaml
openapi-type: arm
-tag: package-2020-04
+tag: package-2020-11
+```
+
+### Tag: package-2020-11
+
+These settings apply only when `--tag=package-2020-11` is specified on the command line.
+
+``` yaml $(tag) == 'package-2020-11'
+input-file:
+- Microsoft.DataBox/stable/2020-11-01/databox.json
```
### Tag: package-2020-04
@@ -133,6 +142,7 @@ batch:
- tag: package-2018-01
- tag: package-2019-09
- tag: package-2020-04
+ - tag: package-2020-11
```
### Tag: package-2018-01 and java
@@ -173,6 +183,20 @@ java:
regenerate-manager: true
generate-interface: true
```
+
+### Tag: package-2020-11 and java
+
+These settings apply only when `--tag=package-2020-11-java` is specified on the command line.
+Please also specify `--azure-libraries-for-java-folder=`.
+
+``` yaml $(tag) == 'package-2020-11' && $(java) && $(multiapi)
+java:
+ namespace: com.microsoft.azure.management.databox.v2020_11-01
+ output-folder: $(azure-libraries-for-java-folder)/sdk/databox/mgmt-v2020_11_01
+regenerate-manager: true
+generate-interface: true
+```
+
## AzureResourceSchema
See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/databox/resource-manager/readme.python.md b/specification/databox/resource-manager/readme.python.md
index 73bcaea2fe6b..ebdc1a83087b 100644
--- a/specification/databox/resource-manager/readme.python.md
+++ b/specification/databox/resource-manager/readme.python.md
@@ -24,11 +24,23 @@ Generate all API versions currently shipped for this package
```yaml $(python) && $(multiapi)
batch:
+ - tag: package-2020-11
- tag: package-2020-04
- tag: package-2019-09
- tag: package-2018-01
```
+### Tag: package-2020-11 and python
+
+These settings apply only when `--tag=package-2020-11 --python` is specified on the command line.
+Please also specify `--python-sdks-folder=`.
+
+``` yaml $(tag) == 'package-2020-11' && $(python)
+python:
+ namespace: azure.mgmt.databox.v2020_11_01
+ output-folder: $(python-sdks-folder)/databox/azure-mgmt-databox/azure/mgmt/databox/v2020_11_01
+```
+
### Tag: package-2020-04 and python
These settings apply only when `--tag=package-2020-04 --python` is specified on the command line.
diff --git a/specification/databox/resource-manager/readme.ruby.md b/specification/databox/resource-manager/readme.ruby.md
index e2df249ad0ee..fddb1784e32c 100644
--- a/specification/databox/resource-manager/readme.ruby.md
+++ b/specification/databox/resource-manager/readme.ruby.md
@@ -15,6 +15,7 @@ batch:
- tag: package-2018-01
- tag: package-2019-09
- tag: package-2020-04
+ - tag: package-2020-11
```
### Tag: package-2018-01 and ruby
@@ -45,4 +46,14 @@ Please also specify `--ruby-sdks-folder=`.
+
+``` yaml $(tag) == 'package-2020-11' && $(ruby)
+namespace: "Azure::Compute::Mgmt::V2020_11_01"
+output-folder: $(ruby-sdks-folder)/management/azure_mgmt_databox/lib
```
\ No newline at end of file
diff --git a/specification/databoxedge/resource-manager/Microsoft.DataBoxEdge/preview/2020-05-01-preview/databoxedge.json b/specification/databoxedge/resource-manager/Microsoft.DataBoxEdge/preview/2020-05-01-preview/databoxedge.json
index 67ad3b4498b1..ae28cfe1bd71 100644
--- a/specification/databoxedge/resource-manager/Microsoft.DataBoxEdge/preview/2020-05-01-preview/databoxedge.json
+++ b/specification/databoxedge/resource-manager/Microsoft.DataBoxEdge/preview/2020-05-01-preview/databoxedge.json
@@ -5788,28 +5788,6 @@
}
}
},
- "SKUCost": {
- "description": "The cost of the SKU",
- "type": "object",
- "properties": {
- "meterId": {
- "description": "The meter id",
- "type": "string",
- "readOnly": true
- },
- "quantity": {
- "format": "int32",
- "description": "The quantity",
- "type": "integer",
- "readOnly": true
- },
- "extendedUnit": {
- "description": "The extended unit",
- "type": "string",
- "readOnly": true
- }
- }
- },
"SkuInformation": {
"description": "Sku information",
"type": "object",
@@ -5880,7 +5858,7 @@
"description": "The cost of the SKU",
"type": "array",
"items": {
- "$ref": "#/definitions/SKUCost"
+ "$ref": "#/definitions/SkuCost"
},
"readOnly": true
},
diff --git a/specification/databoxedge/resource-manager/readme.csharp.md b/specification/databoxedge/resource-manager/readme.csharp.md
new file mode 100644
index 000000000000..b1bb3573a220
--- /dev/null
+++ b/specification/databoxedge/resource-manager/readme.csharp.md
@@ -0,0 +1,35 @@
+# C# Compute
+
+> see https://aka.ms/autorest
+
+This is the AutoRest configuration file for DataBoxEdge.
+
+These settings apply only when `--csharp` is specified on the command line.
+Please also specify `--csharp-sdks-folder=`.
+
+## Common C# settings
+
+## C#
+
+These settings apply only when `--csharp` is specified on the command line.
+Please also specify `--csharp-sdks-folder=`.
+
+``` yaml $(csharp)
+csharp:
+ azure-arm: true
+ license-header: MICROSOFT_MIT_NO_VERSION
+ payload-flattening-threshold: 2
+ clear-output-folder: true
+```
+
+### Profile: hybrid_2020_09_01
+
+These settings apply only when `--csharp-profile=hybrid_2020_09_01` is specified on the command line.
+
+``` yaml $(csharp-profile)=='hybrid_2020_09_01'
+namespace: Microsoft.Azure.Management.Profiles.$(csharp-profile).DataBoxEdge
+output-folder: $(csharp-sdks-folder)/$(csharp-profile)/DataBoxEdge/Management.DataBoxEdge/Generated
+
+batch:
+ - tag: profile-hybrid-2020-09-01
+```
\ No newline at end of file
diff --git a/specification/databoxedge/resource-manager/readme.java.md b/specification/databoxedge/resource-manager/readme.java.md
index d3c928f81c4e..75cecc716b37 100644
--- a/specification/databoxedge/resource-manager/readme.java.md
+++ b/specification/databoxedge/resource-manager/readme.java.md
@@ -19,7 +19,7 @@ batch:
- tag: package-2020-05-preview
- tag: package-2019-08
- tag: package-2019-07
- - tag: package-2019-03
+ - tag: package-2019-03
```
### Tag: package-2020-05-preview and java
@@ -30,7 +30,7 @@ Please also specify `--azure-libraries-for-java-folder=`.
-``` yaml $(typescript)
+``` yaml $(typescript) && !$(profile)
typescript:
azure-arm: true
license-header: MICROSOFT_MIT_NO_VERSION
@@ -12,4 +12,19 @@ typescript:
output-folder: "$(typescript-sdks-folder)/sdk/databoxedge/arm-databoxedge"
clear-output-folder: true
generate-metadata: true
+```
+
+### Profile: profile-hybrid-2020-09-01
+
+These settings apply only when `--profile=profile-hybrid-2020-09-01` is specified on the command line.
+
+``` yaml $(profile)=='profile-hybrid-2020-09-01'
+typescript:
+ package-name: "@azure/arm-databoxedge-profile-2020-09-01-hybrid"
+ output-folder: "$(typescript-sdks-folder)/sdk/databoxedge/arm-databoxedge-profile-2020-09-01-hybrid"
+ clear-output-folder: true
+ azure-arm: true
+ generate-metadata: true
+ batch:
+ - tag: profile-hybrid-2020-09-01
```
\ No newline at end of file
diff --git a/specification/datadog/resource-manager/Microsoft.Datadog/preview/2020-02-01-preview/datadog.json b/specification/datadog/resource-manager/Microsoft.Datadog/preview/2020-02-01-preview/datadog.json
index 08c44ae921da..f44ce0804b10 100644
--- a/specification/datadog/resource-manager/Microsoft.Datadog/preview/2020-02-01-preview/datadog.json
+++ b/specification/datadog/resource-manager/Microsoft.Datadog/preview/2020-02-01-preview/datadog.json
@@ -26,6 +26,91 @@
}
},
"paths": {
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Datadog/agreements": {
+ "get": {
+ "tags": [
+ "Agreements"
+ ],
+ "summary": "List Datadog marketplace agreements in the subscription.",
+ "operationId": "MarketplaceAgreements_List",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/DatadogAgreementResourceListResponse"
+ }
+ },
+ "default": {
+ "description": "Default error response.",
+ "schema": {
+ "$ref": "#/definitions/ResourceProviderDefaultErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "MarketplaceAgreements_List": {
+ "$ref": "./examples/MarketplaceAgreements_List.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Datadog/agreements/default": {
+ "put": {
+ "tags": [
+ "Agreements"
+ ],
+ "summary": "Create Datadog marketplace agreement in the subscription.",
+ "operationId": "MarketplaceAgreements_Create",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "in": "body",
+ "name": "body",
+ "schema": {
+ "$ref": "#/definitions/DatadogAgreementResource"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/DatadogAgreementResource"
+ }
+ },
+ "default": {
+ "description": "Default error response.",
+ "schema": {
+ "$ref": "#/definitions/ResourceProviderDefaultErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "MarketplaceAgreements_Create": {
+ "$ref": "./examples/MarketplaceAgreements_Create.json"
+ }
+ }
+ }
+ },
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/listApiKeys": {
"post": {
"tags": [
@@ -766,6 +851,7 @@
"$ref": "#/parameters/MonitorNameParameter"
},
{
+ "description": "Rule set name",
"in": "path",
"name": "ruleSetName",
"required": true,
@@ -822,6 +908,7 @@
"$ref": "#/parameters/MonitorNameParameter"
},
{
+ "description": "Rule set name",
"in": "path",
"name": "ruleSetName",
"required": true,
@@ -924,6 +1011,7 @@
"$ref": "#/parameters/MonitorNameParameter"
},
{
+ "description": "Configuration name",
"in": "path",
"name": "configurationName",
"required": true,
@@ -990,6 +1078,7 @@
"$ref": "#/parameters/MonitorNameParameter"
},
{
+ "description": "Configuration name",
"in": "path",
"name": "configurationName",
"required": true,
@@ -1022,6 +1111,87 @@
}
},
"definitions": {
+ "DatadogAgreementProperties": {
+ "description": "Terms properties.",
+ "type": "object",
+ "properties": {
+ "publisher": {
+ "description": "Publisher identifier string.",
+ "type": "string"
+ },
+ "product": {
+ "description": "Product identifier string.",
+ "type": "string"
+ },
+ "plan": {
+ "description": "Plan identifier string.",
+ "type": "string"
+ },
+ "licenseTextLink": {
+ "description": "Link to HTML with Microsoft and Publisher terms.",
+ "type": "string"
+ },
+ "privacyPolicyLink": {
+ "description": "Link to the privacy policy of the publisher.",
+ "type": "string"
+ },
+ "retrieveDatetime": {
+ "format": "date-time",
+ "description": "Date and time in UTC of when the terms were accepted. This is empty if Accepted is false.",
+ "type": "string"
+ },
+ "signature": {
+ "description": "Terms signature.",
+ "type": "string"
+ },
+ "accepted": {
+ "description": "If any version of the terms have been accepted, otherwise false.",
+ "type": "boolean"
+ }
+ }
+ },
+ "DatadogAgreementResource": {
+ "type": "object",
+ "x-ms-azure-resource": true,
+ "properties": {
+ "id": {
+ "description": "ARM id of the resource.",
+ "type": "string",
+ "readOnly": true
+ },
+ "name": {
+ "description": "Name of the agreement.",
+ "type": "string",
+ "readOnly": true
+ },
+ "type": {
+ "description": "The type of the resource.",
+ "type": "string",
+ "readOnly": true
+ },
+ "properties": {
+ "$ref": "#/definitions/DatadogAgreementProperties",
+ "description": "Represents the properties of the resource."
+ }
+ }
+ },
+ "DatadogAgreementResourceListResponse": {
+ "description": "Response of a list operation.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Results of a list operation.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DatadogAgreementResource"
+ }
+ },
+ "nextLink": {
+ "description": "Link to the next set of results, if any.",
+ "type": "string"
+ }
+ }
+ },
"DatadogApiKey": {
"required": [
"key"
@@ -1356,6 +1526,7 @@
}
},
"DatadogOrganizationProperties": {
+ "description": "Datadog organization properties",
"type": "object",
"properties": {
"name": {
@@ -1392,6 +1563,7 @@
}
},
"UserInfo": {
+ "description": "User info",
"type": "object",
"properties": {
"name": {
@@ -1459,6 +1631,7 @@
"UserAssigned"
],
"type": "string",
+ "description": "Identity type",
"x-ms-enum": {
"modelAsString": true,
"name": "ManagedIdentityTypes"
diff --git a/specification/datadog/resource-manager/Microsoft.Datadog/preview/2020-02-01-preview/examples/MarketplaceAgreements_Create.json b/specification/datadog/resource-manager/Microsoft.Datadog/preview/2020-02-01-preview/examples/MarketplaceAgreements_Create.json
new file mode 100644
index 000000000000..e85c575a0e66
--- /dev/null
+++ b/specification/datadog/resource-manager/Microsoft.Datadog/preview/2020-02-01-preview/examples/MarketplaceAgreements_Create.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "api-version": "2020-02-01-preview",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "requestBody": {
+ "properties": {
+ "accepted": true
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Datadog/agreements/default",
+ "name": "default",
+ "type": "Microsoft.Datadog/agreements",
+ "properties": {
+ "publisher": "pubid1",
+ "product": "offid1",
+ "plan": "planid1",
+ "licenseTextLink": "test.licenseLink1",
+ "privacyPolicyLink": "test.privacyPolicyLink1",
+ "retrieveDatetime": "2017-08-15T11:33:07.12132Z",
+ "signature": "ASDFSDAFWEFASDGWERLWER",
+ "accepted": true
+ }
+ }
+ }
+ }
+}
diff --git a/specification/datadog/resource-manager/Microsoft.Datadog/preview/2020-02-01-preview/examples/MarketplaceAgreements_List.json b/specification/datadog/resource-manager/Microsoft.Datadog/preview/2020-02-01-preview/examples/MarketplaceAgreements_List.json
new file mode 100644
index 000000000000..ad2acc148010
--- /dev/null
+++ b/specification/datadog/resource-manager/Microsoft.Datadog/preview/2020-02-01-preview/examples/MarketplaceAgreements_List.json
@@ -0,0 +1,45 @@
+{
+ "parameters": {
+ "api-version": "2020-02-01-preview",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Datadog/agreements/id1",
+ "name": "planid1",
+ "type": "Microsoft.Datadog/agreements",
+ "properties": {
+ "publisher": "pubid1",
+ "product": "offid1",
+ "plan": "planid1",
+ "licenseTextLink": "test.licenseLink1",
+ "privacyPolicyLink": "test.privacyPolicyLink1",
+ "retrieveDatetime": "2017-08-15T11:33:07.12132Z",
+ "signature": "ASDFSDAFWEFASDGWERLWER",
+ "accepted": false
+ }
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Datadog/agreements/id2",
+ "name": "planid2",
+ "type": "Microsoft.Datadog/agreements",
+ "properties": {
+ "publisher": "pubid2",
+ "product": "offid2",
+ "plan": "planid2",
+ "licenseTextLink": "test.licenseLin2k",
+ "privacyPolicyLink": "test.privacyPolicyLink2",
+ "retrieveDatetime": "2017-08-14T11:33:07.12132Z",
+ "signature": "ASDFSDAFWEFASDGWERLWER",
+ "accepted": false
+ }
+ }
+ ],
+ "nextLink": null
+ }
+ }
+ }
+}
diff --git a/specification/datadog/resource-manager/readme.cli.md b/specification/datadog/resource-manager/readme.cli.md
index bd1ae237a340..39963533929a 100644
--- a/specification/datadog/resource-manager/readme.cli.md
+++ b/specification/datadog/resource-manager/readme.cli.md
@@ -3,4 +3,32 @@
These settings don't need to apply `--cli` on the command line.
``` yaml
+cli:
+ cli-directive:
+ - where:
+ group: 'RefreshSetPassword'
+ name: 'set_password_link'
+ - where:
+ group: 'SingleSignOnConfigurations'
+ name: 'sso_config'
+ - where:
+ group: 'Monitors'
+ op: 'Create'
+ param: 'monitoringStatus'
+ removed: true
+ - where:
+ group: 'Monitors'
+ op: 'Create'
+ param: 'MarketplaceSubscriptionStatus'
+ removed: true
+ - where:
+ group: 'Monitors'
+ op: 'Create'
+ param: 'ProvisioningState'
+ removed: true
+ - where:
+ group: 'Monitors'
+ op: 'Update'
+ param: 'monitoringStatus'
+ removed: true
```
diff --git a/specification/datadog/resource-manager/readme.python.md b/specification/datadog/resource-manager/readme.python.md
index 5768cbbc5bdd..771a19b15e1a 100644
--- a/specification/datadog/resource-manager/readme.python.md
+++ b/specification/datadog/resource-manager/readme.python.md
@@ -26,18 +26,24 @@ no-namespace-folders: true
package-version: 1.0.0
```
-``` yaml $(python) && $(python-mode) == 'update'
+``` yaml $(python) && $(python-mode) == 'update' && !$(track2)
python:
no-namespace-folders: true
output-folder: $(python-sdks-folder)/datadog/azure-mgmt-datadog/azure/mgmt/datadog
-no-namespace-folders: true
-output-folder: $(python-sdks-folder)/datadog/azure-mgmt-datadog/azure/mgmt/datadog
```
-``` yaml $(python) && $(python-mode) == 'create'
+``` yaml $(python) && $(python-mode) == 'create' && !$(track2)
python:
basic-setup-py: true
output-folder: $(python-sdks-folder)/datadog/azure-mgmt-datadog
+```
+
+``` yaml $(python) && $(python-mode) == 'update' && $(track2)
+no-namespace-folders: true
+output-folder: $(python-sdks-folder)/datadog/azure-mgmt-datadog/azure/mgmt/datadog
+```
+
+``` yaml $(python) && $(python-mode) == 'create' && $(track2)
basic-setup-py: true
output-folder: $(python-sdks-folder)/datadog/azure-mgmt-datadog
```
diff --git a/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/entityTypes/Pipeline.json b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/entityTypes/Pipeline.json
index 0e319987eced..18058df3b470 100644
--- a/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/entityTypes/Pipeline.json
+++ b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/entityTypes/Pipeline.json
@@ -6921,21 +6921,12 @@
"type": "object",
"properties": {
"computeType": {
- "description": "Compute type of the cluster which will execute data flow job.",
- "type": "string",
- "enum": [
- "General",
- "MemoryOptimized",
- "ComputeOptimized"
- ],
- "x-ms-enum": {
- "name": "DataFlowComputeType",
- "modelAsString": true
- }
+ "description": "Compute type of the cluster which will execute data flow job. Possible values include: 'General', 'MemoryOptimized', 'ComputeOptimized'. Type: string (or Expression with resultType string)",
+ "type": "object"
},
"coreCount": {
- "description": "Core count of the cluster which will execute data flow job. Supported values are: 8, 16, 32, 48, 80, 144 and 272.",
- "type": "integer"
+ "description": "Core count of the cluster which will execute data flow job. Supported values are: 8, 16, 32, 48, 80, 144 and 272. Type: integer (or Expression with resultType integer)",
+ "type": "object"
}
}
}
diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/Services.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/Services.json
index fd4384cba26d..071c48f8e78d 100644
--- a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/Services.json
+++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/Services.json
@@ -157,6 +157,10 @@
"virtualSubnetId": {
"type": "string",
"description": "The ID of the Microsoft.Network/virtualNetworks/subnets resource to which the service should be joined"
+ },
+ "virtualNicId": {
+ "type": "string",
+ "description": "The ID of the Microsoft.Network/networkInterfaces resource which the service have"
}
},
"required": [
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/desktopvirtualization.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/desktopvirtualization.json
new file mode 100644
index 000000000000..417c4e308efd
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/desktopvirtualization.json
@@ -0,0 +1,3790 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2020-10-19-preview",
+ "title": "Desktop Virtualization API Client"
+ },
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "host": "management.azure.com",
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Azure Active Directory OAuth2 Flow",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
+ "paths": {
+ "/providers/Microsoft.DesktopVirtualization/operations": {
+ "get": {
+ "tags": [
+ "Operations"
+ ],
+ "operationId": "Operations_List",
+ "description": "List all of the available operations the Desktop Virtualization resource provider supports.",
+ "x-ms-examples": {
+ "OperationDescription_List": {
+ "$ref": "./examples/OperationDescription_List.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved operations.",
+ "schema": {
+ "$ref": "#/definitions/ResourceProviderOperationList"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/workspaces/{workspaceName}": {
+ "get": {
+ "tags": [
+ "Workspace"
+ ],
+ "operationId": "Workspaces_Get",
+ "description": "Get a workspace.",
+ "x-ms-examples": {
+ "Workspace_Get": {
+ "$ref": "./examples/Workspace_Get.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved workspace.",
+ "schema": {
+ "$ref": "#/definitions/Workspace"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Workspace"
+ ],
+ "operationId": "Workspaces_CreateOrUpdate",
+ "description": "Create or update a workspace.",
+ "x-ms-examples": {
+ "Workspace_Create": {
+ "$ref": "./examples/Workspace_Create.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "name": "workspace",
+ "description": "Object containing Workspace definitions.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/Workspace"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully updated workspace.",
+ "schema": {
+ "$ref": "#/definitions/Workspace"
+ }
+ },
+ "201": {
+ "description": "Successfully created workspace.",
+ "schema": {
+ "$ref": "#/definitions/Workspace"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Workspace"
+ ],
+ "operationId": "Workspaces_Delete",
+ "description": "Remove a workspace.",
+ "x-ms-examples": {
+ "Workspace_Delete": {
+ "$ref": "./examples/Workspace_Delete.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully deleted workspace."
+ },
+ "204": {
+ "description": "Workspace does not exist."
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Workspace"
+ ],
+ "operationId": "Workspaces_Update",
+ "description": "Update a workspace.",
+ "x-ms-examples": {
+ "Workspace_Update": {
+ "$ref": "./examples/Workspace_Update.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "name": "workspace",
+ "description": "Object containing Workspace definitions.",
+ "in": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/WorkspacePatch"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully updated workspace.",
+ "schema": {
+ "$ref": "#/definitions/Workspace"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/workspaces": {
+ "get": {
+ "tags": [
+ "Workspace"
+ ],
+ "operationId": "Workspaces_ListByResourceGroup",
+ "description": "List workspaces.",
+ "x-ms-examples": {
+ "Workspace_ListByResourceGroup": {
+ "$ref": "./examples/Workspace_ListByResourceGroup.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved workspaces in resource group.",
+ "schema": {
+ "$ref": "#/definitions/WorkspaceList"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.DesktopVirtualization/workspaces": {
+ "get": {
+ "tags": [
+ "Workspace"
+ ],
+ "operationId": "Workspaces_ListBySubscription",
+ "description": "List workspaces in subscription.",
+ "x-ms-examples": {
+ "Workspace_ListBySubscription": {
+ "$ref": "./examples/Workspace_ListBySubscription.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved workspaces in subscription.",
+ "schema": {
+ "$ref": "#/definitions/WorkspaceList"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}": {
+ "get": {
+ "tags": [
+ "ApplicationGroup"
+ ],
+ "operationId": "ApplicationGroups_Get",
+ "description": "Get an application group.",
+ "x-ms-examples": {
+ "ApplicationGroup_Get": {
+ "$ref": "./examples/ApplicationGroup_Get.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApplicationGroupNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved application group.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationGroup"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "ApplicationGroup"
+ ],
+ "operationId": "ApplicationGroups_CreateOrUpdate",
+ "description": "Create or update an applicationGroup.",
+ "x-ms-examples": {
+ "ApplicationGroup_Create": {
+ "$ref": "./examples/ApplicationGroup_Create.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApplicationGroupNameParameter"
+ },
+ {
+ "name": "applicationGroup",
+ "description": "Object containing ApplicationGroup definitions.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ApplicationGroup"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully updated application group.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationGroup"
+ }
+ },
+ "201": {
+ "description": "Successfully created application group.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationGroup"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "ApplicationGroup"
+ ],
+ "operationId": "ApplicationGroups_Delete",
+ "description": "Remove an applicationGroup.",
+ "x-ms-examples": {
+ "ApplicationGroup_Delete": {
+ "$ref": "./examples/ApplicationGroup_Delete.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApplicationGroupNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully removed application group."
+ },
+ "204": {
+ "description": "Application group does not exist."
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "ApplicationGroup"
+ ],
+ "operationId": "ApplicationGroups_Update",
+ "description": "Update an applicationGroup.",
+ "x-ms-examples": {
+ "ApplicationGroups_Update": {
+ "$ref": "./examples/ApplicationGroup_Update.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApplicationGroupNameParameter"
+ },
+ {
+ "name": "applicationGroup",
+ "description": "Object containing ApplicationGroup definitions.",
+ "in": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/ApplicationGroupPatch"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully updated application group.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationGroup"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups": {
+ "get": {
+ "tags": [
+ "ApplicationGroup"
+ ],
+ "operationId": "ApplicationGroups_ListByResourceGroup",
+ "description": "List applicationGroups.",
+ "x-ms-examples": {
+ "ApplicationGroup_ListByResourceGroup": {
+ "$ref": "./examples/ApplicationGroup_ListByResourceGroup.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "OData filter expression. Valid properties for filtering are applicationGroupType."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved application groups in resource group.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationGroupList"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.DesktopVirtualization/applicationGroups": {
+ "get": {
+ "tags": [
+ "ApplicationGroup"
+ ],
+ "operationId": "ApplicationGroups_ListBySubscription",
+ "description": "List applicationGroups in subscription.",
+ "x-ms-examples": {
+ "ApplicationGroup_List": {
+ "$ref": "./examples/ApplicationGroup_ListBySubscription.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "OData filter expression. Valid properties for filtering are applicationGroupType."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved application groups in subscription.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationGroupList"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}/startMenuItems": {
+ "get": {
+ "tags": [
+ "StartMenuItem"
+ ],
+ "operationId": "StartMenuItems_List",
+ "description": "List start menu items in the given application group.",
+ "x-ms-examples": {
+ "StartMenuItem_List": {
+ "$ref": "./examples/StartMenuItem_List.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApplicationGroupNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved start menu items in application group.",
+ "schema": {
+ "$ref": "#/definitions/StartMenuItemList"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}/applications/{applicationName}": {
+ "get": {
+ "tags": [
+ "Application"
+ ],
+ "operationId": "Applications_Get",
+ "description": "Get an application.",
+ "x-ms-examples": {
+ "Application_Get": {
+ "$ref": "./examples/Application_Get.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApplicationGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApplicationNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved application.",
+ "schema": {
+ "$ref": "#/definitions/Application"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Application"
+ ],
+ "operationId": "Applications_CreateOrUpdate",
+ "description": "Create or update an application.",
+ "x-ms-examples": {
+ "Application_Create": {
+ "$ref": "./examples/Application_Create.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApplicationGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApplicationNameParameter"
+ },
+ {
+ "name": "application",
+ "description": "Object containing Application definitions.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/Application"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully updated application.",
+ "schema": {
+ "$ref": "#/definitions/Application"
+ }
+ },
+ "201": {
+ "description": "Successfully created application.",
+ "schema": {
+ "$ref": "#/definitions/Application"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Application"
+ ],
+ "operationId": "Applications_Delete",
+ "description": "Remove an application.",
+ "x-ms-examples": {
+ "Application_Delete": {
+ "$ref": "./examples/Application_Delete.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApplicationGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApplicationNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully removed application."
+ },
+ "204": {
+ "description": "Application does not exist."
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Application"
+ ],
+ "operationId": "Applications_Update",
+ "description": "Update an application.",
+ "x-ms-examples": {
+ "Application_Update": {
+ "$ref": "./examples/Application_Update.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApplicationGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApplicationNameParameter"
+ },
+ {
+ "name": "application",
+ "description": "Object containing Application definitions.",
+ "in": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/ApplicationPatch"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully updated application.",
+ "schema": {
+ "$ref": "#/definitions/Application"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}/applications": {
+ "get": {
+ "tags": [
+ "Application"
+ ],
+ "operationId": "Applications_List",
+ "description": "List applications.",
+ "x-ms-examples": {
+ "Applications_List": {
+ "$ref": "./examples/Application_List.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApplicationGroupNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved applications in application group.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationList"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}/desktops/{desktopName}": {
+ "get": {
+ "tags": [
+ "Desktop"
+ ],
+ "operationId": "Desktops_Get",
+ "description": "Get a desktop.",
+ "x-ms-examples": {
+ "Desktop_Get": {
+ "$ref": "./examples/Desktop_Get.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApplicationGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DesktopNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved desktop.",
+ "schema": {
+ "$ref": "#/definitions/Desktop"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Desktop"
+ ],
+ "operationId": "Desktops_Update",
+ "description": "Update a desktop.",
+ "x-ms-examples": {
+ "Desktop_Update": {
+ "$ref": "./examples/Desktop_Update.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApplicationGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DesktopNameParameter"
+ },
+ {
+ "name": "desktop",
+ "description": "Object containing Desktop definitions.",
+ "in": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/DesktopPatch"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully updated desktop.",
+ "schema": {
+ "$ref": "#/definitions/Desktop"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}/desktops": {
+ "get": {
+ "tags": [
+ "Desktop"
+ ],
+ "operationId": "Desktops_List",
+ "description": "List desktops.",
+ "x-ms-examples": {
+ "Desktop_List": {
+ "$ref": "./examples/Desktop_List.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApplicationGroupNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved desktops in application group.",
+ "schema": {
+ "$ref": "#/definitions/DesktopList"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}": {
+ "get": {
+ "tags": [
+ "HostPool"
+ ],
+ "operationId": "HostPools_Get",
+ "description": "Get a host pool.",
+ "x-ms-examples": {
+ "HostPool_Get": {
+ "$ref": "./examples/HostPool_Get.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/HostPoolNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved host pool.",
+ "schema": {
+ "$ref": "#/definitions/HostPool"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "HostPool"
+ ],
+ "operationId": "HostPools_CreateOrUpdate",
+ "description": "Create or update a host pool.",
+ "x-ms-examples": {
+ "HostPool_Create": {
+ "$ref": "./examples/HostPool_Create.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/HostPoolNameParameter"
+ },
+ {
+ "name": "hostPool",
+ "description": "Object containing HostPool definitions.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/HostPool"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully updated host pool.",
+ "schema": {
+ "$ref": "#/definitions/HostPool"
+ }
+ },
+ "201": {
+ "description": "Successfully created host pool.",
+ "schema": {
+ "$ref": "#/definitions/HostPool"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "HostPool"
+ ],
+ "operationId": "HostPools_Delete",
+ "description": "Remove a host pool.",
+ "x-ms-examples": {
+ "HostPool_Delete": {
+ "$ref": "./examples/HostPool_Delete.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/HostPoolNameParameter"
+ },
+ {
+ "name": "force",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "description": "Force flag to delete sessionHost."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully removed host pool."
+ },
+ "204": {
+ "description": "Host pool does not exist."
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "HostPool"
+ ],
+ "operationId": "HostPools_Update",
+ "description": "Update a host pool.",
+ "x-ms-examples": {
+ "HostPool_Update": {
+ "$ref": "./examples/HostPool_Update.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/HostPoolNameParameter"
+ },
+ {
+ "name": "hostPool",
+ "description": "Object containing HostPool definitions.",
+ "in": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/HostPoolPatch"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully updated host pool.",
+ "schema": {
+ "$ref": "#/definitions/HostPool"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools": {
+ "get": {
+ "tags": [
+ "HostPool"
+ ],
+ "operationId": "HostPools_ListByResourceGroup",
+ "description": "List hostPools.",
+ "x-ms-examples": {
+ "HostPool_ListByResourceGroup": {
+ "$ref": "./examples/HostPool_ListByResourceGroup.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved host pool in resource group.",
+ "schema": {
+ "$ref": "#/definitions/HostPoolList"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.DesktopVirtualization/hostPools": {
+ "get": {
+ "tags": [
+ "HostPool"
+ ],
+ "operationId": "HostPools_List",
+ "description": "List hostPools in subscription.",
+ "x-ms-examples": {
+ "HostPool_List": {
+ "$ref": "./examples/HostPool_List.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved host pool in subscription.",
+ "schema": {
+ "$ref": "#/definitions/HostPoolList"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/userSessions": {
+ "get": {
+ "tags": [
+ "UserSession"
+ ],
+ "operationId": "UserSessions_ListByHostPool",
+ "description": "List userSessions.",
+ "x-ms-examples": {
+ "UserSession_ListByHostPool": {
+ "$ref": "./examples/UserSession_ListByHostPool.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/HostPoolNameParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "OData filter expression. Valid properties for filtering are userprincipalname and sessionstate."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved user sessions in host pool.",
+ "schema": {
+ "$ref": "#/definitions/UserSessionList"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/sessionHosts/{sessionHostName}": {
+ "get": {
+ "tags": [
+ "SessionHost"
+ ],
+ "operationId": "SessionHosts_Get",
+ "description": "Get a session host.",
+ "x-ms-examples": {
+ "SessionHost_Get": {
+ "$ref": "./examples/SessionHost_Get.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/HostPoolNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SessionHostNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved session host.",
+ "schema": {
+ "$ref": "#/definitions/SessionHost"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "SessionHost"
+ ],
+ "operationId": "SessionHosts_Delete",
+ "description": "Remove a SessionHost.",
+ "x-ms-examples": {
+ "SessionHost_Delete": {
+ "$ref": "./examples/SessionHost_Delete.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/HostPoolNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SessionHostNameParameter"
+ },
+ {
+ "name": "force",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "description": "Force flag to force sessionHost deletion even when userSession exists."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully removed session host."
+ },
+ "204": {
+ "description": "Session host does not exist."
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "SessionHost"
+ ],
+ "operationId": "SessionHosts_Update",
+ "description": "Update a session host.",
+ "x-ms-examples": {
+ "SessionHost_Update": {
+ "$ref": "./examples/SessionHost_Update.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/HostPoolNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SessionHostNameParameter"
+ },
+ {
+ "name": "sessionHost",
+ "description": "Object containing SessionHost definitions.",
+ "in": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/SessionHostPatch"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully updated session host.",
+ "schema": {
+ "$ref": "#/definitions/SessionHost"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/sessionHosts": {
+ "get": {
+ "tags": [
+ "SessionHost"
+ ],
+ "operationId": "SessionHosts_List",
+ "description": "List sessionHosts.",
+ "x-ms-examples": {
+ "SessionHost_List": {
+ "$ref": "./examples/SessionHost_List.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/HostPoolNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved session hosts in host pool.",
+ "schema": {
+ "$ref": "#/definitions/SessionHostList"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/msixPackages/{msixPackageFullName}": {
+ "get": {
+ "tags": [
+ "MSIXPackage"
+ ],
+ "operationId": "MSIXPackages_Get",
+ "description": "Get a msixpackage.",
+ "x-ms-examples": {
+ "MSIXPackage_Get": {
+ "$ref": "./examples/MsixPackage_Get.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/HostPoolNameParameter"
+ },
+ {
+ "$ref": "#/parameters/MSIXPackageFullNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved MSIX Package.",
+ "schema": {
+ "$ref": "#/definitions/MSIXPackage"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "MSIXPackage"
+ ],
+ "operationId": "MSIXPackages_CreateOrUpdate",
+ "description": "Create or update a MSIX package.",
+ "x-ms-examples": {
+ "MSIXPackage_Create": {
+ "$ref": "./examples/MsixPackage_Create.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/HostPoolNameParameter"
+ },
+ {
+ "$ref": "#/parameters/MSIXPackageFullNameParameter"
+ },
+ {
+ "name": "msixPackage",
+ "description": "Object containing MSIX Package definitions.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/MSIXPackage"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully updated MSIX Package.",
+ "schema": {
+ "$ref": "#/definitions/MSIXPackage"
+ }
+ },
+ "201": {
+ "description": "Successfully created MSIX Package.",
+ "schema": {
+ "$ref": "#/definitions/MSIXPackage"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "MSIXPackage"
+ ],
+ "operationId": "MSIXPackages_Delete",
+ "description": "Remove an MSIX Package.",
+ "x-ms-examples": {
+ "MSIXPackage_Delete": {
+ "$ref": "./examples/MsixPackage_Delete.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/HostPoolNameParameter"
+ },
+ {
+ "$ref": "#/parameters/MSIXPackageFullNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully removed MSIX Package."
+ },
+ "204": {
+ "description": "MSIX Package does not exist."
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "MSIXPackage"
+ ],
+ "operationId": "MSIXPackages_Update",
+ "description": "Update an MSIX Package.",
+ "x-ms-examples": {
+ "MSIXPackage_Update": {
+ "$ref": "./examples/MsixPackage_Update.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/HostPoolNameParameter"
+ },
+ {
+ "$ref": "#/parameters/MSIXPackageFullNameParameter"
+ },
+ {
+ "name": "msixPackage",
+ "description": "Object containing MSIX Package definitions.",
+ "in": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/MSIXPackagePatch"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully updated MSIX Package.",
+ "schema": {
+ "$ref": "#/definitions/MSIXPackage"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/msixPackages": {
+ "get": {
+ "tags": [
+ "MSIXPackage"
+ ],
+ "operationId": "MSIXPackages_List",
+ "description": "List MSIX packages in hostpool.",
+ "x-ms-examples": {
+ "MSIXPackage_List": {
+ "$ref": "./examples/MsixPackage_List.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/HostPoolNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved MSIX Packages in hostpool.",
+ "schema": {
+ "$ref": "#/definitions/MSIXPackageList"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/expandMsixImage": {
+ "post": {
+ "tags": [
+ "MsixImage"
+ ],
+ "operationId": "MsixImages_Expand",
+ "description": "Expands and Lists MSIX packages in an Image, given the Image Path.",
+ "x-ms-examples": {
+ "MsixImage_Expand": {
+ "$ref": "./examples/MsixImage_Expand_Post.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/HostPoolNameParameter"
+ },
+ {
+ "name": "msixImageURI",
+ "description": "Object containing URI to MSIX Image",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/MSIXImageURI"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved MSIX packages in specified Image Path.",
+ "schema": {
+ "$ref": "#/definitions/ExpandMsixImageList"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/sessionHosts/{sessionHostName}/userSessions/{userSessionId}": {
+ "get": {
+ "tags": [
+ "UserSession"
+ ],
+ "operationId": "UserSessions_Get",
+ "description": "Get a userSession.",
+ "x-ms-examples": {
+ "UserSession_Get": {
+ "$ref": "./examples/UserSession_Get.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/HostPoolNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SessionHostNameParameter"
+ },
+ {
+ "$ref": "#/parameters/UserSessionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved user session.",
+ "schema": {
+ "$ref": "#/definitions/UserSession"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "UserSession"
+ ],
+ "operationId": "UserSessions_Delete",
+ "description": "Remove a userSession.",
+ "x-ms-examples": {
+ "UserSession_Delete": {
+ "$ref": "./examples/UserSession_Delete.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/HostPoolNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SessionHostNameParameter"
+ },
+ {
+ "$ref": "#/parameters/UserSessionIdParameter"
+ },
+ {
+ "name": "force",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "description": "Force flag to login off userSession."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully removed user session."
+ },
+ "204": {
+ "description": "User session does not exist."
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/sessionHosts/{sessionHostName}/userSessions": {
+ "get": {
+ "tags": [
+ "UserSession"
+ ],
+ "operationId": "UserSessions_List",
+ "description": "List userSessions.",
+ "x-ms-examples": {
+ "UserSession_List": {
+ "$ref": "./examples/UserSession_List.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/HostPoolNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SessionHostNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved user sessions in session host.",
+ "schema": {
+ "$ref": "#/definitions/UserSessionList"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/sessionHosts/{sessionHostName}/userSessions/{userSessionId}/disconnect": {
+ "post": {
+ "tags": [
+ "UserSession"
+ ],
+ "operationId": "UserSessions_Disconnect",
+ "description": "Disconnect a userSession.",
+ "x-ms-examples": {
+ "UserSession_Disconnect_Post": {
+ "$ref": "./examples/UserSession_Disconnect_Post.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/HostPoolNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SessionHostNameParameter"
+ },
+ {
+ "$ref": "#/parameters/UserSessionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully disconnected user session."
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/sessionHosts/{sessionHostName}/userSessions/{userSessionId}/sendMessage": {
+ "post": {
+ "tags": [
+ "UserSession"
+ ],
+ "operationId": "UserSessions_SendMessage",
+ "description": "Send a message to a user.",
+ "x-ms-examples": {
+ "UserSession_SendMessage_Post": {
+ "$ref": "./examples/UserSession_SendMessage_Post.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/HostPoolNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SessionHostNameParameter"
+ },
+ {
+ "$ref": "#/parameters/UserSessionIdParameter"
+ },
+ {
+ "name": "sendMessage",
+ "description": "Object containing message includes title and message body",
+ "in": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/SendMessage"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully sent message to user session."
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "CloudError": {
+ "x-ms-external": true,
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/CloudErrorProperties"
+ }
+ }
+ },
+ "CloudErrorProperties": {
+ "type": "object",
+ "properties": {
+ "code": {
+ "description": "Error code",
+ "type": "string"
+ },
+ "message": {
+ "description": "Error message indicating why the operation failed.",
+ "type": "string"
+ }
+ }
+ },
+ "ResourceProviderOperationList": {
+ "description": "Result of the request to list operations.",
+ "readOnly": true,
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ResourceProviderOperation"
+ },
+ "description": "List of operations supported by this resource provider."
+ }
+ }
+ },
+ "ResourceProviderOperation": {
+ "description": "Supported operation of this resource provider.",
+ "readOnly": true,
+ "properties": {
+ "name": {
+ "description": "Operation name, in format of {provider}/{resource}/{operation}",
+ "type": "string"
+ },
+ "display": {
+ "description": "Display metadata associated with the operation.",
+ "properties": {
+ "provider": {
+ "description": "Resource provider: Microsoft Desktop Virtualization.",
+ "type": "string"
+ },
+ "resource": {
+ "description": "Resource on which the operation is performed.",
+ "type": "string"
+ },
+ "operation": {
+ "description": "Type of operation: get, read, delete, etc.",
+ "type": "string"
+ },
+ "description": {
+ "description": "Description of this operation.",
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ "Workspace": {
+ "type": "object",
+ "description": "Represents a Workspace definition.",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/TrackedResource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "description": "Detailed properties for Workspace",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/WorkspaceProperties"
+ }
+ }
+ },
+ "WorkspaceProperties": {
+ "description": "Schema for Workspace properties.",
+ "type": "object",
+ "properties": {
+ "description": {
+ "type": "string",
+ "description": "Description of Workspace."
+ },
+ "friendlyName": {
+ "type": "string",
+ "description": "Friendly name of Workspace."
+ },
+ "applicationGroupReferences": {
+ "type": "array",
+ "description": "List of applicationGroup resource Ids.",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "WorkspaceList": {
+ "type": "object",
+ "title": "WorkspaceList",
+ "description": "List of Workspace definitions.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "description": "List of Workspace definitions.",
+ "items": {
+ "$ref": "#/definitions/Workspace"
+ }
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Link to the next page of results."
+ }
+ }
+ },
+ "WorkspacePatch": {
+ "type": "object",
+ "description": "Workspace properties that can be patched.",
+ "properties": {
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "tags to be updated"
+ },
+ "properties": {
+ "description": "Detailed properties for Workspace",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/WorkspacePatchProperties"
+ }
+ }
+ },
+ "WorkspacePatchProperties": {
+ "description": "Workspace properties that can be patched.",
+ "type": "object",
+ "properties": {
+ "description": {
+ "type": "string",
+ "description": "Description of Workspace."
+ },
+ "friendlyName": {
+ "type": "string",
+ "description": "Friendly name of Workspace."
+ },
+ "applicationGroupReferences": {
+ "type": "array",
+ "description": "List of applicationGroup links.",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "ApplicationGroup": {
+ "type": "object",
+ "description": "Represents a ApplicationGroup definition.",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/TrackedResource"
+ }
+ ],
+ "required": [
+ "properties"
+ ],
+ "properties": {
+ "properties": {
+ "description": "Detailed properties for ApplicationGroup",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ApplicationGroupProperties",
+ "x-nullable": false
+ }
+ }
+ },
+ "ApplicationGroupProperties": {
+ "description": "Schema for ApplicationGroup properties.",
+ "type": "object",
+ "required": [
+ "hostPoolArmPath",
+ "applicationGroupType"
+ ],
+ "properties": {
+ "description": {
+ "type": "string",
+ "description": "Description of ApplicationGroup."
+ },
+ "friendlyName": {
+ "type": "string",
+ "description": "Friendly name of ApplicationGroup."
+ },
+ "hostPoolArmPath": {
+ "type": "string",
+ "description": "HostPool arm path of ApplicationGroup.",
+ "x-nullable": false
+ },
+ "workspaceArmPath": {
+ "type": "string",
+ "description": "Workspace arm path of ApplicationGroup.",
+ "readOnly": true
+ },
+ "applicationGroupType": {
+ "enum": [
+ "RemoteApp",
+ "Desktop"
+ ],
+ "x-ms-enum": {
+ "name": "ApplicationGroupType",
+ "modelAsString": true
+ },
+ "type": "string",
+ "description": "Resource Type of ApplicationGroup.",
+ "x-nullable": false
+ }
+ }
+ },
+ "ApplicationGroupPatch": {
+ "type": "object",
+ "description": "ApplicationGroup properties that can be patched.",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "tags to be updated"
+ },
+ "properties": {
+ "description": "ApplicationGroup properties that can be patched.",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ApplicationGroupPatchProperties"
+ }
+ }
+ },
+ "ApplicationGroupPatchProperties": {
+ "description": "ApplicationGroup properties that can be patched.",
+ "type": "object",
+ "properties": {
+ "description": {
+ "type": "string",
+ "description": "Description of ApplicationGroup."
+ },
+ "friendlyName": {
+ "type": "string",
+ "description": "Friendly name of ApplicationGroup."
+ }
+ }
+ },
+ "ApplicationGroupList": {
+ "type": "object",
+ "title": "ApplicationGroupList",
+ "description": "List of ApplicationGroup definitions.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "description": "List of ApplicationGroup definitions.",
+ "items": {
+ "$ref": "#/definitions/ApplicationGroup"
+ }
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Link to the next page of results."
+ }
+ }
+ },
+ "HostPool": {
+ "type": "object",
+ "description": "Represents a HostPool definition.",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/TrackedResource"
+ }
+ ],
+ "required": [
+ "properties"
+ ],
+ "properties": {
+ "properties": {
+ "description": "Detailed properties for HostPool",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/HostPoolProperties",
+ "x-nullable": false
+ }
+ }
+ },
+ "HostPoolProperties": {
+ "description": "Properties of HostPool.",
+ "type": "object",
+ "required": [
+ "hostPoolType",
+ "loadBalancerType",
+ "preferredAppGroupType"
+ ],
+ "properties": {
+ "friendlyName": {
+ "type": "string",
+ "description": "Friendly name of HostPool."
+ },
+ "description": {
+ "type": "string",
+ "description": "Description of HostPool."
+ },
+ "hostPoolType": {
+ "enum": [
+ "Personal",
+ "Pooled"
+ ],
+ "x-ms-enum": {
+ "name": "HostPoolType",
+ "modelAsString": true
+ },
+ "type": "string",
+ "description": "HostPool type for desktop.",
+ "x-nullable": false
+ },
+ "personalDesktopAssignmentType": {
+ "enum": [
+ "Automatic",
+ "Direct"
+ ],
+ "x-ms-enum": {
+ "name": "PersonalDesktopAssignmentType",
+ "modelAsString": true
+ },
+ "type": "string",
+ "description": "PersonalDesktopAssignment type for HostPool.",
+ "x-nullable": false
+ },
+ "customRdpProperty": {
+ "type": "string",
+ "description": "Custom rdp property of HostPool."
+ },
+ "maxSessionLimit": {
+ "type": "integer",
+ "description": "The max session limit of HostPool."
+ },
+ "loadBalancerType": {
+ "enum": [
+ "BreadthFirst",
+ "DepthFirst",
+ "Persistent"
+ ],
+ "x-ms-enum": {
+ "name": "LoadBalancerType",
+ "modelAsString": true
+ },
+ "type": "string",
+ "description": "The type of the load balancer.",
+ "x-nullable": false
+ },
+ "ring": {
+ "type": "integer",
+ "description": "The ring number of HostPool."
+ },
+ "validationEnvironment": {
+ "type": "boolean",
+ "description": "Is validation environment."
+ },
+ "registrationInfo": {
+ "$ref": "#/definitions/RegistrationInfo",
+ "description": "The registration info of HostPool."
+ },
+ "vmTemplate": {
+ "type": "string",
+ "description": "VM template for sessionhosts configuration within hostpool."
+ },
+ "applicationGroupReferences": {
+ "readOnly": true,
+ "type": "array",
+ "description": "List of applicationGroup links.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ssoContext": {
+ "type": "string",
+ "description": "Path to keyvault containing ssoContext secret."
+ },
+ "ssoadfsAuthority": {
+ "type": "string",
+ "description": "URL to customer ADFS server for signing WVD SSO certificates."
+ },
+ "ssoClientId": {
+ "type": "string",
+ "description": "ClientId for the registered Relying Party used to issue WVD SSO certificates."
+ },
+ "ssoClientSecretKeyVaultPath": {
+ "type": "string",
+ "description": "Path to Azure KeyVault storing the secret used for communication to ADFS."
+ },
+ "ssoSecretType": {
+ "enum": [
+ "SharedKey",
+ "Certificate",
+ "SharedKeyInKeyVault",
+ "CertificateInKeyVault"
+ ],
+ "x-ms-enum": {
+ "name": "SSOSecretType",
+ "modelAsString": true
+ },
+ "type": "string",
+ "description": "The type of single sign on Secret Type.",
+ "x-nullable": false
+ },
+ "preferredAppGroupType": {
+ "enum": [
+ "None",
+ "Desktop",
+ "RailApplications"
+ ],
+ "x-ms-enum": {
+ "name": "PreferredAppGroupType",
+ "modelAsString": true
+ },
+ "type": "string",
+ "description": "The type of preferred application group type, default to Desktop Application Group",
+ "x-nullable": false
+ }
+ }
+ },
+ "HostPoolPatch": {
+ "type": "object",
+ "description": "HostPool properties that can be patched.",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "tags to be updated"
+ },
+ "properties": {
+ "description": "HostPool properties that can be patched.",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/HostPoolPatchProperties"
+ }
+ }
+ },
+ "HostPoolPatchProperties": {
+ "description": "Properties of HostPool.",
+ "type": "object",
+ "properties": {
+ "friendlyName": {
+ "type": "string",
+ "description": "Friendly name of HostPool."
+ },
+ "description": {
+ "type": "string",
+ "description": "Description of HostPool."
+ },
+ "customRdpProperty": {
+ "type": "string",
+ "description": "Custom rdp property of HostPool."
+ },
+ "maxSessionLimit": {
+ "type": "integer",
+ "description": "The max session limit of HostPool."
+ },
+ "personalDesktopAssignmentType": {
+ "enum": [
+ "Automatic",
+ "Direct"
+ ],
+ "x-ms-enum": {
+ "name": "PersonalDesktopAssignmentType",
+ "modelAsString": true
+ },
+ "type": "string",
+ "description": "PersonalDesktopAssignment type for HostPool."
+ },
+ "loadBalancerType": {
+ "enum": [
+ "BreadthFirst",
+ "DepthFirst",
+ "Persistent"
+ ],
+ "x-ms-enum": {
+ "name": "LoadBalancerType",
+ "modelAsString": true
+ },
+ "type": "string",
+ "description": "The type of the load balancer."
+ },
+ "ring": {
+ "type": "integer",
+ "description": "The ring number of HostPool."
+ },
+ "validationEnvironment": {
+ "type": "boolean",
+ "description": "Is validation environment."
+ },
+ "registrationInfo": {
+ "$ref": "#/definitions/RegistrationInfoPatch",
+ "description": "The registration info of HostPool."
+ },
+ "vmTemplate": {
+ "type": "string",
+ "description": "VM template for sessionhosts configuration within hostpool."
+ },
+ "ssoContext": {
+ "type": "string",
+ "description": "Path to keyvault containing ssoContext secret."
+ },
+ "ssoadfsAuthority": {
+ "type": "string",
+ "description": "URL to customer ADFS server for signing WVD SSO certificates."
+ },
+ "ssoClientId": {
+ "type": "string",
+ "description": "ClientId for the registered Relying Party used to issue WVD SSO certificates."
+ },
+ "ssoClientSecretKeyVaultPath": {
+ "type": "string",
+ "description": "Path to Azure KeyVault storing the secret used for communication to ADFS."
+ },
+ "ssoSecretType": {
+ "enum": [
+ "SharedKey",
+ "Certificate",
+ "SharedKeyInKeyVault",
+ "CertificateInKeyVault"
+ ],
+ "x-ms-enum": {
+ "name": "SSOSecretType",
+ "modelAsString": true
+ },
+ "type": "string",
+ "description": "The type of single sign on Secret Type.",
+ "x-nullable": false
+ },
+ "preferredAppGroupType": {
+ "enum": [
+ "None",
+ "Desktop",
+ "RailApplications"
+ ],
+ "x-ms-enum": {
+ "name": "PreferredAppGroupType",
+ "modelAsString": true
+ },
+ "type": "string",
+ "description": "The type of preferred application group type, default to Desktop Application Group"
+ }
+ }
+ },
+ "RegistrationInfo": {
+ "description": "Represents a RegistrationInfo definition.",
+ "type": "object",
+ "properties": {
+ "expirationTime": {
+ "format": "date-time",
+ "type": "string",
+ "description": "Expiration time of registration token."
+ },
+ "token": {
+ "type": "string",
+ "description": "The registration token base64 encoded string."
+ },
+ "registrationTokenOperation": {
+ "enum": [
+ "Delete",
+ "None",
+ "Update"
+ ],
+ "x-ms-enum": {
+ "name": "RegistrationTokenOperation",
+ "modelAsString": true
+ },
+ "type": "string",
+ "description": "The type of resetting the token.",
+ "x-nullable": false
+ }
+ }
+ },
+ "RegistrationInfoPatch": {
+ "description": "Represents a RegistrationInfo definition.",
+ "type": "object",
+ "properties": {
+ "expirationTime": {
+ "format": "date-time",
+ "type": "string",
+ "description": "Expiration time of registration token."
+ },
+ "registrationTokenOperation": {
+ "enum": [
+ "Delete",
+ "None",
+ "Update"
+ ],
+ "x-ms-enum": {
+ "name": "RegistrationTokenOperation",
+ "modelAsString": true
+ },
+ "type": "string",
+ "description": "The type of resetting the token."
+ }
+ }
+ },
+ "SendMessage": {
+ "description": "Represents message sent to a UserSession.",
+ "type": "object",
+ "properties": {
+ "messageTitle": {
+ "type": "string",
+ "description": "Title of message."
+ },
+ "messageBody": {
+ "type": "string",
+ "description": "Body of message."
+ }
+ }
+ },
+ "HostPoolList": {
+ "type": "object",
+ "title": "HostPoolList",
+ "description": "List of HostPool definitions.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "description": "List of HostPool definitions.",
+ "items": {
+ "$ref": "#/definitions/HostPool"
+ }
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Link to the next page of results."
+ }
+ }
+ },
+ "MSIXPackage": {
+ "description": "Schema for MSIX Package properties.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/Resource"
+ }
+ ],
+ "required": [
+ "properties"
+ ],
+ "properties": {
+ "properties": {
+ "description": "Detailed properties for MSIX Package",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/MSIXPackageProperties",
+ "x-nullable": false
+ }
+ }
+ },
+ "MSIXPackageProperties": {
+ "description": "Schema for MSIX Package properties.",
+ "type": "object",
+ "properties": {
+ "imagePath": {
+ "type": "string",
+ "description": "VHD/CIM image path on Network Share.",
+ "x-nullable": false
+ },
+ "packageName": {
+ "type": "string",
+ "description": "Package Name from appxmanifest.xml. ",
+ "x-nullable": false
+ },
+ "packageFamilyName": {
+ "type": "string",
+ "description": "Package Family Name from appxmanifest.xml. Contains Package Name and Publisher name. ",
+ "x-nullable": false
+ },
+ "displayName": {
+ "type": "string",
+ "description": "User friendly Name to be displayed in the portal. ",
+ "x-nullable": true
+ },
+ "packageRelativePath": {
+ "type": "string",
+ "description": "Relative Path to the package inside the image. ",
+ "x-nullable": false
+ },
+ "isRegularRegistration": {
+ "type": "boolean",
+ "description": "Specifies how to register Package in feed.",
+ "x-nullable": false
+ },
+ "isActive": {
+ "type": "boolean",
+ "description": "Make this version of the package the active one across the hostpool. ",
+ "x-nullable": false
+ },
+ "packageDependencies": {
+ "type": "array",
+ "description": "List of package dependencies. ",
+ "items": {
+ "$ref": "#/definitions/MsixPackageDependencies"
+ }
+ },
+ "version": {
+ "type": "string",
+ "description": "Package Version found in the appxmanifest.xml. ",
+ "x-nullable": false
+ },
+ "lastUpdated": {
+ "format": "date-time",
+ "type": "string",
+ "description": "Date Package was last updated, found in the appxmanifest.xml. ",
+ "x-nullable": false
+ },
+ "packageApplications": {
+ "type": "array",
+ "description": "List of package applications. ",
+ "items": {
+ "$ref": "#/definitions/MsixPackageApplications"
+ },
+ "x-nullable": false
+ }
+ }
+ },
+ "MSIXPackagePatch": {
+ "type": "object",
+ "description": "MSIX Package properties that can be patched.",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "description": "Detailed properties for MSIX Package",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/MSIXPackagePatchProperties"
+ }
+ }
+ },
+ "MSIXPackagePatchProperties": {
+ "description": "MSIX Package properties that can be patched.",
+ "type": "object",
+ "properties": {
+ "isActive": {
+ "type": "boolean",
+ "description": "Set a version of the package to be active across hostpool. "
+ },
+ "isRegularRegistration": {
+ "type": "boolean",
+ "description": "Set Registration mode. Regular or Delayed."
+ },
+ "displayName": {
+ "type": "string",
+ "description": "Display name for MSIX Package."
+ }
+ }
+ },
+ "MsixPackageApplications": {
+ "description": "Schema for MSIX Package Application properties.",
+ "type": "object",
+ "properties": {
+ "appId": {
+ "type": "string",
+ "description": "Package Application Id, found in appxmanifest.xml.",
+ "x-nullable": false
+ },
+ "description": {
+ "type": "string",
+ "description": "Description of Package Application.",
+ "x-nullable": false
+ },
+ "appUserModelID": {
+ "type": "string",
+ "description": "Used to activate Package Application. Consists of Package Name and ApplicationID. Found in appxmanifest.xml.",
+ "x-nullable": false
+ },
+ "friendlyName": {
+ "type": "string",
+ "description": "User friendly name.",
+ "x-nullable": false
+ },
+ "iconImageName": {
+ "type": "string",
+ "description": "User friendly name.",
+ "x-nullable": false
+ },
+ "rawIcon": {
+ "type": "string",
+ "format": "byte",
+ "description": "the icon a 64 bit string as a byte array."
+ },
+ "rawPng": {
+ "type": "string",
+ "format": "byte",
+ "description": "the icon a 64 bit string as a byte array."
+ }
+ }
+ },
+ "MsixPackageDependencies": {
+ "description": "Schema for MSIX Package Dependencies properties.",
+ "type": "object",
+ "properties": {
+ "dependencyName": {
+ "type": "string",
+ "description": "Name of package dependency.",
+ "x-nullable": false
+ },
+ "publisher": {
+ "type": "string",
+ "description": "Name of dependency publisher.",
+ "x-nullable": false
+ },
+ "minVersion": {
+ "type": "string",
+ "description": "Dependency version required.",
+ "x-nullable": false
+ }
+ }
+ },
+ "MSIXPackageList": {
+ "type": "object",
+ "title": "MsixPackageList",
+ "description": "List of MSIX Package definitions.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "description": "List of MSIX Package definitions.",
+ "items": {
+ "$ref": "#/definitions/MSIXPackage"
+ }
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Link to the next page of results."
+ }
+ }
+ },
+ "Application": {
+ "description": "Schema for Application properties.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/Resource"
+ }
+ ],
+ "required": [
+ "properties"
+ ],
+ "properties": {
+ "properties": {
+ "description": "Detailed properties for Application",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ApplicationProperties",
+ "x-nullable": false
+ }
+ }
+ },
+ "ApplicationProperties": {
+ "description": "Schema for Application properties.",
+ "type": "object",
+ "required": [
+ "commandLineSetting"
+ ],
+ "properties": {
+ "description": {
+ "type": "string",
+ "description": "Description of Application."
+ },
+ "friendlyName": {
+ "type": "string",
+ "description": "Friendly name of Application."
+ },
+ "filePath": {
+ "type": "string",
+ "description": "Specifies a path for the executable file for the application."
+ },
+ "msixPackageFamilyName": {
+ "type": "string",
+ "description": "Specifies the package family name for MSIX applications",
+ "x-nullable": true,
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
+ },
+ "msixPackageApplicationId": {
+ "type": "string",
+ "description": "Specifies the package application Id for MSIX applications",
+ "x-nullable": true,
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
+ },
+ "applicationType": {
+ "enum": [
+ "InBuilt",
+ "MsixApplication"
+ ],
+ "x-ms-enum": {
+ "name": "RemoteApplicationType",
+ "modelAsString": true
+ },
+ "type": "string",
+ "description": "Resource Type of Application.",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
+ },
+ "commandLineSetting": {
+ "enum": [
+ "DoNotAllow",
+ "Allow",
+ "Require"
+ ],
+ "x-ms-enum": {
+ "name": "CommandLineSetting",
+ "modelAsString": true
+ },
+ "type": "string",
+ "description": "Specifies whether this published application can be launched with command line arguments provided by the client, command line arguments specified at publish time, or no command line arguments at all.",
+ "x-nullable": false
+ },
+ "commandLineArguments": {
+ "type": "string",
+ "description": "Command Line Arguments for Application."
+ },
+ "showInPortal": {
+ "type": "boolean",
+ "description": "Specifies whether to show the RemoteApp program in the RD Web Access server."
+ },
+ "iconPath": {
+ "type": "string",
+ "description": "Path to icon."
+ },
+ "iconIndex": {
+ "type": "integer",
+ "description": "Index of the icon."
+ },
+ "iconHash": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Hash of the icon."
+ },
+ "iconContent": {
+ "readOnly": true,
+ "type": "string",
+ "format": "byte",
+ "description": "the icon a 64 bit string as a byte array."
+ }
+ }
+ },
+ "ApplicationList": {
+ "type": "object",
+ "title": "ApplicationList",
+ "description": "List of Application definitions.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "description": "List of Application definitions.",
+ "items": {
+ "$ref": "#/definitions/Application"
+ }
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Link to the next page of results."
+ }
+ }
+ },
+ "ApplicationPatch": {
+ "type": "object",
+ "description": "Application properties that can be patched.",
+ "properties": {
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "tags to be updated"
+ },
+ "properties": {
+ "description": "Detailed properties for Application",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ApplicationPatchProperties"
+ }
+ }
+ },
+ "ApplicationPatchProperties": {
+ "description": "Application properties that can be patched.",
+ "type": "object",
+ "properties": {
+ "description": {
+ "type": "string",
+ "description": "Description of Application."
+ },
+ "friendlyName": {
+ "type": "string",
+ "description": "Friendly name of Application."
+ },
+ "filePath": {
+ "type": "string",
+ "description": "Specifies a path for the executable file for the application."
+ },
+ "commandLineSetting": {
+ "enum": [
+ "DoNotAllow",
+ "Allow",
+ "Require"
+ ],
+ "x-ms-enum": {
+ "name": "CommandLineSetting",
+ "modelAsString": true
+ },
+ "type": "string",
+ "description": "Specifies whether this published application can be launched with command line arguments provided by the client, command line arguments specified at publish time, or no command line arguments at all."
+ },
+ "commandLineArguments": {
+ "type": "string",
+ "description": "Command Line Arguments for Application."
+ },
+ "showInPortal": {
+ "type": "boolean",
+ "description": "Specifies whether to show the RemoteApp program in the RD Web Access server."
+ },
+ "iconPath": {
+ "type": "string",
+ "description": "Path to icon."
+ },
+ "iconIndex": {
+ "type": "integer",
+ "description": "Index of the icon."
+ },
+ "msixPackageFamilyName": {
+ "type": "string",
+ "description": "Specifies the package family name for MSIX applications",
+ "x-nullable": true
+ },
+ "msixPackageApplicationId": {
+ "type": "string",
+ "description": "Specifies the package application Id for MSIX applications",
+ "x-nullable": true
+ },
+ "applicationType": {
+ "enum": [
+ "InBuilt",
+ "MsixApplication"
+ ],
+ "x-ms-enum": {
+ "name": "RemoteApplicationType",
+ "modelAsString": true
+ },
+ "type": "string",
+ "description": "Resource Type of Application."
+ }
+ }
+ },
+ "Desktop": {
+ "description": "Schema for Desktop properties.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "description": "Detailed properties for Desktop",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/DesktopProperties"
+ }
+ }
+ },
+ "DesktopProperties": {
+ "description": "Schema for Desktop properties.",
+ "type": "object",
+ "properties": {
+ "description": {
+ "type": "string",
+ "description": "Description of Desktop."
+ },
+ "friendlyName": {
+ "type": "string",
+ "description": "Friendly name of Desktop."
+ },
+ "iconHash": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Hash of the icon."
+ },
+ "iconContent": {
+ "readOnly": true,
+ "type": "string",
+ "format": "byte",
+ "description": "The icon a 64 bit string as a byte array."
+ }
+ }
+ },
+ "DesktopList": {
+ "type": "object",
+ "title": "DesktopList",
+ "description": "List of Desktop definitions.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "description": "List of Desktop definitions.",
+ "items": {
+ "$ref": "#/definitions/Desktop"
+ }
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Link to the next page of results."
+ }
+ }
+ },
+ "DesktopPatch": {
+ "type": "object",
+ "description": "Desktop properties that can be patched.",
+ "properties": {
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "tags to be updated"
+ },
+ "properties": {
+ "description": "Detailed properties for Desktop",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/DesktopPatchProperties"
+ }
+ }
+ },
+ "DesktopPatchProperties": {
+ "description": "Desktop properties that can be patched.",
+ "type": "object",
+ "properties": {
+ "description": {
+ "type": "string",
+ "description": "Description of Desktop."
+ },
+ "friendlyName": {
+ "type": "string",
+ "description": "Friendly name of Desktop."
+ }
+ }
+ },
+ "StartMenuItemProperties": {
+ "description": "Schema for StartMenuItem properties.",
+ "type": "object",
+ "properties": {
+ "appAlias": {
+ "type": "string",
+ "description": "Alias of StartMenuItem."
+ },
+ "friendlyName": {
+ "type": "string",
+ "description": "Friendly name of StartMenuItem."
+ },
+ "filePath": {
+ "type": "string",
+ "description": "Path to the file of StartMenuItem."
+ },
+ "commandLineArguments": {
+ "type": "string",
+ "description": "Command line arguments for StartMenuItem."
+ },
+ "iconPath": {
+ "type": "string",
+ "description": "Path to the icon."
+ },
+ "iconIndex": {
+ "type": "integer",
+ "description": "Index of the icon."
+ }
+ }
+ },
+ "StartMenuItem": {
+ "type": "object",
+ "description": "Represents a StartMenuItem definition.",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "description": "Detailed properties for StartMenuItem",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/StartMenuItemProperties"
+ }
+ }
+ },
+ "StartMenuItemList": {
+ "type": "object",
+ "title": "StartMenuItemList",
+ "description": "List of StartMenuItem definitions.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "description": "List of StartMenuItem definitions.",
+ "items": {
+ "$ref": "#/definitions/StartMenuItem"
+ }
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Link to the next page of results."
+ }
+ }
+ },
+ "ExpandMsixImageProperties": {
+ "description": "Schema for Expand MSIX Image properties.",
+ "type": "object",
+ "properties": {
+ "packageAlias": {
+ "type": "string",
+ "description": "Alias of MSIX Package."
+ },
+ "imagePath": {
+ "type": "string",
+ "description": "VHD/CIM image path on Network Share.",
+ "x-nullable": false
+ },
+ "packageName": {
+ "type": "string",
+ "description": "Package Name from appxmanifest.xml. ",
+ "x-nullable": false
+ },
+ "packageFamilyName": {
+ "type": "string",
+ "description": "Package Family Name from appxmanifest.xml. Contains Package Name and Publisher name. ",
+ "x-nullable": false
+ },
+ "packageFullName": {
+ "type": "string",
+ "description": "Package Full Name from appxmanifest.xml. ",
+ "x-nullable": false
+ },
+ "displayName": {
+ "type": "string",
+ "description": "User friendly Name to be displayed in the portal. ",
+ "x-nullable": true
+ },
+ "packageRelativePath": {
+ "type": "string",
+ "description": "Relative Path to the package inside the image. ",
+ "x-nullable": false
+ },
+ "isRegularRegistration": {
+ "type": "boolean",
+ "description": "Specifies how to register Package in feed.",
+ "x-nullable": false
+ },
+ "isActive": {
+ "type": "boolean",
+ "description": "Make this version of the package the active one across the hostpool. ",
+ "x-nullable": false
+ },
+ "packageDependencies": {
+ "type": "array",
+ "description": "List of package dependencies. ",
+ "items": {
+ "$ref": "#/definitions/MsixPackageDependencies"
+ },
+ "x-nullable": true
+ },
+ "version": {
+ "type": "string",
+ "description": "Package Version found in the appxmanifest.xml. ",
+ "x-nullable": false
+ },
+ "lastUpdated": {
+ "format": "date-time",
+ "type": "string",
+ "description": "Date Package was last updated, found in the appxmanifest.xml. ",
+ "x-nullable": false
+ },
+ "packageApplications": {
+ "type": "array",
+ "description": "List of package applications. ",
+ "items": {
+ "$ref": "#/definitions/MsixPackageApplications"
+ },
+ "x-nullable": false
+ }
+ }
+ },
+ "ExpandMsixImage": {
+ "type": "object",
+ "description": "Represents the definition of contents retrieved after expanding the MSIX Image. ",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "description": "Detailed properties for ExpandMsixImage",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ExpandMsixImageProperties"
+ }
+ }
+ },
+ "ExpandMsixImageList": {
+ "type": "object",
+ "title": "ExpandMsixImageList",
+ "description": "List of MSIX package properties retrieved from MSIX Image expansion.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "description": "List of MSIX package properties from give MSIX Image.",
+ "items": {
+ "$ref": "#/definitions/ExpandMsixImage"
+ }
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Link to the next page of results."
+ }
+ }
+ },
+ "MSIXImageURI": {
+ "description": "Represents URI referring to MSIX Image",
+ "type": "object",
+ "properties": {
+ "uri": {
+ "type": "string",
+ "description": "URI to Image"
+ }
+ }
+ },
+ "SessionHost": {
+ "type": "object",
+ "description": "Represents a SessionHost definition.",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "description": "Detailed properties for SessionHost",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/SessionHostProperties"
+ }
+ }
+ },
+ "SessionHostProperties": {
+ "description": "Schema for SessionHost properties.",
+ "type": "object",
+ "properties": {
+ "lastHeartBeat": {
+ "format": "date-time",
+ "type": "string",
+ "description": "Last heart beat from SessionHost."
+ },
+ "sessions": {
+ "type": "integer",
+ "description": "Number of sessions on SessionHost."
+ },
+ "agentVersion": {
+ "type": "string",
+ "description": "Version of agent on SessionHost."
+ },
+ "allowNewSession": {
+ "type": "boolean",
+ "description": "Allow a new session."
+ },
+ "virtualMachineId": {
+ "type": "string",
+ "description": "Virtual Machine Id of SessionHost's underlying virtual machine.",
+ "readOnly": true
+ },
+ "resourceId": {
+ "type": "string",
+ "description": "Resource Id of SessionHost's underlying virtual machine.",
+ "readOnly": true
+ },
+ "assignedUser": {
+ "type": "string",
+ "description": "User assigned to SessionHost."
+ },
+ "status": {
+ "enum": [
+ "Available",
+ "Unavailable",
+ "Shutdown",
+ "Disconnected",
+ "Upgrading",
+ "UpgradeFailed"
+ ],
+ "x-ms-enum": {
+ "name": "Status",
+ "modelAsString": true
+ },
+ "type": "string",
+ "description": "Status for a SessionHost."
+ },
+ "statusTimestamp": {
+ "format": "date-time",
+ "type": "string",
+ "description": "The timestamp of the status.",
+ "readOnly": true
+ },
+ "osVersion": {
+ "type": "string",
+ "description": "The version of the OS on the session host."
+ },
+ "sxSStackVersion": {
+ "type": "string",
+ "description": "The version of the side by side stack on the session host."
+ },
+ "updateState": {
+ "enum": [
+ "Initial",
+ "Pending",
+ "Started",
+ "Succeeded",
+ "Failed"
+ ],
+ "x-ms-enum": {
+ "name": "UpdateState",
+ "modelAsString": true
+ },
+ "type": "string",
+ "description": "Update state of a SessionHost."
+ },
+ "lastUpdateTime": {
+ "format": "date-time",
+ "type": "string",
+ "description": "The timestamp of the last update.",
+ "readOnly": true
+ },
+ "updateErrorMessage": {
+ "type": "string",
+ "description": "The error message."
+ }
+ }
+ },
+ "SessionHostPatch": {
+ "type": "object",
+ "description": "SessionHost properties that can be patched.",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "description": "Detailed properties for SessionHost",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/SessionHostPatchProperties"
+ }
+ }
+ },
+ "SessionHostPatchProperties": {
+ "description": "SessionHost properties that can be patched.",
+ "type": "object",
+ "properties": {
+ "allowNewSession": {
+ "type": "boolean",
+ "description": "Allow a new session."
+ },
+ "assignedUser": {
+ "type": "string",
+ "description": "User assigned to SessionHost."
+ }
+ }
+ },
+ "SessionHostList": {
+ "type": "object",
+ "title": "SessionHostList",
+ "description": "List of SessionHost definitions.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "description": "List of SessionHost definitions.",
+ "items": {
+ "$ref": "#/definitions/SessionHost"
+ }
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Link to the next page of results."
+ }
+ }
+ },
+ "UserSession": {
+ "type": "object",
+ "description": "Represents a UserSession definition.",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "description": "Detailed properties for UserSession",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/UserSessionProperties"
+ }
+ }
+ },
+ "UserSessionProperties": {
+ "description": "Schema for UserSession properties.",
+ "type": "object",
+ "properties": {
+ "userPrincipalName": {
+ "type": "string",
+ "description": "The user principal name."
+ },
+ "applicationType": {
+ "enum": [
+ "RemoteApp",
+ "Desktop"
+ ],
+ "x-ms-enum": {
+ "name": "ApplicationType",
+ "modelAsString": true
+ },
+ "type": "string",
+ "description": "Application type of application."
+ },
+ "sessionState": {
+ "enum": [
+ "Unknown",
+ "Active",
+ "Disconnected",
+ "Pending",
+ "LogOff",
+ "UserProfileDiskMounted"
+ ],
+ "x-ms-enum": {
+ "name": "SessionState",
+ "modelAsString": true
+ },
+ "type": "string",
+ "description": "State of user session."
+ },
+ "activeDirectoryUserName": {
+ "type": "string",
+ "description": "The active directory user name."
+ },
+ "createTime": {
+ "format": "date-time",
+ "type": "string",
+ "description": "The timestamp of the user session create."
+ }
+ }
+ },
+ "UserSessionList": {
+ "type": "object",
+ "title": "UserSessionList",
+ "description": "List of UserSession definitions.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "description": "List of UserSession definitions.",
+ "items": {
+ "$ref": "#/definitions/UserSession"
+ }
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Link to the next page of results."
+ }
+ }
+ }
+ },
+ "parameters": {
+ "HostPoolNameParameter": {
+ "name": "hostPoolName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the host pool within the specified resource group",
+ "maxLength": 24,
+ "minLength": 3,
+ "x-ms-parameter-location": "method"
+ },
+ "MSIXPackageFullNameParameter": {
+ "name": "msixPackageFullName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The version specific package full name of the MSIX package within specified hostpool",
+ "maxLength": 100,
+ "minLength": 3,
+ "x-ms-parameter-location": "method"
+ },
+ "ApplicationGroupNameParameter": {
+ "name": "applicationGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the application group",
+ "maxLength": 24,
+ "minLength": 3,
+ "x-ms-parameter-location": "method"
+ },
+ "ApplicationNameParameter": {
+ "name": "applicationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the application within the specified application group",
+ "maxLength": 24,
+ "minLength": 3,
+ "x-ms-parameter-location": "method"
+ },
+ "DesktopNameParameter": {
+ "name": "desktopName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the desktop within the specified desktop group",
+ "maxLength": 24,
+ "minLength": 3,
+ "x-ms-parameter-location": "method"
+ },
+ "WorkspaceNameParameter": {
+ "name": "workspaceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the workspace",
+ "maxLength": 24,
+ "minLength": 3,
+ "x-ms-parameter-location": "method"
+ },
+ "SessionHostNameParameter": {
+ "name": "sessionHostName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the session host within the specified host pool",
+ "maxLength": 48,
+ "minLength": 3,
+ "x-ms-parameter-location": "method"
+ },
+ "UserSessionIdParameter": {
+ "name": "userSessionId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the user session within the specified session host",
+ "maxLength": 24,
+ "minLength": 1,
+ "x-ms-parameter-location": "method"
+ },
+ "StartMenuItemNameParameter": {
+ "name": "startMenuItemName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the start menu item within the specified host pool",
+ "maxLength": 24,
+ "minLength": 3,
+ "x-ms-parameter-location": "method"
+ },
+ "MSIXImageURIParameter": {
+ "name": "msixImageURI",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "URI to the MSIX Image (VHD/CIM).",
+ "maxLength": 100,
+ "minLength": 3,
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/ApplicationGroup_Create.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/ApplicationGroup_Create.json
new file mode 100644
index 000000000000..4ef56b5ee131
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/ApplicationGroup_Create.json
@@ -0,0 +1,61 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "applicationGroupName": "applicationGroup1",
+ "api-version": "2020-10-19-preview",
+ "applicationGroup": {
+ "location": "centralus",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly",
+ "hostPoolArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
+ "applicationGroupType": "RemoteApp"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "applicationGroup1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1",
+ "type": "Microsoft.DesktopVirtualization/applicationGroups",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly",
+ "hostPoolArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
+ "workspaceArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
+ "applicationGroupType": "RemoteApp"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "applicationGroup1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1",
+ "type": "Microsoft.DesktopVirtualization/applicationGroups",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly",
+ "hostPoolArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
+ "workspaceArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
+ "applicationGroupType": "RemoteApp"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/ApplicationGroup_Delete.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/ApplicationGroup_Delete.json
new file mode 100644
index 000000000000..de26a9f2064b
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/ApplicationGroup_Delete.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "applicationGroupName": "applicationGroup1",
+ "api-version": "2020-10-19-preview"
+ },
+ "responses": {
+ "200": {
+ "name": "applicationGroup1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1",
+ "type": "Microsoft.DesktopVirtualization/applicationGroups",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly",
+ "hostPoolArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
+ "workspaceArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
+ "applicationGroupType": "RemoteApp"
+ }
+ },
+ "204": {}
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/ApplicationGroup_Get.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/ApplicationGroup_Get.json
new file mode 100644
index 000000000000..1d0554890fde
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/ApplicationGroup_Get.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "applicationGroupName": "applicationGroup1",
+ "api-version": "2020-10-19-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "applicationGroup1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1",
+ "type": "Microsoft.DesktopVirtualization/applicationGroups",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly",
+ "hostPoolArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
+ "workspaceArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
+ "applicationGroupType": "RemoteApp"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/ApplicationGroup_ListByResourceGroup.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/ApplicationGroup_ListByResourceGroup.json
new file mode 100644
index 000000000000..6676396d6836
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/ApplicationGroup_ListByResourceGroup.json
@@ -0,0 +1,50 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "api-version": "2020-10-19-preview",
+ "$filter": "applicationGroupType eq 'RailApplication'"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "applicationGroup1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1",
+ "type": "Microsoft.DesktopVirtualization/applicationGroups",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly",
+ "hostPoolArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
+ "workspaceArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
+ "applicationGroupType": "RemoteApp"
+ }
+ },
+ {
+ "name": "applicationGroup2",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup2",
+ "type": "Microsoft.DesktopVirtualization/applicationGroups",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly",
+ "hostPoolArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
+ "workspaceArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
+ "applicationGroupType": "RemoteApp"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/ApplicationGroup_ListBySubscription.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/ApplicationGroup_ListBySubscription.json
new file mode 100644
index 000000000000..8b4524311e56
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/ApplicationGroup_ListBySubscription.json
@@ -0,0 +1,49 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "api-version": "2020-10-19-preview",
+ "$filter": "applicationGroupType eq 'RailApplication'"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "applicationGroup1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1",
+ "type": "Microsoft.DesktopVirtualization/applicationGroups",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly",
+ "hostPoolArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
+ "workspaceArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
+ "applicationGroupType": "RemoteApp"
+ }
+ },
+ {
+ "name": "applicationGroup2",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup2",
+ "type": "Microsoft.DesktopVirtualization/applicationGroups",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly",
+ "hostPoolArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
+ "workspaceArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
+ "applicationGroupType": "RemoteApp"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/ApplicationGroup_Update.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/ApplicationGroup_Update.json
new file mode 100644
index 000000000000..dcd878b4db69
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/ApplicationGroup_Update.json
@@ -0,0 +1,39 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "applicationGroupName": "applicationGroup1",
+ "api-version": "2020-10-19-preview",
+ "applicationGroup": {
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "applicationGroup1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1",
+ "type": "Microsoft.DesktopVirtualization/applicationGroups",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly",
+ "hostPoolArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
+ "workspaceArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
+ "applicationGroupType": "RemoteApp"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/Application_Create.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/Application_Create.json
new file mode 100644
index 000000000000..b5d55060002c
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/Application_Create.json
@@ -0,0 +1,67 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "applicationGroupName": "applicationGroup1",
+ "applicationName": "application1",
+ "api-version": "2020-10-19-preview",
+ "application": {
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly",
+ "filePath": "path",
+ "commandLineSetting": "Allow",
+ "commandLineArguments": "arguments",
+ "showInPortal": true,
+ "iconPath": "icon",
+ "iconIndex": 1
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "applicationGroup1/application1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1/applications/application1",
+ "type": "Microsoft.DesktopVirtualization/applicationGroups/applications",
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly",
+ "filePath": "path",
+ "commandLineSetting": "Allow",
+ "commandLineArguments": "arguments",
+ "showInPortal": true,
+ "iconPath": "icon",
+ "iconIndex": 1,
+ "iconHash": "bEQ1n2HysrGxCDvgt4bfOtkET8ydzh5SXGM0KGTBPVc",
+ "iconContent": "AAABAAgAAAAAAAEAIAA7MwAAhgAAAEBAAAABACAAKEIAAMEzAAAwMAAAAQAgAKglAADpdQAAKCgAAAEA...",
+ "applicationType": "InBuilt",
+ "msixPackageFamilyName": null,
+ "msixPackageApplicationId": null
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "applicationGroup1/application1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1/applications/application1",
+ "type": "Microsoft.DesktopVirtualization/applicationGroups/applications",
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly",
+ "filePath": "path",
+ "commandLineSetting": "Allow",
+ "commandLineArguments": "arguments",
+ "showInPortal": true,
+ "iconPath": "icon",
+ "iconIndex": 1,
+ "iconHash": "bEQ1n2HysrGxCDvgt4bfOtkET8ydzh5SXGM0KGTBPVc",
+ "iconContent": "AAABAAgAAAAAAAEAIAA7MwAAhgAAAEBAAAABACAAKEIAAMEzAAAwMAAAAQAgAKglAADpdQAAKCgAAAEA...",
+ "applicationType": "InBuilt",
+ "msixPackageFamilyName": null,
+ "msixPackageApplicationId": null
+ }
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/Application_Delete.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/Application_Delete.json
new file mode 100644
index 000000000000..81ccc0bbea8b
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/Application_Delete.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "applicationGroupName": "applicationGroup1",
+ "applicationName": "application1",
+ "api-version": "2020-10-19-preview"
+ },
+ "responses": {
+ "200": {
+ "name": "applicationGroup1/application1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1/applications/application1",
+ "type": "Microsoft.DesktopVirtualization/applicationGroups/applications",
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly",
+ "filePath": "path",
+ "commandLineSetting": "Allow",
+ "commandLineArguments": "arguments",
+ "showInPortal": true,
+ "iconPath": "icon",
+ "iconIndex": 1,
+ "iconHash": "bEQ1n2HysrGxCDvgt4bfOtkET8ydzh5SXGM0KGTBPVc",
+ "iconContent": "AAABAAgAAAAAAAEAIAA7MwAAhgAAAEBAAAABACAAKEIAAMEzAAAwMAAAAQAgAKglAADpdQAAKCgAAAEA...",
+ "applicationType": "InBuilt",
+ "msixPackageFamilyName": null,
+ "msixPackageApplicationId": null
+ }
+ },
+ "204": {}
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/Application_Get.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/Application_Get.json
new file mode 100644
index 000000000000..31e98d0d4011
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/Application_Get.json
@@ -0,0 +1,33 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "applicationGroupName": "applicationGroup1",
+ "applicationName": "application1",
+ "api-version": "2020-10-19-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "applicationGroup1/application1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1/applications/application1",
+ "type": "Microsoft.DesktopVirtualization/applicationGroups/applications",
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly",
+ "filePath": "path",
+ "commandLineSetting": "Allow",
+ "commandLineArguments": "arguments",
+ "showInPortal": true,
+ "iconPath": "icon",
+ "iconIndex": 1,
+ "iconHash": "bEQ1n2HysrGxCDvgt4bfOtkET8ydzh5SXGM0KGTBPVc",
+ "iconContent": "AAABAAgAAAAAAAEAIAA7MwAAhgAAAEBAAAABACAAKEIAAMEzAAAwMAAAAQAgAKglAADpdQAAKCgAAAEA...",
+ "applicationType": "InBuilt",
+ "msixPackageFamilyName": null,
+ "msixPackageApplicationId": null
+ }
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/Application_List.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/Application_List.json
new file mode 100644
index 000000000000..5c3febb42741
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/Application_List.json
@@ -0,0 +1,56 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "applicationGroupName": "applicationGroup1",
+ "api-version": "2020-10-19-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "applicationGroup1/application1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1/applications/application1",
+ "type": "Microsoft.DesktopVirtualization/applicationGroups/applications",
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly",
+ "filePath": "path",
+ "commandLineSetting": "Allow",
+ "commandLineArguments": "arguments",
+ "showInPortal": true,
+ "iconPath": "icon",
+ "iconIndex": 1,
+ "iconHash": "bEQ1n2HysrGxCDvgt4bfOtkET8ydzh5SXGM0KGTBPVc",
+ "iconContent": "AAABAAgAAAAAAAEAIAA7MwAAhgAAAEBAAAABACAAKEIAAMEzAAAwMAAAAQAgAKglAADpdQAAKCgAAAEA...",
+ "applicationType": "InBuilt",
+ "msixPackageFamilyName": null,
+ "msixPackageApplicationId": null
+ }
+ },
+ {
+ "name": "applicationGroup1/application2",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1/applications/application2",
+ "type": "Microsoft.DesktopVirtualization/applicationGroups/applications",
+ "properties": {
+ "description": "des2",
+ "friendlyName": "friendly",
+ "filePath": "path",
+ "commandLineSetting": "Allow",
+ "commandLineArguments": "arguments",
+ "showInPortal": true,
+ "iconPath": "icon",
+ "iconIndex": 1,
+ "iconHash": "bEQ1n2HysrGxCDvgt4bfOtkET8ydzh5SXGM0KGTBPVc",
+ "iconContent": "AAABAAgAAAAAAAEAIAA7MwAAhgAAAEBAAAABACAAKEIAAMEzAAAwMAAAAQAgAKglAADpdQAAKCgAAAEA...",
+ "applicationType": "InBuilt",
+ "msixPackageFamilyName": null,
+ "msixPackageApplicationId": null
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/Application_Update.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/Application_Update.json
new file mode 100644
index 000000000000..07f3bb756db0
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/Application_Update.json
@@ -0,0 +1,48 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "applicationGroupName": "applicationGroup1",
+ "applicationName": "application1",
+ "api-version": "2020-10-19-preview",
+ "application": {
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly",
+ "filePath": "path",
+ "commandLineSetting": "Allow",
+ "commandLineArguments": "arguments",
+ "showInPortal": true,
+ "iconPath": "icon",
+ "iconIndex": 1,
+ "applicationType": "InBuilt",
+ "msixPackageFamilyName": null,
+ "msixPackageApplicationId": null
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "applicationGroup1/application1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1/applications/application1",
+ "type": "Microsoft.DesktopVirtualization/applicationGroups/applications",
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly",
+ "filePath": "path",
+ "commandLineSetting": "Allow",
+ "commandLineArguments": "arguments",
+ "showInPortal": true,
+ "iconPath": "icon",
+ "iconIndex": 1,
+ "iconHash": "bEQ1n2HysrGxCDvgt4bfOtkET8ydzh5SXGM0KGTBPVc",
+ "iconContent": "AAABAAgAAAAAAAEAIAA7MwAAhgAAAEBAAAABACAAKEIAAMEzAAAwMAAAAQAgAKglAADpdQAAKCgAAAEA...",
+ "applicationType": "InBuilt",
+ "msixPackageFamilyName": null,
+ "msixPackageApplicationId": null
+ }
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/Desktop_Get.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/Desktop_Get.json
new file mode 100644
index 000000000000..0cbe7106434c
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/Desktop_Get.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "applicationGroupName": "applicationGroup1",
+ "desktopName": "SessionDesktop",
+ "api-version": "2020-10-19-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "applicationGroup1/SessionDesktop",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1/applications/SessionDesktop",
+ "type": "Microsoft.DesktopVirtualization/applicationGroups/desktops",
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly",
+ "iconHash": "bEQ1n2HysrGxCDvgt4bfOtkET8ydzh5SXGM0KGTBPVc",
+ "iconContent": "AAABAAgAAAAAAAEAIAA7MwAAhgAAAEBAAAABACAAKEIAAMEzAAAwMAAAAQAgAKglAADpdQAAKCgAAAEA..."
+ }
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/Desktop_List.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/Desktop_List.json
new file mode 100644
index 000000000000..744fe3ac9721
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/Desktop_List.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "applicationGroupName": "applicationGroup1",
+ "api-version": "2020-10-19-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "applicationGroup1/SessionDesktop",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1/applications/SessionDesktop",
+ "type": "Microsoft.DesktopVirtualization/applicationGroups/desktops",
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly",
+ "iconHash": "bEQ1n2HysrGxCDvgt4bfOtkET8ydzh5SXGM0KGTBPVc",
+ "iconContent": "AAABAAgAAAAAAAEAIAA7MwAAhgAAAEBAAAABACAAKEIAAMEzAAAwMAAAAQAgAKglAADpdQAAKCgAAAEA..."
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/Desktop_Update.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/Desktop_Update.json
new file mode 100644
index 000000000000..f628504b1f3b
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/Desktop_Update.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "applicationGroupName": "applicationGroup1",
+ "desktopName": "SessionDesktop",
+ "api-version": "2020-10-19-preview",
+ "desktop": {
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "applicationGroup1/SessionDesktop",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1/desktops/SessionDesktop",
+ "type": "Microsoft.DesktopVirtualization/applicationGroups/desktops",
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly",
+ "iconHash": "bEQ1n2HysrGxCDvgt4bfOtkET8ydzh5SXGM0KGTBPVc",
+ "iconContent": "AAABAAgAAAAAAAEAIAA7MwAAhgAAAEBAAAABACAAKEIAAMEzAAAwMAAAAQAgAKglAADpdQAAKCgAAAEA..."
+ }
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/HostPool_Create.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/HostPool_Create.json
new file mode 100644
index 000000000000..0c320e193d01
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/HostPool_Create.json
@@ -0,0 +1,107 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "hostPoolName": "hostPool1",
+ "api-version": "2020-10-19-preview",
+ "hostPool": {
+ "location": "centralus",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "properties": {
+ "friendlyName": "friendly",
+ "description": "des1",
+ "hostPoolType": "Pooled",
+ "personalDesktopAssignmentType": "Automatic",
+ "customRdpProperty": null,
+ "maxSessionLimit": 999999,
+ "loadBalancerType": "BreadthFirst",
+ "registrationInfo": {
+ "expirationTime": "2020-10-01T14:01:54.9571247Z",
+ "registrationTokenOperation": "Update"
+ },
+ "vmTemplate": "{json:json}",
+ "ssoContext": "KeyVaultPath",
+ "ssoadfsAuthority": "https://adfs",
+ "ssoClientId": "client",
+ "ssoClientSecretKeyVaultPath": "https://keyvault/secret",
+ "ssoSecretType": "SharedKey",
+ "preferredAppGroupType": "Desktop"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "hostPool1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
+ "type": "/Microsoft.DesktopVirtualization/hostPools",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "friendlyName": "friendly",
+ "description": "des1",
+ "hostPoolType": "Pooled",
+ "personalDesktopAssignmentType": "Automatic",
+ "customRdpProperty": null,
+ "maxSessionLimit": 999999,
+ "loadBalancerType": "BreadthFirst",
+ "validationEnvironment": null,
+ "ring": null,
+ "registrationInfo": {
+ "expirationTime": "2020-10-01T14:01:54.9571247Z",
+ "token": "token",
+ "registrationTokenOperation": "Update"
+ },
+ "vmTemplate": "{json:json}",
+ "ssoContext": "KeyVaultPath",
+ "ssoadfsAuthority": "https://adfs",
+ "ssoClientId": "client",
+ "ssoClientSecretKeyVaultPath": "https://keyvault/secret",
+ "ssoSecretType": "SharedKey",
+ "preferredAppGroupType": "Desktop"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "hostPool1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
+ "type": "/Microsoft.DesktopVirtualization/hostPools",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "friendlyName": "friendly",
+ "description": "des1",
+ "hostPoolType": "Pooled",
+ "personalDesktopAssignmentType": "Automatic",
+ "customRdpProperty": null,
+ "maxSessionLimit": 999999,
+ "loadBalancerType": "BreadthFirst",
+ "validationEnvironment": null,
+ "ring": null,
+ "registrationInfo": {
+ "expirationTime": "2020-10-01T14:01:54.9571247Z",
+ "token": "token",
+ "registrationTokenOperation": "Update"
+ },
+ "vmTemplate": "{json:json}",
+ "ssoContext": "KeyVaultPath",
+ "ssoadfsAuthority": "https://adfs",
+ "ssoClientId": "client",
+ "ssoClientSecretKeyVaultPath": "https://keyvault/secret",
+ "ssoSecretType": "SharedKey",
+ "preferredAppGroupType": "Desktop"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/HostPool_Delete.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/HostPool_Delete.json
new file mode 100644
index 000000000000..e8ac5d810676
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/HostPool_Delete.json
@@ -0,0 +1,44 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "hostPoolName": "hostPool1",
+ "api-version": "2020-10-19-preview",
+ "force": true
+ },
+ "responses": {
+ "200": {
+ "name": "hostPool1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
+ "type": "/Microsoft.DesktopVirtualization/hostPools",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "friendlyName": "friendly",
+ "description": "des1",
+ "hostPoolType": "Pooled",
+ "personalDesktopAssignmentType": "Automatic",
+ "customRdpProperty": null,
+ "maxSessionLimit": 999999,
+ "loadBalancerType": "BreadthFirst",
+ "validationEnvironment": null,
+ "ring": null,
+ "registrationInfo": {
+ "expirationTime": "2008-09-22T14:01:54.9571247Z",
+ "token": "token",
+ "registrationTokenOperation": "Update"
+ },
+ "vmTemplate": "{json:json}",
+ "ssoContext": "KeyVaultPath",
+ "ssoadfsAuthority": "https://adfs",
+ "ssoClientId": "client",
+ "ssoClientSecretKeyVaultPath": "https://keyvault/secret",
+ "ssoSecretType": "SharedKey"
+ }
+ },
+ "204": {}
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/HostPool_Get.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/HostPool_Get.json
new file mode 100644
index 000000000000..e4fc0d04dd2a
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/HostPool_Get.json
@@ -0,0 +1,45 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "hostPoolName": "hostPool1",
+ "api-version": "2020-10-19-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "hostPool1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
+ "type": "/Microsoft.DesktopVirtualization/hostPools",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "friendlyName": "friendly",
+ "description": "des1",
+ "hostPoolType": "Pooled",
+ "personalDesktopAssignmentType": "Automatic",
+ "customRdpProperty": null,
+ "maxSessionLimit": 999999,
+ "loadBalancerType": "BreadthFirst",
+ "validationEnvironment": null,
+ "ring": null,
+ "registrationInfo": {
+ "expirationTime": "2008-09-22T14:01:54.9571247Z",
+ "token": "token",
+ "registrationTokenOperation": "Update"
+ },
+ "vmTemplate": "{json:json}",
+ "ssoContext": "KeyVaultPath",
+ "ssoadfsAuthority": "https://adfs",
+ "ssoClientId": "client",
+ "ssoClientSecretKeyVaultPath": "https://keyvault/secret",
+ "ssoSecretType": "SharedKey",
+ "preferredAppGroupType": "Desktop"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/HostPool_List.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/HostPool_List.json
new file mode 100644
index 000000000000..dd38ebabbf19
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/HostPool_List.json
@@ -0,0 +1,80 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "api-version": "2020-10-19-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "hostPool1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
+ "type": "/Microsoft.DesktopVirtualization/hostPools",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "friendlyName": "friendly",
+ "description": "des1",
+ "hostPoolType": "Pooled",
+ "personalDesktopAssignmentType": "Automatic",
+ "customRdpProperty": null,
+ "maxSessionLimit": 999999,
+ "loadBalancerType": "BreadthFirst",
+ "validationEnvironment": null,
+ "ring": null,
+ "registrationInfo": {
+ "expirationTime": "2008-09-22T14:01:54.9571247Z",
+ "token": "token",
+ "registrationTokenOperation": "Update"
+ },
+ "vmTemplate": "{json:json}",
+ "ssoContext": "KeyVaultPath",
+ "ssoadfsAuthority": "https://adfs",
+ "ssoClientId": "client",
+ "ssoClientSecretKeyVaultPath": "https://keyvault/secret",
+ "ssoSecretType": "SharedKey",
+ "preferredAppGroupType": "Desktop"
+ }
+ },
+ {
+ "name": "hostPool2",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool2",
+ "type": "/Microsoft.DesktopVirtualization/hostPools",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "friendlyName": "friendly",
+ "description": "des1",
+ "hostPoolType": "Pooled",
+ "personalDesktopAssignmentType": "Automatic",
+ "customRdpProperty": null,
+ "maxSessionLimit": 999999,
+ "loadBalancerType": "BreadthFirst",
+ "validationEnvironment": null,
+ "ring": null,
+ "registrationInfo": {
+ "expirationTime": "2008-09-22T14:01:54.9571247Z",
+ "token": "token",
+ "registrationTokenOperation": "Update"
+ },
+ "vmTemplate": "{json:json}",
+ "ssoContext": "KeyVaultPath",
+ "ssoadfsAuthority": "https://adfs",
+ "ssoClientId": "client",
+ "ssoClientSecretKeyVaultPath": "https://keyvault/secret",
+ "ssoSecretType": "SharedKey",
+ "preferredAppGroupType": "Desktop"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/HostPool_ListByResourceGroup.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/HostPool_ListByResourceGroup.json
new file mode 100644
index 000000000000..ce888cc9ec4e
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/HostPool_ListByResourceGroup.json
@@ -0,0 +1,81 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "api-version": "2020-10-19-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "hostPool1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
+ "type": "/Microsoft.DesktopVirtualization/hostPools",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "friendlyName": "friendly",
+ "description": "des1",
+ "hostPoolType": "Pooled",
+ "personalDesktopAssignmentType": "Automatic",
+ "customRdpProperty": null,
+ "maxSessionLimit": 999999,
+ "loadBalancerType": "BreadthFirst",
+ "validationEnvironment": null,
+ "ring": null,
+ "registrationInfo": {
+ "expirationTime": "2008-09-22T14:01:54.9571247Z",
+ "token": "token",
+ "registrationTokenOperation": "Update"
+ },
+ "vmTemplate": "{json:json}",
+ "ssoContext": "KeyVaultPath",
+ "ssoadfsAuthority": "https://adfs",
+ "ssoClientId": "client",
+ "ssoClientSecretKeyVaultPath": "https://keyvault/secret",
+ "ssoSecretType": "SharedKey",
+ "preferredAppGroupType": "Desktop"
+ }
+ },
+ {
+ "name": "hostPool2",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool2",
+ "type": "/Microsoft.DesktopVirtualization/hostPools",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "friendlyName": "friendly",
+ "description": "des1",
+ "hostPoolType": "Pooled",
+ "personalDesktopAssignmentType": "Automatic",
+ "customRdpProperty": null,
+ "maxSessionLimit": 999999,
+ "loadBalancerType": "BreadthFirst",
+ "validationEnvironment": null,
+ "ring": null,
+ "registrationInfo": {
+ "expirationTime": "2008-09-22T14:01:54.9571247Z",
+ "token": "token",
+ "registrationTokenOperation": "Update"
+ },
+ "vmTemplate": "{json:json}",
+ "ssoContext": "KeyVaultPath",
+ "ssoadfsAuthority": "https://adfs",
+ "ssoClientId": "client",
+ "ssoClientSecretKeyVaultPath": "https://keyvault/secret",
+ "ssoSecretType": "SharedKey",
+ "preferredAppGroupType": "Desktop"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/HostPool_Update.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/HostPool_Update.json
new file mode 100644
index 000000000000..401fda9846e2
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/HostPool_Update.json
@@ -0,0 +1,69 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "hostPoolName": "hostPool1",
+ "api-version": "2020-10-19-preview",
+ "hostPool": {
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "properties": {
+ "friendlyName": "friendly",
+ "description": "des1",
+ "customRdpProperty": null,
+ "maxSessionLimit": 999999,
+ "loadBalancerType": "BreadthFirst",
+ "personalDesktopAssignmentType": "Automatic",
+ "registrationInfo": {
+ "expirationTime": "2020-10-01T15:01:54.9571247Z",
+ "registrationTokenOperation": "Update"
+ },
+ "vmTemplate": "{json:json}",
+ "ssoContext": "KeyVaultPath",
+ "ssoadfsAuthority": "https://adfs",
+ "ssoClientId": "client",
+ "ssoClientSecretKeyVaultPath": "https://keyvault/secret",
+ "ssoSecretType": "SharedKey"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "hostPool1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
+ "type": "/Microsoft.DesktopVirtualization/hostPools",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "friendlyName": "friendly",
+ "description": "des1",
+ "hostPoolType": "Pooled",
+ "personalDesktopAssignmentType": "Automatic",
+ "customRdpProperty": null,
+ "maxSessionLimit": 999999,
+ "loadBalancerType": "BreadthFirst",
+ "validationEnvironment": null,
+ "ring": null,
+ "registrationInfo": {
+ "expirationTime": "2008-09-22T14:01:54.9571247Z",
+ "token": "token",
+ "registrationTokenOperation": "Update"
+ },
+ "vmTemplate": "{json:json}",
+ "ssoContext": "KeyVaultPath",
+ "ssoadfsAuthority": "https://adfs",
+ "ssoClientId": "client",
+ "ssoClientSecretKeyVaultPath": "https://keyvault/secret",
+ "ssoSecretType": "SharedKey",
+ "preferredAppGroupType": "Desktop"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/MsixImage_Expand_Post.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/MsixImage_Expand_Post.json
new file mode 100644
index 000000000000..212ca26e040c
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/MsixImage_Expand_Post.json
@@ -0,0 +1,99 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "hostPoolName": "hostpool1",
+ "api-version": "2020-10-19-preview",
+ "msixImageURI": {
+ "uri": "imagepath"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "hostpool1/expandmsiximage",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostpools/hostpool1/expandmsiximage",
+ "type": "Microsoft.DesktopVirtualization/hostpools/expandmsiximage",
+ "properties": {
+ "packageAlias": "msixpackagealias",
+ "imagePath": "imagepath",
+ "packageName": "MsixPackageName",
+ "packageFamilyName": "MsixPackage_FamilyName",
+ "packageFullName": "MsixPackage_FullName",
+ "displayName": "displayname",
+ "packageRelativePath": "packagerelativepath",
+ "isRegularRegistration": false,
+ "isActive": false,
+ "packageDependencies": [],
+ "version": "packageversion",
+ "lastUpdated": "2008-09-22T14:01:54.9571247Z",
+ "packageApplications": [
+ {
+ "appId": "AppId",
+ "description": "PackageApplicationDescription",
+ "appUserModelID": "AppUserModelId",
+ "friendlyName": "FriendlyName",
+ "iconImageName": "Iconimagename",
+ "rawIcon": "RawIcon",
+ "rawPng": "RawPng"
+ }
+ ]
+ }
+ },
+ {
+ "name": "hostpool1/expandmsiximage",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostpools/hostpool1/expandmsiximage",
+ "type": "Microsoft.DesktopVirtualization/hostpools/expandmsiximage",
+ "properties": {
+ "packageAlias": "msixpackagealias2",
+ "imagePath": "imagepath",
+ "packageName": "MsixPackageName2",
+ "packageFamilyName": "MsixPackage_FamilyName2",
+ "packageFullName": "MsixPackage_FullName2",
+ "displayName": "displayname2",
+ "packageRelativePath": "packagerelativepath2",
+ "isRegularRegistration": false,
+ "isActive": false,
+ "packageDependencies": [
+ {
+ "dependencyName": "MsixPackageDependency1",
+ "publisher": "PublisherName1",
+ "minVersion": "ver1"
+ },
+ {
+ "dependencyName": "MsixPackageDependency2",
+ "publisher": "PublisherName2",
+ "minVersion": "ver2"
+ }
+ ],
+ "version": "packageversion",
+ "lastUpdated": "2008-09-22T14:01:54.9571247Z",
+ "packageApplications": [
+ {
+ "appId": "AppId1",
+ "description": "PackageApplicationDescription1",
+ "appUserModelID": "AppUserModelId1",
+ "friendlyName": "FriendlyName1",
+ "iconImageName": "Iconimagename1",
+ "rawIcon": "RawIcon1",
+ "rawPng": "RawPng1"
+ },
+ {
+ "appId": "AppId2",
+ "description": "PackageApplicationDescription2",
+ "appUserModelID": "AppUserModelId2",
+ "friendlyName": "FriendlyName2",
+ "iconImageName": "Iconimagename2",
+ "rawIcon": "RawIcon2",
+ "rawPng": "RawPng2"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/MsixPackage_Create.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/MsixPackage_Create.json
new file mode 100644
index 000000000000..c73874343d3d
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/MsixPackage_Create.json
@@ -0,0 +1,114 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "hostPoolName": "hostpool1",
+ "api-version": "2020-10-19-preview",
+ "msixPackageFullName": "msixpackagefullname",
+ "msixPackage": {
+ "properties": {
+ "displayName": "displayname",
+ "imagePath": "imagepath",
+ "isActive": false,
+ "isRegularRegistration": false,
+ "lastUpdated": "2008-09-22T14:01:54.9571247Z",
+ "packageApplications": [
+ {
+ "description": "application-desc",
+ "appId": "ApplicationId",
+ "appUserModelID": "AppUserModelId",
+ "friendlyName": "friendlyname",
+ "iconImageName": "Apptile",
+ "rawIcon": "VGhpcyBpcyBhIHN0cmluZyB0byBoYXNo",
+ "rawPng": "VGhpcyBpcyBhIHN0cmluZyB0byBoYXNo"
+ }
+ ],
+ "packageDependencies": [
+ {
+ "dependencyName": "MsixTest_Dependency_Name",
+ "minVersion": "version",
+ "publisher": "PublishedName"
+ }
+ ],
+ "packageFamilyName": "MsixPackage_FamilyName",
+ "packageName": "MsixPackage_name",
+ "packageRelativePath": "packagerelativepath",
+ "version": "version"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "hostpool1/MsixPackageFullName",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourcegroup1/providers/Microsoft.DesktopVirtualization/hostpools/hostpool1/msixpackages/msixPackageFullName",
+ "type": "Microsoft.DesktopVirtualization/hostpools/msixpackages",
+ "properties": {
+ "imagePath": "imagepath",
+ "packageName": "MsixPackage_Name",
+ "packageFamilyName": "MsixPackage_FamilyName",
+ "displayName": "dis",
+ "packageRelativePath": "MsixPackage_RelativePackageRoot",
+ "isRegularRegistration": false,
+ "isActive": false,
+ "packageDependencies": [
+ {
+ "dependencyName": "MsixPackage_Dependency_Name",
+ "publisher": "MsixPackage_Dependency_Publisher",
+ "minVersion": "packageDep_version"
+ }
+ ],
+ "version": "version",
+ "lastUpdated": "2008-09-22T14:01:54.9571247Z",
+ "packageApplications": [
+ {
+ "appId": "Application_Id",
+ "description": "desc",
+ "appUserModelID": "Application_ModelID",
+ "friendlyName": "fri",
+ "iconImageName": "Apptile",
+ "rawIcon": "VGhpcyBpcyBhIHN0cmluZyB0byBoYXNo",
+ "rawPng": "VGhpcyBpcyBhIHN0cmluZyB0byBoYXNo"
+ }
+ ]
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "hostpool1/MsixPackageFullName",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourcegroup1/providers/Microsoft.DesktopVirtualization/hostpools/hostpool1/msixpackages/msixPackageFullName",
+ "type": "Microsoft.DesktopVirtualization/hostpools/msixpackages",
+ "properties": {
+ "imagePath": "imagepath",
+ "packageName": "MsixPackage_Name",
+ "packageFamilyName": "MsixPackage_FamilyName",
+ "displayName": "dis",
+ "packageRelativePath": "MsixPackage_RelativePackageRoot",
+ "isRegularRegistration": false,
+ "isActive": true,
+ "packageDependencies": [
+ {
+ "dependencyName": "MsixPackage_Dependency_Name",
+ "publisher": "MsixPackage_Dependency_Publisher",
+ "minVersion": "packageDep_version"
+ }
+ ],
+ "version": "version",
+ "lastUpdated": "2008-09-22T14:01:54.9571247Z",
+ "packageApplications": [
+ {
+ "appId": "Application_Id",
+ "description": "desc",
+ "appUserModelID": "Application_ModelID",
+ "friendlyName": "fri",
+ "iconImageName": "Apptile",
+ "rawIcon": "VGhpcyBpcyBhIHN0cmluZyB0byBoYXNo",
+ "rawPng": "VGhpcyBpcyBhIHN0cmluZyB0byBoYXNo"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/MsixPackage_Delete.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/MsixPackage_Delete.json
new file mode 100644
index 000000000000..f2da1afaeb35
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/MsixPackage_Delete.json
@@ -0,0 +1,46 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "hostPoolName": "hostpool1",
+ "api-version": "2020-10-19-preview",
+ "msixPackageFullName": "packagefullname"
+ },
+ "responses": {
+ "200": {
+ "name": "hostpool1/MsixPackageFullName",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourcegroup1/providers/Microsoft.DesktopVirtualization/hostpools/hostpool1/msixpackages/msixPackageFullName",
+ "type": "Microsoft.DesktopVirtualization/hostpools/msixpackages",
+ "properties": {
+ "imagePath": "imagepath",
+ "packageName": "MsixPackage_Name",
+ "packageFamilyName": "MsixPackage_FamilyName",
+ "displayName": "dis",
+ "packageRelativePath": "MsixPackage_RelativePackageRoot",
+ "isRegularRegistration": false,
+ "isActive": false,
+ "packageDependencies": [
+ {
+ "dependencyName": "MsixPackage_Dependency_Name",
+ "publisher": "MsixPackage_Dependency_Publisher",
+ "minVersion": "packageDep_version"
+ }
+ ],
+ "version": "version",
+ "lastUpdated": "2008-09-22T14:01:54.9571247Z",
+ "packageApplications": [
+ {
+ "appId": "Application_Id",
+ "description": "desc",
+ "appUserModelID": "Application_ModelID",
+ "friendlyName": "fri",
+ "iconImageName": "Apptile",
+ "rawIcon": "VGhpcyBpcyBhIHN0cmluZyB0byBoYXNo",
+ "rawPng": "VGhpcyBpcyBhIHN0cmluZyB0byBoYXNo"
+ }
+ ]
+ }
+ },
+ "204": {}
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/MsixPackage_Get.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/MsixPackage_Get.json
new file mode 100644
index 000000000000..c7e7f8640519
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/MsixPackage_Get.json
@@ -0,0 +1,47 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "hostPoolName": "hostpool1",
+ "api-version": "2020-10-19-preview",
+ "msixPackageFullName": "packagefullname"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "hostpool1/MsixPackageFullName",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourcegroup1/providers/Microsoft.DesktopVirtualization/hostpools/hostpool1/msixpackages/msixPackageFullName",
+ "type": "Microsoft.DesktopVirtualization/hostpools/msixpackages",
+ "properties": {
+ "imagePath": "imagepath",
+ "packageName": "MsixPackage_Name",
+ "packageFamilyName": "MsixPackage_FamilyName",
+ "displayName": "dis",
+ "packageRelativePath": "MsixPackage_RelativePackageRoot",
+ "isRegularRegistration": false,
+ "isActive": false,
+ "packageDependencies": [
+ {
+ "dependencyName": "MsixPackage_Dependency_Name",
+ "publisher": "MsixPackage_Dependency_Publisher",
+ "minVersion": "packageDep_version"
+ }
+ ],
+ "version": "version",
+ "lastUpdated": "2008-09-22T14:01:54.9571247Z",
+ "packageApplications": [
+ {
+ "appId": "Application_Id",
+ "description": "desc",
+ "appUserModelID": "Application_ModelID",
+ "friendlyName": "fri",
+ "iconImageName": "Apptile",
+ "rawIcon": "VGhpcyBpcyBhIHN0cmluZyB0byBoYXNo",
+ "rawPng": "VGhpcyBpcyBhIHN0cmluZyB0byBoYXNo"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/MsixPackage_List.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/MsixPackage_List.json
new file mode 100644
index 000000000000..adb64f790e72
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/MsixPackage_List.json
@@ -0,0 +1,84 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "hostPoolName": "hostpool1",
+ "api-version": "2020-10-19-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "hostpool1/MsixPackageFullName",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourcegroup1/providers/Microsoft.DesktopVirtualization/hostpools/hostpool1/msixpackages/msixPackageFullName",
+ "type": "Microsoft.DesktopVirtualization/hostpools/msixpackages",
+ "properties": {
+ "imagePath": "imagepath",
+ "packageName": "MsixPackage_Name",
+ "packageFamilyName": "MsixPackage_FamilyName",
+ "displayName": "dis",
+ "packageRelativePath": "MsixPackage_RelativePackageRoot",
+ "isRegularRegistration": false,
+ "isActive": false,
+ "packageDependencies": [
+ {
+ "dependencyName": "MsixPackage_Dependency_Name",
+ "publisher": "MsixPackage_Dependency_Publisher",
+ "minVersion": "packageDep_version"
+ }
+ ],
+ "version": "version",
+ "lastUpdated": "2008-09-22T14:01:54.9571247Z",
+ "packageApplications": [
+ {
+ "appId": "Application_Id",
+ "description": "desc",
+ "appUserModelID": "Application_ModelID",
+ "friendlyName": "fri",
+ "iconImageName": "Apptile",
+ "rawIcon": "VGhpcyBpcyBhIHN0cmluZyB0byBoYXNo",
+ "rawPng": "VGhpcyBpcyBhIHN0cmluZyB0byBoYXNo"
+ }
+ ]
+ }
+ },
+ {
+ "name": "hostpool1/MsixPackageFullName2",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourcegroup1/providers/Microsoft.DesktopVirtualization/hostpools/hostpool1/msixpackages/msixPackageFullName2",
+ "type": "Microsoft.DesktopVirtualization/hostpools/msixpackages",
+ "properties": {
+ "imagePath": "imagepath2",
+ "packageName": "MsixPackage_Name2",
+ "packageFamilyName": "MsixPackage_FamilyName2",
+ "displayName": "dis2",
+ "packageRelativePath": "MsixPackage_RelativePackageRoot2",
+ "isRegularRegistration": false,
+ "isActive": false,
+ "packageDependencies": [
+ {
+ "dependencyName": "MsixPackage_Dependency_Name2",
+ "publisher": "MsixPackage_Dependency_Publisher2",
+ "minVersion": "packageDep_version2"
+ }
+ ],
+ "version": "version2",
+ "lastUpdated": "2008-09-22T14:01:54.9571247Z",
+ "packageApplications": [
+ {
+ "appId": "Application_Id2",
+ "description": "desc2",
+ "appUserModelID": "Application_ModelID2",
+ "friendlyName": "fri2",
+ "iconImageName": "Apptile2",
+ "rawIcon": "VGhpcyBpcyBhIHN0cmluZyB0byBoYXNo2",
+ "rawPng": "VGhpcyBpcyBhIHN0cmluZyB0byBoYXNo2"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/MsixPackage_Update.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/MsixPackage_Update.json
new file mode 100644
index 000000000000..3550b6089e4a
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/MsixPackage_Update.json
@@ -0,0 +1,54 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "hostPoolName": "hostpool1",
+ "api-version": "2020-10-19-preview",
+ "msixPackageFullName": "msixpackagefullname",
+ "msixPackage": {
+ "properties": {
+ "displayName": "displayname",
+ "isActive": true,
+ "isRegularRegistration": false
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "hostpool1/MsixPackageFullName",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourcegroup1/providers/Microsoft.DesktopVirtualization/hostpools/hostpool1/msixpackages/msixPackageFullName",
+ "type": "Microsoft.DesktopVirtualization/hostpools/msixpackages",
+ "properties": {
+ "imagePath": "imagepath",
+ "packageName": "MsixPackage_Name",
+ "packageFamilyName": "MsixPackage_FamilyName",
+ "displayName": "dis",
+ "packageRelativePath": "MsixPackage_RelativePackageRoot",
+ "isRegularRegistration": false,
+ "isActive": true,
+ "packageDependencies": [
+ {
+ "dependencyName": "MsixPackage_Dependency_Name",
+ "publisher": "MsixPackage_Dependency_Publisher",
+ "minVersion": "packageDep_version"
+ }
+ ],
+ "version": "version",
+ "lastUpdated": "2008-09-22T14:01:54.9571247Z",
+ "packageApplications": [
+ {
+ "appId": "Application_Id",
+ "description": "desc",
+ "appUserModelID": "Application_ModelID",
+ "friendlyName": "fri",
+ "iconImageName": "Apptile",
+ "rawIcon": "VGhpcyBpcyBhIHN0cmluZyB0byBoYXNo",
+ "rawPng": "VGhpcyBpcyBhIHN0cmluZyB0byBoYXNo"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/OperationDescription_List.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/OperationDescription_List.json
new file mode 100644
index 000000000000..37292d45b4e9
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/OperationDescription_List.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "api-version": "2020-10-19-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "Microsoft.DesktopVirtualization/ssocontext/read",
+ "display": {
+ "provider": "Microsoft.DesktopVirtualization",
+ "resource": "ssocontext"
+ }
+ },
+ {
+ "name": "Microsoft.DesktopVirtualization/ssocontext/write",
+ "display": {
+ "provider": "Microsoft.DesktopVirtualization",
+ "resource": "ssocontext"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/SessionHost_Delete.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/SessionHost_Delete.json
new file mode 100644
index 000000000000..f35e146fdff7
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/SessionHost_Delete.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "hostPoolName": "hostPool1",
+ "sessionHostName": "sessionHost1.microsoft.com",
+ "api-version": "2020-10-19-preview",
+ "force": true
+ },
+ "responses": {
+ "200": {
+ "name": "sessionHost1.microsoft.com",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1/sessionHosts/sessionHost1.microsoft.com",
+ "type": "Microsoft.DesktopVirtualization/hostPools/sessionHosts",
+ "properties": {
+ "lastHeartBeat": "2008-09-22T14:01:54.9571247Z",
+ "sessions": 1,
+ "agentVersion": "1.0.0.1391",
+ "allowNewSession": true,
+ "assignedUser": "user1@microsoft.com",
+ "status": "Available",
+ "statusTimestamp": "2008-09-22T14:01:54.9571247Z",
+ "osVersion": "10.0.17763",
+ "sxSStackVersion": "rdp-sxs190816002",
+ "updateState": "Succeeded",
+ "lastUpdateTime": "2008-09-22T14:01:54.9571247Z",
+ "updateErrorMessage": "",
+ "virtualMachineId": "29491b54-c033-4dec-b09a-18bf0ebafaef",
+ "resourceId": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.Compute/virtualMachines/sessionHost1"
+ }
+ },
+ "204": {}
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/SessionHost_Get.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/SessionHost_Get.json
new file mode 100644
index 000000000000..38db28fed5d3
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/SessionHost_Get.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "hostPoolName": "hostPool1",
+ "sessionHostName": "sessionHost1.microsoft.com",
+ "api-version": "2020-10-19-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "sessionHost1.microsoft.com",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1/sessionHosts/sessionHost1.microsoft.com",
+ "type": "Microsoft.DesktopVirtualization/hostPools/sessionHosts",
+ "properties": {
+ "lastHeartBeat": "2008-09-22T14:01:54.9571247Z",
+ "sessions": 1,
+ "agentVersion": "1.0.0.1391",
+ "allowNewSession": true,
+ "assignedUser": "user1@microsoft.com",
+ "status": "Available",
+ "statusTimestamp": "2008-09-22T14:01:54.9571247Z",
+ "osVersion": "10.0.17763",
+ "sxSStackVersion": "rdp-sxs190816002",
+ "updateState": "Succeeded",
+ "lastUpdateTime": "2008-09-22T14:01:54.9571247Z",
+ "updateErrorMessage": "",
+ "virtualMachineId": "29491b54-c033-4dec-b09a-18bf0ebafaef",
+ "resourceId": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.Compute/virtualMachines/sessionHost1"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/SessionHost_List.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/SessionHost_List.json
new file mode 100644
index 000000000000..3e0496c98f89
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/SessionHost_List.json
@@ -0,0 +1,58 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "hostPoolName": "hostPool1",
+ "api-version": "2020-10-19-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "sessionHost1.microsoft.com",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1/sessionHosts/sessionHost1.microsoft.com",
+ "type": "Microsoft.DesktopVirtualization/hostPools/sessionhosts",
+ "properties": {
+ "lastHeartBeat": "2008-09-22T14:01:54.9571247Z",
+ "sessions": 1,
+ "agentVersion": "1.0.0.1391",
+ "allowNewSession": true,
+ "assignedUser": "user1@microsoft.com",
+ "status": "Available",
+ "statusTimestamp": "2008-09-22T14:01:54.9571247Z",
+ "osVersion": "10.0.17763",
+ "sxSStackVersion": "rdp-sxs190816002",
+ "updateState": "Succeeded",
+ "lastUpdateTime": "2008-09-22T14:01:54.9571247Z",
+ "updateErrorMessage": "",
+ "virtualMachineId": "29491b54-c033-4dec-b09a-18bf0ebafaef",
+ "resourceId": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.Compute/virtualMachines/sessionHost1"
+ }
+ },
+ {
+ "name": "sessionHost2.microsoft.com",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1/sessionHosts/sessionHost2microsoft.com",
+ "type": "Microsoft.DesktopVirtualization/hostPools/sessionhosts",
+ "properties": {
+ "lastHeartBeat": "2008-09-22T14:01:54.9571247Z",
+ "sessions": 1,
+ "agentVersion": "1.0.0.1391",
+ "allowNewSession": true,
+ "assignedUser": "user2@microsoft.com",
+ "status": "Available",
+ "statusTimestamp": "2008-09-22T14:01:54.9571247Z",
+ "osVersion": "10.0.17763",
+ "sxSStackVersion": "rdp-sxs190816002",
+ "updateState": "Succeeded",
+ "lastUpdateTime": "2008-09-22T14:01:54.9571247Z",
+ "updateErrorMessage": "",
+ "virtualMachineId": "39491b54-c033-4dec-b09a-18bf0ebafaef",
+ "resourceId": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.Compute/virtualMachines/sessionHost2"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/SessionHost_Update.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/SessionHost_Update.json
new file mode 100644
index 000000000000..300bd2f072e0
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/SessionHost_Update.json
@@ -0,0 +1,40 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "hostPoolName": "hostPool1",
+ "sessionHostName": "sessionHost1.microsoft.com",
+ "api-version": "2020-10-19-preview",
+ "sessionHost": {
+ "properties": {
+ "allowNewSession": true,
+ "assignedUser": "user1@microsoft.com"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "sessionHost1.microsoft.com",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1/sessionHosts/sessionHost1.microsoft.com",
+ "type": "Microsoft.DesktopVirtualization/hostPools/sessionhosts",
+ "properties": {
+ "lastHeartBeat": "2019-01-11T19:27:13.6108027Z",
+ "sessions": 1,
+ "agentVersion": "1.0.0.1391",
+ "allowNewSession": true,
+ "assignedUser": "user1@microsoft.com",
+ "status": "Available",
+ "statusTimestamp": "2019-01-24T20:00:08.2893033Z",
+ "osVersion": "10.0.17763",
+ "sxSStackVersion": "rdp-sxs190816002",
+ "updateState": "Succeeded",
+ "lastUpdateTime": "2008-09-22T14:01:54.9571247Z",
+ "updateErrorMessage": "",
+ "virtualMachineId": "29491b54-c033-4dec-b09a-18bf0ebafaef",
+ "resourceId": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.Compute/virtualMachines/sessionHost1"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/StartMenuItem_List.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/StartMenuItem_List.json
new file mode 100644
index 000000000000..44951c689244
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/StartMenuItem_List.json
@@ -0,0 +1,42 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "applicationGroupName": "applicationGroup1",
+ "api-version": "2020-10-19-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "application1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1/startMenuItem/application1",
+ "type": "Microsoft.DesktopVirtualization/applicationGroups/startMenuItems",
+ "properties": {
+ "appAlias": "word",
+ "friendlyName": "friendly",
+ "filePath": "/path/to/file",
+ "commandLineArguments": "arguments",
+ "iconPath": "/path/to/icon",
+ "iconIndex": 1
+ }
+ },
+ {
+ "name": "application2",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1/startMenuItem/application2",
+ "type": "Microsoft.DesktopVirtualization/applicationGroups/startMenuItems",
+ "properties": {
+ "appAlias": "excel",
+ "friendlyName": "friendly",
+ "filePath": "/path/to/file",
+ "commandLineArguments": "arguments",
+ "iconPath": "/path/to/icon",
+ "iconIndex": 1
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/UserSession_Delete.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/UserSession_Delete.json
new file mode 100644
index 000000000000..42973088409a
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/UserSession_Delete.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "hostPoolName": "hostPool1",
+ "sessionHostName": "sessionHost1.microsoft.com",
+ "userSessionId": "1",
+ "api-version": "2020-10-19-preview",
+ "force": true
+ },
+ "responses": {
+ "200": {
+ "name": "1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1/sessionHosts/sessionHost1.microsoft.com/userSessions/1",
+ "type": "Microsoft.DesktopVirtualization/hostPools/sessionHosts/userSessions",
+ "properties": {
+ "userPrincipalName": "user1@microsoft.com",
+ "applicationType": "Desktop",
+ "sessionState": "Active",
+ "activeDirectoryUserName": "WVDARM\\user1",
+ "createTime": "2008-09-22T14:01:54.9571247Z"
+ }
+ },
+ "204": {}
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/UserSession_Disconnect_Post.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/UserSession_Disconnect_Post.json
new file mode 100644
index 000000000000..fb62a1194390
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/UserSession_Disconnect_Post.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "hostPoolName": "hostPool1",
+ "sessionHostName": "sessionHost1.microsoft.com",
+ "userSessionId": "1",
+ "api-version": "2020-10-19-preview"
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/UserSession_Get.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/UserSession_Get.json
new file mode 100644
index 000000000000..9037495ad097
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/UserSession_Get.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "hostPoolName": "hostPool1",
+ "sessionHostName": "sessionHost1.microsoft.com",
+ "userSessionId": "1",
+ "api-version": "2020-10-19-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1/sessionHosts/sessionHost1.microsoft.com/userSessions/1",
+ "type": "Microsoft.DesktopVirtualization/hostPools/sessionHosts/userSessions",
+ "properties": {
+ "userPrincipalName": "user1@microsoft.com",
+ "applicationType": "Desktop",
+ "sessionState": "Active",
+ "activeDirectoryUserName": "WVDARM\\user1",
+ "createTime": "2008-09-22T14:01:54.9571247Z"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/UserSession_List.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/UserSession_List.json
new file mode 100644
index 000000000000..f40027767f3a
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/UserSession_List.json
@@ -0,0 +1,41 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "hostPoolName": "hostPool1",
+ "sessionHostName": "sessionHost1.microsoft.com",
+ "api-version": "2020-10-19-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1/sessionHosts/sessionHost1.microsoft.com/userSessions/1",
+ "type": "Microsoft.DesktopVirtualization/hostPools/sessionHosts/userSessions",
+ "properties": {
+ "userPrincipalName": "user1@microsoft.com",
+ "applicationType": "Desktop",
+ "sessionState": "Active",
+ "activeDirectoryUserName": "WVDARM\\user1",
+ "createTime": "2008-09-22T14:01:54.9571247Z"
+ }
+ },
+ {
+ "name": "2",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1/sessionHosts/sessionHost1.microsoft.com/userSessions/2",
+ "type": "Microsoft.DesktopVirtualization/hostPools/sessionHosts/userSessions",
+ "properties": {
+ "userPrincipalName": "user1@microsoft.com",
+ "applicationType": "Desktop",
+ "sessionState": "Active",
+ "activeDirectoryUserName": "WVDARM\\user1",
+ "createTime": "2008-09-22T14:01:54.9571247Z"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/UserSession_ListByHostPool.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/UserSession_ListByHostPool.json
new file mode 100644
index 000000000000..7146ad32e688
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/UserSession_ListByHostPool.json
@@ -0,0 +1,41 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "hostPoolName": "hostPool1",
+ "api-version": "2020-10-19-preview",
+ "$filter": "userPrincipalName eq 'user1@microsoft.com' and state eq 'active'"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1/sessionHosts/sessionHost1.microsoft.com/userSessions/1",
+ "type": "Microsoft.DesktopVirtualization/hostPools/sessionHosts/userSessions",
+ "properties": {
+ "userPrincipalName": "user1@microsoft.com",
+ "applicationType": "Desktop",
+ "sessionState": "Active",
+ "activeDirectoryUserName": "WVDARM\\user1",
+ "createTime": "2008-09-22T14:01:54.9571247Z"
+ }
+ },
+ {
+ "name": "2",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1/sessionHosts/sessionHost1.microsoft.com/userSessions/2",
+ "type": "Microsoft.DesktopVirtualization/hostPools/sessionHosts/userSessions",
+ "properties": {
+ "userPrincipalName": "user1@microsoft.com",
+ "applicationType": "Desktop",
+ "sessionState": "Active",
+ "activeDirectoryUserName": "WVDARM\\user1",
+ "createTime": "2008-09-22T14:01:54.9571247Z"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/UserSession_SendMessage_Post.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/UserSession_SendMessage_Post.json
new file mode 100644
index 000000000000..f68b963af04d
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/UserSession_SendMessage_Post.json
@@ -0,0 +1,17 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "hostPoolName": "hostPool1",
+ "sessionHostName": "sessionHost1.microsoft.com",
+ "userSessionId": "1",
+ "api-version": "2020-10-19-preview",
+ "sendMessage": {
+ "messageTitle": "title",
+ "messageBody": "body"
+ }
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/Workspace_Create.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/Workspace_Create.json
new file mode 100644
index 000000000000..d94b9351dfde
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/Workspace_Create.json
@@ -0,0 +1,53 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "workspaceName": "workspace1",
+ "api-version": "2020-10-19-preview",
+ "workspace": {
+ "location": "centralus",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "workspace1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
+ "type": "Microsoft.DesktopVirtualization/workspaces",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "workspace1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
+ "type": "Microsoft.DesktopVirtualization/workspaces",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/Workspace_Delete.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/Workspace_Delete.json
new file mode 100644
index 000000000000..b048c95cf27c
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/Workspace_Delete.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "workspaceName": "workspace1",
+ "api-version": "2020-10-19-preview"
+ },
+ "responses": {
+ "200": {
+ "name": "workspace1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
+ "type": "Microsoft.DesktopVirtualization/workspaces",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly"
+ }
+ },
+ "204": {}
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/Workspace_Get.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/Workspace_Get.json
new file mode 100644
index 000000000000..07ce727e86a3
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/Workspace_Get.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "workspaceName": "workspace1",
+ "api-version": "2020-10-19-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "workspace1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
+ "type": "Microsoft.DesktopVirtualization/workspaces",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/Workspace_ListByResourceGroup.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/Workspace_ListByResourceGroup.json
new file mode 100644
index 000000000000..92969c8342b7
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/Workspace_ListByResourceGroup.json
@@ -0,0 +1,43 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "api-version": "2020-10-19-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "workspace1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
+ "type": "Microsoft.DesktopVirtualization/workspaces",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly"
+ }
+ },
+ {
+ "name": "workspace2",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace2",
+ "type": "Microsoft.DesktopVirtualization/workspaces",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/Workspace_ListBySubscription.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/Workspace_ListBySubscription.json
new file mode 100644
index 000000000000..6aff41fb377d
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/Workspace_ListBySubscription.json
@@ -0,0 +1,42 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "api-version": "2020-10-19-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "workspace1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
+ "type": "Microsoft.DesktopVirtualization/workspaces",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly"
+ }
+ },
+ {
+ "name": "workspace2",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace2",
+ "type": "Microsoft.DesktopVirtualization/workspaces",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/Workspace_Update.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/Workspace_Update.json
new file mode 100644
index 000000000000..a532bfa90587
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/examples/Workspace_Update.json
@@ -0,0 +1,36 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "workspaceName": "workspace1",
+ "api-version": "2020-10-19-preview",
+ "workspace": {
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "workspace1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
+ "type": "Microsoft.DesktopVirtualization/workspaces",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/desktopvirtualization.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/desktopvirtualization.json
new file mode 100644
index 000000000000..d6ac5160e575
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/desktopvirtualization.json
@@ -0,0 +1,3798 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2020-11-02-preview",
+ "title": "Desktop Virtualization API Client"
+ },
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "host": "management.azure.com",
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Azure Active Directory OAuth2 Flow",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
+ "paths": {
+ "/providers/Microsoft.DesktopVirtualization/operations": {
+ "get": {
+ "tags": [
+ "Operations"
+ ],
+ "operationId": "Operations_List",
+ "description": "List all of the available operations the Desktop Virtualization resource provider supports.",
+ "x-ms-examples": {
+ "OperationDescription_List": {
+ "$ref": "./examples/OperationDescription_List.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved operations.",
+ "schema": {
+ "$ref": "#/definitions/ResourceProviderOperationList"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/workspaces/{workspaceName}": {
+ "get": {
+ "tags": [
+ "Workspace"
+ ],
+ "operationId": "Workspaces_Get",
+ "description": "Get a workspace.",
+ "x-ms-examples": {
+ "Workspace_Get": {
+ "$ref": "./examples/Workspace_Get.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved workspace.",
+ "schema": {
+ "$ref": "#/definitions/Workspace"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Workspace"
+ ],
+ "operationId": "Workspaces_CreateOrUpdate",
+ "description": "Create or update a workspace.",
+ "x-ms-examples": {
+ "Workspace_Create": {
+ "$ref": "./examples/Workspace_Create.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "name": "workspace",
+ "description": "Object containing Workspace definitions.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/Workspace"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully updated workspace.",
+ "schema": {
+ "$ref": "#/definitions/Workspace"
+ }
+ },
+ "201": {
+ "description": "Successfully created workspace.",
+ "schema": {
+ "$ref": "#/definitions/Workspace"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Workspace"
+ ],
+ "operationId": "Workspaces_Delete",
+ "description": "Remove a workspace.",
+ "x-ms-examples": {
+ "Workspace_Delete": {
+ "$ref": "./examples/Workspace_Delete.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully deleted workspace."
+ },
+ "204": {
+ "description": "Workspace does not exist."
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Workspace"
+ ],
+ "operationId": "Workspaces_Update",
+ "description": "Update a workspace.",
+ "x-ms-examples": {
+ "Workspace_Update": {
+ "$ref": "./examples/Workspace_Update.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "name": "workspace",
+ "description": "Object containing Workspace definitions.",
+ "in": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/WorkspacePatch"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully updated workspace.",
+ "schema": {
+ "$ref": "#/definitions/Workspace"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/workspaces": {
+ "get": {
+ "tags": [
+ "Workspace"
+ ],
+ "operationId": "Workspaces_ListByResourceGroup",
+ "description": "List workspaces.",
+ "x-ms-examples": {
+ "Workspace_ListByResourceGroup": {
+ "$ref": "./examples/Workspace_ListByResourceGroup.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved workspaces in resource group.",
+ "schema": {
+ "$ref": "#/definitions/WorkspaceList"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.DesktopVirtualization/workspaces": {
+ "get": {
+ "tags": [
+ "Workspace"
+ ],
+ "operationId": "Workspaces_ListBySubscription",
+ "description": "List workspaces in subscription.",
+ "x-ms-examples": {
+ "Workspace_ListBySubscription": {
+ "$ref": "./examples/Workspace_ListBySubscription.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved workspaces in subscription.",
+ "schema": {
+ "$ref": "#/definitions/WorkspaceList"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}": {
+ "get": {
+ "tags": [
+ "ApplicationGroup"
+ ],
+ "operationId": "ApplicationGroups_Get",
+ "description": "Get an application group.",
+ "x-ms-examples": {
+ "ApplicationGroup_Get": {
+ "$ref": "./examples/ApplicationGroup_Get.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApplicationGroupNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved application group.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationGroup"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "ApplicationGroup"
+ ],
+ "operationId": "ApplicationGroups_CreateOrUpdate",
+ "description": "Create or update an applicationGroup.",
+ "x-ms-examples": {
+ "ApplicationGroup_Create": {
+ "$ref": "./examples/ApplicationGroup_Create.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApplicationGroupNameParameter"
+ },
+ {
+ "name": "applicationGroup",
+ "description": "Object containing ApplicationGroup definitions.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ApplicationGroup"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully updated application group.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationGroup"
+ }
+ },
+ "201": {
+ "description": "Successfully created application group.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationGroup"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "ApplicationGroup"
+ ],
+ "operationId": "ApplicationGroups_Delete",
+ "description": "Remove an applicationGroup.",
+ "x-ms-examples": {
+ "ApplicationGroup_Delete": {
+ "$ref": "./examples/ApplicationGroup_Delete.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApplicationGroupNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully removed application group."
+ },
+ "204": {
+ "description": "Application group does not exist."
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "ApplicationGroup"
+ ],
+ "operationId": "ApplicationGroups_Update",
+ "description": "Update an applicationGroup.",
+ "x-ms-examples": {
+ "ApplicationGroups_Update": {
+ "$ref": "./examples/ApplicationGroup_Update.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApplicationGroupNameParameter"
+ },
+ {
+ "name": "applicationGroup",
+ "description": "Object containing ApplicationGroup definitions.",
+ "in": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/ApplicationGroupPatch"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully updated application group.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationGroup"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups": {
+ "get": {
+ "tags": [
+ "ApplicationGroup"
+ ],
+ "operationId": "ApplicationGroups_ListByResourceGroup",
+ "description": "List applicationGroups.",
+ "x-ms-examples": {
+ "ApplicationGroup_ListByResourceGroup": {
+ "$ref": "./examples/ApplicationGroup_ListByResourceGroup.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "OData filter expression. Valid properties for filtering are applicationGroupType."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved application groups in resource group.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationGroupList"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.DesktopVirtualization/applicationGroups": {
+ "get": {
+ "tags": [
+ "ApplicationGroup"
+ ],
+ "operationId": "ApplicationGroups_ListBySubscription",
+ "description": "List applicationGroups in subscription.",
+ "x-ms-examples": {
+ "ApplicationGroup_List": {
+ "$ref": "./examples/ApplicationGroup_ListBySubscription.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "OData filter expression. Valid properties for filtering are applicationGroupType."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved application groups in subscription.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationGroupList"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}/startMenuItems": {
+ "get": {
+ "tags": [
+ "StartMenuItem"
+ ],
+ "operationId": "StartMenuItems_List",
+ "description": "List start menu items in the given application group.",
+ "x-ms-examples": {
+ "StartMenuItem_List": {
+ "$ref": "./examples/StartMenuItem_List.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApplicationGroupNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved start menu items in application group.",
+ "schema": {
+ "$ref": "#/definitions/StartMenuItemList"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}/applications/{applicationName}": {
+ "get": {
+ "tags": [
+ "Application"
+ ],
+ "operationId": "Applications_Get",
+ "description": "Get an application.",
+ "x-ms-examples": {
+ "Application_Get": {
+ "$ref": "./examples/Application_Get.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApplicationGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApplicationNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved application.",
+ "schema": {
+ "$ref": "#/definitions/Application"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Application"
+ ],
+ "operationId": "Applications_CreateOrUpdate",
+ "description": "Create or update an application.",
+ "x-ms-examples": {
+ "Application_Create": {
+ "$ref": "./examples/Application_Create.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApplicationGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApplicationNameParameter"
+ },
+ {
+ "name": "application",
+ "description": "Object containing Application definitions.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/Application"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully updated application.",
+ "schema": {
+ "$ref": "#/definitions/Application"
+ }
+ },
+ "201": {
+ "description": "Successfully created application.",
+ "schema": {
+ "$ref": "#/definitions/Application"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Application"
+ ],
+ "operationId": "Applications_Delete",
+ "description": "Remove an application.",
+ "x-ms-examples": {
+ "Application_Delete": {
+ "$ref": "./examples/Application_Delete.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApplicationGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApplicationNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully removed application."
+ },
+ "204": {
+ "description": "Application does not exist."
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Application"
+ ],
+ "operationId": "Applications_Update",
+ "description": "Update an application.",
+ "x-ms-examples": {
+ "Application_Update": {
+ "$ref": "./examples/Application_Update.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApplicationGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApplicationNameParameter"
+ },
+ {
+ "name": "application",
+ "description": "Object containing Application definitions.",
+ "in": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/ApplicationPatch"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully updated application.",
+ "schema": {
+ "$ref": "#/definitions/Application"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}/applications": {
+ "get": {
+ "tags": [
+ "Application"
+ ],
+ "operationId": "Applications_List",
+ "description": "List applications.",
+ "x-ms-examples": {
+ "Applications_List": {
+ "$ref": "./examples/Application_List.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApplicationGroupNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved applications in application group.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationList"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}/desktops/{desktopName}": {
+ "get": {
+ "tags": [
+ "Desktop"
+ ],
+ "operationId": "Desktops_Get",
+ "description": "Get a desktop.",
+ "x-ms-examples": {
+ "Desktop_Get": {
+ "$ref": "./examples/Desktop_Get.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApplicationGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DesktopNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved desktop.",
+ "schema": {
+ "$ref": "#/definitions/Desktop"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Desktop"
+ ],
+ "operationId": "Desktops_Update",
+ "description": "Update a desktop.",
+ "x-ms-examples": {
+ "Desktop_Update": {
+ "$ref": "./examples/Desktop_Update.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApplicationGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DesktopNameParameter"
+ },
+ {
+ "name": "desktop",
+ "description": "Object containing Desktop definitions.",
+ "in": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/DesktopPatch"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully updated desktop.",
+ "schema": {
+ "$ref": "#/definitions/Desktop"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}/desktops": {
+ "get": {
+ "tags": [
+ "Desktop"
+ ],
+ "operationId": "Desktops_List",
+ "description": "List desktops.",
+ "x-ms-examples": {
+ "Desktop_List": {
+ "$ref": "./examples/Desktop_List.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApplicationGroupNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved desktops in application group.",
+ "schema": {
+ "$ref": "#/definitions/DesktopList"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}": {
+ "get": {
+ "tags": [
+ "HostPool"
+ ],
+ "operationId": "HostPools_Get",
+ "description": "Get a host pool.",
+ "x-ms-examples": {
+ "HostPool_Get": {
+ "$ref": "./examples/HostPool_Get.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/HostPoolNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved host pool.",
+ "schema": {
+ "$ref": "#/definitions/HostPool"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "HostPool"
+ ],
+ "operationId": "HostPools_CreateOrUpdate",
+ "description": "Create or update a host pool.",
+ "x-ms-examples": {
+ "HostPool_Create": {
+ "$ref": "./examples/HostPool_Create.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/HostPoolNameParameter"
+ },
+ {
+ "name": "hostPool",
+ "description": "Object containing HostPool definitions.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/HostPool"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully updated host pool.",
+ "schema": {
+ "$ref": "#/definitions/HostPool"
+ }
+ },
+ "201": {
+ "description": "Successfully created host pool.",
+ "schema": {
+ "$ref": "#/definitions/HostPool"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "HostPool"
+ ],
+ "operationId": "HostPools_Delete",
+ "description": "Remove a host pool.",
+ "x-ms-examples": {
+ "HostPool_Delete": {
+ "$ref": "./examples/HostPool_Delete.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/HostPoolNameParameter"
+ },
+ {
+ "name": "force",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "description": "Force flag to delete sessionHost."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully removed host pool."
+ },
+ "204": {
+ "description": "Host pool does not exist."
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "HostPool"
+ ],
+ "operationId": "HostPools_Update",
+ "description": "Update a host pool.",
+ "x-ms-examples": {
+ "HostPool_Update": {
+ "$ref": "./examples/HostPool_Update.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/HostPoolNameParameter"
+ },
+ {
+ "name": "hostPool",
+ "description": "Object containing HostPool definitions.",
+ "in": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/HostPoolPatch"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully updated host pool.",
+ "schema": {
+ "$ref": "#/definitions/HostPool"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools": {
+ "get": {
+ "tags": [
+ "HostPool"
+ ],
+ "operationId": "HostPools_ListByResourceGroup",
+ "description": "List hostPools.",
+ "x-ms-examples": {
+ "HostPool_ListByResourceGroup": {
+ "$ref": "./examples/HostPool_ListByResourceGroup.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved host pool in resource group.",
+ "schema": {
+ "$ref": "#/definitions/HostPoolList"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.DesktopVirtualization/hostPools": {
+ "get": {
+ "tags": [
+ "HostPool"
+ ],
+ "operationId": "HostPools_List",
+ "description": "List hostPools in subscription.",
+ "x-ms-examples": {
+ "HostPool_List": {
+ "$ref": "./examples/HostPool_List.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved host pool in subscription.",
+ "schema": {
+ "$ref": "#/definitions/HostPoolList"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/userSessions": {
+ "get": {
+ "tags": [
+ "UserSession"
+ ],
+ "operationId": "UserSessions_ListByHostPool",
+ "description": "List userSessions.",
+ "x-ms-examples": {
+ "UserSession_ListByHostPool": {
+ "$ref": "./examples/UserSession_ListByHostPool.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/HostPoolNameParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "OData filter expression. Valid properties for filtering are userprincipalname and sessionstate."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved user sessions in host pool.",
+ "schema": {
+ "$ref": "#/definitions/UserSessionList"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/sessionHosts/{sessionHostName}": {
+ "get": {
+ "tags": [
+ "SessionHost"
+ ],
+ "operationId": "SessionHosts_Get",
+ "description": "Get a session host.",
+ "x-ms-examples": {
+ "SessionHost_Get": {
+ "$ref": "./examples/SessionHost_Get.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/HostPoolNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SessionHostNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved session host.",
+ "schema": {
+ "$ref": "#/definitions/SessionHost"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "SessionHost"
+ ],
+ "operationId": "SessionHosts_Delete",
+ "description": "Remove a SessionHost.",
+ "x-ms-examples": {
+ "SessionHost_Delete": {
+ "$ref": "./examples/SessionHost_Delete.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/HostPoolNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SessionHostNameParameter"
+ },
+ {
+ "name": "force",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "description": "Force flag to force sessionHost deletion even when userSession exists."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully removed session host."
+ },
+ "204": {
+ "description": "Session host does not exist."
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "SessionHost"
+ ],
+ "operationId": "SessionHosts_Update",
+ "description": "Update a session host.",
+ "x-ms-examples": {
+ "SessionHost_Update": {
+ "$ref": "./examples/SessionHost_Update.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/HostPoolNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SessionHostNameParameter"
+ },
+ {
+ "name": "sessionHost",
+ "description": "Object containing SessionHost definitions.",
+ "in": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/SessionHostPatch"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully updated session host.",
+ "schema": {
+ "$ref": "#/definitions/SessionHost"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/sessionHosts": {
+ "get": {
+ "tags": [
+ "SessionHost"
+ ],
+ "operationId": "SessionHosts_List",
+ "description": "List sessionHosts.",
+ "x-ms-examples": {
+ "SessionHost_List": {
+ "$ref": "./examples/SessionHost_List.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/HostPoolNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved session hosts in host pool.",
+ "schema": {
+ "$ref": "#/definitions/SessionHostList"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/msixPackages/{msixPackageFullName}": {
+ "get": {
+ "tags": [
+ "MSIXPackage"
+ ],
+ "operationId": "MSIXPackages_Get",
+ "description": "Get a msixpackage.",
+ "x-ms-examples": {
+ "MSIXPackage_Get": {
+ "$ref": "./examples/MsixPackage_Get.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/HostPoolNameParameter"
+ },
+ {
+ "$ref": "#/parameters/MSIXPackageFullNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved MSIX Package.",
+ "schema": {
+ "$ref": "#/definitions/MSIXPackage"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "MSIXPackage"
+ ],
+ "operationId": "MSIXPackages_CreateOrUpdate",
+ "description": "Create or update a MSIX package.",
+ "x-ms-examples": {
+ "MSIXPackage_Create": {
+ "$ref": "./examples/MsixPackage_Create.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/HostPoolNameParameter"
+ },
+ {
+ "$ref": "#/parameters/MSIXPackageFullNameParameter"
+ },
+ {
+ "name": "msixPackage",
+ "description": "Object containing MSIX Package definitions.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/MSIXPackage"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully updated MSIX Package.",
+ "schema": {
+ "$ref": "#/definitions/MSIXPackage"
+ }
+ },
+ "201": {
+ "description": "Successfully created MSIX Package.",
+ "schema": {
+ "$ref": "#/definitions/MSIXPackage"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "MSIXPackage"
+ ],
+ "operationId": "MSIXPackages_Delete",
+ "description": "Remove an MSIX Package.",
+ "x-ms-examples": {
+ "MSIXPackage_Delete": {
+ "$ref": "./examples/MsixPackage_Delete.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/HostPoolNameParameter"
+ },
+ {
+ "$ref": "#/parameters/MSIXPackageFullNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully removed MSIX Package."
+ },
+ "204": {
+ "description": "MSIX Package does not exist."
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "MSIXPackage"
+ ],
+ "operationId": "MSIXPackages_Update",
+ "description": "Update an MSIX Package.",
+ "x-ms-examples": {
+ "MSIXPackage_Update": {
+ "$ref": "./examples/MsixPackage_Update.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/HostPoolNameParameter"
+ },
+ {
+ "$ref": "#/parameters/MSIXPackageFullNameParameter"
+ },
+ {
+ "name": "msixPackage",
+ "description": "Object containing MSIX Package definitions.",
+ "in": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/MSIXPackagePatch"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully updated MSIX Package.",
+ "schema": {
+ "$ref": "#/definitions/MSIXPackage"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/msixPackages": {
+ "get": {
+ "tags": [
+ "MSIXPackage"
+ ],
+ "operationId": "MSIXPackages_List",
+ "description": "List MSIX packages in hostpool.",
+ "x-ms-examples": {
+ "MSIXPackage_List": {
+ "$ref": "./examples/MsixPackage_List.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/HostPoolNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved MSIX Packages in hostpool.",
+ "schema": {
+ "$ref": "#/definitions/MSIXPackageList"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/expandMsixImage": {
+ "post": {
+ "tags": [
+ "MsixImage"
+ ],
+ "operationId": "MsixImages_Expand",
+ "description": "Expands and Lists MSIX packages in an Image, given the Image Path.",
+ "x-ms-examples": {
+ "MsixImage_Expand": {
+ "$ref": "./examples/MsixImage_Expand_Post.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/HostPoolNameParameter"
+ },
+ {
+ "name": "msixImageURI",
+ "description": "Object containing URI to MSIX Image",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/MSIXImageURI"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved MSIX packages in specified Image Path.",
+ "schema": {
+ "$ref": "#/definitions/ExpandMsixImageList"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/sessionHosts/{sessionHostName}/userSessions/{userSessionId}": {
+ "get": {
+ "tags": [
+ "UserSession"
+ ],
+ "operationId": "UserSessions_Get",
+ "description": "Get a userSession.",
+ "x-ms-examples": {
+ "UserSession_Get": {
+ "$ref": "./examples/UserSession_Get.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/HostPoolNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SessionHostNameParameter"
+ },
+ {
+ "$ref": "#/parameters/UserSessionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved user session.",
+ "schema": {
+ "$ref": "#/definitions/UserSession"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "UserSession"
+ ],
+ "operationId": "UserSessions_Delete",
+ "description": "Remove a userSession.",
+ "x-ms-examples": {
+ "UserSession_Delete": {
+ "$ref": "./examples/UserSession_Delete.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/HostPoolNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SessionHostNameParameter"
+ },
+ {
+ "$ref": "#/parameters/UserSessionIdParameter"
+ },
+ {
+ "name": "force",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "description": "Force flag to login off userSession."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully removed user session."
+ },
+ "204": {
+ "description": "User session does not exist."
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/sessionHosts/{sessionHostName}/userSessions": {
+ "get": {
+ "tags": [
+ "UserSession"
+ ],
+ "operationId": "UserSessions_List",
+ "description": "List userSessions.",
+ "x-ms-examples": {
+ "UserSession_List": {
+ "$ref": "./examples/UserSession_List.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/HostPoolNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SessionHostNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved user sessions in session host.",
+ "schema": {
+ "$ref": "#/definitions/UserSessionList"
+ }
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/sessionHosts/{sessionHostName}/userSessions/{userSessionId}/disconnect": {
+ "post": {
+ "tags": [
+ "UserSession"
+ ],
+ "operationId": "UserSessions_Disconnect",
+ "description": "Disconnect a userSession.",
+ "x-ms-examples": {
+ "UserSession_Disconnect_Post": {
+ "$ref": "./examples/UserSession_Disconnect_Post.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/HostPoolNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SessionHostNameParameter"
+ },
+ {
+ "$ref": "#/parameters/UserSessionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully disconnected user session."
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/sessionHosts/{sessionHostName}/userSessions/{userSessionId}/sendMessage": {
+ "post": {
+ "tags": [
+ "UserSession"
+ ],
+ "operationId": "UserSessions_SendMessage",
+ "description": "Send a message to a user.",
+ "x-ms-examples": {
+ "UserSession_SendMessage_Post": {
+ "$ref": "./examples/UserSession_SendMessage_Post.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/HostPoolNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SessionHostNameParameter"
+ },
+ {
+ "$ref": "#/parameters/UserSessionIdParameter"
+ },
+ {
+ "name": "sendMessage",
+ "description": "Object containing message includes title and message body",
+ "in": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/SendMessage"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully sent message to user session."
+ },
+ "default": {
+ "description": "Automation error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "CloudError": {
+ "x-ms-external": true,
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/CloudErrorProperties"
+ }
+ }
+ },
+ "CloudErrorProperties": {
+ "type": "object",
+ "properties": {
+ "code": {
+ "description": "Error code",
+ "type": "string"
+ },
+ "message": {
+ "description": "Error message indicating why the operation failed.",
+ "type": "string"
+ }
+ }
+ },
+ "ResourceProviderOperationList": {
+ "description": "Result of the request to list operations.",
+ "readOnly": true,
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ResourceProviderOperation"
+ },
+ "description": "List of operations supported by this resource provider."
+ }
+ }
+ },
+ "ResourceProviderOperation": {
+ "description": "Supported operation of this resource provider.",
+ "readOnly": true,
+ "properties": {
+ "name": {
+ "description": "Operation name, in format of {provider}/{resource}/{operation}",
+ "type": "string"
+ },
+ "display": {
+ "description": "Display metadata associated with the operation.",
+ "properties": {
+ "provider": {
+ "description": "Resource provider: Microsoft Desktop Virtualization.",
+ "type": "string"
+ },
+ "resource": {
+ "description": "Resource on which the operation is performed.",
+ "type": "string"
+ },
+ "operation": {
+ "description": "Type of operation: get, read, delete, etc.",
+ "type": "string"
+ },
+ "description": {
+ "description": "Description of this operation.",
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ "Workspace": {
+ "type": "object",
+ "description": "Represents a Workspace definition.",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/TrackedResource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "description": "Detailed properties for Workspace",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/WorkspaceProperties"
+ }
+ }
+ },
+ "WorkspaceProperties": {
+ "description": "Schema for Workspace properties.",
+ "type": "object",
+ "properties": {
+ "description": {
+ "type": "string",
+ "description": "Description of Workspace."
+ },
+ "friendlyName": {
+ "type": "string",
+ "description": "Friendly name of Workspace."
+ },
+ "applicationGroupReferences": {
+ "type": "array",
+ "description": "List of applicationGroup resource Ids.",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "WorkspaceList": {
+ "type": "object",
+ "title": "WorkspaceList",
+ "description": "List of Workspace definitions.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "description": "List of Workspace definitions.",
+ "items": {
+ "$ref": "#/definitions/Workspace"
+ }
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Link to the next page of results."
+ }
+ }
+ },
+ "WorkspacePatch": {
+ "type": "object",
+ "description": "Workspace properties that can be patched.",
+ "properties": {
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "tags to be updated"
+ },
+ "properties": {
+ "description": "Detailed properties for Workspace",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/WorkspacePatchProperties"
+ }
+ }
+ },
+ "WorkspacePatchProperties": {
+ "description": "Workspace properties that can be patched.",
+ "type": "object",
+ "properties": {
+ "description": {
+ "type": "string",
+ "description": "Description of Workspace."
+ },
+ "friendlyName": {
+ "type": "string",
+ "description": "Friendly name of Workspace."
+ },
+ "applicationGroupReferences": {
+ "type": "array",
+ "description": "List of applicationGroup links.",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "ApplicationGroup": {
+ "type": "object",
+ "description": "Represents a ApplicationGroup definition.",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/TrackedResource"
+ }
+ ],
+ "required": [
+ "properties"
+ ],
+ "properties": {
+ "properties": {
+ "description": "Detailed properties for ApplicationGroup",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ApplicationGroupProperties",
+ "x-nullable": false
+ }
+ }
+ },
+ "ApplicationGroupProperties": {
+ "description": "Schema for ApplicationGroup properties.",
+ "type": "object",
+ "required": [
+ "hostPoolArmPath",
+ "applicationGroupType"
+ ],
+ "properties": {
+ "description": {
+ "type": "string",
+ "description": "Description of ApplicationGroup."
+ },
+ "friendlyName": {
+ "type": "string",
+ "description": "Friendly name of ApplicationGroup."
+ },
+ "hostPoolArmPath": {
+ "type": "string",
+ "description": "HostPool arm path of ApplicationGroup.",
+ "x-nullable": false
+ },
+ "workspaceArmPath": {
+ "type": "string",
+ "description": "Workspace arm path of ApplicationGroup.",
+ "readOnly": true
+ },
+ "applicationGroupType": {
+ "enum": [
+ "RemoteApp",
+ "Desktop"
+ ],
+ "x-ms-enum": {
+ "name": "ApplicationGroupType",
+ "modelAsString": true
+ },
+ "type": "string",
+ "description": "Resource Type of ApplicationGroup.",
+ "x-nullable": false
+ }
+ }
+ },
+ "ApplicationGroupPatch": {
+ "type": "object",
+ "description": "ApplicationGroup properties that can be patched.",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "tags to be updated"
+ },
+ "properties": {
+ "description": "ApplicationGroup properties that can be patched.",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ApplicationGroupPatchProperties"
+ }
+ }
+ },
+ "ApplicationGroupPatchProperties": {
+ "description": "ApplicationGroup properties that can be patched.",
+ "type": "object",
+ "properties": {
+ "description": {
+ "type": "string",
+ "description": "Description of ApplicationGroup."
+ },
+ "friendlyName": {
+ "type": "string",
+ "description": "Friendly name of ApplicationGroup."
+ }
+ }
+ },
+ "ApplicationGroupList": {
+ "type": "object",
+ "title": "ApplicationGroupList",
+ "description": "List of ApplicationGroup definitions.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "description": "List of ApplicationGroup definitions.",
+ "items": {
+ "$ref": "#/definitions/ApplicationGroup"
+ }
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Link to the next page of results."
+ }
+ }
+ },
+ "HostPool": {
+ "type": "object",
+ "description": "Represents a HostPool definition.",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/TrackedResource"
+ }
+ ],
+ "required": [
+ "properties"
+ ],
+ "properties": {
+ "properties": {
+ "description": "Detailed properties for HostPool",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/HostPoolProperties",
+ "x-nullable": false
+ }
+ }
+ },
+ "HostPoolProperties": {
+ "description": "Properties of HostPool.",
+ "type": "object",
+ "required": [
+ "hostPoolType",
+ "loadBalancerType",
+ "preferredAppGroupType"
+ ],
+ "properties": {
+ "friendlyName": {
+ "type": "string",
+ "description": "Friendly name of HostPool."
+ },
+ "description": {
+ "type": "string",
+ "description": "Description of HostPool."
+ },
+ "hostPoolType": {
+ "enum": [
+ "Personal",
+ "Pooled"
+ ],
+ "x-ms-enum": {
+ "name": "HostPoolType",
+ "modelAsString": true
+ },
+ "type": "string",
+ "description": "HostPool type for desktop.",
+ "x-nullable": false
+ },
+ "personalDesktopAssignmentType": {
+ "enum": [
+ "Automatic",
+ "Direct"
+ ],
+ "x-ms-enum": {
+ "name": "PersonalDesktopAssignmentType",
+ "modelAsString": true
+ },
+ "type": "string",
+ "description": "PersonalDesktopAssignment type for HostPool.",
+ "x-nullable": false
+ },
+ "customRdpProperty": {
+ "type": "string",
+ "description": "Custom rdp property of HostPool."
+ },
+ "maxSessionLimit": {
+ "type": "integer",
+ "description": "The max session limit of HostPool."
+ },
+ "loadBalancerType": {
+ "enum": [
+ "BreadthFirst",
+ "DepthFirst",
+ "Persistent"
+ ],
+ "x-ms-enum": {
+ "name": "LoadBalancerType",
+ "modelAsString": true
+ },
+ "type": "string",
+ "description": "The type of the load balancer.",
+ "x-nullable": false
+ },
+ "ring": {
+ "type": "integer",
+ "description": "The ring number of HostPool."
+ },
+ "validationEnvironment": {
+ "type": "boolean",
+ "description": "Is validation environment."
+ },
+ "registrationInfo": {
+ "$ref": "#/definitions/RegistrationInfo",
+ "description": "The registration info of HostPool."
+ },
+ "vmTemplate": {
+ "type": "string",
+ "description": "VM template for sessionhosts configuration within hostpool."
+ },
+ "applicationGroupReferences": {
+ "readOnly": true,
+ "type": "array",
+ "description": "List of applicationGroup links.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ssoContext": {
+ "type": "string",
+ "description": "Path to keyvault containing ssoContext secret."
+ },
+ "ssoadfsAuthority": {
+ "type": "string",
+ "description": "URL to customer ADFS server for signing WVD SSO certificates."
+ },
+ "ssoClientId": {
+ "type": "string",
+ "description": "ClientId for the registered Relying Party used to issue WVD SSO certificates."
+ },
+ "ssoClientSecretKeyVaultPath": {
+ "type": "string",
+ "description": "Path to Azure KeyVault storing the secret used for communication to ADFS."
+ },
+ "ssoSecretType": {
+ "enum": [
+ "SharedKey",
+ "Certificate",
+ "SharedKeyInKeyVault",
+ "CertificateInKeyVault"
+ ],
+ "x-ms-enum": {
+ "name": "SSOSecretType",
+ "modelAsString": true
+ },
+ "type": "string",
+ "description": "The type of single sign on Secret Type.",
+ "x-nullable": false
+ },
+ "preferredAppGroupType": {
+ "enum": [
+ "None",
+ "Desktop",
+ "RailApplications"
+ ],
+ "x-ms-enum": {
+ "name": "PreferredAppGroupType",
+ "modelAsString": true
+ },
+ "type": "string",
+ "description": "The type of preferred application group type, default to Desktop Application Group",
+ "x-nullable": false
+ },
+ "startVMOnConnect": {
+ "type": "boolean",
+ "description": "The flag to turn on/off StartVMOnConnect feature."
+ }
+ }
+ },
+ "HostPoolPatch": {
+ "type": "object",
+ "description": "HostPool properties that can be patched.",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "tags to be updated"
+ },
+ "properties": {
+ "description": "HostPool properties that can be patched.",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/HostPoolPatchProperties"
+ }
+ }
+ },
+ "HostPoolPatchProperties": {
+ "description": "Properties of HostPool.",
+ "type": "object",
+ "properties": {
+ "friendlyName": {
+ "type": "string",
+ "description": "Friendly name of HostPool."
+ },
+ "description": {
+ "type": "string",
+ "description": "Description of HostPool."
+ },
+ "customRdpProperty": {
+ "type": "string",
+ "description": "Custom rdp property of HostPool."
+ },
+ "maxSessionLimit": {
+ "type": "integer",
+ "description": "The max session limit of HostPool."
+ },
+ "personalDesktopAssignmentType": {
+ "enum": [
+ "Automatic",
+ "Direct"
+ ],
+ "x-ms-enum": {
+ "name": "PersonalDesktopAssignmentType",
+ "modelAsString": true
+ },
+ "type": "string",
+ "description": "PersonalDesktopAssignment type for HostPool."
+ },
+ "loadBalancerType": {
+ "enum": [
+ "BreadthFirst",
+ "DepthFirst",
+ "Persistent"
+ ],
+ "x-ms-enum": {
+ "name": "LoadBalancerType",
+ "modelAsString": true
+ },
+ "type": "string",
+ "description": "The type of the load balancer."
+ },
+ "ring": {
+ "type": "integer",
+ "description": "The ring number of HostPool."
+ },
+ "validationEnvironment": {
+ "type": "boolean",
+ "description": "Is validation environment."
+ },
+ "registrationInfo": {
+ "$ref": "#/definitions/RegistrationInfoPatch",
+ "description": "The registration info of HostPool."
+ },
+ "vmTemplate": {
+ "type": "string",
+ "description": "VM template for sessionhosts configuration within hostpool."
+ },
+ "ssoContext": {
+ "type": "string",
+ "description": "Path to keyvault containing ssoContext secret."
+ },
+ "ssoadfsAuthority": {
+ "type": "string",
+ "description": "URL to customer ADFS server for signing WVD SSO certificates."
+ },
+ "ssoClientId": {
+ "type": "string",
+ "description": "ClientId for the registered Relying Party used to issue WVD SSO certificates."
+ },
+ "ssoClientSecretKeyVaultPath": {
+ "type": "string",
+ "description": "Path to Azure KeyVault storing the secret used for communication to ADFS."
+ },
+ "ssoSecretType": {
+ "enum": [
+ "SharedKey",
+ "Certificate",
+ "SharedKeyInKeyVault",
+ "CertificateInKeyVault"
+ ],
+ "x-ms-enum": {
+ "name": "SSOSecretType",
+ "modelAsString": true
+ },
+ "type": "string",
+ "description": "The type of single sign on Secret Type.",
+ "x-nullable": false
+ },
+ "preferredAppGroupType": {
+ "enum": [
+ "None",
+ "Desktop",
+ "RailApplications"
+ ],
+ "x-ms-enum": {
+ "name": "PreferredAppGroupType",
+ "modelAsString": true
+ },
+ "type": "string",
+ "description": "The type of preferred application group type, default to Desktop Application Group"
+ },
+ "startVMOnConnect": {
+ "type": "boolean",
+ "description": "The flag to turn on/off StartVMOnConnect feature."
+ }
+ }
+ },
+ "RegistrationInfo": {
+ "description": "Represents a RegistrationInfo definition.",
+ "type": "object",
+ "properties": {
+ "expirationTime": {
+ "format": "date-time",
+ "type": "string",
+ "description": "Expiration time of registration token."
+ },
+ "token": {
+ "type": "string",
+ "description": "The registration token base64 encoded string."
+ },
+ "registrationTokenOperation": {
+ "enum": [
+ "Delete",
+ "None",
+ "Update"
+ ],
+ "x-ms-enum": {
+ "name": "RegistrationTokenOperation",
+ "modelAsString": true
+ },
+ "type": "string",
+ "description": "The type of resetting the token.",
+ "x-nullable": false
+ }
+ }
+ },
+ "RegistrationInfoPatch": {
+ "description": "Represents a RegistrationInfo definition.",
+ "type": "object",
+ "properties": {
+ "expirationTime": {
+ "format": "date-time",
+ "type": "string",
+ "description": "Expiration time of registration token."
+ },
+ "registrationTokenOperation": {
+ "enum": [
+ "Delete",
+ "None",
+ "Update"
+ ],
+ "x-ms-enum": {
+ "name": "RegistrationTokenOperation",
+ "modelAsString": true
+ },
+ "type": "string",
+ "description": "The type of resetting the token."
+ }
+ }
+ },
+ "SendMessage": {
+ "description": "Represents message sent to a UserSession.",
+ "type": "object",
+ "properties": {
+ "messageTitle": {
+ "type": "string",
+ "description": "Title of message."
+ },
+ "messageBody": {
+ "type": "string",
+ "description": "Body of message."
+ }
+ }
+ },
+ "HostPoolList": {
+ "type": "object",
+ "title": "HostPoolList",
+ "description": "List of HostPool definitions.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "description": "List of HostPool definitions.",
+ "items": {
+ "$ref": "#/definitions/HostPool"
+ }
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Link to the next page of results."
+ }
+ }
+ },
+ "MSIXPackage": {
+ "description": "Schema for MSIX Package properties.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/Resource"
+ }
+ ],
+ "required": [
+ "properties"
+ ],
+ "properties": {
+ "properties": {
+ "description": "Detailed properties for MSIX Package",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/MSIXPackageProperties",
+ "x-nullable": false
+ }
+ }
+ },
+ "MSIXPackageProperties": {
+ "description": "Schema for MSIX Package properties.",
+ "type": "object",
+ "properties": {
+ "imagePath": {
+ "type": "string",
+ "description": "VHD/CIM image path on Network Share.",
+ "x-nullable": false
+ },
+ "packageName": {
+ "type": "string",
+ "description": "Package Name from appxmanifest.xml. ",
+ "x-nullable": false
+ },
+ "packageFamilyName": {
+ "type": "string",
+ "description": "Package Family Name from appxmanifest.xml. Contains Package Name and Publisher name. ",
+ "x-nullable": false
+ },
+ "displayName": {
+ "type": "string",
+ "description": "User friendly Name to be displayed in the portal. ",
+ "x-nullable": true
+ },
+ "packageRelativePath": {
+ "type": "string",
+ "description": "Relative Path to the package inside the image. ",
+ "x-nullable": false
+ },
+ "isRegularRegistration": {
+ "type": "boolean",
+ "description": "Specifies how to register Package in feed.",
+ "x-nullable": false
+ },
+ "isActive": {
+ "type": "boolean",
+ "description": "Make this version of the package the active one across the hostpool. ",
+ "x-nullable": false
+ },
+ "packageDependencies": {
+ "type": "array",
+ "description": "List of package dependencies. ",
+ "items": {
+ "$ref": "#/definitions/MsixPackageDependencies"
+ }
+ },
+ "version": {
+ "type": "string",
+ "description": "Package Version found in the appxmanifest.xml. ",
+ "x-nullable": false
+ },
+ "lastUpdated": {
+ "format": "date-time",
+ "type": "string",
+ "description": "Date Package was last updated, found in the appxmanifest.xml. ",
+ "x-nullable": false
+ },
+ "packageApplications": {
+ "type": "array",
+ "description": "List of package applications. ",
+ "items": {
+ "$ref": "#/definitions/MsixPackageApplications"
+ },
+ "x-nullable": false
+ }
+ }
+ },
+ "MSIXPackagePatch": {
+ "type": "object",
+ "description": "MSIX Package properties that can be patched.",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "description": "Detailed properties for MSIX Package",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/MSIXPackagePatchProperties"
+ }
+ }
+ },
+ "MSIXPackagePatchProperties": {
+ "description": "MSIX Package properties that can be patched.",
+ "type": "object",
+ "properties": {
+ "isActive": {
+ "type": "boolean",
+ "description": "Set a version of the package to be active across hostpool. "
+ },
+ "isRegularRegistration": {
+ "type": "boolean",
+ "description": "Set Registration mode. Regular or Delayed."
+ },
+ "displayName": {
+ "type": "string",
+ "description": "Display name for MSIX Package."
+ }
+ }
+ },
+ "MsixPackageApplications": {
+ "description": "Schema for MSIX Package Application properties.",
+ "type": "object",
+ "properties": {
+ "appId": {
+ "type": "string",
+ "description": "Package Application Id, found in appxmanifest.xml.",
+ "x-nullable": false
+ },
+ "description": {
+ "type": "string",
+ "description": "Description of Package Application.",
+ "x-nullable": false
+ },
+ "appUserModelID": {
+ "type": "string",
+ "description": "Used to activate Package Application. Consists of Package Name and ApplicationID. Found in appxmanifest.xml.",
+ "x-nullable": false
+ },
+ "friendlyName": {
+ "type": "string",
+ "description": "User friendly name.",
+ "x-nullable": false
+ },
+ "iconImageName": {
+ "type": "string",
+ "description": "User friendly name.",
+ "x-nullable": false
+ },
+ "rawIcon": {
+ "type": "string",
+ "format": "byte",
+ "description": "the icon a 64 bit string as a byte array."
+ },
+ "rawPng": {
+ "type": "string",
+ "format": "byte",
+ "description": "the icon a 64 bit string as a byte array."
+ }
+ }
+ },
+ "MsixPackageDependencies": {
+ "description": "Schema for MSIX Package Dependencies properties.",
+ "type": "object",
+ "properties": {
+ "dependencyName": {
+ "type": "string",
+ "description": "Name of package dependency.",
+ "x-nullable": false
+ },
+ "publisher": {
+ "type": "string",
+ "description": "Name of dependency publisher.",
+ "x-nullable": false
+ },
+ "minVersion": {
+ "type": "string",
+ "description": "Dependency version required.",
+ "x-nullable": false
+ }
+ }
+ },
+ "MSIXPackageList": {
+ "type": "object",
+ "title": "MsixPackageList",
+ "description": "List of MSIX Package definitions.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "description": "List of MSIX Package definitions.",
+ "items": {
+ "$ref": "#/definitions/MSIXPackage"
+ }
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Link to the next page of results."
+ }
+ }
+ },
+ "Application": {
+ "description": "Schema for Application properties.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/Resource"
+ }
+ ],
+ "required": [
+ "properties"
+ ],
+ "properties": {
+ "properties": {
+ "description": "Detailed properties for Application",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ApplicationProperties",
+ "x-nullable": false
+ }
+ }
+ },
+ "ApplicationProperties": {
+ "description": "Schema for Application properties.",
+ "type": "object",
+ "required": [
+ "commandLineSetting"
+ ],
+ "properties": {
+ "description": {
+ "type": "string",
+ "description": "Description of Application."
+ },
+ "friendlyName": {
+ "type": "string",
+ "description": "Friendly name of Application."
+ },
+ "filePath": {
+ "type": "string",
+ "description": "Specifies a path for the executable file for the application."
+ },
+ "msixPackageFamilyName": {
+ "type": "string",
+ "description": "Specifies the package family name for MSIX applications",
+ "x-nullable": true,
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
+ },
+ "msixPackageApplicationId": {
+ "type": "string",
+ "description": "Specifies the package application Id for MSIX applications",
+ "x-nullable": true,
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
+ },
+ "applicationType": {
+ "enum": [
+ "InBuilt",
+ "MsixApplication"
+ ],
+ "x-ms-enum": {
+ "name": "RemoteApplicationType",
+ "modelAsString": true
+ },
+ "type": "string",
+ "description": "Resource Type of Application.",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
+ },
+ "commandLineSetting": {
+ "enum": [
+ "DoNotAllow",
+ "Allow",
+ "Require"
+ ],
+ "x-ms-enum": {
+ "name": "CommandLineSetting",
+ "modelAsString": true
+ },
+ "type": "string",
+ "description": "Specifies whether this published application can be launched with command line arguments provided by the client, command line arguments specified at publish time, or no command line arguments at all.",
+ "x-nullable": false
+ },
+ "commandLineArguments": {
+ "type": "string",
+ "description": "Command Line Arguments for Application."
+ },
+ "showInPortal": {
+ "type": "boolean",
+ "description": "Specifies whether to show the RemoteApp program in the RD Web Access server."
+ },
+ "iconPath": {
+ "type": "string",
+ "description": "Path to icon."
+ },
+ "iconIndex": {
+ "type": "integer",
+ "description": "Index of the icon."
+ },
+ "iconHash": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Hash of the icon."
+ },
+ "iconContent": {
+ "readOnly": true,
+ "type": "string",
+ "format": "byte",
+ "description": "the icon a 64 bit string as a byte array."
+ }
+ }
+ },
+ "ApplicationList": {
+ "type": "object",
+ "title": "ApplicationList",
+ "description": "List of Application definitions.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "description": "List of Application definitions.",
+ "items": {
+ "$ref": "#/definitions/Application"
+ }
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Link to the next page of results."
+ }
+ }
+ },
+ "ApplicationPatch": {
+ "type": "object",
+ "description": "Application properties that can be patched.",
+ "properties": {
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "tags to be updated"
+ },
+ "properties": {
+ "description": "Detailed properties for Application",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ApplicationPatchProperties"
+ }
+ }
+ },
+ "ApplicationPatchProperties": {
+ "description": "Application properties that can be patched.",
+ "type": "object",
+ "properties": {
+ "description": {
+ "type": "string",
+ "description": "Description of Application."
+ },
+ "friendlyName": {
+ "type": "string",
+ "description": "Friendly name of Application."
+ },
+ "filePath": {
+ "type": "string",
+ "description": "Specifies a path for the executable file for the application."
+ },
+ "commandLineSetting": {
+ "enum": [
+ "DoNotAllow",
+ "Allow",
+ "Require"
+ ],
+ "x-ms-enum": {
+ "name": "CommandLineSetting",
+ "modelAsString": true
+ },
+ "type": "string",
+ "description": "Specifies whether this published application can be launched with command line arguments provided by the client, command line arguments specified at publish time, or no command line arguments at all."
+ },
+ "commandLineArguments": {
+ "type": "string",
+ "description": "Command Line Arguments for Application."
+ },
+ "showInPortal": {
+ "type": "boolean",
+ "description": "Specifies whether to show the RemoteApp program in the RD Web Access server."
+ },
+ "iconPath": {
+ "type": "string",
+ "description": "Path to icon."
+ },
+ "iconIndex": {
+ "type": "integer",
+ "description": "Index of the icon."
+ },
+ "msixPackageFamilyName": {
+ "type": "string",
+ "description": "Specifies the package family name for MSIX applications",
+ "x-nullable": true
+ },
+ "msixPackageApplicationId": {
+ "type": "string",
+ "description": "Specifies the package application Id for MSIX applications",
+ "x-nullable": true
+ },
+ "applicationType": {
+ "enum": [
+ "InBuilt",
+ "MsixApplication"
+ ],
+ "x-ms-enum": {
+ "name": "RemoteApplicationType",
+ "modelAsString": true
+ },
+ "type": "string",
+ "description": "Resource Type of Application."
+ }
+ }
+ },
+ "Desktop": {
+ "description": "Schema for Desktop properties.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "description": "Detailed properties for Desktop",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/DesktopProperties"
+ }
+ }
+ },
+ "DesktopProperties": {
+ "description": "Schema for Desktop properties.",
+ "type": "object",
+ "properties": {
+ "description": {
+ "type": "string",
+ "description": "Description of Desktop."
+ },
+ "friendlyName": {
+ "type": "string",
+ "description": "Friendly name of Desktop."
+ },
+ "iconHash": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Hash of the icon."
+ },
+ "iconContent": {
+ "readOnly": true,
+ "type": "string",
+ "format": "byte",
+ "description": "The icon a 64 bit string as a byte array."
+ }
+ }
+ },
+ "DesktopList": {
+ "type": "object",
+ "title": "DesktopList",
+ "description": "List of Desktop definitions.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "description": "List of Desktop definitions.",
+ "items": {
+ "$ref": "#/definitions/Desktop"
+ }
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Link to the next page of results."
+ }
+ }
+ },
+ "DesktopPatch": {
+ "type": "object",
+ "description": "Desktop properties that can be patched.",
+ "properties": {
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "tags to be updated"
+ },
+ "properties": {
+ "description": "Detailed properties for Desktop",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/DesktopPatchProperties"
+ }
+ }
+ },
+ "DesktopPatchProperties": {
+ "description": "Desktop properties that can be patched.",
+ "type": "object",
+ "properties": {
+ "description": {
+ "type": "string",
+ "description": "Description of Desktop."
+ },
+ "friendlyName": {
+ "type": "string",
+ "description": "Friendly name of Desktop."
+ }
+ }
+ },
+ "StartMenuItemProperties": {
+ "description": "Schema for StartMenuItem properties.",
+ "type": "object",
+ "properties": {
+ "appAlias": {
+ "type": "string",
+ "description": "Alias of StartMenuItem."
+ },
+ "friendlyName": {
+ "type": "string",
+ "description": "Friendly name of StartMenuItem."
+ },
+ "filePath": {
+ "type": "string",
+ "description": "Path to the file of StartMenuItem."
+ },
+ "commandLineArguments": {
+ "type": "string",
+ "description": "Command line arguments for StartMenuItem."
+ },
+ "iconPath": {
+ "type": "string",
+ "description": "Path to the icon."
+ },
+ "iconIndex": {
+ "type": "integer",
+ "description": "Index of the icon."
+ }
+ }
+ },
+ "StartMenuItem": {
+ "type": "object",
+ "description": "Represents a StartMenuItem definition.",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "description": "Detailed properties for StartMenuItem",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/StartMenuItemProperties"
+ }
+ }
+ },
+ "StartMenuItemList": {
+ "type": "object",
+ "title": "StartMenuItemList",
+ "description": "List of StartMenuItem definitions.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "description": "List of StartMenuItem definitions.",
+ "items": {
+ "$ref": "#/definitions/StartMenuItem"
+ }
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Link to the next page of results."
+ }
+ }
+ },
+ "ExpandMsixImageProperties": {
+ "description": "Schema for Expand MSIX Image properties.",
+ "type": "object",
+ "properties": {
+ "packageAlias": {
+ "type": "string",
+ "description": "Alias of MSIX Package."
+ },
+ "imagePath": {
+ "type": "string",
+ "description": "VHD/CIM image path on Network Share.",
+ "x-nullable": false
+ },
+ "packageName": {
+ "type": "string",
+ "description": "Package Name from appxmanifest.xml. ",
+ "x-nullable": false
+ },
+ "packageFamilyName": {
+ "type": "string",
+ "description": "Package Family Name from appxmanifest.xml. Contains Package Name and Publisher name. ",
+ "x-nullable": false
+ },
+ "packageFullName": {
+ "type": "string",
+ "description": "Package Full Name from appxmanifest.xml. ",
+ "x-nullable": false
+ },
+ "displayName": {
+ "type": "string",
+ "description": "User friendly Name to be displayed in the portal. ",
+ "x-nullable": true
+ },
+ "packageRelativePath": {
+ "type": "string",
+ "description": "Relative Path to the package inside the image. ",
+ "x-nullable": false
+ },
+ "isRegularRegistration": {
+ "type": "boolean",
+ "description": "Specifies how to register Package in feed.",
+ "x-nullable": false
+ },
+ "isActive": {
+ "type": "boolean",
+ "description": "Make this version of the package the active one across the hostpool. ",
+ "x-nullable": false
+ },
+ "packageDependencies": {
+ "type": "array",
+ "description": "List of package dependencies. ",
+ "items": {
+ "$ref": "#/definitions/MsixPackageDependencies"
+ },
+ "x-nullable": true
+ },
+ "version": {
+ "type": "string",
+ "description": "Package Version found in the appxmanifest.xml. ",
+ "x-nullable": false
+ },
+ "lastUpdated": {
+ "format": "date-time",
+ "type": "string",
+ "description": "Date Package was last updated, found in the appxmanifest.xml. ",
+ "x-nullable": false
+ },
+ "packageApplications": {
+ "type": "array",
+ "description": "List of package applications. ",
+ "items": {
+ "$ref": "#/definitions/MsixPackageApplications"
+ },
+ "x-nullable": false
+ }
+ }
+ },
+ "ExpandMsixImage": {
+ "type": "object",
+ "description": "Represents the definition of contents retrieved after expanding the MSIX Image. ",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "description": "Detailed properties for ExpandMsixImage",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ExpandMsixImageProperties"
+ }
+ }
+ },
+ "ExpandMsixImageList": {
+ "type": "object",
+ "title": "ExpandMsixImageList",
+ "description": "List of MSIX package properties retrieved from MSIX Image expansion.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "description": "List of MSIX package properties from give MSIX Image.",
+ "items": {
+ "$ref": "#/definitions/ExpandMsixImage"
+ }
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Link to the next page of results."
+ }
+ }
+ },
+ "MSIXImageURI": {
+ "description": "Represents URI referring to MSIX Image",
+ "type": "object",
+ "properties": {
+ "uri": {
+ "type": "string",
+ "description": "URI to Image"
+ }
+ }
+ },
+ "SessionHost": {
+ "type": "object",
+ "description": "Represents a SessionHost definition.",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "description": "Detailed properties for SessionHost",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/SessionHostProperties"
+ }
+ }
+ },
+ "SessionHostProperties": {
+ "description": "Schema for SessionHost properties.",
+ "type": "object",
+ "properties": {
+ "lastHeartBeat": {
+ "format": "date-time",
+ "type": "string",
+ "description": "Last heart beat from SessionHost."
+ },
+ "sessions": {
+ "type": "integer",
+ "description": "Number of sessions on SessionHost."
+ },
+ "agentVersion": {
+ "type": "string",
+ "description": "Version of agent on SessionHost."
+ },
+ "allowNewSession": {
+ "type": "boolean",
+ "description": "Allow a new session."
+ },
+ "virtualMachineId": {
+ "type": "string",
+ "description": "Virtual Machine Id of SessionHost's underlying virtual machine.",
+ "readOnly": true
+ },
+ "resourceId": {
+ "type": "string",
+ "description": "Resource Id of SessionHost's underlying virtual machine.",
+ "readOnly": true
+ },
+ "assignedUser": {
+ "type": "string",
+ "description": "User assigned to SessionHost."
+ },
+ "status": {
+ "enum": [
+ "Available",
+ "Unavailable",
+ "Shutdown",
+ "Disconnected",
+ "Upgrading",
+ "UpgradeFailed"
+ ],
+ "x-ms-enum": {
+ "name": "Status",
+ "modelAsString": true
+ },
+ "type": "string",
+ "description": "Status for a SessionHost."
+ },
+ "statusTimestamp": {
+ "format": "date-time",
+ "type": "string",
+ "description": "The timestamp of the status.",
+ "readOnly": true
+ },
+ "osVersion": {
+ "type": "string",
+ "description": "The version of the OS on the session host."
+ },
+ "sxSStackVersion": {
+ "type": "string",
+ "description": "The version of the side by side stack on the session host."
+ },
+ "updateState": {
+ "enum": [
+ "Initial",
+ "Pending",
+ "Started",
+ "Succeeded",
+ "Failed"
+ ],
+ "x-ms-enum": {
+ "name": "UpdateState",
+ "modelAsString": true
+ },
+ "type": "string",
+ "description": "Update state of a SessionHost."
+ },
+ "lastUpdateTime": {
+ "format": "date-time",
+ "type": "string",
+ "description": "The timestamp of the last update.",
+ "readOnly": true
+ },
+ "updateErrorMessage": {
+ "type": "string",
+ "description": "The error message."
+ }
+ }
+ },
+ "SessionHostPatch": {
+ "type": "object",
+ "description": "SessionHost properties that can be patched.",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "description": "Detailed properties for SessionHost",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/SessionHostPatchProperties"
+ }
+ }
+ },
+ "SessionHostPatchProperties": {
+ "description": "SessionHost properties that can be patched.",
+ "type": "object",
+ "properties": {
+ "allowNewSession": {
+ "type": "boolean",
+ "description": "Allow a new session."
+ },
+ "assignedUser": {
+ "type": "string",
+ "description": "User assigned to SessionHost."
+ }
+ }
+ },
+ "SessionHostList": {
+ "type": "object",
+ "title": "SessionHostList",
+ "description": "List of SessionHost definitions.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "description": "List of SessionHost definitions.",
+ "items": {
+ "$ref": "#/definitions/SessionHost"
+ }
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Link to the next page of results."
+ }
+ }
+ },
+ "UserSession": {
+ "type": "object",
+ "description": "Represents a UserSession definition.",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "description": "Detailed properties for UserSession",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/UserSessionProperties"
+ }
+ }
+ },
+ "UserSessionProperties": {
+ "description": "Schema for UserSession properties.",
+ "type": "object",
+ "properties": {
+ "userPrincipalName": {
+ "type": "string",
+ "description": "The user principal name."
+ },
+ "applicationType": {
+ "enum": [
+ "RemoteApp",
+ "Desktop"
+ ],
+ "x-ms-enum": {
+ "name": "ApplicationType",
+ "modelAsString": true
+ },
+ "type": "string",
+ "description": "Application type of application."
+ },
+ "sessionState": {
+ "enum": [
+ "Unknown",
+ "Active",
+ "Disconnected",
+ "Pending",
+ "LogOff",
+ "UserProfileDiskMounted"
+ ],
+ "x-ms-enum": {
+ "name": "SessionState",
+ "modelAsString": true
+ },
+ "type": "string",
+ "description": "State of user session."
+ },
+ "activeDirectoryUserName": {
+ "type": "string",
+ "description": "The active directory user name."
+ },
+ "createTime": {
+ "format": "date-time",
+ "type": "string",
+ "description": "The timestamp of the user session create."
+ }
+ }
+ },
+ "UserSessionList": {
+ "type": "object",
+ "title": "UserSessionList",
+ "description": "List of UserSession definitions.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "description": "List of UserSession definitions.",
+ "items": {
+ "$ref": "#/definitions/UserSession"
+ }
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Link to the next page of results."
+ }
+ }
+ }
+ },
+ "parameters": {
+ "HostPoolNameParameter": {
+ "name": "hostPoolName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the host pool within the specified resource group",
+ "maxLength": 24,
+ "minLength": 3,
+ "x-ms-parameter-location": "method"
+ },
+ "MSIXPackageFullNameParameter": {
+ "name": "msixPackageFullName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The version specific package full name of the MSIX package within specified hostpool",
+ "maxLength": 100,
+ "minLength": 3,
+ "x-ms-parameter-location": "method"
+ },
+ "ApplicationGroupNameParameter": {
+ "name": "applicationGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the application group",
+ "maxLength": 24,
+ "minLength": 3,
+ "x-ms-parameter-location": "method"
+ },
+ "ApplicationNameParameter": {
+ "name": "applicationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the application within the specified application group",
+ "maxLength": 24,
+ "minLength": 3,
+ "x-ms-parameter-location": "method"
+ },
+ "DesktopNameParameter": {
+ "name": "desktopName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the desktop within the specified desktop group",
+ "maxLength": 24,
+ "minLength": 3,
+ "x-ms-parameter-location": "method"
+ },
+ "WorkspaceNameParameter": {
+ "name": "workspaceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the workspace",
+ "maxLength": 24,
+ "minLength": 3,
+ "x-ms-parameter-location": "method"
+ },
+ "SessionHostNameParameter": {
+ "name": "sessionHostName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the session host within the specified host pool",
+ "maxLength": 48,
+ "minLength": 3,
+ "x-ms-parameter-location": "method"
+ },
+ "UserSessionIdParameter": {
+ "name": "userSessionId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the user session within the specified session host",
+ "maxLength": 24,
+ "minLength": 1,
+ "x-ms-parameter-location": "method"
+ },
+ "StartMenuItemNameParameter": {
+ "name": "startMenuItemName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the start menu item within the specified host pool",
+ "maxLength": 24,
+ "minLength": 3,
+ "x-ms-parameter-location": "method"
+ },
+ "MSIXImageURIParameter": {
+ "name": "msixImageURI",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "URI to the MSIX Image (VHD/CIM).",
+ "maxLength": 100,
+ "minLength": 3,
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/ApplicationGroup_Create.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/ApplicationGroup_Create.json
new file mode 100644
index 000000000000..61e724fc811a
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/ApplicationGroup_Create.json
@@ -0,0 +1,61 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "applicationGroupName": "applicationGroup1",
+ "api-version": "2020-11-02-preview",
+ "applicationGroup": {
+ "location": "centralus",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly",
+ "hostPoolArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
+ "applicationGroupType": "RemoteApp"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "applicationGroup1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1",
+ "type": "Microsoft.DesktopVirtualization/applicationGroups",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly",
+ "hostPoolArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
+ "workspaceArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
+ "applicationGroupType": "RemoteApp"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "applicationGroup1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1",
+ "type": "Microsoft.DesktopVirtualization/applicationGroups",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly",
+ "hostPoolArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
+ "workspaceArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
+ "applicationGroupType": "RemoteApp"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/ApplicationGroup_Delete.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/ApplicationGroup_Delete.json
new file mode 100644
index 000000000000..806854821f87
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/ApplicationGroup_Delete.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "applicationGroupName": "applicationGroup1",
+ "api-version": "2020-11-02-preview"
+ },
+ "responses": {
+ "200": {
+ "name": "applicationGroup1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1",
+ "type": "Microsoft.DesktopVirtualization/applicationGroups",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly",
+ "hostPoolArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
+ "workspaceArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
+ "applicationGroupType": "RemoteApp"
+ }
+ },
+ "204": {}
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/ApplicationGroup_Get.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/ApplicationGroup_Get.json
new file mode 100644
index 000000000000..f0a625c80780
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/ApplicationGroup_Get.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "applicationGroupName": "applicationGroup1",
+ "api-version": "2020-11-02-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "applicationGroup1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1",
+ "type": "Microsoft.DesktopVirtualization/applicationGroups",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly",
+ "hostPoolArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
+ "workspaceArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
+ "applicationGroupType": "RemoteApp"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/ApplicationGroup_ListByResourceGroup.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/ApplicationGroup_ListByResourceGroup.json
new file mode 100644
index 000000000000..76aed4faa6a7
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/ApplicationGroup_ListByResourceGroup.json
@@ -0,0 +1,50 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "api-version": "2020-11-02-preview",
+ "$filter": "applicationGroupType eq 'RailApplication'"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "applicationGroup1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1",
+ "type": "Microsoft.DesktopVirtualization/applicationGroups",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly",
+ "hostPoolArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
+ "workspaceArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
+ "applicationGroupType": "RemoteApp"
+ }
+ },
+ {
+ "name": "applicationGroup2",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup2",
+ "type": "Microsoft.DesktopVirtualization/applicationGroups",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly",
+ "hostPoolArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
+ "workspaceArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
+ "applicationGroupType": "RemoteApp"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/ApplicationGroup_ListBySubscription.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/ApplicationGroup_ListBySubscription.json
new file mode 100644
index 000000000000..c102693ff0ca
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/ApplicationGroup_ListBySubscription.json
@@ -0,0 +1,49 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "api-version": "2020-11-02-preview",
+ "$filter": "applicationGroupType eq 'RailApplication'"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "applicationGroup1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1",
+ "type": "Microsoft.DesktopVirtualization/applicationGroups",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly",
+ "hostPoolArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
+ "workspaceArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
+ "applicationGroupType": "RemoteApp"
+ }
+ },
+ {
+ "name": "applicationGroup2",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup2",
+ "type": "Microsoft.DesktopVirtualization/applicationGroups",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly",
+ "hostPoolArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
+ "workspaceArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
+ "applicationGroupType": "RemoteApp"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/ApplicationGroup_Update.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/ApplicationGroup_Update.json
new file mode 100644
index 000000000000..b465981a330a
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/ApplicationGroup_Update.json
@@ -0,0 +1,39 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "applicationGroupName": "applicationGroup1",
+ "api-version": "2020-11-02-preview",
+ "applicationGroup": {
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "applicationGroup1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1",
+ "type": "Microsoft.DesktopVirtualization/applicationGroups",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly",
+ "hostPoolArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
+ "workspaceArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
+ "applicationGroupType": "RemoteApp"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/Application_Create.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/Application_Create.json
new file mode 100644
index 000000000000..8f736088f755
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/Application_Create.json
@@ -0,0 +1,67 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "applicationGroupName": "applicationGroup1",
+ "applicationName": "application1",
+ "api-version": "2020-11-02-preview",
+ "application": {
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly",
+ "filePath": "path",
+ "commandLineSetting": "Allow",
+ "commandLineArguments": "arguments",
+ "showInPortal": true,
+ "iconPath": "icon",
+ "iconIndex": 1
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "applicationGroup1/application1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1/applications/application1",
+ "type": "Microsoft.DesktopVirtualization/applicationGroups/applications",
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly",
+ "filePath": "path",
+ "commandLineSetting": "Allow",
+ "commandLineArguments": "arguments",
+ "showInPortal": true,
+ "iconPath": "icon",
+ "iconIndex": 1,
+ "iconHash": "bEQ1n2HysrGxCDvgt4bfOtkET8ydzh5SXGM0KGTBPVc",
+ "iconContent": "AAABAAgAAAAAAAEAIAA7MwAAhgAAAEBAAAABACAAKEIAAMEzAAAwMAAAAQAgAKglAADpdQAAKCgAAAEA...",
+ "applicationType": "InBuilt",
+ "msixPackageFamilyName": null,
+ "msixPackageApplicationId": null
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "applicationGroup1/application1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1/applications/application1",
+ "type": "Microsoft.DesktopVirtualization/applicationGroups/applications",
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly",
+ "filePath": "path",
+ "commandLineSetting": "Allow",
+ "commandLineArguments": "arguments",
+ "showInPortal": true,
+ "iconPath": "icon",
+ "iconIndex": 1,
+ "iconHash": "bEQ1n2HysrGxCDvgt4bfOtkET8ydzh5SXGM0KGTBPVc",
+ "iconContent": "AAABAAgAAAAAAAEAIAA7MwAAhgAAAEBAAAABACAAKEIAAMEzAAAwMAAAAQAgAKglAADpdQAAKCgAAAEA...",
+ "applicationType": "InBuilt",
+ "msixPackageFamilyName": null,
+ "msixPackageApplicationId": null
+ }
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/Application_Delete.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/Application_Delete.json
new file mode 100644
index 000000000000..52837d6f04f0
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/Application_Delete.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "applicationGroupName": "applicationGroup1",
+ "applicationName": "application1",
+ "api-version": "2020-11-02-preview"
+ },
+ "responses": {
+ "200": {
+ "name": "applicationGroup1/application1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1/applications/application1",
+ "type": "Microsoft.DesktopVirtualization/applicationGroups/applications",
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly",
+ "filePath": "path",
+ "commandLineSetting": "Allow",
+ "commandLineArguments": "arguments",
+ "showInPortal": true,
+ "iconPath": "icon",
+ "iconIndex": 1,
+ "iconHash": "bEQ1n2HysrGxCDvgt4bfOtkET8ydzh5SXGM0KGTBPVc",
+ "iconContent": "AAABAAgAAAAAAAEAIAA7MwAAhgAAAEBAAAABACAAKEIAAMEzAAAwMAAAAQAgAKglAADpdQAAKCgAAAEA...",
+ "applicationType": "InBuilt",
+ "msixPackageFamilyName": null,
+ "msixPackageApplicationId": null
+ }
+ },
+ "204": {}
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/Application_Get.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/Application_Get.json
new file mode 100644
index 000000000000..f73767d79622
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/Application_Get.json
@@ -0,0 +1,33 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "applicationGroupName": "applicationGroup1",
+ "applicationName": "application1",
+ "api-version": "2020-11-02-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "applicationGroup1/application1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1/applications/application1",
+ "type": "Microsoft.DesktopVirtualization/applicationGroups/applications",
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly",
+ "filePath": "path",
+ "commandLineSetting": "Allow",
+ "commandLineArguments": "arguments",
+ "showInPortal": true,
+ "iconPath": "icon",
+ "iconIndex": 1,
+ "iconHash": "bEQ1n2HysrGxCDvgt4bfOtkET8ydzh5SXGM0KGTBPVc",
+ "iconContent": "AAABAAgAAAAAAAEAIAA7MwAAhgAAAEBAAAABACAAKEIAAMEzAAAwMAAAAQAgAKglAADpdQAAKCgAAAEA...",
+ "applicationType": "InBuilt",
+ "msixPackageFamilyName": null,
+ "msixPackageApplicationId": null
+ }
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/Application_List.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/Application_List.json
new file mode 100644
index 000000000000..0665867265a5
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/Application_List.json
@@ -0,0 +1,56 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "applicationGroupName": "applicationGroup1",
+ "api-version": "2020-11-02-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "applicationGroup1/application1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1/applications/application1",
+ "type": "Microsoft.DesktopVirtualization/applicationGroups/applications",
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly",
+ "filePath": "path",
+ "commandLineSetting": "Allow",
+ "commandLineArguments": "arguments",
+ "showInPortal": true,
+ "iconPath": "icon",
+ "iconIndex": 1,
+ "iconHash": "bEQ1n2HysrGxCDvgt4bfOtkET8ydzh5SXGM0KGTBPVc",
+ "iconContent": "AAABAAgAAAAAAAEAIAA7MwAAhgAAAEBAAAABACAAKEIAAMEzAAAwMAAAAQAgAKglAADpdQAAKCgAAAEA...",
+ "applicationType": "InBuilt",
+ "msixPackageFamilyName": null,
+ "msixPackageApplicationId": null
+ }
+ },
+ {
+ "name": "applicationGroup1/application2",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1/applications/application2",
+ "type": "Microsoft.DesktopVirtualization/applicationGroups/applications",
+ "properties": {
+ "description": "des2",
+ "friendlyName": "friendly",
+ "filePath": "path",
+ "commandLineSetting": "Allow",
+ "commandLineArguments": "arguments",
+ "showInPortal": true,
+ "iconPath": "icon",
+ "iconIndex": 1,
+ "iconHash": "bEQ1n2HysrGxCDvgt4bfOtkET8ydzh5SXGM0KGTBPVc",
+ "iconContent": "AAABAAgAAAAAAAEAIAA7MwAAhgAAAEBAAAABACAAKEIAAMEzAAAwMAAAAQAgAKglAADpdQAAKCgAAAEA...",
+ "applicationType": "InBuilt",
+ "msixPackageFamilyName": null,
+ "msixPackageApplicationId": null
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/Application_Update.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/Application_Update.json
new file mode 100644
index 000000000000..ebccc0e7a78b
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/Application_Update.json
@@ -0,0 +1,48 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "applicationGroupName": "applicationGroup1",
+ "applicationName": "application1",
+ "api-version": "2020-11-02-preview",
+ "application": {
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly",
+ "filePath": "path",
+ "commandLineSetting": "Allow",
+ "commandLineArguments": "arguments",
+ "showInPortal": true,
+ "iconPath": "icon",
+ "iconIndex": 1,
+ "applicationType": "InBuilt",
+ "msixPackageFamilyName": null,
+ "msixPackageApplicationId": null
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "applicationGroup1/application1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1/applications/application1",
+ "type": "Microsoft.DesktopVirtualization/applicationGroups/applications",
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly",
+ "filePath": "path",
+ "commandLineSetting": "Allow",
+ "commandLineArguments": "arguments",
+ "showInPortal": true,
+ "iconPath": "icon",
+ "iconIndex": 1,
+ "iconHash": "bEQ1n2HysrGxCDvgt4bfOtkET8ydzh5SXGM0KGTBPVc",
+ "iconContent": "AAABAAgAAAAAAAEAIAA7MwAAhgAAAEBAAAABACAAKEIAAMEzAAAwMAAAAQAgAKglAADpdQAAKCgAAAEA...",
+ "applicationType": "InBuilt",
+ "msixPackageFamilyName": null,
+ "msixPackageApplicationId": null
+ }
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/Desktop_Get.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/Desktop_Get.json
new file mode 100644
index 000000000000..aec5bd3ded99
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/Desktop_Get.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "applicationGroupName": "applicationGroup1",
+ "desktopName": "SessionDesktop",
+ "api-version": "2020-11-02-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "applicationGroup1/SessionDesktop",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1/applications/SessionDesktop",
+ "type": "Microsoft.DesktopVirtualization/applicationGroups/desktops",
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly",
+ "iconHash": "bEQ1n2HysrGxCDvgt4bfOtkET8ydzh5SXGM0KGTBPVc",
+ "iconContent": "AAABAAgAAAAAAAEAIAA7MwAAhgAAAEBAAAABACAAKEIAAMEzAAAwMAAAAQAgAKglAADpdQAAKCgAAAEA..."
+ }
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/Desktop_List.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/Desktop_List.json
new file mode 100644
index 000000000000..ccb642d7e2df
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/Desktop_List.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "applicationGroupName": "applicationGroup1",
+ "api-version": "2020-11-02-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "applicationGroup1/SessionDesktop",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1/applications/SessionDesktop",
+ "type": "Microsoft.DesktopVirtualization/applicationGroups/desktops",
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly",
+ "iconHash": "bEQ1n2HysrGxCDvgt4bfOtkET8ydzh5SXGM0KGTBPVc",
+ "iconContent": "AAABAAgAAAAAAAEAIAA7MwAAhgAAAEBAAAABACAAKEIAAMEzAAAwMAAAAQAgAKglAADpdQAAKCgAAAEA..."
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/Desktop_Update.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/Desktop_Update.json
new file mode 100644
index 000000000000..a7f349415dea
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/Desktop_Update.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "applicationGroupName": "applicationGroup1",
+ "desktopName": "SessionDesktop",
+ "api-version": "2020-11-02-preview",
+ "desktop": {
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "applicationGroup1/SessionDesktop",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1/desktops/SessionDesktop",
+ "type": "Microsoft.DesktopVirtualization/applicationGroups/desktops",
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly",
+ "iconHash": "bEQ1n2HysrGxCDvgt4bfOtkET8ydzh5SXGM0KGTBPVc",
+ "iconContent": "AAABAAgAAAAAAAEAIAA7MwAAhgAAAEBAAAABACAAKEIAAMEzAAAwMAAAAQAgAKglAADpdQAAKCgAAAEA..."
+ }
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/HostPool_Create.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/HostPool_Create.json
new file mode 100644
index 000000000000..b0264628b0a6
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/HostPool_Create.json
@@ -0,0 +1,110 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "hostPoolName": "hostPool1",
+ "api-version": "2020-11-02-preview",
+ "hostPool": {
+ "location": "centralus",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "properties": {
+ "friendlyName": "friendly",
+ "description": "des1",
+ "hostPoolType": "Pooled",
+ "personalDesktopAssignmentType": "Automatic",
+ "customRdpProperty": null,
+ "maxSessionLimit": 999999,
+ "loadBalancerType": "BreadthFirst",
+ "registrationInfo": {
+ "expirationTime": "2020-10-01T14:01:54.9571247Z",
+ "registrationTokenOperation": "Update"
+ },
+ "vmTemplate": "{json:json}",
+ "ssoContext": "KeyVaultPath",
+ "ssoadfsAuthority": "https://adfs",
+ "ssoClientId": "client",
+ "ssoClientSecretKeyVaultPath": "https://keyvault/secret",
+ "ssoSecretType": "SharedKey",
+ "preferredAppGroupType": "Desktop",
+ "startVMOnConnect": false
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "hostPool1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
+ "type": "/Microsoft.DesktopVirtualization/hostPools",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "friendlyName": "friendly",
+ "description": "des1",
+ "hostPoolType": "Pooled",
+ "personalDesktopAssignmentType": "Automatic",
+ "customRdpProperty": null,
+ "maxSessionLimit": 999999,
+ "loadBalancerType": "BreadthFirst",
+ "validationEnvironment": null,
+ "ring": null,
+ "registrationInfo": {
+ "expirationTime": "2020-10-01T14:01:54.9571247Z",
+ "token": "token",
+ "registrationTokenOperation": "Update"
+ },
+ "vmTemplate": "{json:json}",
+ "ssoContext": "KeyVaultPath",
+ "ssoadfsAuthority": "https://adfs",
+ "ssoClientId": "client",
+ "ssoClientSecretKeyVaultPath": "https://keyvault/secret",
+ "ssoSecretType": "SharedKey",
+ "preferredAppGroupType": "Desktop",
+ "startVMOnConnect": false
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "hostPool1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
+ "type": "/Microsoft.DesktopVirtualization/hostPools",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "friendlyName": "friendly",
+ "description": "des1",
+ "hostPoolType": "Pooled",
+ "personalDesktopAssignmentType": "Automatic",
+ "customRdpProperty": null,
+ "maxSessionLimit": 999999,
+ "loadBalancerType": "BreadthFirst",
+ "validationEnvironment": null,
+ "ring": null,
+ "registrationInfo": {
+ "expirationTime": "2020-10-01T14:01:54.9571247Z",
+ "token": "token",
+ "registrationTokenOperation": "Update"
+ },
+ "vmTemplate": "{json:json}",
+ "ssoContext": "KeyVaultPath",
+ "ssoadfsAuthority": "https://adfs",
+ "ssoClientId": "client",
+ "ssoClientSecretKeyVaultPath": "https://keyvault/secret",
+ "ssoSecretType": "SharedKey",
+ "preferredAppGroupType": "Desktop",
+ "startVMOnConnect": false
+ }
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/HostPool_Delete.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/HostPool_Delete.json
new file mode 100644
index 000000000000..e35a738126f9
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/HostPool_Delete.json
@@ -0,0 +1,45 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "hostPoolName": "hostPool1",
+ "api-version": "2020-11-02-preview",
+ "force": true
+ },
+ "responses": {
+ "200": {
+ "name": "hostPool1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
+ "type": "/Microsoft.DesktopVirtualization/hostPools",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "friendlyName": "friendly",
+ "description": "des1",
+ "hostPoolType": "Pooled",
+ "personalDesktopAssignmentType": "Automatic",
+ "customRdpProperty": null,
+ "maxSessionLimit": 999999,
+ "loadBalancerType": "BreadthFirst",
+ "validationEnvironment": null,
+ "ring": null,
+ "registrationInfo": {
+ "expirationTime": "2008-09-22T14:01:54.9571247Z",
+ "token": "token",
+ "registrationTokenOperation": "Update"
+ },
+ "vmTemplate": "{json:json}",
+ "ssoContext": "KeyVaultPath",
+ "ssoadfsAuthority": "https://adfs",
+ "ssoClientId": "client",
+ "ssoClientSecretKeyVaultPath": "https://keyvault/secret",
+ "ssoSecretType": "SharedKey",
+ "startVMOnConnect": false
+ }
+ },
+ "204": {}
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/HostPool_Get.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/HostPool_Get.json
new file mode 100644
index 000000000000..41784c13c795
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/HostPool_Get.json
@@ -0,0 +1,46 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "hostPoolName": "hostPool1",
+ "api-version": "2020-11-02-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "hostPool1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
+ "type": "/Microsoft.DesktopVirtualization/hostPools",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "friendlyName": "friendly",
+ "description": "des1",
+ "hostPoolType": "Pooled",
+ "personalDesktopAssignmentType": "Automatic",
+ "customRdpProperty": null,
+ "maxSessionLimit": 999999,
+ "loadBalancerType": "BreadthFirst",
+ "validationEnvironment": null,
+ "ring": null,
+ "registrationInfo": {
+ "expirationTime": "2008-09-22T14:01:54.9571247Z",
+ "token": "token",
+ "registrationTokenOperation": "Update"
+ },
+ "vmTemplate": "{json:json}",
+ "ssoContext": "KeyVaultPath",
+ "ssoadfsAuthority": "https://adfs",
+ "ssoClientId": "client",
+ "ssoClientSecretKeyVaultPath": "https://keyvault/secret",
+ "ssoSecretType": "SharedKey",
+ "preferredAppGroupType": "Desktop",
+ "startVMOnConnect": false
+ }
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/HostPool_List.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/HostPool_List.json
new file mode 100644
index 000000000000..7c35020df8ac
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/HostPool_List.json
@@ -0,0 +1,82 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "api-version": "2020-11-02-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "hostPool1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
+ "type": "/Microsoft.DesktopVirtualization/hostPools",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "friendlyName": "friendly",
+ "description": "des1",
+ "hostPoolType": "Pooled",
+ "personalDesktopAssignmentType": "Automatic",
+ "customRdpProperty": null,
+ "maxSessionLimit": 999999,
+ "loadBalancerType": "BreadthFirst",
+ "validationEnvironment": null,
+ "ring": null,
+ "registrationInfo": {
+ "expirationTime": "2008-09-22T14:01:54.9571247Z",
+ "token": "token",
+ "registrationTokenOperation": "Update"
+ },
+ "vmTemplate": "{json:json}",
+ "ssoContext": "KeyVaultPath",
+ "ssoadfsAuthority": "https://adfs",
+ "ssoClientId": "client",
+ "ssoClientSecretKeyVaultPath": "https://keyvault/secret",
+ "ssoSecretType": "SharedKey",
+ "preferredAppGroupType": "Desktop",
+ "startVMOnConnect": false
+ }
+ },
+ {
+ "name": "hostPool2",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool2",
+ "type": "/Microsoft.DesktopVirtualization/hostPools",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "friendlyName": "friendly",
+ "description": "des1",
+ "hostPoolType": "Pooled",
+ "personalDesktopAssignmentType": "Automatic",
+ "customRdpProperty": null,
+ "maxSessionLimit": 999999,
+ "loadBalancerType": "BreadthFirst",
+ "validationEnvironment": null,
+ "ring": null,
+ "registrationInfo": {
+ "expirationTime": "2008-09-22T14:01:54.9571247Z",
+ "token": "token",
+ "registrationTokenOperation": "Update"
+ },
+ "vmTemplate": "{json:json}",
+ "ssoContext": "KeyVaultPath",
+ "ssoadfsAuthority": "https://adfs",
+ "ssoClientId": "client",
+ "ssoClientSecretKeyVaultPath": "https://keyvault/secret",
+ "ssoSecretType": "SharedKey",
+ "preferredAppGroupType": "Desktop",
+ "startVMOnConnect": false
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/HostPool_ListByResourceGroup.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/HostPool_ListByResourceGroup.json
new file mode 100644
index 000000000000..6f29f28ac195
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/HostPool_ListByResourceGroup.json
@@ -0,0 +1,83 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "api-version": "2020-11-02-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "hostPool1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
+ "type": "/Microsoft.DesktopVirtualization/hostPools",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "friendlyName": "friendly",
+ "description": "des1",
+ "hostPoolType": "Pooled",
+ "personalDesktopAssignmentType": "Automatic",
+ "customRdpProperty": null,
+ "maxSessionLimit": 999999,
+ "loadBalancerType": "BreadthFirst",
+ "validationEnvironment": null,
+ "ring": null,
+ "registrationInfo": {
+ "expirationTime": "2008-09-22T14:01:54.9571247Z",
+ "token": "token",
+ "registrationTokenOperation": "Update"
+ },
+ "vmTemplate": "{json:json}",
+ "ssoContext": "KeyVaultPath",
+ "ssoadfsAuthority": "https://adfs",
+ "ssoClientId": "client",
+ "ssoClientSecretKeyVaultPath": "https://keyvault/secret",
+ "ssoSecretType": "SharedKey",
+ "preferredAppGroupType": "Desktop",
+ "startVMOnConnect": false
+ }
+ },
+ {
+ "name": "hostPool2",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool2",
+ "type": "/Microsoft.DesktopVirtualization/hostPools",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "friendlyName": "friendly",
+ "description": "des1",
+ "hostPoolType": "Pooled",
+ "personalDesktopAssignmentType": "Automatic",
+ "customRdpProperty": null,
+ "maxSessionLimit": 999999,
+ "loadBalancerType": "BreadthFirst",
+ "validationEnvironment": null,
+ "ring": null,
+ "registrationInfo": {
+ "expirationTime": "2008-09-22T14:01:54.9571247Z",
+ "token": "token",
+ "registrationTokenOperation": "Update"
+ },
+ "vmTemplate": "{json:json}",
+ "ssoContext": "KeyVaultPath",
+ "ssoadfsAuthority": "https://adfs",
+ "ssoClientId": "client",
+ "ssoClientSecretKeyVaultPath": "https://keyvault/secret",
+ "ssoSecretType": "SharedKey",
+ "preferredAppGroupType": "Desktop",
+ "startVMOnConnect": false
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/HostPool_Update.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/HostPool_Update.json
new file mode 100644
index 000000000000..28366e7e22d6
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/HostPool_Update.json
@@ -0,0 +1,71 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "hostPoolName": "hostPool1",
+ "api-version": "2020-11-02-preview",
+ "hostPool": {
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "properties": {
+ "friendlyName": "friendly",
+ "description": "des1",
+ "customRdpProperty": null,
+ "maxSessionLimit": 999999,
+ "loadBalancerType": "BreadthFirst",
+ "personalDesktopAssignmentType": "Automatic",
+ "registrationInfo": {
+ "expirationTime": "2020-10-01T15:01:54.9571247Z",
+ "registrationTokenOperation": "Update"
+ },
+ "vmTemplate": "{json:json}",
+ "ssoContext": "KeyVaultPath",
+ "ssoadfsAuthority": "https://adfs",
+ "ssoClientId": "client",
+ "ssoClientSecretKeyVaultPath": "https://keyvault/secret",
+ "ssoSecretType": "SharedKey",
+ "startVMOnConnect": false
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "hostPool1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
+ "type": "/Microsoft.DesktopVirtualization/hostPools",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "friendlyName": "friendly",
+ "description": "des1",
+ "hostPoolType": "Pooled",
+ "personalDesktopAssignmentType": "Automatic",
+ "customRdpProperty": null,
+ "maxSessionLimit": 999999,
+ "loadBalancerType": "BreadthFirst",
+ "validationEnvironment": null,
+ "ring": null,
+ "registrationInfo": {
+ "expirationTime": "2008-09-22T14:01:54.9571247Z",
+ "token": "token",
+ "registrationTokenOperation": "Update"
+ },
+ "vmTemplate": "{json:json}",
+ "ssoContext": "KeyVaultPath",
+ "ssoadfsAuthority": "https://adfs",
+ "ssoClientId": "client",
+ "ssoClientSecretKeyVaultPath": "https://keyvault/secret",
+ "ssoSecretType": "SharedKey",
+ "preferredAppGroupType": "Desktop",
+ "startVMOnConnect": false
+ }
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/MsixImage_Expand_Post.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/MsixImage_Expand_Post.json
new file mode 100644
index 000000000000..2db807b80090
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/MsixImage_Expand_Post.json
@@ -0,0 +1,99 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "hostPoolName": "hostpool1",
+ "api-version": "2020-11-02-preview",
+ "msixImageURI": {
+ "uri": "imagepath"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "hostpool1/expandmsiximage",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostpools/hostpool1/expandmsiximage",
+ "type": "Microsoft.DesktopVirtualization/hostpools/expandmsiximage",
+ "properties": {
+ "packageAlias": "msixpackagealias",
+ "imagePath": "imagepath",
+ "packageName": "MsixPackageName",
+ "packageFamilyName": "MsixPackage_FamilyName",
+ "packageFullName": "MsixPackage_FullName",
+ "displayName": "displayname",
+ "packageRelativePath": "packagerelativepath",
+ "isRegularRegistration": false,
+ "isActive": false,
+ "packageDependencies": [],
+ "version": "packageversion",
+ "lastUpdated": "2008-09-22T14:01:54.9571247Z",
+ "packageApplications": [
+ {
+ "appId": "AppId",
+ "description": "PackageApplicationDescription",
+ "appUserModelID": "AppUserModelId",
+ "friendlyName": "FriendlyName",
+ "iconImageName": "Iconimagename",
+ "rawIcon": "RawIcon",
+ "rawPng": "RawPng"
+ }
+ ]
+ }
+ },
+ {
+ "name": "hostpool1/expandmsiximage",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostpools/hostpool1/expandmsiximage",
+ "type": "Microsoft.DesktopVirtualization/hostpools/expandmsiximage",
+ "properties": {
+ "packageAlias": "msixpackagealias2",
+ "imagePath": "imagepath",
+ "packageName": "MsixPackageName2",
+ "packageFamilyName": "MsixPackage_FamilyName2",
+ "packageFullName": "MsixPackage_FullName2",
+ "displayName": "displayname2",
+ "packageRelativePath": "packagerelativepath2",
+ "isRegularRegistration": false,
+ "isActive": false,
+ "packageDependencies": [
+ {
+ "dependencyName": "MsixPackageDependency1",
+ "publisher": "PublisherName1",
+ "minVersion": "ver1"
+ },
+ {
+ "dependencyName": "MsixPackageDependency2",
+ "publisher": "PublisherName2",
+ "minVersion": "ver2"
+ }
+ ],
+ "version": "packageversion",
+ "lastUpdated": "2008-09-22T14:01:54.9571247Z",
+ "packageApplications": [
+ {
+ "appId": "AppId1",
+ "description": "PackageApplicationDescription1",
+ "appUserModelID": "AppUserModelId1",
+ "friendlyName": "FriendlyName1",
+ "iconImageName": "Iconimagename1",
+ "rawIcon": "RawIcon1",
+ "rawPng": "RawPng1"
+ },
+ {
+ "appId": "AppId2",
+ "description": "PackageApplicationDescription2",
+ "appUserModelID": "AppUserModelId2",
+ "friendlyName": "FriendlyName2",
+ "iconImageName": "Iconimagename2",
+ "rawIcon": "RawIcon2",
+ "rawPng": "RawPng2"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/MsixPackage_Create.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/MsixPackage_Create.json
new file mode 100644
index 000000000000..64b45b326079
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/MsixPackage_Create.json
@@ -0,0 +1,114 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "hostPoolName": "hostpool1",
+ "api-version": "2020-11-02-preview",
+ "msixPackageFullName": "msixpackagefullname",
+ "msixPackage": {
+ "properties": {
+ "displayName": "displayname",
+ "imagePath": "imagepath",
+ "isActive": false,
+ "isRegularRegistration": false,
+ "lastUpdated": "2008-09-22T14:01:54.9571247Z",
+ "packageApplications": [
+ {
+ "description": "application-desc",
+ "appId": "ApplicationId",
+ "appUserModelID": "AppUserModelId",
+ "friendlyName": "friendlyname",
+ "iconImageName": "Apptile",
+ "rawIcon": "VGhpcyBpcyBhIHN0cmluZyB0byBoYXNo",
+ "rawPng": "VGhpcyBpcyBhIHN0cmluZyB0byBoYXNo"
+ }
+ ],
+ "packageDependencies": [
+ {
+ "dependencyName": "MsixTest_Dependency_Name",
+ "minVersion": "version",
+ "publisher": "PublishedName"
+ }
+ ],
+ "packageFamilyName": "MsixPackage_FamilyName",
+ "packageName": "MsixPackage_name",
+ "packageRelativePath": "packagerelativepath",
+ "version": "version"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "hostpool1/MsixPackageFullName",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourcegroup1/providers/Microsoft.DesktopVirtualization/hostpools/hostpool1/msixpackages/msixPackageFullName",
+ "type": "Microsoft.DesktopVirtualization/hostpools/msixpackages",
+ "properties": {
+ "imagePath": "imagepath",
+ "packageName": "MsixPackage_Name",
+ "packageFamilyName": "MsixPackage_FamilyName",
+ "displayName": "dis",
+ "packageRelativePath": "MsixPackage_RelativePackageRoot",
+ "isRegularRegistration": false,
+ "isActive": false,
+ "packageDependencies": [
+ {
+ "dependencyName": "MsixPackage_Dependency_Name",
+ "publisher": "MsixPackage_Dependency_Publisher",
+ "minVersion": "packageDep_version"
+ }
+ ],
+ "version": "version",
+ "lastUpdated": "2008-09-22T14:01:54.9571247Z",
+ "packageApplications": [
+ {
+ "appId": "Application_Id",
+ "description": "desc",
+ "appUserModelID": "Application_ModelID",
+ "friendlyName": "fri",
+ "iconImageName": "Apptile",
+ "rawIcon": "VGhpcyBpcyBhIHN0cmluZyB0byBoYXNo",
+ "rawPng": "VGhpcyBpcyBhIHN0cmluZyB0byBoYXNo"
+ }
+ ]
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "hostpool1/MsixPackageFullName",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourcegroup1/providers/Microsoft.DesktopVirtualization/hostpools/hostpool1/msixpackages/msixPackageFullName",
+ "type": "Microsoft.DesktopVirtualization/hostpools/msixpackages",
+ "properties": {
+ "imagePath": "imagepath",
+ "packageName": "MsixPackage_Name",
+ "packageFamilyName": "MsixPackage_FamilyName",
+ "displayName": "dis",
+ "packageRelativePath": "MsixPackage_RelativePackageRoot",
+ "isRegularRegistration": false,
+ "isActive": true,
+ "packageDependencies": [
+ {
+ "dependencyName": "MsixPackage_Dependency_Name",
+ "publisher": "MsixPackage_Dependency_Publisher",
+ "minVersion": "packageDep_version"
+ }
+ ],
+ "version": "version",
+ "lastUpdated": "2008-09-22T14:01:54.9571247Z",
+ "packageApplications": [
+ {
+ "appId": "Application_Id",
+ "description": "desc",
+ "appUserModelID": "Application_ModelID",
+ "friendlyName": "fri",
+ "iconImageName": "Apptile",
+ "rawIcon": "VGhpcyBpcyBhIHN0cmluZyB0byBoYXNo",
+ "rawPng": "VGhpcyBpcyBhIHN0cmluZyB0byBoYXNo"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/MsixPackage_Delete.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/MsixPackage_Delete.json
new file mode 100644
index 000000000000..57cddf283e0a
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/MsixPackage_Delete.json
@@ -0,0 +1,46 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "hostPoolName": "hostpool1",
+ "api-version": "2020-11-02-preview",
+ "msixPackageFullName": "packagefullname"
+ },
+ "responses": {
+ "200": {
+ "name": "hostpool1/MsixPackageFullName",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourcegroup1/providers/Microsoft.DesktopVirtualization/hostpools/hostpool1/msixpackages/msixPackageFullName",
+ "type": "Microsoft.DesktopVirtualization/hostpools/msixpackages",
+ "properties": {
+ "imagePath": "imagepath",
+ "packageName": "MsixPackage_Name",
+ "packageFamilyName": "MsixPackage_FamilyName",
+ "displayName": "dis",
+ "packageRelativePath": "MsixPackage_RelativePackageRoot",
+ "isRegularRegistration": false,
+ "isActive": false,
+ "packageDependencies": [
+ {
+ "dependencyName": "MsixPackage_Dependency_Name",
+ "publisher": "MsixPackage_Dependency_Publisher",
+ "minVersion": "packageDep_version"
+ }
+ ],
+ "version": "version",
+ "lastUpdated": "2008-09-22T14:01:54.9571247Z",
+ "packageApplications": [
+ {
+ "appId": "Application_Id",
+ "description": "desc",
+ "appUserModelID": "Application_ModelID",
+ "friendlyName": "fri",
+ "iconImageName": "Apptile",
+ "rawIcon": "VGhpcyBpcyBhIHN0cmluZyB0byBoYXNo",
+ "rawPng": "VGhpcyBpcyBhIHN0cmluZyB0byBoYXNo"
+ }
+ ]
+ }
+ },
+ "204": {}
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/MsixPackage_Get.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/MsixPackage_Get.json
new file mode 100644
index 000000000000..48123b68ee54
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/MsixPackage_Get.json
@@ -0,0 +1,47 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "hostPoolName": "hostpool1",
+ "api-version": "2020-11-02-preview",
+ "msixPackageFullName": "packagefullname"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "hostpool1/MsixPackageFullName",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourcegroup1/providers/Microsoft.DesktopVirtualization/hostpools/hostpool1/msixpackages/msixPackageFullName",
+ "type": "Microsoft.DesktopVirtualization/hostpools/msixpackages",
+ "properties": {
+ "imagePath": "imagepath",
+ "packageName": "MsixPackage_Name",
+ "packageFamilyName": "MsixPackage_FamilyName",
+ "displayName": "dis",
+ "packageRelativePath": "MsixPackage_RelativePackageRoot",
+ "isRegularRegistration": false,
+ "isActive": false,
+ "packageDependencies": [
+ {
+ "dependencyName": "MsixPackage_Dependency_Name",
+ "publisher": "MsixPackage_Dependency_Publisher",
+ "minVersion": "packageDep_version"
+ }
+ ],
+ "version": "version",
+ "lastUpdated": "2008-09-22T14:01:54.9571247Z",
+ "packageApplications": [
+ {
+ "appId": "Application_Id",
+ "description": "desc",
+ "appUserModelID": "Application_ModelID",
+ "friendlyName": "fri",
+ "iconImageName": "Apptile",
+ "rawIcon": "VGhpcyBpcyBhIHN0cmluZyB0byBoYXNo",
+ "rawPng": "VGhpcyBpcyBhIHN0cmluZyB0byBoYXNo"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/MsixPackage_List.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/MsixPackage_List.json
new file mode 100644
index 000000000000..46593e185e2c
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/MsixPackage_List.json
@@ -0,0 +1,84 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "hostPoolName": "hostpool1",
+ "api-version": "2020-11-02-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "hostpool1/MsixPackageFullName",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourcegroup1/providers/Microsoft.DesktopVirtualization/hostpools/hostpool1/msixpackages/msixPackageFullName",
+ "type": "Microsoft.DesktopVirtualization/hostpools/msixpackages",
+ "properties": {
+ "imagePath": "imagepath",
+ "packageName": "MsixPackage_Name",
+ "packageFamilyName": "MsixPackage_FamilyName",
+ "displayName": "dis",
+ "packageRelativePath": "MsixPackage_RelativePackageRoot",
+ "isRegularRegistration": false,
+ "isActive": false,
+ "packageDependencies": [
+ {
+ "dependencyName": "MsixPackage_Dependency_Name",
+ "publisher": "MsixPackage_Dependency_Publisher",
+ "minVersion": "packageDep_version"
+ }
+ ],
+ "version": "version",
+ "lastUpdated": "2008-09-22T14:01:54.9571247Z",
+ "packageApplications": [
+ {
+ "appId": "Application_Id",
+ "description": "desc",
+ "appUserModelID": "Application_ModelID",
+ "friendlyName": "fri",
+ "iconImageName": "Apptile",
+ "rawIcon": "VGhpcyBpcyBhIHN0cmluZyB0byBoYXNo",
+ "rawPng": "VGhpcyBpcyBhIHN0cmluZyB0byBoYXNo"
+ }
+ ]
+ }
+ },
+ {
+ "name": "hostpool1/MsixPackageFullName2",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourcegroup1/providers/Microsoft.DesktopVirtualization/hostpools/hostpool1/msixpackages/msixPackageFullName2",
+ "type": "Microsoft.DesktopVirtualization/hostpools/msixpackages",
+ "properties": {
+ "imagePath": "imagepath2",
+ "packageName": "MsixPackage_Name2",
+ "packageFamilyName": "MsixPackage_FamilyName2",
+ "displayName": "dis2",
+ "packageRelativePath": "MsixPackage_RelativePackageRoot2",
+ "isRegularRegistration": false,
+ "isActive": false,
+ "packageDependencies": [
+ {
+ "dependencyName": "MsixPackage_Dependency_Name2",
+ "publisher": "MsixPackage_Dependency_Publisher2",
+ "minVersion": "packageDep_version2"
+ }
+ ],
+ "version": "version2",
+ "lastUpdated": "2008-09-22T14:01:54.9571247Z",
+ "packageApplications": [
+ {
+ "appId": "Application_Id2",
+ "description": "desc2",
+ "appUserModelID": "Application_ModelID2",
+ "friendlyName": "fri2",
+ "iconImageName": "Apptile2",
+ "rawIcon": "VGhpcyBpcyBhIHN0cmluZyB0byBoYXNo2",
+ "rawPng": "VGhpcyBpcyBhIHN0cmluZyB0byBoYXNo2"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/MsixPackage_Update.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/MsixPackage_Update.json
new file mode 100644
index 000000000000..9094aff0f7e1
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/MsixPackage_Update.json
@@ -0,0 +1,54 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "hostPoolName": "hostpool1",
+ "api-version": "2020-11-02-preview",
+ "msixPackageFullName": "msixpackagefullname",
+ "msixPackage": {
+ "properties": {
+ "displayName": "displayname",
+ "isActive": true,
+ "isRegularRegistration": false
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "hostpool1/MsixPackageFullName",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourcegroup1/providers/Microsoft.DesktopVirtualization/hostpools/hostpool1/msixpackages/msixPackageFullName",
+ "type": "Microsoft.DesktopVirtualization/hostpools/msixpackages",
+ "properties": {
+ "imagePath": "imagepath",
+ "packageName": "MsixPackage_Name",
+ "packageFamilyName": "MsixPackage_FamilyName",
+ "displayName": "dis",
+ "packageRelativePath": "MsixPackage_RelativePackageRoot",
+ "isRegularRegistration": false,
+ "isActive": true,
+ "packageDependencies": [
+ {
+ "dependencyName": "MsixPackage_Dependency_Name",
+ "publisher": "MsixPackage_Dependency_Publisher",
+ "minVersion": "packageDep_version"
+ }
+ ],
+ "version": "version",
+ "lastUpdated": "2008-09-22T14:01:54.9571247Z",
+ "packageApplications": [
+ {
+ "appId": "Application_Id",
+ "description": "desc",
+ "appUserModelID": "Application_ModelID",
+ "friendlyName": "fri",
+ "iconImageName": "Apptile",
+ "rawIcon": "VGhpcyBpcyBhIHN0cmluZyB0byBoYXNo",
+ "rawPng": "VGhpcyBpcyBhIHN0cmluZyB0byBoYXNo"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/OperationDescription_List.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/OperationDescription_List.json
new file mode 100644
index 000000000000..1c031f24c5c4
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/OperationDescription_List.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "api-version": "2020-11-02-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "Microsoft.DesktopVirtualization/ssocontext/read",
+ "display": {
+ "provider": "Microsoft.DesktopVirtualization",
+ "resource": "ssocontext"
+ }
+ },
+ {
+ "name": "Microsoft.DesktopVirtualization/ssocontext/write",
+ "display": {
+ "provider": "Microsoft.DesktopVirtualization",
+ "resource": "ssocontext"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/SessionHost_Delete.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/SessionHost_Delete.json
new file mode 100644
index 000000000000..d1719939d8d6
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/SessionHost_Delete.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "hostPoolName": "hostPool1",
+ "sessionHostName": "sessionHost1.microsoft.com",
+ "api-version": "2020-11-02-preview",
+ "force": true
+ },
+ "responses": {
+ "200": {
+ "name": "sessionHost1.microsoft.com",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1/sessionHosts/sessionHost1.microsoft.com",
+ "type": "Microsoft.DesktopVirtualization/hostPools/sessionHosts",
+ "properties": {
+ "lastHeartBeat": "2008-09-22T14:01:54.9571247Z",
+ "sessions": 1,
+ "agentVersion": "1.0.0.1391",
+ "allowNewSession": true,
+ "assignedUser": "user1@microsoft.com",
+ "status": "Available",
+ "statusTimestamp": "2008-09-22T14:01:54.9571247Z",
+ "osVersion": "10.0.17763",
+ "sxSStackVersion": "rdp-sxs190816002",
+ "updateState": "Succeeded",
+ "lastUpdateTime": "2008-09-22T14:01:54.9571247Z",
+ "updateErrorMessage": "",
+ "virtualMachineId": "29491b54-c033-4dec-b09a-18bf0ebafaef",
+ "resourceId": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.Compute/virtualMachines/sessionHost1"
+ }
+ },
+ "204": {}
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/SessionHost_Get.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/SessionHost_Get.json
new file mode 100644
index 000000000000..80b3a946bac2
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/SessionHost_Get.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "hostPoolName": "hostPool1",
+ "sessionHostName": "sessionHost1.microsoft.com",
+ "api-version": "2020-11-02-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "sessionHost1.microsoft.com",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1/sessionHosts/sessionHost1.microsoft.com",
+ "type": "Microsoft.DesktopVirtualization/hostPools/sessionHosts",
+ "properties": {
+ "lastHeartBeat": "2008-09-22T14:01:54.9571247Z",
+ "sessions": 1,
+ "agentVersion": "1.0.0.1391",
+ "allowNewSession": true,
+ "assignedUser": "user1@microsoft.com",
+ "status": "Available",
+ "statusTimestamp": "2008-09-22T14:01:54.9571247Z",
+ "osVersion": "10.0.17763",
+ "sxSStackVersion": "rdp-sxs190816002",
+ "updateState": "Succeeded",
+ "lastUpdateTime": "2008-09-22T14:01:54.9571247Z",
+ "updateErrorMessage": "",
+ "virtualMachineId": "29491b54-c033-4dec-b09a-18bf0ebafaef",
+ "resourceId": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.Compute/virtualMachines/sessionHost1"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/SessionHost_List.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/SessionHost_List.json
new file mode 100644
index 000000000000..966ab18a7a3f
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/SessionHost_List.json
@@ -0,0 +1,58 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "hostPoolName": "hostPool1",
+ "api-version": "2020-11-02-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "sessionHost1.microsoft.com",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1/sessionHosts/sessionHost1.microsoft.com",
+ "type": "Microsoft.DesktopVirtualization/hostPools/sessionhosts",
+ "properties": {
+ "lastHeartBeat": "2008-09-22T14:01:54.9571247Z",
+ "sessions": 1,
+ "agentVersion": "1.0.0.1391",
+ "allowNewSession": true,
+ "assignedUser": "user1@microsoft.com",
+ "status": "Available",
+ "statusTimestamp": "2008-09-22T14:01:54.9571247Z",
+ "osVersion": "10.0.17763",
+ "sxSStackVersion": "rdp-sxs190816002",
+ "updateState": "Succeeded",
+ "lastUpdateTime": "2008-09-22T14:01:54.9571247Z",
+ "updateErrorMessage": "",
+ "virtualMachineId": "29491b54-c033-4dec-b09a-18bf0ebafaef",
+ "resourceId": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.Compute/virtualMachines/sessionHost1"
+ }
+ },
+ {
+ "name": "sessionHost2.microsoft.com",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1/sessionHosts/sessionHost2microsoft.com",
+ "type": "Microsoft.DesktopVirtualization/hostPools/sessionhosts",
+ "properties": {
+ "lastHeartBeat": "2008-09-22T14:01:54.9571247Z",
+ "sessions": 1,
+ "agentVersion": "1.0.0.1391",
+ "allowNewSession": true,
+ "assignedUser": "user2@microsoft.com",
+ "status": "Available",
+ "statusTimestamp": "2008-09-22T14:01:54.9571247Z",
+ "osVersion": "10.0.17763",
+ "sxSStackVersion": "rdp-sxs190816002",
+ "updateState": "Succeeded",
+ "lastUpdateTime": "2008-09-22T14:01:54.9571247Z",
+ "updateErrorMessage": "",
+ "virtualMachineId": "39491b54-c033-4dec-b09a-18bf0ebafaef",
+ "resourceId": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.Compute/virtualMachines/sessionHost2"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/SessionHost_Update.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/SessionHost_Update.json
new file mode 100644
index 000000000000..c337afc38a10
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/SessionHost_Update.json
@@ -0,0 +1,40 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "hostPoolName": "hostPool1",
+ "sessionHostName": "sessionHost1.microsoft.com",
+ "api-version": "2020-11-02-preview",
+ "sessionHost": {
+ "properties": {
+ "allowNewSession": true,
+ "assignedUser": "user1@microsoft.com"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "sessionHost1.microsoft.com",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1/sessionHosts/sessionHost1.microsoft.com",
+ "type": "Microsoft.DesktopVirtualization/hostPools/sessionhosts",
+ "properties": {
+ "lastHeartBeat": "2019-01-11T19:27:13.6108027Z",
+ "sessions": 1,
+ "agentVersion": "1.0.0.1391",
+ "allowNewSession": true,
+ "assignedUser": "user1@microsoft.com",
+ "status": "Available",
+ "statusTimestamp": "2019-01-24T20:00:08.2893033Z",
+ "osVersion": "10.0.17763",
+ "sxSStackVersion": "rdp-sxs190816002",
+ "updateState": "Succeeded",
+ "lastUpdateTime": "2008-09-22T14:01:54.9571247Z",
+ "updateErrorMessage": "",
+ "virtualMachineId": "29491b54-c033-4dec-b09a-18bf0ebafaef",
+ "resourceId": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.Compute/virtualMachines/sessionHost1"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/StartMenuItem_List.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/StartMenuItem_List.json
new file mode 100644
index 000000000000..647120b7b847
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/StartMenuItem_List.json
@@ -0,0 +1,42 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "applicationGroupName": "applicationGroup1",
+ "api-version": "2020-11-02-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "application1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1/startMenuItem/application1",
+ "type": "Microsoft.DesktopVirtualization/applicationGroups/startMenuItems",
+ "properties": {
+ "appAlias": "word",
+ "friendlyName": "friendly",
+ "filePath": "/path/to/file",
+ "commandLineArguments": "arguments",
+ "iconPath": "/path/to/icon",
+ "iconIndex": 1
+ }
+ },
+ {
+ "name": "application2",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1/startMenuItem/application2",
+ "type": "Microsoft.DesktopVirtualization/applicationGroups/startMenuItems",
+ "properties": {
+ "appAlias": "excel",
+ "friendlyName": "friendly",
+ "filePath": "/path/to/file",
+ "commandLineArguments": "arguments",
+ "iconPath": "/path/to/icon",
+ "iconIndex": 1
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/UserSession_Delete.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/UserSession_Delete.json
new file mode 100644
index 000000000000..d36a16d3a83c
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/UserSession_Delete.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "hostPoolName": "hostPool1",
+ "sessionHostName": "sessionHost1.microsoft.com",
+ "userSessionId": "1",
+ "api-version": "2020-11-02-preview",
+ "force": true
+ },
+ "responses": {
+ "200": {
+ "name": "1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1/sessionHosts/sessionHost1.microsoft.com/userSessions/1",
+ "type": "Microsoft.DesktopVirtualization/hostPools/sessionHosts/userSessions",
+ "properties": {
+ "userPrincipalName": "user1@microsoft.com",
+ "applicationType": "Desktop",
+ "sessionState": "Active",
+ "activeDirectoryUserName": "WVDARM\\user1",
+ "createTime": "2008-09-22T14:01:54.9571247Z"
+ }
+ },
+ "204": {}
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/UserSession_Disconnect_Post.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/UserSession_Disconnect_Post.json
new file mode 100644
index 000000000000..d20a9274110c
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/UserSession_Disconnect_Post.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "hostPoolName": "hostPool1",
+ "sessionHostName": "sessionHost1.microsoft.com",
+ "userSessionId": "1",
+ "api-version": "2020-11-02-preview"
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/UserSession_Get.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/UserSession_Get.json
new file mode 100644
index 000000000000..322421428b4e
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/UserSession_Get.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "hostPoolName": "hostPool1",
+ "sessionHostName": "sessionHost1.microsoft.com",
+ "userSessionId": "1",
+ "api-version": "2020-11-02-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1/sessionHosts/sessionHost1.microsoft.com/userSessions/1",
+ "type": "Microsoft.DesktopVirtualization/hostPools/sessionHosts/userSessions",
+ "properties": {
+ "userPrincipalName": "user1@microsoft.com",
+ "applicationType": "Desktop",
+ "sessionState": "Active",
+ "activeDirectoryUserName": "WVDARM\\user1",
+ "createTime": "2008-09-22T14:01:54.9571247Z"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/UserSession_List.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/UserSession_List.json
new file mode 100644
index 000000000000..d555e1cf1b66
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/UserSession_List.json
@@ -0,0 +1,41 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "hostPoolName": "hostPool1",
+ "sessionHostName": "sessionHost1.microsoft.com",
+ "api-version": "2020-11-02-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1/sessionHosts/sessionHost1.microsoft.com/userSessions/1",
+ "type": "Microsoft.DesktopVirtualization/hostPools/sessionHosts/userSessions",
+ "properties": {
+ "userPrincipalName": "user1@microsoft.com",
+ "applicationType": "Desktop",
+ "sessionState": "Active",
+ "activeDirectoryUserName": "WVDARM\\user1",
+ "createTime": "2008-09-22T14:01:54.9571247Z"
+ }
+ },
+ {
+ "name": "2",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1/sessionHosts/sessionHost1.microsoft.com/userSessions/2",
+ "type": "Microsoft.DesktopVirtualization/hostPools/sessionHosts/userSessions",
+ "properties": {
+ "userPrincipalName": "user1@microsoft.com",
+ "applicationType": "Desktop",
+ "sessionState": "Active",
+ "activeDirectoryUserName": "WVDARM\\user1",
+ "createTime": "2008-09-22T14:01:54.9571247Z"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/UserSession_ListByHostPool.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/UserSession_ListByHostPool.json
new file mode 100644
index 000000000000..48a85aa31777
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/UserSession_ListByHostPool.json
@@ -0,0 +1,41 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "hostPoolName": "hostPool1",
+ "api-version": "2020-11-02-preview",
+ "$filter": "userPrincipalName eq 'user1@microsoft.com' and state eq 'active'"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1/sessionHosts/sessionHost1.microsoft.com/userSessions/1",
+ "type": "Microsoft.DesktopVirtualization/hostPools/sessionHosts/userSessions",
+ "properties": {
+ "userPrincipalName": "user1@microsoft.com",
+ "applicationType": "Desktop",
+ "sessionState": "Active",
+ "activeDirectoryUserName": "WVDARM\\user1",
+ "createTime": "2008-09-22T14:01:54.9571247Z"
+ }
+ },
+ {
+ "name": "2",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1/sessionHosts/sessionHost1.microsoft.com/userSessions/2",
+ "type": "Microsoft.DesktopVirtualization/hostPools/sessionHosts/userSessions",
+ "properties": {
+ "userPrincipalName": "user1@microsoft.com",
+ "applicationType": "Desktop",
+ "sessionState": "Active",
+ "activeDirectoryUserName": "WVDARM\\user1",
+ "createTime": "2008-09-22T14:01:54.9571247Z"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/UserSession_SendMessage_Post.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/UserSession_SendMessage_Post.json
new file mode 100644
index 000000000000..03e49d4f1db9
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/UserSession_SendMessage_Post.json
@@ -0,0 +1,17 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "hostPoolName": "hostPool1",
+ "sessionHostName": "sessionHost1.microsoft.com",
+ "userSessionId": "1",
+ "api-version": "2020-11-02-preview",
+ "sendMessage": {
+ "messageTitle": "title",
+ "messageBody": "body"
+ }
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/Workspace_Create.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/Workspace_Create.json
new file mode 100644
index 000000000000..2dd6fb93c1d8
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/Workspace_Create.json
@@ -0,0 +1,53 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "workspaceName": "workspace1",
+ "api-version": "2020-11-02-preview",
+ "workspace": {
+ "location": "centralus",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "workspace1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
+ "type": "Microsoft.DesktopVirtualization/workspaces",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "workspace1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
+ "type": "Microsoft.DesktopVirtualization/workspaces",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/Workspace_Delete.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/Workspace_Delete.json
new file mode 100644
index 000000000000..acafcda4416b
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/Workspace_Delete.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "workspaceName": "workspace1",
+ "api-version": "2020-11-02-preview"
+ },
+ "responses": {
+ "200": {
+ "name": "workspace1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
+ "type": "Microsoft.DesktopVirtualization/workspaces",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly"
+ }
+ },
+ "204": {}
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/Workspace_Get.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/Workspace_Get.json
new file mode 100644
index 000000000000..0bbdf54f6757
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/Workspace_Get.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "workspaceName": "workspace1",
+ "api-version": "2020-11-02-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "workspace1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
+ "type": "Microsoft.DesktopVirtualization/workspaces",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/Workspace_ListByResourceGroup.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/Workspace_ListByResourceGroup.json
new file mode 100644
index 000000000000..9a7e3c404903
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/Workspace_ListByResourceGroup.json
@@ -0,0 +1,43 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "api-version": "2020-11-02-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "workspace1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
+ "type": "Microsoft.DesktopVirtualization/workspaces",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly"
+ }
+ },
+ {
+ "name": "workspace2",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace2",
+ "type": "Microsoft.DesktopVirtualization/workspaces",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/Workspace_ListBySubscription.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/Workspace_ListBySubscription.json
new file mode 100644
index 000000000000..ca79330bb79c
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/Workspace_ListBySubscription.json
@@ -0,0 +1,42 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "api-version": "2020-11-02-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "workspace1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
+ "type": "Microsoft.DesktopVirtualization/workspaces",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly"
+ }
+ },
+ {
+ "name": "workspace2",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace2",
+ "type": "Microsoft.DesktopVirtualization/workspaces",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/Workspace_Update.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/Workspace_Update.json
new file mode 100644
index 000000000000..154872ef4654
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/examples/Workspace_Update.json
@@ -0,0 +1,36 @@
+{
+ "parameters": {
+ "subscriptionId": "daefabc0-95b4-48b3-b645-8a753a63c4fa",
+ "resourceGroupName": "resourceGroup1",
+ "workspaceName": "workspace1",
+ "api-version": "2020-11-02-preview",
+ "workspace": {
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "workspace1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
+ "type": "Microsoft.DesktopVirtualization/workspaces",
+ "location": "centralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "description": "des1",
+ "friendlyName": "friendly"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/desktopvirtualization/resource-manager/readme.azureresourceschema.md b/specification/desktopvirtualization/resource-manager/readme.azureresourceschema.md
index 9a0a2b34dc89..2ffaccd67ad1 100644
--- a/specification/desktopvirtualization/resource-manager/readme.azureresourceschema.md
+++ b/specification/desktopvirtualization/resource-manager/readme.azureresourceschema.md
@@ -9,11 +9,47 @@ batch:
- tag: schema-desktopvirtualization-2019-12-10-preview
- tag: schema-desktopvirtualization-2019-09-24-preview
- tag: schema-desktopvirtualization-2019-01-23-preview
+ - tag: schema-desktopvirtualization-2020-09-21-preview
+ - tag: schema-desktopvirtualization-2020-10-19-preview
+ - tag: schema-desktopvirtualization-2020-11-02-preview
```
Please also specify `--azureresourceschema-folder=`.
+### Tag: schema-desktopvirtualization-2020-11-02-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-desktopvirtualization-2020-11-02-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DesktopVirtualization/preview/2020-11-02-preview/desktopvirtualization.json
+
+```
+
+### Tag: schema-desktopvirtualization-2020-10-19-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-desktopvirtualization-2020-10-19-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DesktopVirtualization/preview/2020-10-19-preview/desktopvirtualization.json
+
+```
+
+### Tag: schema-desktopvirtualization-2020-09-21-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-desktopvirtualization-2020-09-21-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DesktopVirtualization/preview/2020-09-21-preview/desktopvirtualization.json
+
+```
+
### Tag: schema-desktopvirtualization-2019-12-10-preview and azureresourceschema
``` yaml $(tag) == 'schema-desktopvirtualization-2019-12-10-preview' && $(azureresourceschema)
diff --git a/specification/desktopvirtualization/resource-manager/readme.go.md b/specification/desktopvirtualization/resource-manager/readme.go.md
index e4a606d6c6f5..1d47b9f234ba 100644
--- a/specification/desktopvirtualization/resource-manager/readme.go.md
+++ b/specification/desktopvirtualization/resource-manager/readme.go.md
@@ -16,7 +16,27 @@ batch:
- tag: package-2019-09-24-preview
- tag: package-2019-12-10-preview
- tag: package-2020-09-21-preview
+ - tag: package-2020-10-19-preview
+ - tag: package-2020-11-02-preview
```
+### Tag: package-2020-11-02-preview and go
+
+These settings apply only when `--tag=package-2020-11-02-preview --go` is specified on the command line.
+Please also specify `--go-sdk-folder=`.
+
+``` yaml $(tag) == 'package-2020-11-02-preview' && $(go)
+output-folder: $(go-sdk-folder)/services/preview/$(namespace)/mgmt/2020-11-02-preview/$(namespace)
+```
+
+### Tag: package-2020-10-19-preview and go
+
+These settings apply only when `--tag=package-2020-10-19-preview --go` is specified on the command line.
+Please also specify `--go-sdk-folder=`.
+
+``` yaml $(tag) == 'package-2020-10-19-preview' && $(go)
+output-folder: $(go-sdk-folder)/services/preview/$(namespace)/mgmt/2020-10-19-preview/$(namespace)
+```
+
### Tag: package-2020-09-21-preview and go
These settings apply only when `--tag=package-2020-09-21-preview --go` is specified on the command line.
diff --git a/specification/desktopvirtualization/resource-manager/readme.java.md b/specification/desktopvirtualization/resource-manager/readme.java.md
index fb33f035a32f..b1188bf3be4e 100644
--- a/specification/desktopvirtualization/resource-manager/readme.java.md
+++ b/specification/desktopvirtualization/resource-manager/readme.java.md
@@ -16,18 +16,31 @@ output-folder: $(azure-libraries-for-java-folder)/azure-mgmt-desktopvirtualizati
``` yaml $(java) && $(multiapi)
batch:
- - tag: package-2020-09-21-preview
+ - tag: package-2020-10-19-preview
+ - tag: package-2020-11-02-preview
```
+### Tag: package-2020-11-02-preview and java
-### Tag: package-2020-09-21-preview and java
+These settings apply only when `--tag=package-2020-11-02-preview --java` is specified on the command line.
+Please also specify `--azure-libraries-for-java=`.
+
+``` yaml $(tag) == 'package-2020-11-02-preview' && $(java) && $(multiapi)
+java:
+ namespace: com.microsoft.azure.management.desktopvirtualization.v2020_11-02-preview
+ output-folder: $(azure-libraries-for-java-folder)/sdk/desktopvirtualization/mgmt-v2020_11-02-preview
+regenerate-manager: true
+generate-interface: true
+```
+
+### Tag: package-2020-10-19-preview and java
-These settings apply only when `--tag=package-2020-09-21-preview --java` is specified on the command line.
+These settings apply only when `--tag=package-2020-10-19-preview --java` is specified on the command line.
Please also specify `--azure-libraries-for-java=`.
-``` yaml $(tag) == 'package-2020-09-21-preview' && $(java) && $(multiapi)
+``` yaml $(tag) == 'package-2020-10-19-preview' && $(java) && $(multiapi)
java:
- namespace: com.microsoft.azure.management.desktopvirtualization.v2020_09_21_preview
- output-folder: $(azure-libraries-for-java-folder)/sdk/desktopvirtualization/mgmt-v2020_09_21_preview
+ namespace: com.microsoft.azure.management.desktopvirtualization.v2020_10_19_preview
+ output-folder: $(azure-libraries-for-java-folder)/sdk/desktopvirtualization/mgmt-v2020_10_19_preview
regenerate-manager: true
generate-interface: true
```
diff --git a/specification/desktopvirtualization/resource-manager/readme.md b/specification/desktopvirtualization/resource-manager/readme.md
index a367a2287c74..dfebb19a846e 100644
--- a/specification/desktopvirtualization/resource-manager/readme.md
+++ b/specification/desktopvirtualization/resource-manager/readme.md
@@ -24,14 +24,25 @@ These are the global settings for the DesktopVirtualizationClient API.
``` yaml
openapi-type: arm
-tag: package-2020-09-21-preview
+tag: package-2020-11-02-preview
```
-### Tag: package-2020-09-21-preview
+### Tag: package-2019-01-23-preview
-``` yaml $(tag) == 'package-2020-09-21-preview'
+These settings apply only when `--tag=package-2019-01-23-preview` is specified on the command line.
+
+``` yaml $(tag) == 'package-2019-01-23-preview'
input-file:
-- Microsoft.DesktopVirtualization/preview/2020-09-21-preview/desktopvirtualization.json
+- Microsoft.DesktopVirtualization/preview/2019-01-23-preview/desktopvirtualization.json
+```
+
+### Tag: package-2019-09-24-preview
+
+These settings apply only when `--tag=package-2019-09-24-preview` is specified on the command line.
+
+``` yaml $(tag) == 'package-2019-09-24-preview'
+input-file:
+- Microsoft.DesktopVirtualization/preview/2019-09-24-preview/desktopvirtualization.json
```
### Tag: package-2019-12-10-preview
@@ -43,22 +54,31 @@ input-file:
- Microsoft.DesktopVirtualization/preview/2019-12-10-preview/desktopvirtualization.json
```
-### Tag: package-2019-01-23-preview
+### Tag: package-2020-09-21-preview
-These settings apply only when `--tag=package-2019-01-23-preview` is specified on the command line.
+These settings apply only when `--tag=package-2020-09-21-preview` is specified on the command line.
-``` yaml $(tag) == 'package-2019-01-23-preview'
+``` yaml $(tag) == 'package-2020-09-21-preview'
input-file:
-- Microsoft.DesktopVirtualization/preview/2019-01-23-preview/desktopvirtualization.json
+- Microsoft.DesktopVirtualization/preview/2020-09-21-preview/desktopvirtualization.json
```
-### Tag: package-2019-09-24-preview
+### Tag: package-2020-10-19-preview
-These settings apply only when `--tag=package-2019-09-24-preview` is specified on the command line.
+These settings apply only when `--tag=package-2020-10-19-preview` is specified on the command line.
-``` yaml $(tag) == 'package-2019-09-24-preview'
+``` yaml $(tag) == 'package-2020-10-19-preview'
input-file:
-- Microsoft.DesktopVirtualization/preview/2019-09-24-preview/desktopvirtualization.json
+- Microsoft.DesktopVirtualization/preview/2020-10-19-preview/desktopvirtualization.json
+```
+
+### Tag: package-2020-11-02-preview
+
+These settings apply only when `--tag=package-2020-11-02-preview` is specified on the command line.
+
+``` yaml $(tag) == 'package-2020-11-02-preview'
+input-file:
+- Microsoft.DesktopVirtualization/preview/2020-11-02-preview/desktopvirtualization.json
```
---
@@ -131,6 +151,8 @@ input-file:
- $(this-folder)/Microsoft.DesktopVirtualization/preview/2019-09-24-preview/desktopvirtualization.json
- $(this-folder)/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/desktopvirtualization.json
- $(this-folder)/Microsoft.DesktopVirtualization/preview/2020-09-21-preview/desktopvirtualization.json
+ - $(this-folder)/Microsoft.DesktopVirtualization/preview/2020-10-19-preview/desktopvirtualization.json
+ - $(this-folder)/Microsoft.DesktopVirtualization/preview/2020-11-02-preview/desktopvirtualization.json
```
diff --git a/specification/desktopvirtualization/resource-manager/readme.ruby.md b/specification/desktopvirtualization/resource-manager/readme.ruby.md
index d21dd9824864..aaaa84a2c538 100644
--- a/specification/desktopvirtualization/resource-manager/readme.ruby.md
+++ b/specification/desktopvirtualization/resource-manager/readme.ruby.md
@@ -16,9 +16,30 @@ batch:
- tag: package-2019-09-24-preview
- tag: package-2019-12-10-preview
- tag: package-2020-09-21-preview
+ - tag: package-2020-10-19-preview
+ - tag: package-2020-11-02-preview
```
+### Tag: package-2020-10-19-preview and ruby
-### Tag: package-2020-09-21-preview and ruby
+These settings apply only when `--tag=package-2020-11-02-preview --ruby` is specified on the command line.
+Please also specify `--ruby-sdks-folder=`.
+
+``` yaml $(tag) == 'package-2020-10-19-preview' && $(ruby)
+namespace: "Azure::DesktopVirtualization::Mgmt::V2020-11-02_preview"
+output-folder: $(ruby-sdks-folder)/management/azure_mgmt_desktop_virtualization/lib
+```
+
+### Tag: package-2020-10-19-preview and ruby
+
+These settings apply only when `--tag=package-2020-10-19-preview --ruby` is specified on the command line.
+Please also specify `--ruby-sdks-folder=`.
+
+``` yaml $(tag) == 'package-2020-10-19-preview' && $(ruby)
+namespace: "Azure::DesktopVirtualization::Mgmt::V2020_10_19_preview"
+output-folder: $(ruby-sdks-folder)/management/azure_mgmt_desktop_virtualization/lib
+```
+
+### Tag: package-2020-10-19-preview and ruby
These settings apply only when `--tag=package-2020-09-21-preview --ruby` is specified on the command line.
Please also specify `--ruby-sdks-folder=`.
diff --git a/specification/dns/resource-manager/readme.csharp.md b/specification/dns/resource-manager/readme.csharp.md
index 990ec8b1989f..afe96fad748b 100644
--- a/specification/dns/resource-manager/readme.csharp.md
+++ b/specification/dns/resource-manager/readme.csharp.md
@@ -63,6 +63,21 @@ output-folder: $(csharp-sdks-folder)/$(csharp-profile)/Dns/Management.Dns/Genera
batch:
- tag: profile-hybrid-2019-03-01
+skip-simplifier-on-namespace:
+ - System.Net
+```
+
+### Profile: hybrid_2020_09_01
+
+These settings apply only when `--csharp-profile=hybrid_2020_09_01` is specified on the command line.
+
+``` yaml $(csharp-profile)=='hybrid_2020_09_01'
+namespace: Microsoft.Azure.Management.Profiles.$(csharp-profile).Dns
+output-folder: $(csharp-sdks-folder)/$(csharp-profile)/Dns/Management.Dns/Generated
+
+batch:
+ - tag: profile-hybrid-2020-09-01
+
skip-simplifier-on-namespace:
- System.Net
```
\ No newline at end of file
diff --git a/specification/dns/resource-manager/readme.md b/specification/dns/resource-manager/readme.md
index 5d8de0645a02..1bc89a36ef83 100644
--- a/specification/dns/resource-manager/readme.md
+++ b/specification/dns/resource-manager/readme.md
@@ -140,6 +140,15 @@ input-file:
- Microsoft.Network/preview/2015-05-04-preview/dns.json
```
+### Tag: profile-hybrid-2020-09-01
+
+These settings apply only when `--tag=profile-hybrid-2020-09-01` is specified on the command line.
+
+``` yaml $(tag) == 'profile-hybrid-2020-09-01'
+input-file:
+- Microsoft.Network/stable/2016-04-01/dns.json
+```
+
# Code Generation
## Swagger to SDK
diff --git a/specification/dns/resource-manager/readme.typescript.md b/specification/dns/resource-manager/readme.typescript.md
index c0561c3ae210..6e56d2e3e9a6 100644
--- a/specification/dns/resource-manager/readme.typescript.md
+++ b/specification/dns/resource-manager/readme.typescript.md
@@ -29,4 +29,19 @@ typescript:
clear-output-folder: true
batch:
- tag: profile-hybrid-2019-03-01
+```
+
+### Profile: profile-hybrid-2020-09-01
+
+These settings apply only when `--profile=profile-hybrid-2020-09-01` is specified on the command line.
+
+``` yaml $(profile)=='profile-hybrid-2020-09-01'
+typescript:
+ package-name: "@azure/arm-dns-profile-2020-09-01-hybrid"
+ output-folder: "$(typescript-sdks-folder)/sdk/dns/arm-dns-profile-2020-09-01-hybrid"
+ clear-output-folder: true
+ azure-arm: true
+ generate-metadata: true
+ batch:
+ - tag: profile-hybrid-2020-09-01
```
\ No newline at end of file
diff --git a/specification/domainservices/resource-manager/Microsoft.AAD/stable/2017-01-01/domainservices.json b/specification/domainservices/resource-manager/Microsoft.AAD/stable/2017-01-01/domainservices.json
index a5b0b3dbd478..c3f00d6fa28b 100644
--- a/specification/domainservices/resource-manager/Microsoft.AAD/stable/2017-01-01/domainservices.json
+++ b/specification/domainservices/resource-manager/Microsoft.AAD/stable/2017-01-01/domainservices.json
@@ -395,6 +395,11 @@
"type": "string",
"description": "The name of the Azure domain that the user would like to deploy Domain Services to."
},
+ "deploymentId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Deployment Id"
+ },
"vnetSiteId": {
"readOnly": true,
"type": "string",
@@ -411,7 +416,7 @@
"healthLastEvaluated": {
"readOnly": true,
"type": "string",
- "format": "date-time",
+ "format": "date-time-rfc1123",
"description": "Last domain evaluation run DateTime"
},
"healthMonitors": {
diff --git a/specification/domainservices/resource-manager/Microsoft.AAD/stable/2017-06-01/domainservices.json b/specification/domainservices/resource-manager/Microsoft.AAD/stable/2017-06-01/domainservices.json
index 13a151d5ea2a..e735091e6d3c 100644
--- a/specification/domainservices/resource-manager/Microsoft.AAD/stable/2017-06-01/domainservices.json
+++ b/specification/domainservices/resource-manager/Microsoft.AAD/stable/2017-06-01/domainservices.json
@@ -45,6 +45,12 @@
"schema": {
"$ref": "#/definitions/OperationEntityListResult"
}
+ },
+ "default": {
+ "description": "Domain Service error response.",
+ "schema": {
+ "$ref": "#/definitions/DefaultErrorResponse"
+ }
}
},
"x-ms-examples": {
@@ -79,6 +85,12 @@
"schema": {
"$ref": "#/definitions/DomainServiceListResult"
}
+ },
+ "default": {
+ "description": "Domain Service error response.",
+ "schema": {
+ "$ref": "#/definitions/DefaultErrorResponse"
+ }
}
},
"x-ms-examples": {
@@ -116,6 +128,12 @@
"schema": {
"$ref": "#/definitions/DomainServiceListResult"
}
+ },
+ "default": {
+ "description": "Domain Service error response.",
+ "schema": {
+ "$ref": "#/definitions/DefaultErrorResponse"
+ }
}
},
"x-ms-examples": {
@@ -177,6 +195,12 @@
"schema": {
"$ref": "#/definitions/DomainService"
}
+ },
+ "default": {
+ "description": "Domain Service error response.",
+ "schema": {
+ "$ref": "#/definitions/DefaultErrorResponse"
+ }
}
},
"x-ms-long-running-operation": true,
@@ -213,6 +237,12 @@
"schema": {
"$ref": "#/definitions/DomainService"
}
+ },
+ "default": {
+ "description": "Domain Service error response.",
+ "schema": {
+ "$ref": "#/definitions/DefaultErrorResponse"
+ }
}
},
"x-ms-examples": {
@@ -248,6 +278,12 @@
},
"204": {
"description": "HTTP 204 (Not Content) should be used if the resource does not exist and the request is well formed."
+ },
+ "default": {
+ "description": "Domain Service error response.",
+ "schema": {
+ "$ref": "#/definitions/DefaultErrorResponse"
+ }
}
},
"x-ms-long-running-operation": true,
@@ -299,6 +335,12 @@
"schema": {
"$ref": "#/definitions/DomainService"
}
+ },
+ "default": {
+ "description": "Domain Service error response.",
+ "schema": {
+ "$ref": "#/definitions/DefaultErrorResponse"
+ }
}
},
"x-ms-long-running-operation": true,
@@ -386,15 +428,25 @@
"DomainServiceProperties": {
"description": "Properties of the Domain Service.",
"properties": {
+ "version": {
+ "readOnly": true,
+ "type": "integer",
+ "description": "Data Model Version"
+ },
"tenantId": {
"readOnly": true,
"type": "string",
- "description": "Azure Active Directory tenant id"
+ "description": "Azure Active Directory Tenant Id"
},
"domainName": {
"type": "string",
"description": "The name of the Azure domain that the user would like to deploy Domain Services to."
},
+ "deploymentId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Deployment Id"
+ },
"vnetSiteId": {
"readOnly": true,
"type": "string",
@@ -408,10 +460,26 @@
"$ref": "#/definitions/LdapsSettings",
"description": "Secure LDAP Settings"
},
+ "domainSecuritySettings": {
+ "$ref": "#/definitions/DomainSecuritySettings",
+ "description": "DomainSecurity Settings"
+ },
+ "resourceForestSettings": {
+ "$ref": "#/definitions/ResourceForestSettings",
+ "description": "Resource Forest Settings"
+ },
+ "domainConfigurationType": {
+ "type": "string",
+ "description": "Domain Configuration Type"
+ },
+ "sku": {
+ "type": "string",
+ "description": "Sku Type"
+ },
"healthLastEvaluated": {
"readOnly": true,
"type": "string",
- "format": "date-time",
+ "format": "date-time-rfc1123",
"description": "Last domain evaluation run DateTime"
},
"healthMonitors": {
@@ -436,10 +504,6 @@
"$ref": "#/definitions/NotificationSettings",
"description": "Notification Settings"
},
- "domainSecuritySettings": {
- "$ref": "#/definitions/DomainSecuritySettings",
- "description": "DomainSecurity Settings"
- },
"filteredSync": {
"type": "string",
"enum": [
@@ -630,6 +694,48 @@
}
}
},
+ "ResourceForestSettings": {
+ "description": "Settings for Resource Forest",
+ "properties": {
+ "settings": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ForestTrust"
+ },
+ "description": "List of settings for Resource Forest"
+ },
+ "resourceForest": {
+ "type": "string",
+ "description": "Resource Forest"
+ }
+ }
+ },
+ "ForestTrust": {
+ "description": "Forest Trust Setting",
+ "properties": {
+ "trustedDomainFqdn": {
+ "type": "string",
+ "description": "Trusted Domain FQDN"
+ },
+ "trustDirection": {
+ "type": "string",
+ "description": "Trust Direction"
+ },
+ "friendlyName": {
+ "type": "string",
+ "description": "Friendly Name"
+ },
+ "remoteDnsIps": {
+ "type": "string",
+ "description": "Remote Dns ips"
+ },
+ "trustPassword": {
+ "type": "string",
+ "description": "Trust Password",
+ "x-ms-secret": true
+ }
+ }
+ },
"DomainSecuritySettings": {
"description": "Domain Security Settings",
"properties": {
@@ -668,6 +774,30 @@
"name": "SyncNtlmPasswords",
"modelAsString": true
}
+ },
+ "syncKerberosPasswords": {
+ "type": "string",
+ "enum": [
+ "Enabled",
+ "Disabled"
+ ],
+ "description": "A flag to determine whether or not SyncKerberosPasswords is enabled or disabled.",
+ "x-ms-enum": {
+ "name": "SyncKerberosPasswords",
+ "modelAsString": true
+ }
+ },
+ "syncOnPremPasswords": {
+ "type": "string",
+ "enum": [
+ "Enabled",
+ "Disabled"
+ ],
+ "description": "A flag to determine whether or not SyncOnPremPasswords is enabled or disabled.",
+ "x-ms-enum": {
+ "name": "SyncOnPremPasswords",
+ "modelAsString": true
+ }
}
}
},
@@ -728,6 +858,64 @@
"type": "string"
}
}
+ },
+ "DefaultErrorResponse": {
+ "description": "Domain Service error response.",
+ "type": "object",
+ "properties": {
+ "error": {
+ "description": "Error model.",
+ "type": "object",
+ "properties": {
+ "code": {
+ "description": "Standardized string to programmatically identify the error.",
+ "type": "string",
+ "readOnly": true
+ },
+ "message": {
+ "description": "Detailed error description and debugging information.",
+ "type": "string",
+ "readOnly": true
+ },
+ "target": {
+ "description": "Detailed error description and debugging information.",
+ "type": "string",
+ "readOnly": true
+ },
+ "details": {
+ "description": "Error details.",
+ "type": "array",
+ "items": {
+ "description": "Detailed errors.",
+ "properties": {
+ "code": {
+ "description": "Standardized string to programmatically identify the error.",
+ "type": "string",
+ "readOnly": true
+ },
+ "message": {
+ "description": "Detailed error description and debugging information.",
+ "type": "string",
+ "readOnly": true
+ },
+ "target": {
+ "description": "Detailed error description and debugging information.",
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "readOnly": true
+ }
+ },
+ "innererror": {
+ "description": "More information to debug error.",
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "readOnly": true
+ }
+ }
}
},
"parameters": {
diff --git a/specification/domainservices/resource-manager/Microsoft.AAD/stable/2017-06-01/oucontainer.json b/specification/domainservices/resource-manager/Microsoft.AAD/stable/2017-06-01/oucontainer.json
index 6a2aed422bab..8db2f96a631f 100644
--- a/specification/domainservices/resource-manager/Microsoft.AAD/stable/2017-06-01/oucontainer.json
+++ b/specification/domainservices/resource-manager/Microsoft.AAD/stable/2017-06-01/oucontainer.json
@@ -439,6 +439,11 @@
"type": "string",
"description": "Status of OuContainer instance"
},
+ "distinguishedName": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Distinguished Name of OuContainer instance"
+ },
"provisioningState": {
"readOnly": true,
"type": "string",
diff --git a/specification/domainservices/resource-manager/Microsoft.AAD/stable/2020-01-01/domainservices.json b/specification/domainservices/resource-manager/Microsoft.AAD/stable/2020-01-01/domainservices.json
index 5654c5f25f55..33481b688f97 100644
--- a/specification/domainservices/resource-manager/Microsoft.AAD/stable/2020-01-01/domainservices.json
+++ b/specification/domainservices/resource-manager/Microsoft.AAD/stable/2020-01-01/domainservices.json
@@ -464,10 +464,22 @@
"$ref": "#/definitions/LdapsSettings",
"description": "Secure LDAP Settings"
},
+ "resourceForestSettings": {
+ "$ref": "#/definitions/ResourceForestSettings",
+ "description": "Resource Forest Settings"
+ },
"domainSecuritySettings": {
"$ref": "#/definitions/DomainSecuritySettings",
"description": "DomainSecurity Settings"
},
+ "domainConfigurationType": {
+ "type": "string",
+ "description": "Domain Configuration Type"
+ },
+ "sku": {
+ "type": "string",
+ "description": "Sku Type"
+ },
"filteredSync": {
"type": "string",
"enum": [
@@ -534,7 +546,7 @@
"healthLastEvaluated": {
"readOnly": true,
"type": "string",
- "format": "date-time",
+ "format": "date-time-rfc1123",
"description": "Last domain evaluation run DateTime"
},
"healthMonitors": {
@@ -709,6 +721,48 @@
}
}
},
+ "ResourceForestSettings": {
+ "description": "Settings for Resource Forest",
+ "properties": {
+ "settings": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ForestTrust"
+ },
+ "description": "List of settings for Resource Forest"
+ },
+ "resourceForest": {
+ "type": "string",
+ "description": "Resource Forest"
+ }
+ }
+ },
+ "ForestTrust": {
+ "description": "Forest Trust Setting",
+ "properties": {
+ "trustedDomainFqdn": {
+ "type": "string",
+ "description": "Trusted Domain FQDN"
+ },
+ "trustDirection": {
+ "type": "string",
+ "description": "Trust Direction"
+ },
+ "friendlyName": {
+ "type": "string",
+ "description": "Friendly Name"
+ },
+ "remoteDnsIps": {
+ "type": "string",
+ "description": "Remote Dns ips"
+ },
+ "trustPassword": {
+ "type": "string",
+ "description": "Trust Password",
+ "x-ms-secret": true
+ }
+ }
+ },
"DomainSecuritySettings": {
"description": "Domain Security Settings",
"properties": {
@@ -747,6 +801,30 @@
"name": "SyncNtlmPasswords",
"modelAsString": true
}
+ },
+ "syncKerberosPasswords": {
+ "type": "string",
+ "enum": [
+ "Enabled",
+ "Disabled"
+ ],
+ "description": "A flag to determine whether or not SyncKerberosPasswords is enabled or disabled.",
+ "x-ms-enum": {
+ "name": "SyncKerberosPasswords",
+ "modelAsString": true
+ }
+ },
+ "syncOnPremPasswords": {
+ "type": "string",
+ "enum": [
+ "Enabled",
+ "Disabled"
+ ],
+ "description": "A flag to determine whether or not SyncOnPremPasswords is enabled or disabled.",
+ "x-ms-enum": {
+ "name": "SyncOnPremPasswords",
+ "modelAsString": true
+ }
}
}
},
diff --git a/specification/domainservices/resource-manager/Microsoft.AAD/stable/2020-01-01/oucontainer.json b/specification/domainservices/resource-manager/Microsoft.AAD/stable/2020-01-01/oucontainer.json
index 84bf755c076f..c61923ab2617 100644
--- a/specification/domainservices/resource-manager/Microsoft.AAD/stable/2020-01-01/oucontainer.json
+++ b/specification/domainservices/resource-manager/Microsoft.AAD/stable/2020-01-01/oucontainer.json
@@ -439,6 +439,11 @@
"type": "string",
"description": "Status of OuContainer instance"
},
+ "distinguishedName": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Distinguished Name of OuContainer instance"
+ },
"provisioningState": {
"readOnly": true,
"type": "string",
diff --git a/specification/eventhub/resource-manager/readme.csharp.md b/specification/eventhub/resource-manager/readme.csharp.md
new file mode 100644
index 000000000000..8585030ec420
--- /dev/null
+++ b/specification/eventhub/resource-manager/readme.csharp.md
@@ -0,0 +1,35 @@
+# C# Compute
+
+> see https://aka.ms/autorest
+
+This is the AutoRest configuration file for DNS.
+
+These settings apply only when `--csharp` is specified on the command line.
+Please also specify `--csharp-sdks-folder=`.
+
+## Common C# settings
+
+## C#
+
+These settings apply only when `--csharp` is specified on the command line.
+Please also specify `--csharp-sdks-folder=`.
+
+``` yaml $(csharp)
+csharp:
+ azure-arm: true
+ license-header: MICROSOFT_MIT_NO_VERSION
+ payload-flattening-threshold: 2
+ clear-output-folder: true
+```
+
+### Profile: hybrid_2020_09_01
+
+These settings apply only when `--csharp-profile=hybrid_2020_09_01` is specified on the command line.
+
+``` yaml $(csharp-profile)=='hybrid_2020_09_01'
+namespace: Microsoft.Azure.Management.Profiles.$(csharp-profile).EventHubs
+output-folder: $(csharp-sdks-folder)/$(csharp-profile)/EventHubs/Management.EventHubs/Generated
+
+batch:
+ - tag: profile-hybrid-2020-09-01
+```
\ No newline at end of file
diff --git a/specification/eventhub/resource-manager/readme.md b/specification/eventhub/resource-manager/readme.md
index 1e0cfd30b013..bae790871680 100644
--- a/specification/eventhub/resource-manager/readme.md
+++ b/specification/eventhub/resource-manager/readme.md
@@ -97,6 +97,23 @@ input-file:
- Microsoft.EventHub/stable/2017-04-01/sku.json
```
+### Tag: profile-hybrid-2020-09-01
+
+These settings apply only when `--tag=profile-hybrid-2020-09-01` is specified on the command line.
+
+``` yaml $(tag) == 'profile-hybrid-2020-09-01'
+input-file:
+- Microsoft.EventHub/preview/2018-01-01-preview/AvailableClusterRegions-preview.json
+- Microsoft.EventHub/preview/2018-01-01-preview/Clusters-preview.json
+- Microsoft.EventHub/preview/2018-01-01-preview/namespaces-preview.json
+- Microsoft.EventHub/stable/2017-04-01/AuthorizationRules.json
+- Microsoft.EventHub/stable/2017-04-01/CheckNameAvailability.json
+- Microsoft.EventHub/stable/2017-04-01/consumergroups.json
+- Microsoft.EventHub/stable/2017-04-01/operations.json
+- Microsoft.EventHub/stable/2017-04-01/eventhubs.json
+- Microsoft.EventHub/stable/2017-04-01/sku.json
+```
+
---
# Code Generation
diff --git a/specification/eventhub/resource-manager/readme.typescript.md b/specification/eventhub/resource-manager/readme.typescript.md
index 41049a534a56..718d2424d623 100644
--- a/specification/eventhub/resource-manager/readme.typescript.md
+++ b/specification/eventhub/resource-manager/readme.typescript.md
@@ -3,7 +3,7 @@
These settings apply only when `--typescript` is specified on the command line.
Please also specify `--typescript-sdks-folder=`.
-``` yaml $(typescript)
+``` yaml $(typescript) && !$(profile)
typescript:
azure-arm: true
package-name: "@azure/arm-eventhub"
@@ -11,3 +11,18 @@ typescript:
clear-output-folder: true
generate-metadata: true
```
+
+### Profile: profile-hybrid-2020-09-01
+
+These settings apply only when `--profile=profile-hybrid-2020-09-01` is specified on the command line.
+
+``` yaml $(profile)=='profile-hybrid-2020-09-01'
+typescript:
+ package-name: "@azure/arm-eventhub-profile-2020-09-01-hybrid"
+ output-folder: "$(typescript-sdks-folder)/sdk/eventhub/arm-eventhub-profile-2020-09-01-hybrid"
+ clear-output-folder: true
+ azure-arm: true
+ generate-metadata: true
+ batch:
+ - tag: profile-hybrid-2020-09-01
+```
diff --git a/specification/frontdoor/resource-manager/readme.java.md b/specification/frontdoor/resource-manager/readme.java.md
new file mode 100644
index 000000000000..08cae300f7c0
--- /dev/null
+++ b/specification/frontdoor/resource-manager/readme.java.md
@@ -0,0 +1,33 @@
+## Java
+
+These settings apply only when `--java` is specified on the command line.
+Please also specify `--azure-libraries-for-java-folder=`.
+
+``` yaml $(java)
+azure-arm: true
+fluent: true
+namespace: com.microsoft.azure.management.frontdoor
+license-header: MICROSOFT_MIT_NO_CODEGEN
+payload-flattening-threshold: 1
+output-folder: $(azure-libraries-for-java-folder)/azure-mgmt-frontdoor
+```
+
+### Java multi-api
+
+``` yaml $(java) && $(multiapi)
+batch:
+ - tag: package-2020-05
+```
+
+### Tag: package-2020-05 and java
+
+These settings apply only when `--tag=package-2020-05 --java` is specified on the command line.
+Please also specify `--azure-libraries-for-java-folder=`.
+
+``` yaml $(tag) == 'package-2020-05' && $(java) && $(multiapi)
+java:
+ namespace: com.microsoft.azure.management.frontdoor.v2020_05_01
+ output-folder: $(azure-libraries-for-java-folder)/sdk/frontdoor/mgmt-v2020_05_01
+regenerate-manager: true
+generate-interface: true
+```
diff --git a/specification/frontdoor/resource-manager/readme.md b/specification/frontdoor/resource-manager/readme.md
index f7f90e9f4fcf..4901e53c7763 100644
--- a/specification/frontdoor/resource-manager/readme.md
+++ b/specification/frontdoor/resource-manager/readme.md
@@ -229,18 +229,7 @@ See configuration in [readme.cli.md](./readme.cli.md)
## Java
-These settings apply only when `--java` is specified on the command line.
-Please also specify `--azure-libraries-for-java-folder=`.
-
-``` yaml $(java)
-java:
- azure-arm: true
- fluent: true
- namespace: com.microsoft.azure.management.frontdoor
- license-header: MICROSOFT_MIT_NO_CODEGEN
- payload-flattening-threshold: 1
- output-folder: $(azure-libraries-for-java-folder)/azure-mgmt-frontdoor
-```
+See configuration in [readme.java.md](./readme.java.md)
# Validation Suppressions
diff --git a/specification/hanaonazure/resource-manager/Microsoft.HanaOnAzure/preview/2020-02-07-preview/examples/ProviderInstances_Create.json b/specification/hanaonazure/resource-manager/Microsoft.HanaOnAzure/preview/2020-02-07-preview/examples/ProviderInstances_Create.json
index 3fcdd421d459..fc68352648d3 100644
--- a/specification/hanaonazure/resource-manager/Microsoft.HanaOnAzure/preview/2020-02-07-preview/examples/ProviderInstances_Create.json
+++ b/specification/hanaonazure/resource-manager/Microsoft.HanaOnAzure/preview/2020-02-07-preview/examples/ProviderInstances_Create.json
@@ -8,7 +8,7 @@
"providerInstanceParameter": {
"properties": {
"type": "hana",
- "properties": "{\"hostname\":\"10.0.0.10\",\"dbName\":\"SYSTEMDB\",\"sqlPort\":30015,\"dbUsername\":\"SYSTEM\",\"dbPassword\":\"PASSWORD\"}",
+ "properties": "{\"hostname\":\"10.0.0.6\",\"dbName\":\"SYSTEMDB\",\"sqlPort\":30013,\"dbUsername\":\"SYSTEM\",\"dbPassword\":\"PASSWORD\"}",
"metadata": "{\"key\":\"value\"}"
}
}
@@ -20,8 +20,8 @@
"name": "myProviderInstance",
"type": "Microsoft.HanaOnAzure/sapMonitors/providerInstances",
"properties": {
- "type": "hana",
- "properties": "{\"hostname\":\"10.0.0.10\",\"dbName\":\"SYSTEMDB\",\"sqlPort\":30015,\"dbUsername\":\"SYSTEM\"}",
+ "type": "SapHana",
+ "properties": "{\"hostname\":\"10.0.0.6\",\"dbName\":\"SYSTEMDB\",\"sqlPort\":30013,\"dbUsername\":\"SYSTEM\"}",
"metadata": "{\"key\":\"value\"}",
"provisioningState": "Accepted"
}
@@ -33,8 +33,8 @@
"name": "myProviderInstance",
"type": "Microsoft.HanaOnAzure/sapMonitors/providerInstances",
"properties": {
- "type": "hana",
- "properties": "{\"hostname\":\"10.0.0.10\",\"dbName\":\"SYSTEMDB\",\"sqlPort\":30015,\"dbUsername\":\"SYSTEM\"}",
+ "type": "SapHana",
+ "properties": "{\"hostname\":\"10.0.0.6\",\"dbName\":\"SYSTEMDB\",\"sqlPort\":30013,\"dbUsername\":\"SYSTEM\"}",
"metadata": "{\"key\":\"value\"}",
"provisioningState": "Accepted"
}
diff --git a/specification/hanaonazure/resource-manager/Microsoft.HanaOnAzure/preview/2020-02-07-preview/examples/ProviderInstances_Get.json b/specification/hanaonazure/resource-manager/Microsoft.HanaOnAzure/preview/2020-02-07-preview/examples/ProviderInstances_Get.json
index 5193d6e9aaa8..8beb352e5c67 100644
--- a/specification/hanaonazure/resource-manager/Microsoft.HanaOnAzure/preview/2020-02-07-preview/examples/ProviderInstances_Get.json
+++ b/specification/hanaonazure/resource-manager/Microsoft.HanaOnAzure/preview/2020-02-07-preview/examples/ProviderInstances_Get.json
@@ -13,8 +13,8 @@
"name": "myProviderInstance",
"type": "Microsoft.HanaOnAzure/sapMonitors/providerInstances",
"properties": {
- "type": "hana",
- "properties": "{\"hostname\":\"10.0.0.10\",\"dbName\":\"SYSTEMDB\",\"sqlPort\":30015,\"dbUsername\":\"SYSTEM\"}",
+ "type": "SapHana",
+ "properties": "{\"hostname\":\"10.0.0.6\",\"dbName\":\"SYSTEMDB\",\"sqlPort\":30013,\"dbUsername\":\"SYSTEM\"}",
"metadata": "{\"key\":\"value\"}"
}
}
diff --git a/specification/hanaonazure/resource-manager/Microsoft.HanaOnAzure/preview/2020-02-07-preview/examples/ProviderInstances_List.json b/specification/hanaonazure/resource-manager/Microsoft.HanaOnAzure/preview/2020-02-07-preview/examples/ProviderInstances_List.json
index 4a01efc99c4d..7efc4dc4ea10 100644
--- a/specification/hanaonazure/resource-manager/Microsoft.HanaOnAzure/preview/2020-02-07-preview/examples/ProviderInstances_List.json
+++ b/specification/hanaonazure/resource-manager/Microsoft.HanaOnAzure/preview/2020-02-07-preview/examples/ProviderInstances_List.json
@@ -14,8 +14,8 @@
"name": "myProviderInstance1",
"type": "Microsoft.HanaOnAzure/sapMonitors/providerInstances",
"properties": {
- "type": "hana",
- "properties": "{\"hostname\":\"10.0.0.10\",\"dbName\":\"SYSTEMDB\",\"sqlPort\":30015,\"dbUsername\":\"SYSTEM\"}",
+ "type": "SapHana",
+ "properties": "{\"hostname\":\"10.0.0.6\",\"dbName\":\"SYSTEMDB\",\"sqlPort\":30013,\"dbUsername\":\"SYSTEM\"}",
"metadata": "{\"key\":\"value\"}"
}
},
@@ -24,8 +24,18 @@
"name": "myProviderInstance2",
"type": "Microsoft.HanaOnAzure/sapMonitors/providerInstances",
"properties": {
- "type": "hana",
- "properties": "{\"hostname\":\"10.0.0.11\",\"dbName\":\"SYSTEMDB\",\"sqlPort\":30015,\"dbUsername\":\"SYSTEM\"}",
+ "type": "PrometheusHaCluster",
+ "properties": "{\"prometheusUrl\":\"http://10.0.0.21:9664/metrics\"}",
+ "metadata": "{\"key\":\"value\"}"
+ }
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.HanaOnAzure/sapMonitors/mySapMonitor/providerInstances/myProviderInstance2",
+ "name": "myProviderInstance2",
+ "type": "Microsoft.HanaOnAzure/sapMonitors/providerInstances",
+ "properties": {
+ "type": "MsSqlServer",
+ "properties": "{\"sqlHostname\":\"10.0.0.6\",\"sqlPort\":1433,\"sqlUsername\":\"sqladmin\"}",
"metadata": "{\"key\":\"value\"}"
}
}
diff --git a/specification/healthcareapis/resource-manager/readme.go.md b/specification/healthcareapis/resource-manager/readme.go.md
index ddffe9a42ed7..b47d6f3e2d80 100644
--- a/specification/healthcareapis/resource-manager/readme.go.md
+++ b/specification/healthcareapis/resource-manager/readme.go.md
@@ -13,11 +13,21 @@ go:
``` yaml $(go) && $(multiapi)
batch:
+ - tag: package-2020-03-30
- tag: package-2020-03
- tag: package-2019-09
- tag: package-2018-08-preview
```
+### Tag: package-2020-03-30 and go
+
+These settings apply only when `--tag=package-2020-03-30 --go` is specified on the command line.
+Please also specify `--go-sdk-folder=`.
+
+``` yaml $(tag) == 'package-2020-03-30' && $(go)
+output-folder: $(go-sdk-folder)/services/$(namespace)/mgmt/2020-03-30/$(namespace)
+```
+
### Tag: package-2020-03 and go
These settings apply only when `--tag=package-2020-03 --go` is specified on the command line.
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/iothub.json b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/iothub.json
index eafa77369c6f..59d9bcb1c64e 100644
--- a/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/iothub.json
+++ b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/iothub.json
@@ -3185,6 +3185,10 @@
"sku": {
"description": "IotHub SKU info",
"$ref": "#/definitions/IotHubSkuInfo"
+ },
+ "identity": {
+ "description": "The managed identities for the IotHub.",
+ "$ref": "#/definitions/ArmIdentity"
}
},
"allOf": [
@@ -4154,6 +4158,44 @@
}
}
},
+ "ArmIdentity": {
+ "type": "object",
+ "properties": {
+ "principalId": {
+ "description": "Principal Id",
+ "type": "string",
+ "readOnly": true
+ },
+ "tenantId": {
+ "description": "Tenant Id",
+ "type": "string",
+ "readOnly": true
+ },
+ "identityType": {
+ "description": "Identity type. Only allowed values are SystemAssigned and UserAssigned. Comma separated if both for ex: SystemAssigned,UserAssigned",
+ "type": "string"
+ },
+ "userAssignedIdentities": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/ArmUserIdentity"
+ }
+ }
+ }
+ },
+ "ArmUserIdentity": {
+ "type": "object",
+ "properties": {
+ "principalId": {
+ "type": "string",
+ "readOnly": true
+ },
+ "clientId": {
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
"EncryptionPropertiesDescription": {
"description": "The encryption properties for the IoT hub.",
"type": "object",
@@ -4178,6 +4220,20 @@
"keyIdentifier": {
"type": "string",
"description": "The identifier of the key."
+ },
+ "identity": {
+ "description": "The identity.",
+ "$ref": "#/definitions/KEKIdentity"
+ }
+ }
+ },
+ "KEKIdentity": {
+ "description": "The properties of the KeyVault identity.",
+ "type": "object",
+ "properties": {
+ "userAssignedIdentity": {
+ "type": "string",
+ "description": "The user assigned identity."
}
}
}
diff --git a/specification/iothub/resource-manager/readme.csharp.md b/specification/iothub/resource-manager/readme.csharp.md
new file mode 100644
index 000000000000..3e562829e89e
--- /dev/null
+++ b/specification/iothub/resource-manager/readme.csharp.md
@@ -0,0 +1,35 @@
+# C# Compute
+
+> see https://aka.ms/autorest
+
+This is the AutoRest configuration file for IotHub.
+
+These settings apply only when `--csharp` is specified on the command line.
+Please also specify `--csharp-sdks-folder=`.
+
+## Common C# settings
+
+## C#
+
+These settings apply only when `--csharp` is specified on the command line.
+Please also specify `--csharp-sdks-folder=`.
+
+``` yaml $(csharp)
+csharp:
+ azure-arm: true
+ license-header: MICROSOFT_MIT_NO_VERSION
+ payload-flattening-threshold: 2
+ clear-output-folder: true
+```
+
+### Profile: hybrid_2020_09_01
+
+These settings apply only when `--csharp-profile=hybrid_2020_09_01` is specified on the command line.
+
+``` yaml $(csharp-profile)=='hybrid_2020_09_01'
+namespace: Microsoft.Azure.Management.Profiles.$(csharp-profile).IotHub
+output-folder: $(csharp-sdks-folder)/$(csharp-profile)/IotHub/Management.IotHub/Generated
+
+batch:
+ - tag: profile-hybrid-2020-09-01
+```
\ No newline at end of file
diff --git a/specification/iothub/resource-manager/readme.java.md b/specification/iothub/resource-manager/readme.java.md
index 55927e1f56f6..3737b58ca676 100644
--- a/specification/iothub/resource-manager/readme.java.md
+++ b/specification/iothub/resource-manager/readme.java.md
@@ -17,6 +17,7 @@ output-folder: $(azure-libraries-for-java-folder)/azure-mgmt-iothub
``` yaml $(java) && $(multiapi)
batch:
- tag: package-2020-03
+ - tag: package-preview-2019-07
- tag: package-preview-2019-03
- tag: package-2018-12-preview
- tag: package-2018-04
@@ -39,6 +40,19 @@ directive:
to: PrivateLinkResource
```
+### Tag: package-preview-2019-07
+
+These settings apply only when `--tag=package-preview-2019-07 --java` is specified on the command line.
+Please also specify `--azure-libraries-for-java-folder=`.
+
+``` yaml $(tag) == 'package-preview-2019-07' && $(java) && $(multiapi)
+java:
+ namespace: com.microsoft.azure.management.iothub.v2019_07_01_preview
+ output-folder: $(azure-libraries-for-java-folder)/sdk/iothub/mgmt-v2019_07_01_preview
+regenerate-manager: true
+generate-interface: true
+```
+
### Tag: package-preview-2019-03
These settings apply only when `--tag=package-preview-2019-03 --java` is specified on the command line.
diff --git a/specification/iothub/resource-manager/readme.md b/specification/iothub/resource-manager/readme.md
index 229f06971727..1784c2380cf2 100644
--- a/specification/iothub/resource-manager/readme.md
+++ b/specification/iothub/resource-manager/readme.md
@@ -164,6 +164,15 @@ input-file:
- Microsoft.Devices/stable/2016-02-03/iothub.json
```
+### Tag: profile-hybrid-2020-09-01
+
+These settings apply only when `--tag=profile-hybrid-2020-09-01` is specified on the command line.
+
+``` yaml $(tag) == 'profile-hybrid-2020-09-01'
+input-file:
+- Microsoft.Devices/preview/2019-07-01-preview/iothub.json
+```
+
---
# Code Generation
diff --git a/specification/iothub/resource-manager/readme.typescript.md b/specification/iothub/resource-manager/readme.typescript.md
index 0abab2dbb88a..618235f9aace 100644
--- a/specification/iothub/resource-manager/readme.typescript.md
+++ b/specification/iothub/resource-manager/readme.typescript.md
@@ -3,7 +3,7 @@
These settings apply only when `--typescript` is specified on the command line.
Please also specify `--typescript-sdks-folder=`.
-``` yaml $(typescript)
+``` yaml $(typescript) && !$(profile)
typescript:
azure-arm: true
package-name: "@azure/arm-iothub"
@@ -12,3 +12,18 @@ typescript:
payload-flattening-threshold: 1
generate-metadata: true
```
+
+### Profile: profile-hybrid-2020-09-01
+
+These settings apply only when `--profile=profile-hybrid-2020-09-01` is specified on the command line.
+
+``` yaml $(profile)=='profile-hybrid-2020-09-01'
+typescript:
+ package-name: "@azure/arm-iothub-profile-2020-09-01-hybrid"
+ output-folder: "$(typescript-sdks-folder)/sdk/iothub/arm-iothub-profile-2020-09-01-hybrid"
+ clear-output-folder: true
+ azure-arm: true
+ generate-metadata: true
+ batch:
+ - tag: profile-hybrid-2020-09-01
+```
\ No newline at end of file
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.2-preview/examples/ExportKey-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.2-preview/examples/ExportKey-example.json
index 8cb42488f38b..33e83bcdc8ac 100644
--- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.2-preview/examples/ExportKey-example.json
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.2-preview/examples/ExportKey-example.json
@@ -29,24 +29,8 @@
"key_hsm": "CxX3qVTt22ZvjwdS-fmMSsLpaQQ8IcfGAC2TYWo3FXIPnOrSmZWdWN3gLMNSLUtUOhXqwXCe6jOxH2jMr6suO4Q0mfrKurAB-IC5gbDZGGD9XksrAkyYS-0p4p4I4Q4QxEOCtCKYPYWWu91dg5xg5aYjVRyR5G3C6O0haotp1FL1FiOB1PVcW9HchDIdHMFCszsb33pbvDuYvJXPPqdSIGIT8P8ExVG9_RwYTZl2Kj3MTSbe9zjOEEW-EnA6Phr0EFO0h94dWK0Y2tPhyzGYOSBScJCWIdwD9lT1aaHNFE0rSLJ9wv0qGezR10nD7V7ALZiEscsrAcwrWTtmmCJMAIJpGf0u9rN1_JQiXuO4Q9Cf4b73nSP1kIIAPkZ3r6Fqmrm8F7NeKis"
},
"release_policy": {
- "anyOf": [
- {
- "allOf": [
- {
- "claim": "sgx-mrsigner",
- "condition": "equals",
- "value": "86788fe40448f2a12e20bf8d5e7a1c3139bc5fdc1432b370c1da3489ab649a85"
- },
- {
- "claim": "is-debuggable",
- "condition": "equals",
- "value": "false"
- }
- ],
- "authority": "http://localhost:8023/"
- }
- ],
- "version": "0.2"
+ "contentType": "application/json; charset=utf-8; version=1.0",
+ "data": "eyJhbnlPZiI6W3siYWxsT2YiOlt7ImNsYWltIjoic2d4LW1yc2lnbmVyIiwiY29uZGl0aW9uIjoiZXF1YWxzIiwidmFsdWUiOiI4Njc4OGZlNDA0NDhmMmExMmUyMGJmOGQ1ZTdhMWMzMTM5YmM1ZmRjMTQzMmIzNzBjMWRhMzQ4OWFiNjQ5YTg1In0seyJjbGFpbSI6ImlzLWRlYnVnZ2FibGUiLCJjb25kaXRpb24iOiJlcXVhbHMiLCJ2YWx1ZSI6ImZhbHNlIn1dLCJhdXRob3JpdHkiOiJodHRwOi8vbG9jYWxob3N0OjgwMjMvIn1dfQ"
}
}
}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.2-preview/keys.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.2-preview/keys.json
index ad468d0f250f..2d19a1aa5d13 100644
--- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.2-preview/keys.json
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.2-preview/keys.json
@@ -1033,83 +1033,6 @@
}
},
"definitions": {
- "KeyReleaseCondition": {
- "properties": {
- "claim": {
- "x-ms-client-name": "claimType",
- "type": "string",
- "minLength": 1,
- "description": "claim type name"
- },
- "condition": {
- "x-ms-client-name": "claimCondition",
- "type": "string",
- "minLength": 1,
- "description": "condition to test",
- "enum": [
- "equals"
- ],
- "x-ms-enum": {
- "name": "KeyReleaseConditionCondition",
- "modelAsString": true,
- "values": [
- {
- "value": "equals",
- "description": "equals comparison."
- }
- ]
- }
- },
- "value": {
- "type": "string"
- }
- }
- },
- "KeyReleaseAuthority": {
- "properties": {
- "authority": {
- "x-ms-client-name": "authorityURL",
- "type": "string",
- "minLength": 1,
- "description": "Base URL of the attestation service."
- },
- "allOf": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/KeyReleaseCondition",
- "description": "The set of claim conditions that must be met."
- }
- }
- }
- },
- "KeyReleasePolicy": {
- "properties": {
- "version": {
- "description": "key release policy version",
- "type": "string",
- "enum": [
- "0.2"
- ],
- "x-ms-enum": {
- "name": "KeyReleasePolicyVersion",
- "modelAsString": true,
- "values": [
- {
- "value": "0.2",
- "description": "Schema version 0.2"
- }
- ]
- }
- },
- "anyOf": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/KeyReleaseAuthority",
- "description": "Authorities."
- }
- }
- }
- },
"JsonWebKey": {
"properties": {
"kid": {
@@ -1387,6 +1310,20 @@
},
"description": "The key item containing key metadata."
},
+ "KeyReleasePolicy": {
+ "properties": {
+ "contentType": {
+ "description": "Content type and version of key release policy",
+ "type": "string",
+ "default": "application/json; charset=utf-8; version=1.0"
+ },
+ "data": {
+ "description": "Blob encoding the policy rules under which the key can be exported.",
+ "type": "string",
+ "format": "base64url"
+ }
+ }
+ },
"DeletedKeyBundle": {
"allOf": [
{
diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2018-02-14-preview/keyvault.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2018-02-14-preview/keyvault.json
index e63e7e0fe96b..504e9cee079b 100644
--- a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2018-02-14-preview/keyvault.json
+++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2018-02-14-preview/keyvault.json
@@ -677,6 +677,7 @@
"enum": [
"A"
],
+ "x-ms-client-default": "A",
"x-ms-enum": {
"name": "SkuFamily",
"modelAsString": true
diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/keyvault.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/keyvault.json
index 1f3e463ea937..f527a8a0c7c7 100644
--- a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/keyvault.json
+++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/keyvault.json
@@ -923,6 +923,7 @@
"enum": [
"A"
],
+ "x-ms-client-default": "A",
"x-ms-enum": {
"name": "SkuFamily",
"modelAsString": true
diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/managedHsm.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/managedHsm.json
index 34462f6b4514..580f61bab4a9 100644
--- a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/managedHsm.json
+++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/managedHsm.json
@@ -353,6 +353,7 @@
"enum": [
"B"
],
+ "x-ms-client-default": "B",
"x-ms-enum": {
"name": "ManagedHsmSkuFamily",
"modelAsString": true
diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2015-06-01/keyvault.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2015-06-01/keyvault.json
index d284f48944e7..a2e44a33cb41 100644
--- a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2015-06-01/keyvault.json
+++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2015-06-01/keyvault.json
@@ -250,6 +250,7 @@
"enum": [
"A"
],
+ "x-ms-client-default": "A",
"x-ms-enum": {
"name": "SkuFamily",
"modelAsString": true
diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2016-10-01/keyvault.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2016-10-01/keyvault.json
index 2aba2f8c7b59..0e298de0cde2 100644
--- a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2016-10-01/keyvault.json
+++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2016-10-01/keyvault.json
@@ -676,6 +676,7 @@
"enum": [
"A"
],
+ "x-ms-client-default": "A",
"x-ms-enum": {
"name": "SkuFamily",
"modelAsString": true
diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2018-02-14/keyvault.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2018-02-14/keyvault.json
index 0cb1851ec949..dfd830216102 100644
--- a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2018-02-14/keyvault.json
+++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2018-02-14/keyvault.json
@@ -924,6 +924,7 @@
"enum": [
"A"
],
+ "x-ms-client-default": "A",
"x-ms-enum": {
"name": "SkuFamily",
"modelAsString": true
diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2019-09-01/examples/createKey.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2019-09-01/examples/createKey.json
new file mode 100644
index 000000000000..e5eaf5596ae8
--- /dev/null
+++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2019-09-01/examples/createKey.json
@@ -0,0 +1,44 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "sample-group",
+ "vaultName": "sample-vault-name",
+ "keyName": "sample-key-name",
+ "api-version": "2019-09-01",
+ "parameters": {
+ "properties": {
+ "kty": "RSA"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault-name/keys/sample-key-name",
+ "name": "sample-key-name",
+ "type": "Microsoft.KeyVault/vaults/keys",
+ "location": "westus",
+ "properties": {
+ "attributes": {
+ "enabled": true,
+ "created": 1598533051,
+ "updated": 1598533051,
+ "recoveryLevel": "Purgeable"
+ },
+ "kty": "RSA",
+ "keyOps": [
+ "encrypt",
+ "decrypt",
+ "sign",
+ "verify",
+ "wrapKey",
+ "unwrapKey"
+ ],
+ "keySize": 2048,
+ "keyUri": "https://sample-vault-name.vault.azure.net:443/keys/sample-key-name",
+ "keyUriWithVersion": "https://sample-vault-name.vault.azure.net:443/keys/sample-key-name/fd618d9519b74f9aae94ade66b876acc"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2019-09-01/examples/getKey.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2019-09-01/examples/getKey.json
new file mode 100644
index 000000000000..124b5816fa7e
--- /dev/null
+++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2019-09-01/examples/getKey.json
@@ -0,0 +1,39 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "sample-group",
+ "vaultName": "sample-vault-name",
+ "keyName": "sample-key-name",
+ "api-version": "2019-09-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault-name/keys/sample-key-name",
+ "name": "sample-key-name",
+ "type": "Microsoft.KeyVault/vaults/keys",
+ "location": "westus",
+ "properties": {
+ "attributes": {
+ "enabled": true,
+ "created": 1598533051,
+ "updated": 1598533051,
+ "recoveryLevel": "Purgeable"
+ },
+ "kty": "RSA",
+ "keyOps": [
+ "encrypt",
+ "decrypt",
+ "sign",
+ "verify",
+ "wrapKey",
+ "unwrapKey"
+ ],
+ "keySize": 2048,
+ "keyUri": "https://sample-vault-name.vault.azure.net:443/keys/sample-key-name",
+ "keyUriWithVersion": "https://sample-vault-name.vault.azure.net:443/keys/sample-key-name/fd618d9519b74f9aae94ade66b876acc"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2019-09-01/examples/getKeyVersion.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2019-09-01/examples/getKeyVersion.json
new file mode 100644
index 000000000000..28151ec8475c
--- /dev/null
+++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2019-09-01/examples/getKeyVersion.json
@@ -0,0 +1,40 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "sample-group",
+ "vaultName": "sample-vault-name",
+ "keyName": "sample-key-name",
+ "keyVersion": "fd618d9519b74f9aae94ade66b876acc",
+ "api-version": "2019-09-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault-name/keys/sample-key-name/versions/fd618d9519b74f9aae94ade66b876acc",
+ "name": "fd618d9519b74f9aae94ade66b876acc",
+ "type": "Microsoft.KeyVault/vaults/keys/versions",
+ "location": "westus",
+ "properties": {
+ "attributes": {
+ "enabled": true,
+ "created": 1598533051,
+ "updated": 1598533051,
+ "recoveryLevel": "Purgeable"
+ },
+ "kty": "RSA",
+ "keyOps": [
+ "encrypt",
+ "decrypt",
+ "sign",
+ "verify",
+ "wrapKey",
+ "unwrapKey"
+ ],
+ "keySize": 2048,
+ "keyUri": "https://sample-vault-name.vault.azure.net:443/keys/sample-key-name",
+ "keyUriWithVersion": "https://sample-vault-name.vault.azure.net:443/keys/sample-key-name/fd618d9519b74f9aae94ade66b876acc"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2019-09-01/examples/listKeyVersions.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2019-09-01/examples/listKeyVersions.json
new file mode 100644
index 000000000000..21e29116a6ae
--- /dev/null
+++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2019-09-01/examples/listKeyVersions.json
@@ -0,0 +1,49 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "sample-group",
+ "vaultName": "sample-vault-name",
+ "keyName": "sample-key-name",
+ "api-version": "2019-09-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault-name/keys/sample-key-name/versions/c2296aa24acf4daf86942bff5aca73dd",
+ "name": "c2296aa24acf4daf86942bff5aca73dd",
+ "type": "Microsoft.KeyVault/vaults/keys/versions",
+ "location": "westus",
+ "properties": {
+ "attributes": {
+ "enabled": true,
+ "created": 1598641074,
+ "updated": 1598641074,
+ "recoveryLevel": "Purgeable"
+ },
+ "keyUri": "https://sample-vault-name.vault.azure.net:443/keys/sample-key-name",
+ "keyUriWithVersion": "https://sample-vault-name.vault.azure.net:443/keys/sample-key-name/c2296aa24acf4daf86942bff5aca73dd"
+ }
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault-name/keys/sample-key-name/versions/d5a04667b6f44b0ca62825f5eae93da6",
+ "name": "d5a04667b6f44b0ca62825f5eae93da6",
+ "type": "Microsoft.KeyVault/vaults/keys/versions",
+ "location": "westus",
+ "properties": {
+ "attributes": {
+ "enabled": true,
+ "created": 1598641295,
+ "updated": 1598641295,
+ "recoveryLevel": "Purgeable"
+ },
+ "keyUri": "https://sample-vault-name.vault.azure.net:443/keys/sample-key-name",
+ "keyUriWithVersion": "https://sample-vault-name.vault.azure.net:443/keys/sample-key-name/d5a04667b6f44b0ca62825f5eae93da6"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2019-09-01/examples/listKeys.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2019-09-01/examples/listKeys.json
new file mode 100644
index 000000000000..5dd301f48b3d
--- /dev/null
+++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2019-09-01/examples/listKeys.json
@@ -0,0 +1,46 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "sample-group",
+ "vaultName": "sample-vault-name",
+ "api-version": "2019-09-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault-name/keys/sample-key-name-1",
+ "name": "sample-key-name-1",
+ "type": "Microsoft.KeyVault/vaults/keys",
+ "location": "westus",
+ "properties": {
+ "attributes": {
+ "enabled": true,
+ "created": 1596493796,
+ "updated": 1596493796,
+ "recoveryLevel": "Purgeable"
+ },
+ "keyUri": "https://sample-vault-name.vault.azure.net:443/keys/sample-key-name-1"
+ }
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault-name/keys/sample-key-name-2",
+ "name": "sample-key-name-2",
+ "type": "Microsoft.KeyVault/vaults/keys",
+ "location": "westus",
+ "properties": {
+ "attributes": {
+ "enabled": true,
+ "created": 1596493797,
+ "updated": 1596493797,
+ "recoveryLevel": "Purgeable"
+ },
+ "keyUri": "https://sample-vault-name.vault.azure.net:443/keys/sample-key-name-2"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2019-09-01/keys.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2019-09-01/keys.json
new file mode 100644
index 000000000000..3f54b0e4e718
--- /dev/null
+++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2019-09-01/keys.json
@@ -0,0 +1,588 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2019-09-01",
+ "title": "KeyVaultManagementClient",
+ "description": "The Azure management API provides a RESTful set of web services that interact with Azure Key Vault."
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "paths": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}/keys/{keyName}": {
+ "put": {
+ "tags": [
+ "Keys"
+ ],
+ "operationId": "Keys_CreateIfNotExist",
+ "description": "Creates the first version of a new key if it does not exist. If it already exists, then the existing key is returned without any write operations being performed. This API does not create subsequent versions, and does not update existing keys.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group which contains the specified key vault."
+ },
+ {
+ "name": "vaultName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9-]{3,24}$",
+ "description": "The name of the key vault which contains the key to be created."
+ },
+ {
+ "name": "keyName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9-]{1,127}$",
+ "description": "The name of the key to be created."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/KeyCreateParameters"
+ },
+ "description": "The parameters used to create the specified key."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The created key.",
+ "schema": {
+ "$ref": "#/definitions/Key"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create a key": {
+ "$ref": "./examples/createKey.json"
+ }
+ },
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ },
+ "get": {
+ "tags": [
+ "Keys"
+ ],
+ "operationId": "Keys_Get",
+ "description": "Gets the current version of the specified key from the specified key vault.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group which contains the specified key vault."
+ },
+ {
+ "name": "vaultName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9-]{3,24}$",
+ "description": "The name of the vault which contains the key to be retrieved."
+ },
+ {
+ "name": "keyName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9-]{1,127}$",
+ "description": "The name of the key to be retrieved."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The retrieved key.",
+ "schema": {
+ "$ref": "#/definitions/Key"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get a key": {
+ "$ref": "./examples/getKey.json"
+ }
+ },
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}/keys": {
+ "get": {
+ "tags": [
+ "Keys"
+ ],
+ "operationId": "Keys_List",
+ "description": "Lists the keys in the specified key vault.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group which contains the specified key vault."
+ },
+ {
+ "name": "vaultName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9-]{3,24}$",
+ "description": "The name of the vault which contains the keys to be retrieved."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The retrieved page of keys.",
+ "schema": {
+ "$ref": "#/definitions/KeyListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List keys in the vault": {
+ "$ref": "./examples/listKeys.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}/keys/{keyName}/versions/{keyVersion}": {
+ "get": {
+ "tags": [
+ "Keys"
+ ],
+ "operationId": "Keys_GetVersion",
+ "description": "Gets the specified version of the specified key in the specified key vault.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group which contains the specified key vault."
+ },
+ {
+ "name": "vaultName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9-]{3,24}$",
+ "description": "The name of the vault which contains the key version to be retrieved."
+ },
+ {
+ "name": "keyName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9-]{1,127}$",
+ "description": "The name of the key version to be retrieved."
+ },
+ {
+ "name": "keyVersion",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[a-fA-F0-9]{32}$",
+ "description": "The version of the key to be retrieved."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The retrieved key version.",
+ "schema": {
+ "$ref": "#/definitions/Key"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get a key version": {
+ "$ref": "./examples/getKeyVersion.json"
+ }
+ },
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}/keys/{keyName}/versions": {
+ "get": {
+ "tags": [
+ "Keys"
+ ],
+ "operationId": "Keys_ListVersions",
+ "description": "Lists the versions of the specified key in the specified key vault.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group which contains the specified key vault."
+ },
+ {
+ "name": "vaultName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9-]{3,24}$",
+ "description": "The name of the vault which contains the key versions to be retrieved."
+ },
+ {
+ "name": "keyName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9-]{1,127}$",
+ "description": "The name of the key versions to be retrieved."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The retrieved page of key versions.",
+ "schema": {
+ "$ref": "#/definitions/KeyListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List key versions in the vault": {
+ "$ref": "./examples/listKeyVersions.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ }
+ }
+ },
+ "definitions": {
+ "CloudError": {
+ "description": "An error response from Key Vault resource provider",
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/CloudErrorBody"
+ }
+ },
+ "x-ms-external": true
+ },
+ "CloudErrorBody": {
+ "description": "An error response from Key Vault resource provider",
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "Error code. This is a mnemonic that can be consumed programmatically."
+ },
+ "message": {
+ "type": "string",
+ "description": "User friendly error message. The message is typically localized and may vary with service version."
+ }
+ },
+ "x-ms-external": true
+ },
+ "Attributes": {
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "description": "Determines whether or not the object is enabled."
+ },
+ "nbf": {
+ "x-ms-client-name": "NotBefore",
+ "type": "integer",
+ "format": "int64",
+ "description": "Not before date in seconds since 1970-01-01T00:00:00Z."
+ },
+ "exp": {
+ "x-ms-client-name": "Expires",
+ "type": "integer",
+ "format": "int64",
+ "description": "Expiry date in seconds since 1970-01-01T00:00:00Z."
+ },
+ "created": {
+ "type": "integer",
+ "format": "int64",
+ "readOnly": true,
+ "description": "Creation time in seconds since 1970-01-01T00:00:00Z."
+ },
+ "updated": {
+ "type": "integer",
+ "format": "int64",
+ "readOnly": true,
+ "description": "Last updated time in seconds since 1970-01-01T00:00:00Z."
+ },
+ "recoveryLevel": {
+ "type": "string",
+ "description": "The deletion recovery level currently in effect for the object. If it contains 'Purgeable', then the object can be permanently deleted by a privileged user; otherwise, only the system can purge the object at the end of the retention interval.",
+ "enum": [
+ "Purgeable",
+ "Recoverable+Purgeable",
+ "Recoverable",
+ "Recoverable+ProtectedSubscription"
+ ],
+ "x-ms-enum": {
+ "name": "DeletionRecoveryLevel",
+ "modelAsString": true
+ },
+ "readOnly": true,
+ "x-nullable": false
+ }
+ },
+ "description": "The object attributes managed by the Azure Key Vault service."
+ },
+ "KeyProperties": {
+ "properties": {
+ "attributes": {
+ "$ref": "#/definitions/KeyAttributes",
+ "description": "The attributes of the key."
+ },
+ "kty": {
+ "type": "string",
+ "minLength": 1,
+ "description": "The type of the key. For valid values, see JsonWebKeyType.",
+ "enum": [
+ "EC",
+ "EC-HSM",
+ "RSA",
+ "RSA-HSM"
+ ],
+ "x-ms-enum": {
+ "name": "JsonWebKeyType",
+ "modelAsString": true
+ }
+ },
+ "keyOps": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "description": "The permitted JSON web key operations of the key. For more information, see JsonWebKeyOperation.",
+ "enum": [
+ "encrypt",
+ "decrypt",
+ "sign",
+ "verify",
+ "wrapKey",
+ "unwrapKey",
+ "import"
+ ],
+ "x-ms-enum": {
+ "name": "JsonWebKeyOperation",
+ "modelAsString": true
+ }
+ }
+ },
+ "keySize": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The key size in bits. For example: 2048, 3072, or 4096 for RSA."
+ },
+ "curveName": {
+ "type": "string",
+ "description": "The elliptic curve name. For valid values, see JsonWebKeyCurveName.",
+ "enum": [
+ "P-256",
+ "P-384",
+ "P-521",
+ "P-256K"
+ ],
+ "x-ms-enum": {
+ "name": "JsonWebKeyCurveName",
+ "modelAsString": true
+ }
+ },
+ "keyUri": {
+ "type": "string",
+ "description": "The URI to retrieve the current version of the key.",
+ "readOnly": true
+ },
+ "keyUriWithVersion": {
+ "type": "string",
+ "description": "The URI to retrieve the specific version of the key.",
+ "readOnly": true
+ }
+ },
+ "description": "The properties of the key."
+ },
+ "KeyAttributes": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Attributes"
+ }
+ ],
+ "description": "The attributes of the key."
+ },
+ "KeyCreateParameters": {
+ "properties": {
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "The tags that will be assigned to the key."
+ },
+ "properties": {
+ "$ref": "#/definitions/KeyProperties",
+ "description": "The properties of the key to be created."
+ }
+ },
+ "description": "The parameters used to create a key.",
+ "required": [
+ "properties"
+ ],
+ "x-ms-azure-resource": true
+ },
+ "Key": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/KeyProperties",
+ "description": "The properties of the key."
+ }
+ },
+ "required": [
+ "properties"
+ ],
+ "allOf": [
+ {
+ "$ref": "./keyvault.json#/definitions/Resource"
+ }
+ ],
+ "description": "The key resource."
+ },
+ "KeyListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Key"
+ },
+ "description": "The key resources."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next page of keys."
+ }
+ },
+ "description": "The page of keys."
+ }
+ },
+ "parameters": {
+ "SubscriptionIdParameter": {
+ "name": "subscriptionId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Subscription credentials which uniquely identify 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."
+ }
+ },
+ "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"
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2019-09-01/keyvault.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2019-09-01/keyvault.json
index 415914cd9053..03580e76e435 100644
--- a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2019-09-01/keyvault.json
+++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2019-09-01/keyvault.json
@@ -924,6 +924,7 @@
"enum": [
"A"
],
+ "x-ms-client-default": "A",
"x-ms-enum": {
"name": "SkuFamily",
"modelAsString": true
diff --git a/specification/keyvault/resource-manager/readme.csharp.md b/specification/keyvault/resource-manager/readme.csharp.md
index 2936d8d96bf4..72a9872559cc 100644
--- a/specification/keyvault/resource-manager/readme.csharp.md
+++ b/specification/keyvault/resource-manager/readme.csharp.md
@@ -64,4 +64,16 @@ output-folder: $(csharp-sdks-folder)/$(csharp-profile)/KeyVault/Management.KeyVa
batch:
- tag: profile-hybrid-2019-03-01
+ ```
+
+### Profile: hybrid_2020_09_01
+
+These settings apply only when `--csharp-profile=hybrid_2020_09_01` is specified on the command line.
+
+``` yaml $(csharp-profile)=='hybrid_2020_09_01'
+namespace: Microsoft.Azure.Management.Profiles.$(csharp-profile).KeyVault
+output-folder: $(csharp-sdks-folder)/$(csharp-profile)/KeyVault/Management.KeyVault/Generated
+
+batch:
+ - tag: profile-hybrid-2020-09-01
```
\ No newline at end of file
diff --git a/specification/keyvault/resource-manager/readme.md b/specification/keyvault/resource-manager/readme.md
index ae51d5470d93..1669a1c9130e 100644
--- a/specification/keyvault/resource-manager/readme.md
+++ b/specification/keyvault/resource-manager/readme.md
@@ -61,6 +61,7 @@ These settings apply only when `--tag=package-2019-09` is specified on the comma
input-file:
- Microsoft.KeyVault/stable/2019-09-01/keyvault.json
- Microsoft.KeyVault/stable/2019-09-01/providers.json
+- Microsoft.KeyVault/stable/2019-09-01/keys.json
```
### Tag: package-2018-02-14-preview
@@ -102,6 +103,18 @@ input-file:
- Microsoft.KeyVault/stable/2015-06-01/keyvault.json
```
+### Tag: profile-hybrid-2020-09-01
+
+These settings apply only when `--tag=profile-hybrid-2020-09-01` is specified on the command line.
+Creating this tag to pick proper resources from the hybrid profile.
+
+``` yaml $(tag) == 'profile-hybrid-2020-09-01'
+input-file:
+- Microsoft.KeyVault/stable/2019-09-01/keyvault.json
+- Microsoft.KeyVault/stable/2019-09-01/providers.json
+- Microsoft.KeyVault/stable/2019-09-01/secrets.json
+```
+
### Supressions
``` yaml
diff --git a/specification/keyvault/resource-manager/readme.typescript.md b/specification/keyvault/resource-manager/readme.typescript.md
index fbd12792209e..005215e63a45 100644
--- a/specification/keyvault/resource-manager/readme.typescript.md
+++ b/specification/keyvault/resource-manager/readme.typescript.md
@@ -32,3 +32,18 @@ typescript:
batch:
- tag: profile-hybrid-2019-03-01
```
+
+### Profile: profile-hybrid-2020-09-01
+
+These settings apply only when `--profile=profile-hybrid-2020-09-01` is specified on the command line.
+
+``` yaml $(profile)=='profile-hybrid-2020-09-01'
+typescript:
+ package-name: "@azure/arm-keyvault-profile-2020-09-01-hybrid"
+ output-folder: "$(typescript-sdks-folder)/sdk/keyvault/arm-keyvault-profile-2020-09-01-hybrid"
+ clear-output-folder: true
+ azure-arm: true
+ generate-metadata: true
+ batch:
+ - tag: profile-hybrid-2020-09-01
+```
\ No newline at end of file
diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/preview/2020-10-01-preview/examples/OperationsList.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/preview/2020-10-01-preview/examples/OperationsList.json
index 21e112527ba3..d42cdeab1445 100644
--- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/preview/2020-10-01-preview/examples/OperationsList.json
+++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/preview/2020-10-01-preview/examples/OperationsList.json
@@ -4,35 +4,50 @@
},
"responses": {
"200": {
- "body": [
- {
- "name": "Microsoft.KubernetesConfiguration/sourceControlConfigurations/read",
- "display": {
- "provider": "Microsoft KubernetesConfiguration",
- "resource": "sourceControlConfigurations",
- "operation": "Get Source Control Configuration",
- "description": "Get the specified Source Control Configuration."
+ "body": {
+ "value": [
+ {
+ "name": "Microsoft.KubernetesConfiguration/sourceControlConfigurations/write",
+ "display": {
+ "operation": "Microsoft.KubernetesConfiguration/sourceControlConfigurations/write",
+ "resource": "Microsoft.KubernetesConfiguration/sourceControlConfigurations",
+ "description": "Creates or updates source control configuration.",
+ "provider": "Microsoft Kubernetes Configuration"
+ },
+ "isDataAction": false
+ },
+ {
+ "name": "Microsoft.KubernetesConfiguration/sourceControlConfigurations/read",
+ "display": {
+ "operation": "Microsoft.KubernetesConfiguration/sourceControlConfigurations/read",
+ "resource": "Microsoft.KubernetesConfiguration/sourceControlConfigurations",
+ "description": "Gets source control configuration.",
+ "provider": "Microsoft Kubernetes Configuration"
+ },
+ "isDataAction": false
+ },
+ {
+ "name": "Microsoft.KubernetesConfiguration/sourceControlConfigurations/delete",
+ "display": {
+ "operation": "Microsoft.KubernetesConfiguration/sourceControlConfigurations/delete",
+ "resource": "Microsoft.KubernetesConfiguration/sourceControlConfigurations",
+ "description": "Deletes source control configuration.",
+ "provider": "Microsoft Kubernetes Configuration"
+ },
+ "isDataAction": false
+ },
+ {
+ "name": "Microsoft.KubernetesConfiguration/register/action",
+ "display": {
+ "operation": "Microsoft.KubernetesConfiguration/register/action",
+ "resource": "Register",
+ "description": "Registers subscription to Microsoft.KubernetesConfiguration resource provider.",
+ "provider": "Microsoft Kubernetes Configuration"
+ },
+ "isDataAction": false
}
- },
- {
- "name": "Microsoft.KubernetesConfiguration/sourceControlConfigurations/write",
- "display": {
- "provider": "Microsoft KubernetesConfiguration",
- "resource": "sourceControlConfigurations",
- "operation": "Create a Source Control Configuration",
- "description": "Create the Source Control Configuration specified."
- }
- },
- {
- "name": "Microsoft.KubernetesConfiguration/sourceControlConfigurations/delete",
- "display": {
- "provider": "Microsoft KubernetesConfiguration",
- "resource": "sourceControlConfigurations",
- "operation": "Delete Source Control Configuration",
- "description": "Delete the specified Source Control Configuration."
- }
- }
- ]
+ ]
+ }
}
}
}
diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/preview/2020-10-01-preview/kubernetesconfiguration.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/preview/2020-10-01-preview/kubernetesconfiguration.json
index 72727b92c460..a42f62cca3ad 100644
--- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/preview/2020-10-01-preview/kubernetesconfiguration.json
+++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/preview/2020-10-01-preview/kubernetesconfiguration.json
@@ -636,6 +636,11 @@
"type": "string"
}
}
+ },
+ "isDataAction": {
+ "description": "The flag that indicates whether the operation applies to data plane.",
+ "type": "boolean",
+ "readOnly": true
}
}
},
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/createWorkspaceConnection.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/createWorkspaceConnection.json
new file mode 100644
index 000000000000..9b63af3c400e
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/createWorkspaceConnection.json
@@ -0,0 +1,33 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "resourceGroup-1",
+ "workspaceName": "workspace-1",
+ "connectionName": "connection-1",
+ "api-version": "2020-09-01-preview",
+ "parameters": {
+ "name": "connection-1",
+ "properties": {
+ "category": "ACR",
+ "target": "www.facebook.com",
+ "authType": "PAT",
+ "value": "secrets"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroup-1/providers/Microsoft.MachineLearningServices/workspaces/workspace-1/connections/connection-1",
+ "name": "connection-1",
+ "type": "Microsoft.MachineLearningServices/workspaces/connections",
+ "properties": {
+ "category": "ACR",
+ "target": "www.facebook.com",
+ "authType": "PAT",
+ "value": "secrets"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/deleteWorkspaceConnection.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/deleteWorkspaceConnection.json
new file mode 100644
index 000000000000..f177b778ed4f
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/deleteWorkspaceConnection.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "resourceGroup-1",
+ "workspaceName": "workspace-1",
+ "connectionName": "connection-1",
+ "api-version": "2020-09-01-preview"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/getWorkspaceConnection.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/getWorkspaceConnection.json
new file mode 100644
index 000000000000..28aa3fd500ed
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/getWorkspaceConnection.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "resourceGroup-1",
+ "workspaceName": "workspace-1",
+ "connectionName": "connection-1",
+ "api-version": "2020-09-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroup-1/providers/Microsoft.MachineLearningServices/workspaces/workspace-1/connections/connection-1",
+ "name": "connection-1",
+ "type": "Microsoft.MachineLearningServices/workspaces/connections",
+ "properties": {
+ "category": "ACR",
+ "target": "www.facebook.com",
+ "authType": "PAT",
+ "value": "secrets"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/listNotebookKeys.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/listNotebookKeys.json
new file mode 100644
index 000000000000..34a43f4da5fd
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/listNotebookKeys.json
@@ -0,0 +1,16 @@
+{
+ "parameters": {
+ "subscriptionId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
+ "resourceGroupName": "testrg123",
+ "workspaceName": "workspaces123",
+ "api-version": "2020-09-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "primaryAccessKey": "r5rKCJ018TLk+bdAi/9YaVzgcQ0nkLsUqGyUN03KsdCFtqG0SjFGPV8+vT1frWqkvBL0bGoPpLc1BlZSSaZmOA==",
+ "secondaryAccessKey": "r5rKCJ018TLk+bdAi/9YaVzgcQ0nkLsUqGyUN03KsdCFtqG0SjFGPV8+vT1frWqkvBL0bGoPpLc1BlZSSaZmOA=="
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/listWorkspaceConnections.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/listWorkspaceConnections.json
new file mode 100644
index 000000000000..92996cd601b9
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/listWorkspaceConnections.json
@@ -0,0 +1,40 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "resourceGroup-1",
+ "workspaceName": "workspace-1",
+ "api-version": "2020-09-01-preview",
+ "target": "www.facebook.com",
+ "category": "ACR"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroup-1/providers/Microsoft.MachineLearningServices/workspaces/workspace-1/linkedWorkspaces/connection-1",
+ "name": "connection-1",
+ "type": "Microsoft.MachineLearningServices/workspaces/connections",
+ "properties": {
+ "category": "ACR",
+ "target": "www.facebook.com",
+ "authType": "PAT",
+ "value": "secrets"
+ }
+ },
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroup-1/providers/Microsoft.MachineLearningServices/workspaces/workspace-1/linkedWorkspaces/connection-2",
+ "name": "connection-2",
+ "type": "Microsoft.MachineLearningServices/workspaces/connections",
+ "properties": {
+ "category": "ACR",
+ "target": "www.facebook.com",
+ "authType": "PAT",
+ "value": "secrets"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/workspacePrepareNotebook.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/workspacePrepareNotebook.json
new file mode 100644
index 000000000000..d2d493bcba67
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/workspacePrepareNotebook.json
@@ -0,0 +1,21 @@
+{
+ "parameters": {
+ "subscriptionId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
+ "resourceGroupName": "testrg123",
+ "workspaceName": "workspaces123",
+ "api-version": "2020-09-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "resourceId": "aabbccddee112233445566778899",
+ "fqdn": "testnotebook.notebooks.azure.com",
+ "notebookPreparationError": {
+ "statusCode": 500,
+ "errorMessage": "general error"
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/machineLearningServices.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/machineLearningServices.json
index 3c283424747c..067f48ddf6c9 100644
--- a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/machineLearningServices.json
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/machineLearningServices.json
@@ -1781,6 +1781,286 @@
}
}
}
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/prepareNotebook": {
+ "post": {
+ "tags": [
+ "ProxyOperations"
+ ],
+ "operationId": "Notebooks_Prepare",
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "x-ms-examples": {
+ "Prepare Notebook": {
+ "$ref": "./examples/workspacePrepareNotebook.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/NotebookResourceInfo"
+ }
+ },
+ "202": {
+ "description": "The request was successful; the request was well-formed and received properly."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/listNotebookKeys": {
+ "post": {
+ "tags": [
+ "ProxyOperations"
+ ],
+ "operationId": "Notebooks_ListKeys",
+ "x-ms-examples": {
+ "List Workspace Keys": {
+ "$ref": "./examples/listNotebookKeys.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The request was successful; the request was well-formed and received properly.",
+ "schema": {
+ "$ref": "#/definitions/ListNotebookKeysResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/connections": {
+ "get": {
+ "tags": [
+ "WorkspaceConnections"
+ ],
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "x-ms-examples": {
+ "ListWorkspaceConnections": {
+ "$ref": "./examples/listWorkspaceConnections.json"
+ }
+ },
+ "operationId": "WorkspaceConnections_List",
+ "description": "List all connections under a AML workspace.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/TargetParameter"
+ },
+ {
+ "$ref": "#/parameters/CategoryParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response includes a paginated array of Workspace connections and a URI to the next set of results, if any. For the more information the limits of the number of items in a resource group, see https://azure.microsoft.com/en-us/documentation/articles/azure-subscription-service-limits/.",
+ "schema": {
+ "$ref": "#/definitions/PaginatedWorkspaceConnectionsList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/connections/{connectionName}": {
+ "put": {
+ "tags": [
+ "WorkspaceConnections"
+ ],
+ "operationId": "WorkspaceConnections_Create",
+ "description": "Add a new workspace connection.",
+ "x-ms-examples": {
+ "CreateWorkspaceConnection": {
+ "$ref": "./examples/createWorkspaceConnection.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ConnectionName"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "description": "The object for creating or updating a new workspace connection",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/WorkspaceConnectionDto"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully created the workspace connection.",
+ "schema": {
+ "$ref": "#/definitions/WorkspaceConnection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "WorkspaceConnections"
+ ],
+ "operationId": "WorkspaceConnections_Get",
+ "description": "Get the detail of a workspace connection.",
+ "x-ms-examples": {
+ "GetWorkspaceConnection": {
+ "$ref": "./examples/getWorkspaceConnection.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ConnectionName"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved the detail of the linked workspace.",
+ "schema": {
+ "$ref": "#/definitions/WorkspaceConnection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "WorkspaceConnections"
+ ],
+ "operationId": "WorkspaceConnections_Delete",
+ "description": "Delete a workspace connection.",
+ "x-ms-examples": {
+ "DeleteWorkspaceConnection": {
+ "$ref": "./examples/deleteWorkspaceConnection.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ConnectionName"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully deleted the workspace connection."
+ },
+ "204": {
+ "description": "Specific workspace connection not found."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ }
}
},
"parameters": {
@@ -1987,6 +2267,30 @@
"modelAsString": true
},
"x-ms-parameter-location": "method"
+ },
+ "ConnectionName": {
+ "name": "connectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Friendly name of the workspace connection",
+ "x-ms-parameter-location": "method"
+ },
+ "TargetParameter": {
+ "in": "query",
+ "name": "target",
+ "type": "string",
+ "description": "Target of the workspace connection.",
+ "required": false,
+ "x-ms-parameter-location": "method"
+ },
+ "CategoryParameter": {
+ "in": "query",
+ "name": "category",
+ "type": "string",
+ "description": "Category of the workspace connection.",
+ "required": false,
+ "x-ms-parameter-location": "method"
}
},
"definitions": {
@@ -6017,6 +6321,141 @@
"objectId",
"tenantId"
]
+ },
+ "NotebookListCredentialsResult": {
+ "type": "object",
+ "properties": {
+ "primaryAccessKey": {
+ "type": "string"
+ },
+ "secondaryAccessKey": {
+ "type": "string"
+ }
+ }
+ },
+ "NotebookResourceInfo": {
+ "type": "object",
+ "properties": {
+ "fqdn": {
+ "type": "string"
+ },
+ "resourceId": {
+ "type": "string",
+ "description": "the data plane resourceId that used to initialize notebook component"
+ },
+ "notebookPreparationError": {
+ "$ref": "#/definitions/NotebookPreparationError",
+ "description": "The error that occurs when preparing notebook."
+ }
+ }
+ },
+ "NotebookPreparationError": {
+ "type": "object",
+ "properties": {
+ "errorMessage": {
+ "type": "string"
+ },
+ "statusCode": {
+ "format": "int32",
+ "type": "integer"
+ }
+ }
+ },
+ "ListNotebookKeysResult": {
+ "type": "object",
+ "properties": {
+ "primaryAccessKey": {
+ "readOnly": true,
+ "type": "string"
+ },
+ "secondaryAccessKey": {
+ "readOnly": true,
+ "type": "string"
+ }
+ }
+ },
+ "PaginatedWorkspaceConnectionsList": {
+ "type": "object",
+ "description": "Paginated list of Workspace connection objects.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "description": "An array of Workspace connection objects.",
+ "items": {
+ "$ref": "#/definitions/WorkspaceConnection"
+ }
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "A continuation link (absolute URI) to the next page of results in the list."
+ }
+ }
+ },
+ "WorkspaceConnection": {
+ "x-ms-azure-resource": true,
+ "description": "Workspace connection.",
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "ResourceId of the workspace connection.",
+ "readOnly": true
+ },
+ "name": {
+ "type": "string",
+ "description": "Friendly name of the workspace connection.",
+ "readOnly": true
+ },
+ "type": {
+ "type": "string",
+ "description": "Resource type of workspace connection.",
+ "readOnly": true
+ },
+ "properties": {
+ "type": "object",
+ "description": "Properties of workspace connection.",
+ "$ref": "#/definitions/WorkspaceConnectionProps",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "WorkspaceConnectionDto": {
+ "type": "object",
+ "description": "object used for creating workspace connection.",
+ "properties": {
+ "name": {
+ "description": "Friendly name of the workspace connection",
+ "type": "string"
+ },
+ "properties": {
+ "type": "object",
+ "description": "Properties of workspace connection.",
+ "$ref": "#/definitions/WorkspaceConnectionProps",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "WorkspaceConnectionProps": {
+ "type": "object",
+ "description": "Workspace Connection specific properties.",
+ "properties": {
+ "category": {
+ "description": "Category of the workspace connection.",
+ "type": "string"
+ },
+ "target": {
+ "description": "Target of the workspace connection.",
+ "type": "string"
+ },
+ "authType": {
+ "description": "Authorization type of the workspace connection.",
+ "type": "string"
+ },
+ "value": {
+ "description": "Value details of the workspace connection.",
+ "type": "string"
+ }
+ }
}
}
}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-04-01/examples/createWorkspace.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-04-01/examples/createWorkspace.json
index 456af90f383a..005f93303c08 100644
--- a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-04-01/examples/createWorkspace.json
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-04-01/examples/createWorkspace.json
@@ -10,6 +10,9 @@
"name": "Basic",
"tier": "Basic"
},
+ "identity": {
+ "type": "SystemAssigned"
+ },
"properties": {
"friendlyName": "HelloName",
"description": "test description",
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-06-01/examples/createWorkspace.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-06-01/examples/createWorkspace.json
index 14b0251270ee..53dd13e4206c 100644
--- a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-06-01/examples/createWorkspace.json
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-06-01/examples/createWorkspace.json
@@ -102,6 +102,9 @@
"name": "Basic",
"tier": "Basic"
},
+ "identity": {
+ "type": "SystemAssigned"
+ },
"properties": {
"containerRegistry": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.ContainerRegistry/registries/testRegistry",
"keyVault": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.KeyVault/vaults/testkv",
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/createWorkspace.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/createWorkspace.json
index d2d30a73a0c7..6fdc65e26d5a 100644
--- a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/createWorkspace.json
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/createWorkspace.json
@@ -10,6 +10,9 @@
"name": "Basic",
"tier": "Basic"
},
+ "identity": {
+ "type": "SystemAssigned"
+ },
"properties": {
"friendlyName": "HelloName",
"description": "test description",
diff --git a/specification/marketplace/resource-manager/Microsoft.Marketplace/stable/2020-01-01/Marketplace.json b/specification/marketplace/resource-manager/Microsoft.Marketplace/stable/2020-01-01/Marketplace.json
index 03956116190d..ec84a4ad681d 100644
--- a/specification/marketplace/resource-manager/Microsoft.Marketplace/stable/2020-01-01/Marketplace.json
+++ b/specification/marketplace/resource-manager/Microsoft.Marketplace/stable/2020-01-01/Marketplace.json
@@ -313,6 +313,12 @@
"schema": {
"$ref": "#/definitions/PrivateStoreList"
}
+ },
+ "default": {
+ "description": "Microsoft.Marketplace error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
}
},
"x-ms-pageable": {
@@ -575,6 +581,37 @@
"eTag": {
"description": "Identifier for purposes of race condition",
"type": "string"
+ },
+ "privateStoreName": {
+ "description": "Private Store Name",
+ "type": "string"
+ },
+ "tenantTag": {
+ "description": "Tenant Tag",
+ "type": "string"
+ },
+ "tenantIds": {
+ "description": "Tenant ids",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "customerTag": {
+ "description": "Customer tag",
+ "type": "string"
+ },
+ "hasCommercialAssociation": {
+ "description": "Indicating whether private store has association with Commercial's Billing Account (through billing account's customer tag retrieved from GSM for a subscription",
+ "type": "boolean"
+ },
+ "hasMultiTenantAssociation": {
+ "description": "Indicating whether private store has association with multiple tenants (through tenant's tag retrieved from AAD",
+ "type": "boolean"
+ },
+ "isGov": {
+ "description": "Is government",
+ "type": "boolean"
}
}
},
@@ -636,14 +673,14 @@
"description": "Private store unique id",
"type": "string"
},
- "createdBy": {
+ "createdAt": {
"readOnly": true,
- "description": "Private store offer creator name",
+ "description": "Private store offer creation date",
"type": "string"
},
- "createdDate": {
+ "modifiedAt": {
"readOnly": true,
- "description": "Private store offer created date",
+ "description": "Private store offer modification date",
"type": "string"
},
"specificPlanIdsLimitation": {
@@ -652,6 +689,42 @@
"items": {
"type": "string"
}
+ },
+ "updateSuppressedDueIdempotence": {
+ "description": "Indicating whether the offer was not updated to db (true = not updated). If the allow list is identical to the existed one in db, the offer would not be updated.",
+ "type": "boolean"
+ },
+ "iconFileUris": {
+ "description": "",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "$ref": "#/definitions/icon"
+ }
+ }
+ }
+ },
+ "icon": {
+ "type": "object",
+ "properties": {
+ "iconKind": {
+ "description": "Icon size",
+ "type": "string",
+ "enum": [
+ "Small",
+ "Medium",
+ "Large",
+ "Wide",
+ "Hero"
+ ],
+ "x-ms-enum": {
+ "name": "IconKind",
+ "modelAsString": true
+ }
+ },
+ "uri": {
+ "description": "Icon uri",
+ "type": "string"
}
}
},
diff --git a/specification/marketplace/resource-manager/Microsoft.Marketplace/stable/2020-01-01/examples/GetPrivateStoreOffer.json b/specification/marketplace/resource-manager/Microsoft.Marketplace/stable/2020-01-01/examples/GetPrivateStoreOffer.json
index 951260a83750..55764f63f6ee 100644
--- a/specification/marketplace/resource-manager/Microsoft.Marketplace/stable/2020-01-01/examples/GetPrivateStoreOffer.json
+++ b/specification/marketplace/resource-manager/Microsoft.Marketplace/stable/2020-01-01/examples/GetPrivateStoreOffer.json
@@ -21,8 +21,8 @@
"0002",
"0003"
],
- "createdDate": "05/29/2015 5:50",
- "createdBy": "test@microsoft.com"
+ "modifiedAt": "05/29/2015 5:50",
+ "createdAt": "05/28/2015 5:50"
}
}
}
diff --git a/specification/marketplace/resource-manager/Microsoft.Marketplace/stable/2020-01-01/examples/GetPrivateStoreOffers.json b/specification/marketplace/resource-manager/Microsoft.Marketplace/stable/2020-01-01/examples/GetPrivateStoreOffers.json
index 2805dbb00d7c..b62d52c95461 100644
--- a/specification/marketplace/resource-manager/Microsoft.Marketplace/stable/2020-01-01/examples/GetPrivateStoreOffers.json
+++ b/specification/marketplace/resource-manager/Microsoft.Marketplace/stable/2020-01-01/examples/GetPrivateStoreOffers.json
@@ -23,8 +23,8 @@
"0002",
"0003"
],
- "createdDate": "05/29/2015 5:50",
- "createdBy": "test@microsoft.com"
+ "modifiedAt": "05/29/2015 5:50",
+ "createdAt": "05/28/2015 5:50"
}
},
{
@@ -41,8 +41,8 @@
"0001",
"0002"
],
- "createdDate": "05/29/2015 5:50",
- "createdBy": "test@microsoft.com"
+ "modifiedAt": "05/29/2015 5:50",
+ "createdAt": "05/28/2015 5:50"
}
}
]
diff --git a/specification/marketplace/resource-manager/Microsoft.Marketplace/stable/2020-01-01/examples/GetPrivateStorePrivateOffer.json b/specification/marketplace/resource-manager/Microsoft.Marketplace/stable/2020-01-01/examples/GetPrivateStorePrivateOffer.json
index fbe2f70fa1d0..fac3820c801e 100644
--- a/specification/marketplace/resource-manager/Microsoft.Marketplace/stable/2020-01-01/examples/GetPrivateStorePrivateOffer.json
+++ b/specification/marketplace/resource-manager/Microsoft.Marketplace/stable/2020-01-01/examples/GetPrivateStorePrivateOffer.json
@@ -22,8 +22,8 @@
"0002",
"0003"
],
- "createdDate": "05/29/2015 5:50",
- "createdBy": "test@microsoft.com"
+ "modifiedAt": "05/29/2015 5:50",
+ "createdAt": "05/28/2015 5:50"
}
}
}
diff --git a/specification/marketplace/resource-manager/Microsoft.Marketplace/stable/2020-01-01/examples/GetPrivateStorePrivateOffers.json b/specification/marketplace/resource-manager/Microsoft.Marketplace/stable/2020-01-01/examples/GetPrivateStorePrivateOffers.json
index a0121c34d04d..bae8810b4efd 100644
--- a/specification/marketplace/resource-manager/Microsoft.Marketplace/stable/2020-01-01/examples/GetPrivateStorePrivateOffers.json
+++ b/specification/marketplace/resource-manager/Microsoft.Marketplace/stable/2020-01-01/examples/GetPrivateStorePrivateOffers.json
@@ -24,8 +24,8 @@
"0002",
"0003"
],
- "createdDate": "05/29/2015 5:50",
- "createdBy": "test@microsoft.com"
+ "modifiedAt": "05/29/2015 5:50",
+ "createdAt": "05/28/2015 5:50"
}
},
{
@@ -42,8 +42,8 @@
"0001",
"0002"
],
- "createdDate": "05/29/2015 5:50",
- "createdBy": "test@microsoft.com"
+ "modifiedAt": "05/29/2015 5:50",
+ "createdAt": "05/28/2015 5:50"
}
}
]
diff --git a/specification/marketplace/resource-manager/Microsoft.Marketplace/stable/2020-01-01/examples/GetPrivateStores.json b/specification/marketplace/resource-manager/Microsoft.Marketplace/stable/2020-01-01/examples/GetPrivateStores.json
index 16988bb65256..4a05ee8af23a 100644
--- a/specification/marketplace/resource-manager/Microsoft.Marketplace/stable/2020-01-01/examples/GetPrivateStores.json
+++ b/specification/marketplace/resource-manager/Microsoft.Marketplace/stable/2020-01-01/examples/GetPrivateStores.json
@@ -14,7 +14,13 @@
"properties": {
"privateStoreId": "a0e28e55-90c4-41d8-8e34-bb7ef7775406",
"availability": "enabled",
- "eTag": "\"9301f4fd-0000-0100-0000-5e248b350332\""
+ "eTag": "\"9301f4fd-0000-0100-0000-5e248b350332\"",
+ "tenantIds": [],
+ "tenantTag": "a02807d4-c5de-4593-b3c1-c46d4a3a56c7",
+ "customerTag": "",
+ "hasCommercialAssociation": false,
+ "hasMultiTenantAssociation": true,
+ "isGov": false
}
},
{
@@ -24,7 +30,15 @@
"properties": {
"privateStoreId": "f4528e55-98c4-4328-8e34-bb7ef7775345",
"availability": "disabled",
- "eTag": "\"9301f4fd-0000-0100-0000-5e234b350345\""
+ "eTag": "\"9301f4fd-0000-0100-0000-5e234b350345\"",
+ "tenantIds": [
+ "f686d426-123a-42db-81b7-ab578e110ccd"
+ ],
+ "tenantTag": "",
+ "customerTag": "ABC",
+ "hasCommercialAssociation": true,
+ "hasMultiTenantAssociation": false,
+ "isGov": false
}
}
]
diff --git a/specification/marketplace/resource-manager/Microsoft.Marketplace/stable/2020-01-01/examples/UpdatePrivateStoreOffer.json b/specification/marketplace/resource-manager/Microsoft.Marketplace/stable/2020-01-01/examples/UpdatePrivateStoreOffer.json
index 99ce60ce0ad2..3f462c10d6a3 100644
--- a/specification/marketplace/resource-manager/Microsoft.Marketplace/stable/2020-01-01/examples/UpdatePrivateStoreOffer.json
+++ b/specification/marketplace/resource-manager/Microsoft.Marketplace/stable/2020-01-01/examples/UpdatePrivateStoreOffer.json
@@ -31,8 +31,8 @@
"0001",
"0002"
],
- "createdDate": "05/29/2015 5:50",
- "createdBy": "test@microsoft.com"
+ "modifiedAt": "05/29/2015 5:50",
+ "createdAt": "05/28/2015 5:50"
}
}
}
diff --git a/specification/marketplace/resource-manager/Microsoft.Marketplace/stable/2020-01-01/examples/UpdatePrivateStorePrivateOffer.json b/specification/marketplace/resource-manager/Microsoft.Marketplace/stable/2020-01-01/examples/UpdatePrivateStorePrivateOffer.json
index f5f8f884c2b6..06287f620fe1 100644
--- a/specification/marketplace/resource-manager/Microsoft.Marketplace/stable/2020-01-01/examples/UpdatePrivateStorePrivateOffer.json
+++ b/specification/marketplace/resource-manager/Microsoft.Marketplace/stable/2020-01-01/examples/UpdatePrivateStorePrivateOffer.json
@@ -32,8 +32,8 @@
"0001",
"0002"
],
- "createdDate": "05/29/2015 5:50",
- "createdBy": "test@microsoft.com"
+ "modifiedAt": "05/29/2015 5:50",
+ "createdAt": "05/28/2015 5:50"
}
}
}
diff --git a/specification/mixedreality/data-plane/Microsoft.MixedReality/examples/GetToken.json b/specification/mixedreality/data-plane/Microsoft.MixedReality/examples/GetToken.json
new file mode 100644
index 000000000000..7db83cea091d
--- /dev/null
+++ b/specification/mixedreality/data-plane/Microsoft.MixedReality/examples/GetToken.json
@@ -0,0 +1,35 @@
+{
+ "parameters": {
+ "accountId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "api-version": "2019-02-28-preview",
+ "X-MRC-CV": ""
+ },
+ "responses": {
+ "200": {
+ "headers": {
+ "MS-CV": "dKEFmka2kkSlDmp/af+sOw"
+ },
+ "body": {
+ "AccessToken": "******"
+ }
+ },
+ "400": {
+ "headers": {
+ "MS-CV": "dKEFmka2kkSlDmp/af+sOw",
+ "WWW-Authenticate": "Invalid request: errorMessage"
+ }
+ },
+ "401": {
+ "headers": {
+ "MS-CV": "dKEFmka2kkSlDmp/af+sOw",
+ "WWW-Authenticate": "Invalid token: errorMessage"
+ }
+ },
+ "429": {
+ "headers": {
+ "MS-CV": "dKEFmka2kkSlDmp/af+sOw",
+ "Retry-After": "5"
+ }
+ }
+ }
+}
diff --git a/specification/mixedreality/data-plane/Microsoft.MixedReality/preview/2019-02-28-preview/mr-sts.json b/specification/mixedreality/data-plane/Microsoft.MixedReality/preview/2019-02-28-preview/mr-sts.json
new file mode 100644
index 000000000000..6f6dfa69e2f5
--- /dev/null
+++ b/specification/mixedreality/data-plane/Microsoft.MixedReality/preview/2019-02-28-preview/mr-sts.json
@@ -0,0 +1,142 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "MixedRealityStsClient",
+ "description": "Definition for the Mixed Reality Cloud STS service APIs.",
+ "version": "2019-02-28-preview"
+ },
+ "host": "sts.mixedreality.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "paths": {
+ "/Accounts/{accountId}/token": {
+ "get": {
+ "tags": [
+ "Accounts"
+ ],
+ "summary": "Gets an access token to be used with Mixed Reality services.",
+ "operationId": "GetToken",
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "TokenGet": {
+ "$ref": "../../examples/GetToken.json"
+ }
+ },
+ "parameters": [
+ {
+ "in": "path",
+ "name": "accountId",
+ "description": "The Mixed Reality account identifier.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "X-MRC-CV",
+ "x-ms-client-name": "clientRequestId",
+ "in": "header",
+ "description": "The client request correlation vector, which should be set to a new value for each request. Useful when debugging with Microsoft.",
+ "type": "string",
+ "x-ms-parameter-grouping": {
+ "name": "token-request-options"
+ }
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The API version.",
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/StsTokenResponseMessage"
+ },
+ "headers": {
+ "MS-CV": {
+ "x-ms-client-name": "requestId",
+ "description": "The service response correlation vector, which will be a new value for every response. Useful when debugging with Microsoft.",
+ "type": "string"
+ }
+ }
+ },
+ "400": {
+ "description": "Bad request",
+ "headers": {
+ "MS-CV": {
+ "x-ms-client-name": "requestId",
+ "description": "The service response correlation vector, which will be a new value for every response. Useful when debugging with Microsoft.",
+ "type": "string"
+ },
+ "WWW-Authenticate": {
+ "description": "Describes the error encountered while trying to authenticate the resource.",
+ "type": "string"
+ }
+ },
+ "x-ms-error-response": true
+ },
+ "401": {
+ "description": "Unauthorized",
+ "headers": {
+ "MS-CV": {
+ "x-ms-client-name": "requestId",
+ "description": "The service response correlation vector, which will be a new value for every response. Useful when debugging with Microsoft.",
+ "type": "string"
+ },
+ "WWW-Authenticate": {
+ "description": "Describes the error encountered while trying to authenticate the resource.",
+ "type": "string"
+ }
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests",
+ "headers": {
+ "MS-CV": {
+ "x-ms-client-name": "requestId",
+ "description": "The service response correlation vector, which will be a new value for every response. Useful when debugging with Microsoft.",
+ "type": "string"
+ },
+ "WWW-Authenticate": {
+ "description": "Describes the error encountered while trying to authenticate the resource.",
+ "type": "string"
+ }
+ },
+ "x-ms-error-response": true
+ },
+ "default": {
+ "description": "Error",
+ "headers": {
+ "MS-CV": {
+ "x-ms-client-name": "requestId",
+ "description": "The service response correlation vector, which will be a new value for every response. Useful when debugging with Microsoft.",
+ "type": "string"
+ }
+ },
+ "x-ms-error-response": true
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "StsTokenResponseMessage": {
+ "description": "Represents a token response message from the STS service.",
+ "required": [
+ "AccessToken"
+ ],
+ "type": "object",
+ "properties": {
+ "AccessToken": {
+ "description": "An access token for the account.",
+ "type": "string"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/mixedreality/data-plane/readme.md b/specification/mixedreality/data-plane/readme.md
new file mode 100644
index 000000000000..158ed9ad52a3
--- /dev/null
+++ b/specification/mixedreality/data-plane/readme.md
@@ -0,0 +1,50 @@
+# Mixed Reality
+
+> see https://aka.ms/autorest
+
+This is the AutoRest configuration file for Mixed Reality.
+
+## Getting Started
+
+To build the SDKs for this API, simply install AutoRest via `npm` (`npm install -g autorest`) and then run:
+
+> `autorest readme.md`
+
+To see additional help and options, run:
+
+> `autorest --help`
+
+For other options on installation see [Installing AutoRest](https://aka.ms/autorest/install) on the AutoRest github page.
+
+---
+
+## Configuration
+
+## Suppression
+
+``` yaml
+directive:
+ - suppress: R3016
+ from: mr-sts.json
+ where: $.definitions.StsTokenResponseMessage.properties.AccessToken
+ reason: The API is already public and changing the casing will involve a breaking change.
+```
+
+### Basic Information
+
+These are the global settings for Azure Mixed Reality STS.
+
+```yaml
+title: MixedRealityStsClient
+openapi-type: data-plane
+tag: package-2019-02-28-preview
+```
+
+### Tag: package-2019-02-28-preview
+
+These settings apply only when `--tag=package-2019-02-28-preview` is specified on the command line.
+
+``` yaml $(tag) == 'package-2019-02-28-preview'
+input-file:
+- Microsoft.MixedReality/preview/2019-02-28-preview/mr-sts.json
+```
\ No newline at end of file
diff --git a/specification/monitor/resource-manager/readme.csharp.md b/specification/monitor/resource-manager/readme.csharp.md
index 946deb424832..4c45821ceb70 100644
--- a/specification/monitor/resource-manager/readme.csharp.md
+++ b/specification/monitor/resource-manager/readme.csharp.md
@@ -32,4 +32,16 @@ output-folder: $(csharp-sdks-folder)/$(csharp-profile)/Monitor/Management.Monito
batch:
- tag: profile-hybrid-2019-03-01
+ ```
+
+### Profile: hybrid_2020_09_01
+
+These settings apply only when `--csharp-profile=hybrid_2020_09_01` is specified on the command line.
+
+``` yaml $(csharp-profile)=='hybrid_2020_09_01'
+namespace: Microsoft.Azure.Management.Profiles.$(csharp-profile).Monitor
+output-folder: $(csharp-sdks-folder)/$(csharp-profile)/Monitor/Management.Monitor/Generated
+
+batch:
+ - tag: profile-hybrid-2020-09-01
```
\ No newline at end of file
diff --git a/specification/monitor/resource-manager/readme.go.md b/specification/monitor/resource-manager/readme.go.md
index 25cac5bb818a..253bc77a179c 100644
--- a/specification/monitor/resource-manager/readme.go.md
+++ b/specification/monitor/resource-manager/readme.go.md
@@ -19,6 +19,7 @@ batch:
- tag: package-2018-11-preview
- tag: package-2019-03
- tag: package-2019-06
+ - tag: package-2020-03
```
### Tag: package-2017-09 and go
@@ -74,3 +75,12 @@ Please also specify `--go-sdk-folder=`.
+
+``` yaml $(tag) == 'package-2020-03' && $(go)
+output-folder: $(go-sdk-folder)/services/preview/monitor/mgmt/2020-03-01-preview/$(namespace)
+```
diff --git a/specification/monitor/resource-manager/readme.md b/specification/monitor/resource-manager/readme.md
index 77df0e2c6e18..eafd22614243 100644
--- a/specification/monitor/resource-manager/readme.md
+++ b/specification/monitor/resource-manager/readme.md
@@ -347,11 +347,11 @@ input-file:
- Microsoft.Insights/stable/2017-04-01/activityLogAlerts_API.json
```
-### Tag: package-2019-11-preview-only
+### Tag: package-2019-11-01-preview-only
-These settings apply only when `--tag=package-2019-11-preview-only` is specified on the command line.
+These settings apply only when `--tag=package-2019-11-01-preview-only` is specified on the command line.
-``` yaml $(tag) == 'package-2019-11-preview-only'
+``` yaml $(tag) == 'package-2019-11-01-preview-only'
input-file:
- Microsoft.Insights/preview/2019-11-01-preview/dataCollectionRuleAssociations_API.json
- Microsoft.Insights/preview/2019-11-01-preview/dataCollectionRules_API.json
@@ -629,6 +629,21 @@ input-file:
- Microsoft.Insights/stable/2015-04-01/operations_API.json
```
+### Tag: profile-hybrid-2020-09-01
+
+These settings apply only when `--tag=profile-hybrid-2020-09-01` is specified on the command line.
+Creating this tag to pick proper resources from the hybrid profile.
+
+``` yaml $(tag) == 'profile-hybrid-2020-09-01'
+input-file:
+- Microsoft.Insights/stable/2018-01-01/metricDefinitions_API.json
+- Microsoft.Insights/stable/2018-01-01/metrics_API.json
+- Microsoft.Insights/preview/2017-05-01-preview/diagnosticsSettings_API.json
+- Microsoft.Insights/preview/2017-05-01-preview/diagnosticsSettingsCategories_API.json
+- Microsoft.Insights/stable/2015-04-01/eventCategories_API.json
+- Microsoft.Insights/stable/2015-04-01/operations_API.json
+```
+
## AzureResourceSchema
See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/monitor/resource-manager/readme.python.md b/specification/monitor/resource-manager/readme.python.md
index 92a777c5f250..d9b362bb57cd 100644
--- a/specification/monitor/resource-manager/readme.python.md
+++ b/specification/monitor/resource-manager/readme.python.md
@@ -32,6 +32,7 @@ Generate all API versions currently shipped for this package
batch:
- tag: package-2020-05-preview
- tag: package-2020-01-01-preview-only
+ - tag: package-2019-11-01-preview-only
- tag: package-2019-10-17-preview-only
- tag: package-2019-06-01-only
- tag: package-2019-03-01-only
@@ -57,6 +58,7 @@ clear-output-folder: true
batch:
- tag: package-2020-05-preview
- tag: package-2020-01-01-preview-only
+ - tag: package-2019-11-01-preview-only
- tag: package-2019-10-17-preview-only
- tag: package-2019-06-01-only
- tag: package-2019-03-01-only
@@ -110,6 +112,19 @@ python:
output-folder: $(python-sdks-folder)/$(python-base-folder)/v2020_01_01_preview
```
+### Tag: package-2019-11-01-preview-only and python
+
+These settings apply only when `--tag=package-2019-11-01-preview-only --python` is specified on the command line.
+Please also specify `--python-sdks-folder=`.
+
+``` yaml $(tag) == 'package-2019-11-01-preview-only'
+namespace: $(python-base-namespace).v2019_11_01_preview
+output-folder: $(python-sdks-folder)/$(python-base-folder)/v2019_11_01_preview
+python:
+ namespace: $(python-base-namespace).v2019_11_01_preview
+ output-folder: $(python-sdks-folder)/$(python-base-folder)/v2019_11_01_preview
+```
+
### Tag: package-2019-10-17-preview-only and python
These settings apply only when `--tag=package-2019-10-17-preview-only --python` is specified on the command line.
diff --git a/specification/monitor/resource-manager/readme.typescript.md b/specification/monitor/resource-manager/readme.typescript.md
index dd4533910cc4..002921c345f7 100644
--- a/specification/monitor/resource-manager/readme.typescript.md
+++ b/specification/monitor/resource-manager/readme.typescript.md
@@ -30,4 +30,17 @@ typescript:
clear-output-folder: true
batch:
- tag: profile-hybrid-2019-03-01
+```
+
+### Profile: profile-hybrid-2020-09-01
+
+These settings apply only when `--profile=profile-hybrid-2020-09-01` is specified on the command line.
+
+``` yaml $(profile)=='profile-hybrid-2020-09-01'
+typescript:
+ package-name: "@azure/arm-monitor-profile-2020-09-01-hybrid"
+ output-folder: "$(typescript-sdks-folder)/sdk/monitor/arm-monitor-profile-2020-09-01-hybrid"
+ clear-output-folder: true
+ batch:
+ - tag: profile-hybrid-2020-09-01
```
\ No newline at end of file
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Accounts_CreateOrUpdate.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Accounts_CreateOrUpdate.json
index aba4960cdd29..40f9a6db5350 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Accounts_CreateOrUpdate.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Accounts_CreateOrUpdate.json
@@ -3,7 +3,7 @@
"subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
"resourceGroupName": "myRG",
"accountName": "account1",
- "api-version": "2020-06-01",
+ "api-version": "2020-05-01",
"body": {
"location": "eastus",
"properties": {
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Accounts_Delete.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Accounts_Delete.json
index d9604fb9072d..54d78cbf2ff1 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Accounts_Delete.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Accounts_Delete.json
@@ -3,7 +3,7 @@
"subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
"resourceGroupName": "myRG",
"accountName": "account1",
- "api-version": "2020-06-01"
+ "api-version": "2020-05-01"
},
"responses": {
"202": {},
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Accounts_Get.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Accounts_Get.json
index 28b862df740f..867f6e3a805c 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Accounts_Get.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Accounts_Get.json
@@ -3,7 +3,7 @@
"subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
"resourceGroupName": "myRG",
"accountName": "account1",
- "api-version": "2020-06-01"
+ "api-version": "2020-05-01"
},
"responses": {
"200": {
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Accounts_List.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Accounts_List.json
index 7d127ac8075c..76e9fc31d7d0 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Accounts_List.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Accounts_List.json
@@ -2,7 +2,7 @@
"parameters": {
"subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
"resourceGroupName": "myRG",
- "api-version": "2020-06-01"
+ "api-version": "2020-05-01"
},
"responses": {
"200": {
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Accounts_Update.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Accounts_Update.json
index 789d8913e603..8c705be0caa2 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Accounts_Update.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Accounts_Update.json
@@ -3,7 +3,7 @@
"subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
"resourceGroupName": "myRG",
"accountName": "account1",
- "api-version": "2020-06-01",
+ "api-version": "2020-05-01",
"body": {}
},
"responses": {
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/BackupPolicies_Create.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/BackupPolicies_Create.json
index 90de6514aefc..02d157922cfa 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/BackupPolicies_Create.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/BackupPolicies_Create.json
@@ -4,7 +4,7 @@
"resourceGroupName": "myRG",
"accountName": "account1",
"backupPolicyName": "backupPolicyName",
- "api-version": "2020-06-01",
+ "api-version": "2020-05-01",
"body": {
"location": "westus",
"properties": {
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/BackupPolicies_Delete.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/BackupPolicies_Delete.json
index 598b534709d6..69699baacbd6 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/BackupPolicies_Delete.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/BackupPolicies_Delete.json
@@ -4,7 +4,7 @@
"resourceGroupName": "resourceGroup",
"accountName": "accountName",
"backupPolicyName": "backupPolicyName",
- "api-version": "2020-06-01"
+ "api-version": "2020-05-01"
},
"responses": {
"204": {},
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/BackupPolicies_Get.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/BackupPolicies_Get.json
index da4828b8dec9..5e3b13ae6e54 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/BackupPolicies_Get.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/BackupPolicies_Get.json
@@ -4,7 +4,7 @@
"resourceGroupName": "myRG",
"accountName": "account1",
"backupPolicyName": "backupPolicyName",
- "api-version": "2020-06-01"
+ "api-version": "2020-05-01"
},
"responses": {
"200": {
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/BackupPolicies_List.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/BackupPolicies_List.json
index 232808ad6322..27335ab9fec9 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/BackupPolicies_List.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/BackupPolicies_List.json
@@ -3,7 +3,7 @@
"subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
"resourceGroupName": "myRG",
"accountName": "account1",
- "api-version": "2020-06-01"
+ "api-version": "2020-05-01"
},
"responses": {
"200": {
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/BackupPolicies_Update.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/BackupPolicies_Update.json
index 0258711a70a1..960a6b91f4fb 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/BackupPolicies_Update.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/BackupPolicies_Update.json
@@ -4,7 +4,7 @@
"resourceGroupName": "myRG",
"accountName": "account1",
"backupPolicyName": "backupPolicyName",
- "api-version": "2020-06-01",
+ "api-version": "2020-05-01",
"body": {
"location": "westus",
"properties": {
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Backups_Account_Delete.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Backups_Account_Delete.json
index 63c3337ab97f..c7385d439834 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Backups_Account_Delete.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Backups_Account_Delete.json
@@ -4,7 +4,7 @@
"resourceGroupName": "resourceGroup",
"accountName": "accountName",
"backupName": "backupName",
- "api-version": "2020-06-01"
+ "api-version": "2020-05-01"
},
"responses": {
"204": {},
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Backups_Account_Get.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Backups_Account_Get.json
index a1c6de3d81fd..4a0803cf8b04 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Backups_Account_Get.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Backups_Account_Get.json
@@ -4,7 +4,7 @@
"resourceGroupName": "myRG",
"accountName": "account1",
"backupName": "backup1",
- "api-version": "2020-06-01"
+ "api-version": "2020-05-01"
},
"responses": {
"200": {
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Backups_Account_List.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Backups_Account_List.json
index ccec522d23f3..d883871687f9 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Backups_Account_List.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Backups_Account_List.json
@@ -3,7 +3,7 @@
"subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
"resourceGroupName": "myRG",
"accountName": "account1",
- "api-version": "2020-06-01"
+ "api-version": "2020-05-01"
},
"responses": {
"200": {
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Backups_Create.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Backups_Create.json
index 5f2fbb5fe05b..99f51a262361 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Backups_Create.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Backups_Create.json
@@ -6,7 +6,7 @@
"poolName": "pool1",
"volumeName": "volume1",
"backupName": "backup1",
- "api-version": "2020-06-01",
+ "api-version": "2020-05-01",
"body": {
"location": "eastus",
"properties": {
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Backups_Delete.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Backups_Delete.json
index cdfdd661cac9..cd83b5df5bc3 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Backups_Delete.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Backups_Delete.json
@@ -6,7 +6,7 @@
"poolName": "poolName",
"volumeName": "volumeName",
"backupName": "backupName",
- "api-version": "2020-06-01"
+ "api-version": "2020-05-01"
},
"responses": {
"204": {},
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Backups_Get.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Backups_Get.json
index 08946493d505..f7c7c65ba47a 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Backups_Get.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Backups_Get.json
@@ -6,7 +6,7 @@
"poolName": "pool1",
"volumeName": "volume1",
"backupName": "backup1",
- "api-version": "2020-06-01"
+ "api-version": "2020-05-01"
},
"responses": {
"200": {
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Backups_List.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Backups_List.json
index b3a2651411a9..4f58b64fdc03 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Backups_List.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Backups_List.json
@@ -5,7 +5,7 @@
"accountName": "account1",
"poolName": "pool1",
"volumeName": "volume1",
- "api-version": "2020-06-01"
+ "api-version": "2020-05-01"
},
"responses": {
"200": {
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Backups_Update.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Backups_Update.json
index adc5a8cfccf5..f0a4f273d521 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Backups_Update.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Backups_Update.json
@@ -6,7 +6,7 @@
"poolName": "pool1",
"volumeName": "volume1",
"backupName": "backup1",
- "api-version": "2020-06-01",
+ "api-version": "2020-05-01",
"body": {}
},
"responses": {
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/CheckFilePathAvailability.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/CheckFilePathAvailability.json
index cb880e3f0498..3e3c84891730 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/CheckFilePathAvailability.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/CheckFilePathAvailability.json
@@ -2,7 +2,7 @@
"parameters": {
"subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
"location": "eastus",
- "api-version": "2020-06-01",
+ "api-version": "2020-05-01",
"body": {
"name": "my-exact-filepth",
"type": "netAppAccount/capacityPools/volume",
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/CheckNameAvailability.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/CheckNameAvailability.json
index 6e145ad82a8d..39bfc081320f 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/CheckNameAvailability.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/CheckNameAvailability.json
@@ -2,7 +2,7 @@
"parameters": {
"subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
"location": "eastus",
- "api-version": "2020-06-01",
+ "api-version": "2020-05-01",
"body": {
"name": "accName",
"type": "netAppAccount",
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/CheckQuotaAvailability.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/CheckQuotaAvailability.json
index 8de7c440d298..72c9e084b04c 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/CheckQuotaAvailability.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/CheckQuotaAvailability.json
@@ -2,7 +2,7 @@
"parameters": {
"subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
"location": "eastus",
- "api-version": "2020-06-01",
+ "api-version": "2020-05-01",
"body": {
"name": "resource1",
"type": "Microsoft.NetApp/netAppAccounts",
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Pools_CreateOrUpdate.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Pools_CreateOrUpdate.json
index 0b72016b8c3b..8100c7cd822c 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Pools_CreateOrUpdate.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Pools_CreateOrUpdate.json
@@ -4,7 +4,7 @@
"resourceGroupName": "myRG",
"accountName": "account1",
"poolName": "pool1",
- "api-version": "2020-06-01",
+ "api-version": "2020-05-01",
"body": {
"location": "eastus",
"properties": {
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Pools_Delete.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Pools_Delete.json
index 0f0193626f44..fa22b8a2b2a5 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Pools_Delete.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Pools_Delete.json
@@ -4,7 +4,7 @@
"resourceGroupName": "myRG",
"accountName": "account1",
"poolName": "pool1",
- "api-version": "2020-06-01"
+ "api-version": "2020-05-01"
},
"responses": {
"204": {},
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Pools_Get.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Pools_Get.json
index ec675c2aaaa3..c1c97be6c818 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Pools_Get.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Pools_Get.json
@@ -4,7 +4,7 @@
"resourceGroupName": "myRG",
"accountName": "account1",
"poolName": "pool1",
- "api-version": "2020-06-01"
+ "api-version": "2020-05-01"
},
"responses": {
"200": {
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Pools_List.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Pools_List.json
index 33bc564cb9c0..d4940f302c02 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Pools_List.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Pools_List.json
@@ -3,7 +3,7 @@
"subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
"resourceGroupName": "myRG",
"accountName": "account1",
- "api-version": "2020-06-01"
+ "api-version": "2020-05-01"
},
"responses": {
"200": {
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Pools_Update.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Pools_Update.json
index 0568e91433ef..fbb86e94daed 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Pools_Update.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Pools_Update.json
@@ -4,7 +4,7 @@
"resourceGroupName": "myRG",
"accountName": "account1",
"poolName": "pool1",
- "api-version": "2020-06-01",
+ "api-version": "2020-05-01",
"body": {}
},
"responses": {
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/SnapshotPolicies_Create.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/SnapshotPolicies_Create.json
index ebaa1c23a15b..3dfd40316ba3 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/SnapshotPolicies_Create.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/SnapshotPolicies_Create.json
@@ -4,7 +4,7 @@
"resourceGroupName": "myRG",
"accountName": "account1",
"snapshotPolicyName": "snapshotPolicyName",
- "api-version": "2020-06-01",
+ "api-version": "2020-05-01",
"body": {
"location": "eastus",
"properties": {
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/SnapshotPolicies_Delete.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/SnapshotPolicies_Delete.json
index 86283d16571e..40bcf59bf0bd 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/SnapshotPolicies_Delete.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/SnapshotPolicies_Delete.json
@@ -4,7 +4,7 @@
"resourceGroupName": "resourceGroup",
"accountName": "accountName",
"snapshotPolicyName": "snapshotPolicyName",
- "api-version": "2020-06-01"
+ "api-version": "2020-05-01"
},
"responses": {
"204": {},
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/SnapshotPolicies_Get.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/SnapshotPolicies_Get.json
index 904de0ced731..8b5625388208 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/SnapshotPolicies_Get.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/SnapshotPolicies_Get.json
@@ -4,7 +4,7 @@
"resourceGroupName": "myRG",
"accountName": "account1",
"snapshotPolicyName": "snapshotPolicyName",
- "api-version": "2020-06-01"
+ "api-version": "2020-05-01"
},
"responses": {
"200": {
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/SnapshotPolicies_List.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/SnapshotPolicies_List.json
index d536acf47c95..43d5124fa1ba 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/SnapshotPolicies_List.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/SnapshotPolicies_List.json
@@ -3,7 +3,7 @@
"subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
"resourceGroupName": "myRG",
"accountName": "account1",
- "api-version": "2020-06-01"
+ "api-version": "2020-05-01"
},
"responses": {
"200": {
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/SnapshotPolicies_ListVolumes.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/SnapshotPolicies_ListVolumes.json
index 643c3020706e..e62c3e3e1cd6 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/SnapshotPolicies_ListVolumes.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/SnapshotPolicies_ListVolumes.json
@@ -4,7 +4,7 @@
"resourceGroupName": "myRG",
"accountName": "account1",
"snapshotPolicyName": "snapshotPolicyName",
- "api-version": "2020-06-01",
+ "api-version": "2020-05-01",
"body": {
"location": "eastus",
"properties": {}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/SnapshotPolicies_Update.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/SnapshotPolicies_Update.json
index 7df4bc2adcb9..2978f6065280 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/SnapshotPolicies_Update.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/SnapshotPolicies_Update.json
@@ -4,7 +4,7 @@
"resourceGroupName": "myRG",
"accountName": "account1",
"snapshotPolicyName": "snapshotPolicyName",
- "api-version": "2020-06-01",
+ "api-version": "2020-05-01",
"body": {
"location": "eastus",
"properties": {
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Snapshots_Create.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Snapshots_Create.json
index ddb759222d07..74f30a6a0ccc 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Snapshots_Create.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Snapshots_Create.json
@@ -6,7 +6,7 @@
"poolName": "pool1",
"volumeName": "volume1",
"snapshotName": "snapshot1",
- "api-version": "2020-06-01",
+ "api-version": "2020-05-01",
"body": {
"location": "eastus"
}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Snapshots_Delete.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Snapshots_Delete.json
index 582444cb35b4..530f0c335c27 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Snapshots_Delete.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Snapshots_Delete.json
@@ -6,7 +6,7 @@
"poolName": "pool1",
"volumeName": "volume1",
"snapshotName": "snapshot1",
- "api-version": "2020-06-01"
+ "api-version": "2020-05-01"
},
"responses": {
"204": {},
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Snapshots_Get.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Snapshots_Get.json
index 87d49c41a4dd..8ff0e80d73b5 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Snapshots_Get.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Snapshots_Get.json
@@ -6,7 +6,7 @@
"poolName": "pool1",
"volumeName": "volume1",
"snapshotName": "snapshot1",
- "api-version": "2020-06-01"
+ "api-version": "2020-05-01"
},
"responses": {
"200": {
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Snapshots_List.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Snapshots_List.json
index eb38145e0ce7..46f4bbbe5d66 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Snapshots_List.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Snapshots_List.json
@@ -5,7 +5,7 @@
"accountName": "account1",
"poolName": "pool1",
"volumeName": "volume1",
- "api-version": "2020-06-01"
+ "api-version": "2020-05-01"
},
"responses": {
"200": {
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Snapshots_Update.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Snapshots_Update.json
index 9af1e3a78dbb..830ac8027dc8 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Snapshots_Update.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Snapshots_Update.json
@@ -6,7 +6,7 @@
"poolName": "pool1",
"volumeName": "volume1",
"snapshotName": "snapshot1",
- "api-version": "2020-06-01",
+ "api-version": "2020-05-01",
"body": {}
},
"responses": {
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Vaults_List.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Vaults_List.json
index 52b58165235d..a3c64473ac94 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Vaults_List.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Vaults_List.json
@@ -3,7 +3,7 @@
"subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
"resourceGroupName": "myRG",
"accountName": "account1",
- "api-version": "2020-06-01"
+ "api-version": "2020-05-01"
},
"responses": {
"200": {
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_AuthorizeReplication.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_AuthorizeReplication.json
index 283ff746cbe5..de8a31cc92b0 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_AuthorizeReplication.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_AuthorizeReplication.json
@@ -5,7 +5,7 @@
"accountName": "account1",
"poolName": "pool1",
"volumeName": "volume1",
- "api-version": "2020-06-01",
+ "api-version": "2020-05-01",
"body": {
"remoteVolumeResourceId": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRemoteRG/providers/Microsoft.NetApp/netAppAccounts/remoteAccount1/capacityPools/remotePool1/volumes/remoteVolume1"
}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_BreakReplication.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_BreakReplication.json
index 53151656cb63..524a3e32aea1 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_BreakReplication.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_BreakReplication.json
@@ -5,7 +5,7 @@
"accountName": "account1",
"poolName": "pool1",
"volumeName": "volume1",
- "api-version": "2020-06-01",
+ "api-version": "2020-05-01",
"body": {
"forceBreakReplication": false
}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_CreateOrUpdate.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_CreateOrUpdate.json
index b6d9873bc2cd..49f16c462fa1 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_CreateOrUpdate.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_CreateOrUpdate.json
@@ -5,7 +5,7 @@
"accountName": "account1",
"poolName": "pool1",
"volumeName": "volume1",
- "api-version": "2020-06-01",
+ "api-version": "2020-05-01",
"body": {
"location": "eastus",
"properties": {
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_Delete.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_Delete.json
index 7ae07cec38d6..277dcff6eb08 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_Delete.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_Delete.json
@@ -5,7 +5,7 @@
"accountName": "account1",
"poolName": "pool1",
"volumeName": "volume1",
- "api-version": "2020-06-01"
+ "api-version": "2020-05-01"
},
"responses": {
"204": {},
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_DeleteReplication.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_DeleteReplication.json
index 50181792855d..7c1a1bcbade4 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_DeleteReplication.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_DeleteReplication.json
@@ -5,7 +5,7 @@
"accountName": "account1",
"poolName": "pool1",
"volumeName": "volume1",
- "api-version": "2020-06-01",
+ "api-version": "2020-05-01",
"body": {
"location": "eastus",
"properties": {}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_Get.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_Get.json
index b5f28d1847b5..e2475a81bed6 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_Get.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_Get.json
@@ -5,7 +5,7 @@
"accountName": "account1",
"poolName": "pool1",
"volumeName": "volume1",
- "api-version": "2020-06-01"
+ "api-version": "2020-05-01"
},
"responses": {
"200": {
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_List.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_List.json
index 67200391da0d..07308570717f 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_List.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_List.json
@@ -4,7 +4,7 @@
"resourceGroupName": "myRG",
"accountName": "account1",
"poolName": "pool1",
- "api-version": "2020-06-01"
+ "api-version": "2020-05-01"
},
"responses": {
"200": {
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_PoolChange.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_PoolChange.json
index d7e211df1707..699ce2ba1022 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_PoolChange.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_PoolChange.json
@@ -5,7 +5,7 @@
"accountName": "account1",
"poolName": "pool1",
"volumeName": "volume1",
- "api-version": "2020-06-01",
+ "api-version": "2020-05-01",
"body": {
"newPoolResourceId": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1"
}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_ReInitializeReplication.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_ReInitializeReplication.json
index 50181792855d..7c1a1bcbade4 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_ReInitializeReplication.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_ReInitializeReplication.json
@@ -5,7 +5,7 @@
"accountName": "account1",
"poolName": "pool1",
"volumeName": "volume1",
- "api-version": "2020-06-01",
+ "api-version": "2020-05-01",
"body": {
"location": "eastus",
"properties": {}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_ReplicationStatus.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_ReplicationStatus.json
index d117dd6b20a6..b4682f8a17e4 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_ReplicationStatus.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_ReplicationStatus.json
@@ -5,7 +5,7 @@
"accountName": "account1",
"poolName": "pool1",
"volumeName": "volume1",
- "api-version": "2020-06-01",
+ "api-version": "2020-05-01",
"body": {
"location": "eastus",
"properties": {}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_ResyncReplication.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_ResyncReplication.json
index 50181792855d..7c1a1bcbade4 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_ResyncReplication.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_ResyncReplication.json
@@ -5,7 +5,7 @@
"accountName": "account1",
"poolName": "pool1",
"volumeName": "volume1",
- "api-version": "2020-06-01",
+ "api-version": "2020-05-01",
"body": {
"location": "eastus",
"properties": {}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_Revert.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_Revert.json
index 285bcc71128f..288dee104ebd 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_Revert.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_Revert.json
@@ -5,7 +5,7 @@
"accountName": "account1",
"poolName": "pool1",
"volumeName": "volume1",
- "api-version": "2020-06-01",
+ "api-version": "2020-05-01",
"body": {
"snapshotId": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1/volumes/volume1/snapshots/snapshot1"
}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_Update.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_Update.json
index 3d0cdd1f7202..178d9b0da858 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_Update.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_Update.json
@@ -5,7 +5,7 @@
"accountName": "account1",
"poolName": "pool1",
"volumeName": "volume1",
- "api-version": "2020-06-01",
+ "api-version": "2020-05-01",
"body": {}
},
"responses": {
diff --git a/specification/netapp/resource-manager/readme.java.md b/specification/netapp/resource-manager/readme.java.md
index 2234295d4d1c..683fbddf59eb 100644
--- a/specification/netapp/resource-manager/readme.java.md
+++ b/specification/netapp/resource-manager/readme.java.md
@@ -34,7 +34,7 @@ batch:
These settings apply only when `--tag=package-netapp-2020-07-01 --java` is specified on the command line.
Please also specify the `--azure-libraries-for-java-folder=`.
-``` yaml $(tag) == 'package-netapp-2020-06-01' && $(java) && $(multiapi)
+``` yaml $(tag) == 'package-netapp-2020-07-01' && $(java) && $(multiapi)
java:
namespace: com.microsoft.azure.management.netapp.v2020_07_01
output-folder: $(azure-libraries-for-java-folder)/sdk/netapp/mgmt-v2020_07_01
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-04-01/examples/P2SVpnGatewayGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-04-01/examples/P2SVpnGatewayGet.json
index 25ab4422254f..44e46e91bdca 100644
--- a/specification/network/resource-manager/Microsoft.Network/stable/2020-04-01/examples/P2SVpnGatewayGet.json
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-04-01/examples/P2SVpnGatewayGet.json
@@ -32,6 +32,31 @@
"addressPrefixes": [
"101.3.0.0/16"
]
+ },
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
}
}
}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-04-01/examples/P2SVpnGatewayList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-04-01/examples/P2SVpnGatewayList.json
index 51239a91c833..6804b03bebaa 100644
--- a/specification/network/resource-manager/Microsoft.Network/stable/2020-04-01/examples/P2SVpnGatewayList.json
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-04-01/examples/P2SVpnGatewayList.json
@@ -33,6 +33,31 @@
"addressPrefixes": [
"101.3.0.0/16"
]
+ },
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
}
}
}
@@ -74,6 +99,31 @@
"addressPrefixes": [
"101.4.0.0/16"
]
+ },
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub2/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub2/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub2/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub2/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
}
}
}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-04-01/examples/P2SVpnGatewayListByResourceGroup.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-04-01/examples/P2SVpnGatewayListByResourceGroup.json
index 20c154092c86..52c0253bdf2e 100644
--- a/specification/network/resource-manager/Microsoft.Network/stable/2020-04-01/examples/P2SVpnGatewayListByResourceGroup.json
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-04-01/examples/P2SVpnGatewayListByResourceGroup.json
@@ -31,6 +31,31 @@
"addressPrefixes": [
"101.3.0.0/16"
]
+ },
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
}
}
}
@@ -70,6 +95,31 @@
"addressPrefixes": [
"101.3.0.0/16"
]
+ },
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub2/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub2/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub2/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub2/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
}
}
}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-04-01/examples/P2SVpnGatewayPut.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-04-01/examples/P2SVpnGatewayPut.json
index 3770a9117566..8e398dead8d8 100644
--- a/specification/network/resource-manager/Microsoft.Network/stable/2020-04-01/examples/P2SVpnGatewayPut.json
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-04-01/examples/P2SVpnGatewayPut.json
@@ -25,6 +25,31 @@
"addressPrefixes": [
"101.3.0.0/16"
]
+ },
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
}
}
}
@@ -60,6 +85,31 @@
"addressPrefixes": [
"101.3.0.0/16"
]
+ },
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
}
}
}
@@ -100,6 +150,31 @@
"addressPrefixes": [
"101.3.0.0/16"
]
+ },
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
}
}
}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-04-01/examples/P2SVpnGatewayUpdateTags.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-04-01/examples/P2SVpnGatewayUpdateTags.json
index 0b971bd908c7..39533ab2a64a 100644
--- a/specification/network/resource-manager/Microsoft.Network/stable/2020-04-01/examples/P2SVpnGatewayUpdateTags.json
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-04-01/examples/P2SVpnGatewayUpdateTags.json
@@ -40,6 +40,31 @@
"addressPrefixes": [
"101.3.0.0/16"
]
+ },
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
}
}
}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-05-01/examples/P2SVpnGatewayGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-05-01/examples/P2SVpnGatewayGet.json
index b629a16ea26f..8e33c56933f6 100644
--- a/specification/network/resource-manager/Microsoft.Network/stable/2020-05-01/examples/P2SVpnGatewayGet.json
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-05-01/examples/P2SVpnGatewayGet.json
@@ -32,6 +32,31 @@
"addressPrefixes": [
"101.3.0.0/16"
]
+ },
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
}
}
}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-05-01/examples/P2SVpnGatewayList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-05-01/examples/P2SVpnGatewayList.json
index 15452a793508..0fb7c0925189 100644
--- a/specification/network/resource-manager/Microsoft.Network/stable/2020-05-01/examples/P2SVpnGatewayList.json
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-05-01/examples/P2SVpnGatewayList.json
@@ -33,6 +33,31 @@
"addressPrefixes": [
"101.3.0.0/16"
]
+ },
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
}
}
}
@@ -77,6 +102,31 @@
"addressPrefixes": [
"101.4.0.0/16"
]
+ },
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub2/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub2/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub2/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub2/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
}
}
}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-05-01/examples/P2SVpnGatewayListByResourceGroup.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-05-01/examples/P2SVpnGatewayListByResourceGroup.json
index b697e300f02f..e863a1c35100 100644
--- a/specification/network/resource-manager/Microsoft.Network/stable/2020-05-01/examples/P2SVpnGatewayListByResourceGroup.json
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-05-01/examples/P2SVpnGatewayListByResourceGroup.json
@@ -31,6 +31,31 @@
"addressPrefixes": [
"101.3.0.0/16"
]
+ },
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
}
}
}
@@ -73,6 +98,31 @@
"addressPrefixes": [
"101.3.0.0/16"
]
+ },
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub2/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub2/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub2/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub2/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
}
}
}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-05-01/examples/P2SVpnGatewayPut.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-05-01/examples/P2SVpnGatewayPut.json
index cd85626cf577..7ced68816b92 100644
--- a/specification/network/resource-manager/Microsoft.Network/stable/2020-05-01/examples/P2SVpnGatewayPut.json
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-05-01/examples/P2SVpnGatewayPut.json
@@ -25,6 +25,31 @@
"addressPrefixes": [
"101.3.0.0/16"
]
+ },
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
}
}
}
@@ -64,6 +89,31 @@
"addressPrefixes": [
"101.3.0.0/16"
]
+ },
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
}
}
}
@@ -108,6 +158,31 @@
"addressPrefixes": [
"101.3.0.0/16"
]
+ },
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
}
}
}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-05-01/examples/P2SVpnGatewayUpdateTags.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-05-01/examples/P2SVpnGatewayUpdateTags.json
index 3886b46480ff..9fc15be31cea 100644
--- a/specification/network/resource-manager/Microsoft.Network/stable/2020-05-01/examples/P2SVpnGatewayUpdateTags.json
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-05-01/examples/P2SVpnGatewayUpdateTags.json
@@ -40,6 +40,31 @@
"addressPrefixes": [
"101.3.0.0/16"
]
+ },
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
}
}
}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/examples/P2SVpnGatewayGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/examples/P2SVpnGatewayGet.json
index 5a28feb52115..029711aa64a1 100644
--- a/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/examples/P2SVpnGatewayGet.json
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/examples/P2SVpnGatewayGet.json
@@ -33,6 +33,31 @@
"101.3.0.0/16"
]
},
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
+ },
"enableInternetSecurity": false
}
}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/examples/P2SVpnGatewayList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/examples/P2SVpnGatewayList.json
index 56ceb9307303..e415851f1fee 100644
--- a/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/examples/P2SVpnGatewayList.json
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/examples/P2SVpnGatewayList.json
@@ -34,6 +34,31 @@
"101.3.0.0/16"
]
},
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
+ },
"enableInternetSecurity": true
}
}
@@ -79,6 +104,31 @@
"101.4.0.0/16"
]
},
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub2/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub2/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub2/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub2/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
+ },
"enableInternetSecurity": true
}
}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/examples/P2SVpnGatewayListByResourceGroup.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/examples/P2SVpnGatewayListByResourceGroup.json
index 4bba7998c10b..d14b54b5fd50 100644
--- a/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/examples/P2SVpnGatewayListByResourceGroup.json
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/examples/P2SVpnGatewayListByResourceGroup.json
@@ -32,6 +32,31 @@
"101.3.0.0/16"
]
},
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
+ },
"enableInternetSecurity": false
}
}
@@ -75,6 +100,31 @@
"101.3.0.0/16"
]
},
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub2/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub2/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub2/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub2/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
+ },
"enableInternetSecurity": false
}
}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/examples/P2SVpnGatewayPut.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/examples/P2SVpnGatewayPut.json
index 6960963c40a2..4890491dc0be 100644
--- a/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/examples/P2SVpnGatewayPut.json
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/examples/P2SVpnGatewayPut.json
@@ -25,6 +25,31 @@
"addressPrefixes": [
"101.3.0.0/16"
]
+ },
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
}
}
}
@@ -65,6 +90,31 @@
"101.3.0.0/16"
]
},
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
+ },
"enableInternetSecurity": false
}
}
@@ -110,6 +160,31 @@
"101.3.0.0/16"
]
},
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
+ },
"enableInternetSecurity": false
}
}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/examples/P2SVpnGatewayUpdateTags.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/examples/P2SVpnGatewayUpdateTags.json
index 4ca3eabcbafb..31bd0e752879 100644
--- a/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/examples/P2SVpnGatewayUpdateTags.json
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/examples/P2SVpnGatewayUpdateTags.json
@@ -42,6 +42,31 @@
"101.3.0.0/16"
]
},
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
+ },
"enableInternetSecurity": false
}
}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/applicationGateway.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/applicationGateway.json
new file mode 100644
index 000000000000..bdcb4e2b62ff
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/applicationGateway.json
@@ -0,0 +1,3526 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "NetworkManagementClient",
+ "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
+ "version": "2020-07-01"
+ },
+ "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/applicationGateways/{applicationGatewayName}": {
+ "delete": {
+ "tags": [
+ "ApplicationGateways"
+ ],
+ "operationId": "ApplicationGateways_Delete",
+ "x-ms-examples": {
+ "Delete ApplicationGateway": {
+ "$ref": "./examples/ApplicationGatewayDelete.json"
+ }
+ },
+ "description": "Deletes the specified application gateway.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "applicationGatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the application gateway."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "204": {
+ "description": "Request successful. Resource with the specified name does not exist."
+ },
+ "200": {
+ "description": "Delete successful."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ },
+ "get": {
+ "tags": [
+ "ApplicationGateways"
+ ],
+ "operationId": "ApplicationGateways_Get",
+ "x-ms-examples": {
+ "Get ApplicationGateway": {
+ "$ref": "./examples/ApplicationGatewayGet.json"
+ }
+ },
+ "description": "Gets the specified application gateway.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "applicationGatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the application gateway."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns an ApplicationGateway resource.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationGateway"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "ApplicationGateways"
+ ],
+ "operationId": "ApplicationGateways_CreateOrUpdate",
+ "description": "Creates or updates the specified application gateway.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "applicationGatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the application gateway."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ApplicationGateway"
+ },
+ "description": "Parameters supplied to the create or update application gateway operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Create successful. The operation returns the resulting ApplicationGateway resource.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationGateway"
+ }
+ },
+ "200": {
+ "description": "Update successful. The operation returns the resulting ApplicationGateway resource.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationGateway"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create Application Gateway": {
+ "$ref": "./examples/ApplicationGatewayCreate.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ },
+ "patch": {
+ "tags": [
+ "ApplicationGateways"
+ ],
+ "operationId": "ApplicationGateways_UpdateTags",
+ "x-ms-examples": {
+ "Update Application Gateway tags": {
+ "$ref": "./examples/ApplicationGatewayUpdateTags.json"
+ }
+ },
+ "description": "Updates the specified application gateway tags.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "applicationGatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the application gateway."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./network.json#/definitions/TagsObject"
+ },
+ "description": "Parameters supplied to update application gateway tags."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update successful. The operation returns the resulting ApplicationGateway resource.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationGateway"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationGateways": {
+ "get": {
+ "tags": [
+ "ApplicationGateways"
+ ],
+ "operationId": "ApplicationGateways_List",
+ "x-ms-examples": {
+ "Lists all application gateways in a resource group": {
+ "$ref": "./examples/ApplicationGatewayList.json"
+ }
+ },
+ "description": "Lists all application gateways in a resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The operation returns a list of ApplicationGateway resources.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationGatewayListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/applicationGateways": {
+ "get": {
+ "tags": [
+ "ApplicationGateways"
+ ],
+ "operationId": "ApplicationGateways_ListAll",
+ "x-ms-examples": {
+ "Lists all application gateways in a subscription": {
+ "$ref": "./examples/ApplicationGatewayListAll.json"
+ }
+ },
+ "description": "Gets all the application gateways in a subscription.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The operation returns a list of ApplicationGateway resources.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationGatewayListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationGateways/{applicationGatewayName}/start": {
+ "post": {
+ "tags": [
+ "ApplicationGateways"
+ ],
+ "operationId": "ApplicationGateways_Start",
+ "x-ms-examples": {
+ "Start Application Gateway": {
+ "$ref": "./examples/ApplicationGatewayStart.json"
+ }
+ },
+ "description": "Starts the specified application gateway.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "applicationGatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the application gateway."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation starts the ApplicationGateway resource."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationGateways/{applicationGatewayName}/stop": {
+ "post": {
+ "tags": [
+ "ApplicationGateways"
+ ],
+ "operationId": "ApplicationGateways_Stop",
+ "x-ms-examples": {
+ "Stop Application Gateway": {
+ "$ref": "./examples/ApplicationGatewayStop.json"
+ }
+ },
+ "description": "Stops the specified application gateway in a resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "applicationGatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the application gateway."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation stops the ApplicationGateway resource."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationGateways/{applicationGatewayName}/backendhealth": {
+ "post": {
+ "tags": [
+ "ApplicationGateways"
+ ],
+ "operationId": "ApplicationGateways_BackendHealth",
+ "description": "Gets the backend health of the specified application gateway in a resource group.",
+ "x-ms-examples": {
+ "Get Backend Health": {
+ "$ref": "./examples/ApplicationGatewayBackendHealthGet.json"
+ }
+ },
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "applicationGatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the application gateway."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Expands BackendAddressPool and BackendHttpSettings referenced in backend health."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationGatewayBackendHealth"
+ }
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationGateways/{applicationGatewayName}/getBackendHealthOnDemand": {
+ "post": {
+ "tags": [
+ "ApplicationGateways"
+ ],
+ "operationId": "ApplicationGateways_BackendHealthOnDemand",
+ "description": "Gets the backend health for given combination of backend pool and http setting of the specified application gateway in a resource group.",
+ "x-ms-examples": {
+ "Test Backend Health": {
+ "$ref": "./examples/ApplicationGatewayBackendHealthTest.json"
+ }
+ },
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "applicationGatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the application gateway."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Expands BackendAddressPool and BackendHttpSettings referenced in backend health."
+ },
+ {
+ "name": "probeRequest",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ApplicationGatewayOnDemandProbe"
+ },
+ "description": "Request body for on-demand test probe operation."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationGatewayBackendHealthOnDemand"
+ }
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationGateways/{applicationGatewayName}/privateLinkResources": {
+ "get": {
+ "tags": [
+ "ApplicationGatewayPrivateLinkResources"
+ ],
+ "operationId": "ApplicationGatewayPrivateLinkResources_List",
+ "x-ms-examples": {
+ "Lists all private link resources on application gateway": {
+ "$ref": "./examples/ApplicationGatewayPrivateLinkResourceList.json"
+ }
+ },
+ "description": "Lists all private link resources on an application gateway.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "applicationGatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the application gateway."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The operation returns a list of private link resources on application gateway.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationGatewayPrivateLinkResourceListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationGateways/{applicationGatewayName}/privateEndpointConnections/{connectionName}": {
+ "delete": {
+ "tags": [
+ "ApplicationGatewayPrivateEndpointConnections"
+ ],
+ "operationId": "ApplicationGatewayPrivateEndpointConnections_Delete",
+ "x-ms-examples": {
+ "Delete Application Gateway Private Endpoint Connection": {
+ "$ref": "./examples/ApplicationGatewayPrivateEndpointConnectionDelete.json"
+ }
+ },
+ "description": "Deletes the specified private endpoint connection on application gateway.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "applicationGatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the application gateway."
+ },
+ {
+ "name": "connectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the application gateway private endpoint connection."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "204": {
+ "description": "Request successful. Resource with the specified name does not exist."
+ },
+ "200": {
+ "description": "Delete successful."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ },
+ "put": {
+ "tags": [
+ "ApplicationGatewayPrivateEndpointConnections"
+ ],
+ "operationId": "ApplicationGatewayPrivateEndpointConnections_Update",
+ "description": "Updates the specified private endpoint connection on application gateway.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "applicationGatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the application gateway."
+ },
+ {
+ "name": "connectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the application gateway private endpoint connection."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ApplicationGatewayPrivateEndpointConnection"
+ },
+ "description": "Parameters supplied to update application gateway private endpoint connection operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update successful. The operation returns the resulting private endpoint connection on application gateway.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationGatewayPrivateEndpointConnection"
+ }
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update Application Gateway Private Endpoint Connection": {
+ "$ref": "./examples/ApplicationGatewayPrivateEndpointConnectionUpdate.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ },
+ "get": {
+ "tags": [
+ "ApplicationGatewayPrivateEndpointConnections"
+ ],
+ "operationId": "ApplicationGatewayPrivateEndpointConnections_Get",
+ "description": "Gets the specified private endpoint connection on application gateway.",
+ "x-ms-examples": {
+ "Get Application Gateway Private Endpoint Connection": {
+ "$ref": "./examples/ApplicationGatewayPrivateEndpointConnectionGet.json"
+ }
+ },
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "applicationGatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the application gateway."
+ },
+ {
+ "name": "connectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the application gateway private endpoint connection."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns an application gateway private endpoint connection.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationGatewayPrivateEndpointConnection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationGateways/{applicationGatewayName}/privateEndpointConnections": {
+ "get": {
+ "tags": [
+ "ApplicationGatewayPrivateEndpointConnections"
+ ],
+ "operationId": "ApplicationGatewayPrivateEndpointConnections_List",
+ "x-ms-examples": {
+ "Lists all private endpoint connections on application gateway": {
+ "$ref": "./examples/ApplicationGatewayPrivateEndpointConnectionList.json"
+ }
+ },
+ "description": "Lists all private endpoint connections on an application gateway.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "applicationGatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the application gateway."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The operation returns a list of private endpoint connections on application gateway.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationGatewayPrivateEndpointConnectionListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/applicationGatewayAvailableServerVariables": {
+ "get": {
+ "tags": [
+ "ApplicationGateways"
+ ],
+ "operationId": "ApplicationGateways_ListAvailableServerVariables",
+ "x-ms-examples": {
+ "Get Available Server Variables": {
+ "$ref": "./examples/ApplicationGatewayAvailableServerVariablesGet.json"
+ }
+ },
+ "description": "Lists all available server variables.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The operation returns a list of all available server variables.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationGatewayAvailableServerVariablesResult"
+ }
+ },
+ "default": {
+ "description": "Unexpected error.",
+ "schema": {
+ "$ref": "./network.json#/definitions/Error"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/applicationGatewayAvailableRequestHeaders": {
+ "get": {
+ "tags": [
+ "ApplicationGateways"
+ ],
+ "operationId": "ApplicationGateways_ListAvailableRequestHeaders",
+ "x-ms-examples": {
+ "Get Available Request Headers": {
+ "$ref": "./examples/ApplicationGatewayAvailableRequestHeadersGet.json"
+ }
+ },
+ "description": "Lists all available request headers.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The operation returns a list of all available request headers.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationGatewayAvailableRequestHeadersResult"
+ }
+ },
+ "default": {
+ "description": "Unexpected error.",
+ "schema": {
+ "$ref": "./network.json#/definitions/Error"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/applicationGatewayAvailableResponseHeaders": {
+ "get": {
+ "tags": [
+ "ApplicationGateways"
+ ],
+ "operationId": "ApplicationGateways_ListAvailableResponseHeaders",
+ "x-ms-examples": {
+ "Get Available Response Headers": {
+ "$ref": "./examples/ApplicationGatewayAvailableResponseHeadersGet.json"
+ }
+ },
+ "description": "Lists all available response headers.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The operation returns a list of all available response headers.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationGatewayAvailableResponseHeadersResult"
+ }
+ },
+ "default": {
+ "description": "Unexpected error.",
+ "schema": {
+ "$ref": "./network.json#/definitions/Error"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/applicationGatewayAvailableWafRuleSets": {
+ "get": {
+ "tags": [
+ "ApplicationGateways"
+ ],
+ "operationId": "ApplicationGateways_ListAvailableWafRuleSets",
+ "x-ms-examples": {
+ "Get Available Waf Rule Sets": {
+ "$ref": "./examples/ApplicationGatewayAvailableWafRuleSetsGet.json"
+ }
+ },
+ "description": "Lists all available web application firewall rule sets.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The operation returns a list of all available web application firewall rule sets.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationGatewayAvailableWafRuleSetsResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/applicationGatewayAvailableSslOptions/default": {
+ "get": {
+ "tags": [
+ "ApplicationGateways"
+ ],
+ "operationId": "ApplicationGateways_ListAvailableSslOptions",
+ "x-ms-examples": {
+ "Get Available Ssl Options": {
+ "$ref": "./examples/ApplicationGatewayAvailableSslOptionsGet.json"
+ }
+ },
+ "description": "Lists available Ssl options for configuring Ssl policy.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The operation returns all available Ssl options for configuring Ssl policy.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationGatewayAvailableSslOptions"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/applicationGatewayAvailableSslOptions/default/predefinedPolicies": {
+ "get": {
+ "tags": [
+ "ApplicationGateways"
+ ],
+ "operationId": "ApplicationGateways_ListAvailableSslPredefinedPolicies",
+ "x-ms-examples": {
+ "Get Available Ssl Predefined Policies": {
+ "$ref": "./examples/ApplicationGatewayAvailableSslOptionsPredefinedPoliciesGet.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "description": "Lists all SSL predefined policies for configuring Ssl policy.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The operation returns a lists of all Ssl predefined policies for configuring Ssl policy.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationGatewayAvailableSslPredefinedPolicies"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/applicationGatewayAvailableSslOptions/default/predefinedPolicies/{predefinedPolicyName}": {
+ "get": {
+ "tags": [
+ "ApplicationGateways"
+ ],
+ "operationId": "ApplicationGateways_GetSslPredefinedPolicy",
+ "x-ms-examples": {
+ "Get Available Ssl Predefined Policy by name": {
+ "$ref": "./examples/ApplicationGatewayAvailableSslOptionsPredefinedPolicyGet.json"
+ }
+ },
+ "description": "Gets Ssl predefined policy with the specified policy name.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "predefinedPolicyName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of Ssl predefined policy."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The operation returns a Ssl predefined policy with the specified policy name.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationGatewaySslPredefinedPolicy"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "ApplicationGatewayOnDemandProbe": {
+ "properties": {
+ "protocol": {
+ "$ref": "#/definitions/ApplicationGatewayProtocol",
+ "description": "The protocol used for the probe."
+ },
+ "host": {
+ "type": "string",
+ "description": "Host name to send the probe to."
+ },
+ "path": {
+ "type": "string",
+ "description": "Relative path of probe. Valid path starts from '/'. Probe is sent to ://:."
+ },
+ "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."
+ },
+ "pickHostNameFromBackendHttpSettings": {
+ "type": "boolean",
+ "description": "Whether the host header should be picked from the backend http settings. Default value is false."
+ },
+ "match": {
+ "$ref": "#/definitions/ApplicationGatewayProbeHealthResponseMatch",
+ "description": "Criterion for classifying a healthy probe response."
+ },
+ "backendAddressPool": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "Reference to backend pool of application gateway to which probe request will be sent."
+ },
+ "backendHttpSettings": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "Reference to backend http setting of application gateway to be used for test probe."
+ }
+ },
+ "description": "Details of on demand test probe request."
+ },
+ "ApplicationGatewayBackendHealthOnDemand": {
+ "properties": {
+ "backendAddressPool": {
+ "$ref": "#/definitions/ApplicationGatewayBackendAddressPool",
+ "description": "Reference to an ApplicationGatewayBackendAddressPool resource."
+ },
+ "backendHealthHttpSettings": {
+ "$ref": "#/definitions/ApplicationGatewayBackendHealthHttpSettings",
+ "description": "Application gateway BackendHealthHttp settings."
+ }
+ },
+ "description": "Result of on demand test probe."
+ },
+ "ApplicationGatewayBackendHealth": {
+ "properties": {
+ "backendAddressPools": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationGatewayBackendHealthPool"
+ },
+ "description": "A list of ApplicationGatewayBackendHealthPool resources."
+ }
+ },
+ "description": "Response for ApplicationGatewayBackendHealth API service call."
+ },
+ "ApplicationGatewayBackendHealthPool": {
+ "properties": {
+ "backendAddressPool": {
+ "$ref": "#/definitions/ApplicationGatewayBackendAddressPool",
+ "description": "Reference to an ApplicationGatewayBackendAddressPool resource."
+ },
+ "backendHttpSettingsCollection": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationGatewayBackendHealthHttpSettings"
+ },
+ "description": "List of ApplicationGatewayBackendHealthHttpSettings resources."
+ }
+ },
+ "description": "Application gateway BackendHealth pool."
+ },
+ "ApplicationGatewayBackendHealthHttpSettings": {
+ "properties": {
+ "backendHttpSettings": {
+ "$ref": "#/definitions/ApplicationGatewayBackendHttpSettings",
+ "description": "Reference to an ApplicationGatewayBackendHttpSettings resource."
+ },
+ "servers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationGatewayBackendHealthServer"
+ },
+ "description": "List of ApplicationGatewayBackendHealthServer resources."
+ }
+ },
+ "description": "Application gateway BackendHealthHttp settings."
+ },
+ "ApplicationGatewayBackendHealthServer": {
+ "properties": {
+ "address": {
+ "type": "string",
+ "description": "IP address or FQDN of backend server."
+ },
+ "ipConfiguration": {
+ "$ref": "./networkInterface.json#/definitions/NetworkInterfaceIPConfiguration",
+ "description": "Reference to IP configuration of backend server."
+ },
+ "health": {
+ "type": "string",
+ "description": "Health of backend server.",
+ "enum": [
+ "Unknown",
+ "Up",
+ "Down",
+ "Partial",
+ "Draining"
+ ],
+ "x-ms-enum": {
+ "name": "ApplicationGatewayBackendHealthServerHealth",
+ "modelAsString": true
+ }
+ },
+ "healthProbeLog": {
+ "type": "string",
+ "description": "Health Probe Log."
+ }
+ },
+ "description": "Application gateway backendhealth http settings."
+ },
+ "ApplicationGatewaySku": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name of an application gateway SKU.",
+ "enum": [
+ "Standard_Small",
+ "Standard_Medium",
+ "Standard_Large",
+ "WAF_Medium",
+ "WAF_Large",
+ "Standard_v2",
+ "WAF_v2"
+ ],
+ "x-ms-enum": {
+ "name": "ApplicationGatewaySkuName",
+ "modelAsString": true
+ }
+ },
+ "tier": {
+ "type": "string",
+ "description": "Tier of an application gateway.",
+ "enum": [
+ "Standard",
+ "WAF",
+ "Standard_v2",
+ "WAF_v2"
+ ],
+ "x-ms-enum": {
+ "name": "ApplicationGatewayTier",
+ "modelAsString": true
+ }
+ },
+ "capacity": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Capacity (instance count) of an application gateway."
+ }
+ },
+ "description": "SKU of an application gateway."
+ },
+ "ApplicationGatewaySslPolicy": {
+ "properties": {
+ "disabledSslProtocols": {
+ "type": "array",
+ "description": "Ssl protocols to be disabled on application gateway.",
+ "items": {
+ "type": "string",
+ "$ref": "#/definitions/ProtocolsEnum"
+ }
+ },
+ "policyType": {
+ "type": "string",
+ "description": "Type of Ssl Policy.",
+ "enum": [
+ "Predefined",
+ "Custom"
+ ],
+ "x-ms-enum": {
+ "name": "ApplicationGatewaySslPolicyType",
+ "modelAsString": true
+ }
+ },
+ "policyName": {
+ "$ref": "#/definitions/PolicyNameEnum",
+ "description": "Name of Ssl predefined policy."
+ },
+ "cipherSuites": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CipherSuitesEnum"
+ },
+ "description": "Ssl cipher suites to be enabled in the specified order to application gateway."
+ },
+ "minProtocolVersion": {
+ "$ref": "#/definitions/ProtocolsEnum",
+ "description": "Minimum version of Ssl protocol to be supported on application gateway."
+ }
+ },
+ "description": "Application Gateway Ssl policy."
+ },
+ "ApplicationGatewayClientAuthConfiguration": {
+ "properties": {
+ "verifyClientCertIssuerDN": {
+ "type": "boolean",
+ "description": "Verify client certificate issuer name on the application gateway."
+ }
+ },
+ "description": "Application gateway client authentication configuration."
+ },
+ "ApplicationGatewayIPConfigurationPropertiesFormat": {
+ "properties": {
+ "subnet": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "Reference to the subnet resource. A subnet from where application gateway gets its private address."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the application gateway IP configuration resource."
+ }
+ },
+ "description": "Properties of IP configuration of an application gateway."
+ },
+ "ApplicationGatewayIPConfiguration": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ApplicationGatewayIPConfigurationPropertiesFormat",
+ "description": "Properties of the application gateway IP configuration."
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the IP configuration that is unique within an Application Gateway."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Type of the resource."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "IP configuration of an application gateway. Currently 1 public and 1 private IP configuration is allowed."
+ },
+ "ApplicationGatewayAuthenticationCertificatePropertiesFormat": {
+ "properties": {
+ "data": {
+ "type": "string",
+ "description": "Certificate public data."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the authentication certificate resource."
+ }
+ },
+ "description": "Authentication certificates properties of an application gateway."
+ },
+ "ApplicationGatewayAuthenticationCertificate": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ApplicationGatewayAuthenticationCertificatePropertiesFormat",
+ "description": "Properties of the application gateway authentication certificate."
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the authentication certificate that is unique within an Application Gateway."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Type of the resource."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "Authentication certificates of an application gateway."
+ },
+ "ApplicationGatewayTrustedRootCertificatePropertiesFormat": {
+ "properties": {
+ "data": {
+ "type": "string",
+ "description": "Certificate public data."
+ },
+ "keyVaultSecretId": {
+ "type": "string",
+ "description": "Secret Id of (base-64 encoded unencrypted pfx) 'Secret' or 'Certificate' object stored in KeyVault."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the trusted root certificate resource."
+ }
+ },
+ "description": "Trusted Root certificates properties of an application gateway."
+ },
+ "ApplicationGatewayTrustedRootCertificate": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ApplicationGatewayTrustedRootCertificatePropertiesFormat",
+ "description": "Properties of the application gateway trusted root certificate."
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the trusted root certificate that is unique within an Application Gateway."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Type of the resource."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "Trusted Root certificates of an application gateway."
+ },
+ "ApplicationGatewayTrustedClientCertificatePropertiesFormat": {
+ "properties": {
+ "data": {
+ "type": "string",
+ "description": "Certificate public data."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the trusted client certificate resource."
+ }
+ },
+ "description": "Trusted client certificates properties of an application gateway."
+ },
+ "ApplicationGatewayTrustedClientCertificate": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ApplicationGatewayTrustedClientCertificatePropertiesFormat",
+ "description": "Properties of the application gateway trusted client certificate."
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the trusted client certificate that is unique within an Application Gateway."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Type of the resource."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "Trusted client certificates of an application gateway."
+ },
+ "ApplicationGatewaySslCertificatePropertiesFormat": {
+ "properties": {
+ "data": {
+ "type": "string",
+ "description": "Base-64 encoded pfx certificate. Only applicable in PUT Request."
+ },
+ "password": {
+ "type": "string",
+ "description": "Password for the pfx file specified in data. Only applicable in PUT request."
+ },
+ "publicCertData": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Base-64 encoded Public cert data corresponding to pfx specified in data. Only applicable in GET request."
+ },
+ "keyVaultSecretId": {
+ "type": "string",
+ "description": "Secret Id of (base-64 encoded unencrypted pfx) 'Secret' or 'Certificate' object stored in KeyVault."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the SSL certificate resource."
+ }
+ },
+ "description": "Properties of SSL certificates of an application gateway."
+ },
+ "ApplicationGatewaySslCertificate": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ApplicationGatewaySslCertificatePropertiesFormat",
+ "description": "Properties of the application gateway SSL certificate."
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the SSL certificate that is unique within an Application Gateway."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Type of the resource."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "SSL certificates of an application gateway."
+ },
+ "ApplicationGatewayFrontendIPConfigurationPropertiesFormat": {
+ "properties": {
+ "privateIPAddress": {
+ "type": "string",
+ "description": "PrivateIPAddress of the network interface IP Configuration."
+ },
+ "privateIPAllocationMethod": {
+ "$ref": "./network.json#/definitions/IPAllocationMethod",
+ "description": "The private IP address allocation method."
+ },
+ "subnet": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "Reference to the subnet resource."
+ },
+ "publicIPAddress": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "Reference to the PublicIP resource."
+ },
+ "privateLinkConfiguration": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "Reference to the application gateway private link configuration."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the frontend IP configuration resource."
+ }
+ },
+ "description": "Properties of Frontend IP configuration of an application gateway."
+ },
+ "ApplicationGatewayFrontendIPConfiguration": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ApplicationGatewayFrontendIPConfigurationPropertiesFormat",
+ "description": "Properties of the application gateway frontend IP configuration."
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the frontend IP configuration that is unique within an Application Gateway."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Type of the resource."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "Frontend IP configuration of an application gateway."
+ },
+ "ApplicationGatewayFrontendPortPropertiesFormat": {
+ "properties": {
+ "port": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Frontend port."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the frontend port resource."
+ }
+ },
+ "description": "Properties of Frontend port of an application gateway."
+ },
+ "ApplicationGatewayFrontendPort": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ApplicationGatewayFrontendPortPropertiesFormat",
+ "description": "Properties of the application gateway frontend port."
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the frontend port that is unique within an Application Gateway."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Type of the resource."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "Frontend port of an application gateway."
+ },
+ "ApplicationGatewayBackendAddress": {
+ "properties": {
+ "fqdn": {
+ "type": "string",
+ "description": "Fully qualified domain name (FQDN)."
+ },
+ "ipAddress": {
+ "type": "string",
+ "description": "IP address."
+ }
+ },
+ "description": "Backend address of an application gateway."
+ },
+ "ApplicationGatewayBackendAddressPoolPropertiesFormat": {
+ "properties": {
+ "backendIPConfigurations": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "./networkInterface.json#/definitions/NetworkInterfaceIPConfiguration"
+ },
+ "description": "Collection of references to IPs defined in network interfaces."
+ },
+ "backendAddresses": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationGatewayBackendAddress"
+ },
+ "description": "Backend addresses."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the backend address pool resource."
+ }
+ },
+ "description": "Properties of Backend Address Pool of an application gateway."
+ },
+ "ApplicationGatewayBackendAddressPool": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ApplicationGatewayBackendAddressPoolPropertiesFormat",
+ "description": "Properties of the application gateway backend address pool."
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the backend address pool that is unique within an Application Gateway."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Type of the resource."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "Backend Address Pool of an application gateway."
+ },
+ "ApplicationGatewayBackendHttpSettingsPropertiesFormat": {
+ "properties": {
+ "port": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The destination port on the backend."
+ },
+ "protocol": {
+ "$ref": "#/definitions/ApplicationGatewayProtocol",
+ "description": "The protocol used to communicate with the backend."
+ },
+ "cookieBasedAffinity": {
+ "type": "string",
+ "description": "Cookie based affinity.",
+ "enum": [
+ "Enabled",
+ "Disabled"
+ ],
+ "x-ms-enum": {
+ "name": "ApplicationGatewayCookieBasedAffinity",
+ "modelAsString": true
+ }
+ },
+ "requestTimeout": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Request timeout in seconds. Application Gateway will fail the request if response is not received within RequestTimeout. Acceptable values are from 1 second to 86400 seconds."
+ },
+ "probe": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "Probe resource of an application gateway."
+ },
+ "authenticationCertificates": {
+ "type": "array",
+ "items": {
+ "$ref": "./network.json#/definitions/SubResource"
+ },
+ "description": "Array of references to application gateway authentication certificates."
+ },
+ "trustedRootCertificates": {
+ "type": "array",
+ "items": {
+ "$ref": "./network.json#/definitions/SubResource"
+ },
+ "description": "Array of references to application gateway trusted root certificates."
+ },
+ "connectionDraining": {
+ "$ref": "#/definitions/ApplicationGatewayConnectionDraining",
+ "description": "Connection draining of the backend http settings resource."
+ },
+ "hostName": {
+ "type": "string",
+ "description": "Host header to be sent to the backend servers."
+ },
+ "pickHostNameFromBackendAddress": {
+ "type": "boolean",
+ "description": "Whether to pick host header should be picked from the host name of the backend server. Default value is false."
+ },
+ "affinityCookieName": {
+ "type": "string",
+ "description": "Cookie name to use for the affinity cookie."
+ },
+ "probeEnabled": {
+ "type": "boolean",
+ "description": "Whether the probe is enabled. Default value is false."
+ },
+ "path": {
+ "type": "string",
+ "description": "Path which should be used as a prefix for all HTTP requests. Null means no path will be prefixed. Default value is null."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the backend HTTP settings resource."
+ }
+ },
+ "description": "Properties of Backend address pool settings of an application gateway."
+ },
+ "ApplicationGatewayBackendHttpSettings": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ApplicationGatewayBackendHttpSettingsPropertiesFormat",
+ "description": "Properties of the application gateway backend HTTP settings."
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the backend http settings that is unique within an Application Gateway."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Type of the resource."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "Backend address pool settings of an application gateway."
+ },
+ "ApplicationGatewaySslProfilePropertiesFormat": {
+ "properties": {
+ "trustedClientCertificates": {
+ "type": "array",
+ "items": {
+ "$ref": "./network.json#/definitions/SubResource"
+ },
+ "description": "Array of references to application gateway trusted client certificates."
+ },
+ "sslPolicy": {
+ "$ref": "#/definitions/ApplicationGatewaySslPolicy",
+ "description": "SSL policy of the application gateway resource."
+ },
+ "clientAuthConfiguration": {
+ "$ref": "#/definitions/ApplicationGatewayClientAuthConfiguration",
+ "description": "Client authentication configuration of the application gateway resource."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the HTTP listener resource."
+ }
+ },
+ "description": "Properties of SSL profile of an application gateway."
+ },
+ "ApplicationGatewaySslProfile": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ApplicationGatewaySslProfilePropertiesFormat",
+ "description": "Properties of the application gateway SSL profile."
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the SSL profile that is unique within an Application Gateway."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Type of the resource."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "SSL profile of an application gateway."
+ },
+ "ApplicationGatewayHttpListenerPropertiesFormat": {
+ "properties": {
+ "frontendIPConfiguration": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "Frontend IP configuration resource of an application gateway."
+ },
+ "frontendPort": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "Frontend port resource of an application gateway."
+ },
+ "protocol": {
+ "$ref": "#/definitions/ApplicationGatewayProtocol",
+ "description": "Protocol of the HTTP listener."
+ },
+ "hostName": {
+ "type": "string",
+ "description": "Host name of HTTP listener."
+ },
+ "sslCertificate": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "SSL certificate resource of an application gateway."
+ },
+ "sslProfile": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "SSL profile resource of the application gateway."
+ },
+ "requireServerNameIndication": {
+ "type": "boolean",
+ "description": "Applicable only if protocol is https. Enables SNI for multi-hosting."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the HTTP listener resource."
+ },
+ "customErrorConfigurations": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationGatewayCustomError"
+ },
+ "description": "Custom error configurations of the HTTP listener."
+ },
+ "firewallPolicy": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "Reference to the FirewallPolicy resource."
+ },
+ "hostNames": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of Host names for HTTP Listener that allows special wildcard characters as well."
+ }
+ },
+ "description": "Properties of HTTP listener of an application gateway."
+ },
+ "ApplicationGatewayHttpListener": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ApplicationGatewayHttpListenerPropertiesFormat",
+ "description": "Properties of the application gateway HTTP listener."
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the HTTP listener that is unique within an Application Gateway."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Type of the resource."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "Http listener of an application gateway."
+ },
+ "ApplicationGatewayPathRulePropertiesFormat": {
+ "properties": {
+ "paths": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Path rules of URL path map."
+ },
+ "backendAddressPool": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "Backend address pool resource of URL path map path rule."
+ },
+ "backendHttpSettings": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "Backend http settings resource of URL path map path rule."
+ },
+ "redirectConfiguration": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "Redirect configuration resource of URL path map path rule."
+ },
+ "rewriteRuleSet": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "Rewrite rule set resource of URL path map path rule."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the path rule resource."
+ },
+ "firewallPolicy": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "Reference to the FirewallPolicy resource."
+ }
+ },
+ "description": "Properties of path rule of an application gateway."
+ },
+ "ApplicationGatewayPathRule": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ApplicationGatewayPathRulePropertiesFormat",
+ "description": "Properties of the application gateway path rule."
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the path rule that is unique within an Application Gateway."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Type of the resource."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "Path rule of URL path map of an application gateway."
+ },
+ "ApplicationGatewayProbePropertiesFormat": {
+ "properties": {
+ "protocol": {
+ "$ref": "#/definitions/ApplicationGatewayProtocol",
+ "description": "The protocol used for the probe."
+ },
+ "host": {
+ "type": "string",
+ "description": "Host name to send the probe to."
+ },
+ "path": {
+ "type": "string",
+ "description": "Relative path of probe. Valid path starts from '/'. Probe is sent to ://:."
+ },
+ "interval": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The probing interval in seconds. This is the time interval between two consecutive probes. Acceptable values are from 1 second to 86400 seconds."
+ },
+ "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."
+ },
+ "unhealthyThreshold": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The probe retry count. Backend server is marked down after consecutive probe failure count reaches UnhealthyThreshold. Acceptable values are from 1 second to 20."
+ },
+ "pickHostNameFromBackendHttpSettings": {
+ "type": "boolean",
+ "description": "Whether the host header should be picked from the backend http settings. Default value is false."
+ },
+ "minServers": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Minimum number of servers that are always marked healthy. Default value is 0."
+ },
+ "match": {
+ "$ref": "#/definitions/ApplicationGatewayProbeHealthResponseMatch",
+ "description": "Criterion for classifying a healthy probe response."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the probe resource."
+ },
+ "port": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Custom port which will be used for probing the backend servers. The valid value ranges from 1 to 65535. In case not set, port from http settings will be used. This property is valid for Standard_v2 and WAF_v2 only.",
+ "minimum": 1,
+ "maximum": 65535
+ }
+ },
+ "description": "Properties of probe of an application gateway."
+ },
+ "ApplicationGatewayProbeHealthResponseMatch": {
+ "properties": {
+ "body": {
+ "type": "string",
+ "description": "Body that must be contained in the health response. Default value is empty."
+ },
+ "statusCodes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Allowed ranges of healthy status codes. Default range of healthy status codes is 200-399."
+ }
+ },
+ "description": "Application gateway probe health response match."
+ },
+ "ApplicationGatewayProbe": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ApplicationGatewayProbePropertiesFormat",
+ "description": "Properties of the application gateway probe."
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the probe that is unique within an Application Gateway."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Type of the resource."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "Probe of the application gateway."
+ },
+ "ApplicationGatewayRequestRoutingRulePropertiesFormat": {
+ "properties": {
+ "ruleType": {
+ "type": "string",
+ "description": "Rule type.",
+ "enum": [
+ "Basic",
+ "PathBasedRouting"
+ ],
+ "x-ms-enum": {
+ "name": "ApplicationGatewayRequestRoutingRuleType",
+ "modelAsString": true
+ }
+ },
+ "priority": {
+ "type": "integer",
+ "format": "int32",
+ "minimum": 1,
+ "exclusiveMinimum": false,
+ "maximum": 20000,
+ "exclusiveMaximum": false,
+ "description": "Priority of the request routing rule."
+ },
+ "backendAddressPool": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "Backend address pool resource of the application gateway."
+ },
+ "backendHttpSettings": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "Backend http settings resource of the application gateway."
+ },
+ "httpListener": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "Http listener resource of the application gateway."
+ },
+ "urlPathMap": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "URL path map resource of the application gateway."
+ },
+ "rewriteRuleSet": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "Rewrite Rule Set resource in Basic rule of the application gateway."
+ },
+ "redirectConfiguration": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "Redirect configuration resource of the application gateway."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the request routing rule resource."
+ }
+ },
+ "description": "Properties of request routing rule of the application gateway."
+ },
+ "ApplicationGatewayRequestRoutingRule": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ApplicationGatewayRequestRoutingRulePropertiesFormat",
+ "description": "Properties of the application gateway request routing rule."
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the request routing rule that is unique within an Application Gateway."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Type of the resource."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "Request routing rule of an application gateway."
+ },
+ "ApplicationGatewayRewriteRuleSet": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ApplicationGatewayRewriteRuleSetPropertiesFormat",
+ "description": "Properties of the application gateway rewrite rule set."
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the rewrite rule set that is unique within an Application Gateway."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "Rewrite rule set of an application gateway."
+ },
+ "ApplicationGatewayRewriteRuleSetPropertiesFormat": {
+ "properties": {
+ "rewriteRules": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationGatewayRewriteRule"
+ },
+ "description": "Rewrite rules in the rewrite rule set."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the rewrite rule set resource."
+ }
+ },
+ "description": "Properties of rewrite rule set of the application gateway."
+ },
+ "ApplicationGatewayRewriteRule": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name of the rewrite rule that is unique within an Application Gateway."
+ },
+ "ruleSequence": {
+ "type": "integer",
+ "description": "Rule Sequence of the rewrite rule that determines the order of execution of a particular rule in a RewriteRuleSet."
+ },
+ "conditions": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationGatewayRewriteRuleCondition"
+ },
+ "description": "Conditions based on which the action set execution will be evaluated."
+ },
+ "actionSet": {
+ "type": "object",
+ "$ref": "#/definitions/ApplicationGatewayRewriteRuleActionSet",
+ "description": "Set of actions to be done as part of the rewrite Rule."
+ }
+ },
+ "description": "Rewrite rule of an application gateway."
+ },
+ "ApplicationGatewayRewriteRuleCondition": {
+ "properties": {
+ "variable": {
+ "type": "string",
+ "description": "The condition parameter of the RewriteRuleCondition."
+ },
+ "pattern": {
+ "type": "string",
+ "description": "The pattern, either fixed string or regular expression, that evaluates the truthfulness of the condition."
+ },
+ "ignoreCase": {
+ "type": "boolean",
+ "description": "Setting this paramter to truth value with force the pattern to do a case in-sensitive comparison."
+ },
+ "negate": {
+ "type": "boolean",
+ "description": "Setting this value as truth will force to check the negation of the condition given by the user."
+ }
+ },
+ "description": "Set of conditions in the Rewrite Rule in Application Gateway."
+ },
+ "ApplicationGatewayRewriteRuleActionSet": {
+ "properties": {
+ "requestHeaderConfigurations": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationGatewayHeaderConfiguration"
+ },
+ "description": "Request Header Actions in the Action Set."
+ },
+ "responseHeaderConfigurations": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationGatewayHeaderConfiguration"
+ },
+ "description": "Response Header Actions in the Action Set."
+ },
+ "urlConfiguration": {
+ "$ref": "#/definitions/ApplicationGatewayUrlConfiguration",
+ "description": "Url Configuration Action in the Action Set."
+ }
+ },
+ "description": "Set of actions in the Rewrite Rule in Application Gateway."
+ },
+ "ApplicationGatewayHeaderConfiguration": {
+ "properties": {
+ "headerName": {
+ "type": "string",
+ "description": "Header name of the header configuration."
+ },
+ "headerValue": {
+ "type": "string",
+ "description": "Header value of the header configuration."
+ }
+ },
+ "description": "Header configuration of the Actions set in Application Gateway."
+ },
+ "ApplicationGatewayUrlConfiguration": {
+ "properties": {
+ "modifiedPath": {
+ "type": "string",
+ "description": "Url path which user has provided for url rewrite. Null means no path will be updated. Default value is null."
+ },
+ "modifiedQueryString": {
+ "type": "string",
+ "description": "Query string which user has provided for url rewrite. Null means no query string will be updated. Default value is null."
+ },
+ "reroute": {
+ "type": "boolean",
+ "description": "If set as true, it will re-evaluate the url path map provided in path based request routing rules using modified path. Default value is false."
+ }
+ },
+ "description": "Url configuration of the Actions set in Application Gateway."
+ },
+ "ApplicationGatewayRedirectConfigurationPropertiesFormat": {
+ "properties": {
+ "redirectType": {
+ "type": "string",
+ "$ref": "#/definitions/RedirectTypeEnum",
+ "description": "HTTP redirection type."
+ },
+ "targetListener": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "Reference to a listener to redirect the request to."
+ },
+ "targetUrl": {
+ "type": "string",
+ "description": "Url to redirect the request to."
+ },
+ "includePath": {
+ "type": "boolean",
+ "description": "Include path in the redirected url."
+ },
+ "includeQueryString": {
+ "type": "boolean",
+ "description": "Include query string in the redirected url."
+ },
+ "requestRoutingRules": {
+ "type": "array",
+ "items": {
+ "$ref": "./network.json#/definitions/SubResource"
+ },
+ "description": "Request routing specifying redirect configuration."
+ },
+ "urlPathMaps": {
+ "type": "array",
+ "items": {
+ "$ref": "./network.json#/definitions/SubResource"
+ },
+ "description": "Url path maps specifying default redirect configuration."
+ },
+ "pathRules": {
+ "type": "array",
+ "items": {
+ "$ref": "./network.json#/definitions/SubResource"
+ },
+ "description": "Path rules specifying redirect configuration."
+ }
+ },
+ "description": "Properties of redirect configuration of the application gateway."
+ },
+ "ApplicationGatewayRedirectConfiguration": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ApplicationGatewayRedirectConfigurationPropertiesFormat",
+ "description": "Properties of the application gateway redirect configuration."
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the redirect configuration that is unique within an Application Gateway."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Type of the resource."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "Redirect configuration of an application gateway."
+ },
+ "ApplicationGatewayPrivateLinkConfiguration": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ApplicationGatewayPrivateLinkConfigurationProperties",
+ "description": "Properties of the application gateway private link configuration."
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the private link configuration that is unique within an Application Gateway."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Type of the resource."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "Private Link Configuration on an application gateway."
+ },
+ "ApplicationGatewayPrivateLinkConfigurationProperties": {
+ "properties": {
+ "ipConfigurations": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationGatewayPrivateLinkIpConfiguration"
+ },
+ "description": "An array of application gateway private link ip configurations."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the application gateway private link configuration."
+ }
+ },
+ "description": "Properties of private link configuration on an application gateway."
+ },
+ "ApplicationGatewayPrivateLinkIpConfiguration": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ApplicationGatewayPrivateLinkIpConfigurationProperties",
+ "description": "Properties of an application gateway private link ip configuration."
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of application gateway private link ip configuration."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource type."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "The application gateway private link ip configuration."
+ },
+ "ApplicationGatewayPrivateLinkIpConfigurationProperties": {
+ "properties": {
+ "privateIPAddress": {
+ "type": "string",
+ "description": "The private IP address of the IP configuration."
+ },
+ "privateIPAllocationMethod": {
+ "$ref": "./network.json#/definitions/IPAllocationMethod",
+ "description": "The private IP address allocation method."
+ },
+ "subnet": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "Reference to the subnet resource."
+ },
+ "primary": {
+ "type": "boolean",
+ "description": "Whether the ip configuration is primary or not."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the application gateway private link IP configuration."
+ }
+ },
+ "description": "Properties of an application gateway private link IP configuration."
+ },
+ "ApplicationGatewayPrivateLinkResource": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ApplicationGatewayPrivateLinkResourceProperties",
+ "description": "Properties of the application gateway private link resource."
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the private link resource that is unique within an Application Gateway."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Type of the resource."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "PrivateLink Resource of an application gateway."
+ },
+ "ApplicationGatewayPrivateLinkResourceProperties": {
+ "properties": {
+ "groupId": {
+ "description": "Group identifier of private link resource.",
+ "type": "string",
+ "readOnly": true
+ },
+ "requiredMembers": {
+ "description": "Required member names of private link resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "readOnly": true
+ },
+ "requiredZoneNames": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Required DNS zone names of the the private link resource."
+ }
+ },
+ "description": "Properties of a private link resource."
+ },
+ "ApplicationGatewayPrivateLinkResourceListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationGatewayPrivateLinkResource"
+ },
+ "description": "List of private link resources of an application gateway."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of results."
+ }
+ },
+ "description": "Response for ListApplicationGatewayPrivateLinkResources API service call. Gets all private link resources for an application gateway."
+ },
+ "ApplicationGatewayPrivateEndpointConnection": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ApplicationGatewayPrivateEndpointConnectionProperties",
+ "description": "Properties of the application gateway private endpoint connection."
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the private endpoint connection on an application gateway."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Type of the resource."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "Private Endpoint connection on an application gateway."
+ },
+ "ApplicationGatewayPrivateEndpointConnectionProperties": {
+ "properties": {
+ "privateEndpoint": {
+ "readOnly": true,
+ "$ref": "./privateEndpoint.json#/definitions/PrivateEndpoint",
+ "description": "The resource of private end point."
+ },
+ "privateLinkServiceConnectionState": {
+ "$ref": "./privateLinkService.json#/definitions/PrivateLinkServiceConnectionState",
+ "description": "A collection of information about the state of the connection between service consumer and provider."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the application gateway private endpoint connection resource."
+ },
+ "linkIdentifier": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The consumer link id."
+ }
+ },
+ "description": "Properties of Private Link Resource of an application gateway."
+ },
+ "ApplicationGatewayPrivateEndpointConnectionListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationGatewayPrivateEndpointConnection"
+ },
+ "description": "List of private endpoint connections on an application gateway."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of results."
+ }
+ },
+ "description": "Response for ListApplicationGatewayPrivateEndpointConnection API service call. Gets all private endpoint connections for an application gateway."
+ },
+ "ApplicationGatewayPropertiesFormat": {
+ "properties": {
+ "sku": {
+ "$ref": "#/definitions/ApplicationGatewaySku",
+ "description": "SKU of the application gateway resource."
+ },
+ "sslPolicy": {
+ "$ref": "#/definitions/ApplicationGatewaySslPolicy",
+ "description": "SSL policy of the application gateway resource."
+ },
+ "operationalState": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Operational state of the application gateway resource.",
+ "enum": [
+ "Stopped",
+ "Starting",
+ "Running",
+ "Stopping"
+ ],
+ "x-ms-enum": {
+ "name": "ApplicationGatewayOperationalState",
+ "modelAsString": true
+ }
+ },
+ "gatewayIPConfigurations": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationGatewayIPConfiguration"
+ },
+ "description": "Subnets of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits)."
+ },
+ "authenticationCertificates": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationGatewayAuthenticationCertificate"
+ },
+ "description": "Authentication certificates of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits)."
+ },
+ "trustedRootCertificates": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationGatewayTrustedRootCertificate"
+ },
+ "description": "Trusted Root certificates of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits)."
+ },
+ "trustedClientCertificates": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationGatewayTrustedClientCertificate"
+ },
+ "description": "Trusted client certificates of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits)."
+ },
+ "sslCertificates": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationGatewaySslCertificate"
+ },
+ "description": "SSL certificates of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits)."
+ },
+ "frontendIPConfigurations": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationGatewayFrontendIPConfiguration"
+ },
+ "description": "Frontend IP addresses of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits)."
+ },
+ "frontendPorts": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationGatewayFrontendPort"
+ },
+ "description": "Frontend ports of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits)."
+ },
+ "probes": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationGatewayProbe"
+ },
+ "description": "Probes of the application gateway resource."
+ },
+ "backendAddressPools": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationGatewayBackendAddressPool"
+ },
+ "description": "Backend address pool of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits)."
+ },
+ "backendHttpSettingsCollection": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationGatewayBackendHttpSettings"
+ },
+ "description": "Backend http settings of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits)."
+ },
+ "httpListeners": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationGatewayHttpListener"
+ },
+ "description": "Http listeners of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits)."
+ },
+ "sslProfiles": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationGatewaySslProfile"
+ },
+ "description": "SSL profiles of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits)."
+ },
+ "urlPathMaps": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationGatewayUrlPathMap"
+ },
+ "description": "URL path map of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits)."
+ },
+ "requestRoutingRules": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationGatewayRequestRoutingRule"
+ },
+ "description": "Request routing rules of the application gateway resource."
+ },
+ "rewriteRuleSets": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationGatewayRewriteRuleSet"
+ },
+ "description": "Rewrite rules for the application gateway resource."
+ },
+ "redirectConfigurations": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationGatewayRedirectConfiguration"
+ },
+ "description": "Redirect configurations of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits)."
+ },
+ "webApplicationFirewallConfiguration": {
+ "$ref": "#/definitions/ApplicationGatewayWebApplicationFirewallConfiguration",
+ "description": "Web application firewall configuration."
+ },
+ "firewallPolicy": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "Reference to the FirewallPolicy resource."
+ },
+ "enableHttp2": {
+ "type": "boolean",
+ "description": "Whether HTTP2 is enabled on the application gateway resource."
+ },
+ "enableFips": {
+ "type": "boolean",
+ "description": "Whether FIPS is enabled on the application gateway resource."
+ },
+ "autoscaleConfiguration": {
+ "$ref": "#/definitions/ApplicationGatewayAutoscaleConfiguration",
+ "description": "Autoscale Configuration."
+ },
+ "privateLinkConfigurations": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationGatewayPrivateLinkConfiguration"
+ },
+ "description": "PrivateLink configurations on application gateway."
+ },
+ "privateEndpointConnections": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationGatewayPrivateEndpointConnection"
+ },
+ "description": "Private Endpoint connections on application gateway."
+ },
+ "resourceGuid": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource GUID property of the application gateway resource."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the application gateway resource."
+ },
+ "customErrorConfigurations": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationGatewayCustomError"
+ },
+ "description": "Custom error configurations of the application gateway resource."
+ },
+ "forceFirewallPolicyAssociation": {
+ "type": "boolean",
+ "description": "If true, associates a firewall policy with an application gateway regardless whether the policy differs from the WAF Config."
+ }
+ },
+ "description": "Properties of the application gateway."
+ },
+ "ApplicationGateway": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ApplicationGatewayPropertiesFormat",
+ "description": "Properties of the application gateway."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ },
+ "zones": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "A list of availability zones denoting where the resource needs to come from."
+ },
+ "identity": {
+ "$ref": "./network.json#/definitions/ManagedServiceIdentity",
+ "description": "The identity of the application gateway, if configured."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "description": "Application gateway resource."
+ },
+ "ApplicationGatewayListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationGateway"
+ },
+ "description": "List of an application gateways in a resource group."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of results."
+ }
+ },
+ "description": "Response for ListApplicationGateways API service call."
+ },
+ "ApplicationGatewayUrlPathMapPropertiesFormat": {
+ "properties": {
+ "defaultBackendAddressPool": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "Default backend address pool resource of URL path map."
+ },
+ "defaultBackendHttpSettings": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "Default backend http settings resource of URL path map."
+ },
+ "defaultRewriteRuleSet": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "Default Rewrite rule set resource of URL path map."
+ },
+ "defaultRedirectConfiguration": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "Default redirect configuration resource of URL path map."
+ },
+ "pathRules": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationGatewayPathRule"
+ },
+ "description": "Path rule of URL path map resource."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the URL path map resource."
+ }
+ },
+ "description": "Properties of UrlPathMap of the application gateway."
+ },
+ "ApplicationGatewayUrlPathMap": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ApplicationGatewayUrlPathMapPropertiesFormat",
+ "description": "Properties of the application gateway URL path map."
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the URL path map that is unique within an Application Gateway."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Type of the resource."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "UrlPathMaps give a url path to the backend mapping information for PathBasedRouting."
+ },
+ "ApplicationGatewayWebApplicationFirewallConfiguration": {
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "description": "Whether the web application firewall is enabled or not."
+ },
+ "firewallMode": {
+ "type": "string",
+ "description": "Web application firewall mode.",
+ "enum": [
+ "Detection",
+ "Prevention"
+ ],
+ "x-ms-enum": {
+ "name": "ApplicationGatewayFirewallMode",
+ "modelAsString": true
+ }
+ },
+ "ruleSetType": {
+ "type": "string",
+ "description": "The type of the web application firewall rule set. Possible values are: 'OWASP'."
+ },
+ "ruleSetVersion": {
+ "type": "string",
+ "description": "The version of the rule set type."
+ },
+ "disabledRuleGroups": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationGatewayFirewallDisabledRuleGroup"
+ },
+ "description": "The disabled rule groups."
+ },
+ "requestBodyCheck": {
+ "type": "boolean",
+ "description": "Whether allow WAF to check request Body."
+ },
+ "maxRequestBodySize": {
+ "type": "integer",
+ "format": "int32",
+ "maximum": 128,
+ "exclusiveMaximum": false,
+ "minimum": 8,
+ "exclusiveMinimum": false,
+ "description": "Maximum request body size for WAF."
+ },
+ "maxRequestBodySizeInKb": {
+ "type": "integer",
+ "format": "int32",
+ "maximum": 128,
+ "exclusiveMaximum": false,
+ "minimum": 8,
+ "exclusiveMinimum": false,
+ "description": "Maximum request body size in Kb for WAF."
+ },
+ "fileUploadLimitInMb": {
+ "type": "integer",
+ "format": "int32",
+ "minimum": 0,
+ "exclusiveMinimum": false,
+ "description": "Maximum file upload size in Mb for WAF."
+ },
+ "exclusions": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationGatewayFirewallExclusion"
+ },
+ "description": "The exclusion list."
+ }
+ },
+ "required": [
+ "enabled",
+ "firewallMode",
+ "ruleSetType",
+ "ruleSetVersion"
+ ],
+ "description": "Application gateway web application firewall configuration."
+ },
+ "ApplicationGatewayAutoscaleConfiguration": {
+ "properties": {
+ "minCapacity": {
+ "type": "integer",
+ "format": "int32",
+ "minimum": 0,
+ "exclusiveMinimum": false,
+ "description": "Lower bound on number of Application Gateway capacity."
+ },
+ "maxCapacity": {
+ "type": "integer",
+ "format": "int32",
+ "minimum": 2,
+ "exclusiveMinimum": false,
+ "description": "Upper bound on number of Application Gateway capacity."
+ }
+ },
+ "required": [
+ "minCapacity"
+ ],
+ "description": "Application Gateway autoscale configuration."
+ },
+ "ApplicationGatewayConnectionDraining": {
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "description": "Whether connection draining is enabled or not."
+ },
+ "drainTimeoutInSec": {
+ "type": "integer",
+ "format": "int32",
+ "maximum": 3600,
+ "exclusiveMaximum": false,
+ "minimum": 1,
+ "exclusiveMinimum": false,
+ "description": "The number of seconds connection draining is active. Acceptable values are from 1 second to 3600 seconds."
+ }
+ },
+ "required": [
+ "enabled",
+ "drainTimeoutInSec"
+ ],
+ "description": "Connection draining allows open connections to a backend server to be active for a specified time after the backend server got removed from the configuration."
+ },
+ "ApplicationGatewayFirewallDisabledRuleGroup": {
+ "properties": {
+ "ruleGroupName": {
+ "type": "string",
+ "description": "The name of the rule group that will be disabled."
+ },
+ "rules": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32",
+ "x-nullable": false
+ },
+ "description": "The list of rules that will be disabled. If null, all rules of the rule group will be disabled."
+ }
+ },
+ "required": [
+ "ruleGroupName"
+ ],
+ "description": "Allows to disable rules within a rule group or an entire rule group."
+ },
+ "ApplicationGatewayAvailableServerVariablesResult": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Response for ApplicationGatewayAvailableServerVariables API service call."
+ },
+ "ApplicationGatewayAvailableRequestHeadersResult": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Response for ApplicationGatewayAvailableRequestHeaders API service call."
+ },
+ "ApplicationGatewayAvailableResponseHeadersResult": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Response for ApplicationGatewayAvailableResponseHeaders API service call."
+ },
+ "ApplicationGatewayFirewallExclusion": {
+ "properties": {
+ "matchVariable": {
+ "type": "string",
+ "description": "The variable to be excluded."
+ },
+ "selectorMatchOperator": {
+ "type": "string",
+ "description": "When matchVariable is a collection, operate on the selector to specify which elements in the collection this exclusion applies to."
+ },
+ "selector": {
+ "type": "string",
+ "description": "When matchVariable is a collection, operator used to specify which elements in the collection this exclusion applies to."
+ }
+ },
+ "required": [
+ "matchVariable",
+ "selectorMatchOperator",
+ "selector"
+ ],
+ "description": "Allow to exclude some variable satisfy the condition for the WAF check."
+ },
+ "ApplicationGatewayAvailableWafRuleSetsResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationGatewayFirewallRuleSet"
+ },
+ "description": "The list of application gateway rule sets."
+ }
+ },
+ "description": "Response for ApplicationGatewayAvailableWafRuleSets API service call."
+ },
+ "ApplicationGatewayFirewallRuleSet": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ApplicationGatewayFirewallRuleSetPropertiesFormat",
+ "description": "Properties of the application gateway firewall rule set."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "description": "A web application firewall rule set."
+ },
+ "ApplicationGatewayFirewallRuleSetPropertiesFormat": {
+ "properties": {
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the web application firewall rule set."
+ },
+ "ruleSetType": {
+ "type": "string",
+ "description": "The type of the web application firewall rule set."
+ },
+ "ruleSetVersion": {
+ "type": "string",
+ "description": "The version of the web application firewall rule set type."
+ },
+ "ruleGroups": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationGatewayFirewallRuleGroup"
+ },
+ "description": "The rule groups of the web application firewall rule set."
+ }
+ },
+ "required": [
+ "ruleSetType",
+ "ruleSetVersion",
+ "ruleGroups"
+ ],
+ "description": "Properties of the web application firewall rule set."
+ },
+ "ApplicationGatewayFirewallRuleGroup": {
+ "properties": {
+ "ruleGroupName": {
+ "type": "string",
+ "description": "The name of the web application firewall rule group."
+ },
+ "description": {
+ "type": "string",
+ "description": "The description of the web application firewall rule group."
+ },
+ "rules": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationGatewayFirewallRule"
+ },
+ "description": "The rules of the web application firewall rule group."
+ }
+ },
+ "required": [
+ "ruleGroupName",
+ "rules"
+ ],
+ "description": "A web application firewall rule group."
+ },
+ "ApplicationGatewayFirewallRule": {
+ "properties": {
+ "ruleId": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The identifier of the web application firewall rule."
+ },
+ "description": {
+ "type": "string",
+ "description": "The description of the web application firewall rule."
+ }
+ },
+ "required": [
+ "ruleId"
+ ],
+ "description": "A web application firewall rule."
+ },
+ "ApplicationGatewayAvailableSslOptions": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ApplicationGatewayAvailableSslOptionsPropertiesFormat",
+ "description": "Properties of the application gateway available SSL options."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "description": "Response for ApplicationGatewayAvailableSslOptions API service call."
+ },
+ "ApplicationGatewayAvailableSslOptionsPropertiesFormat": {
+ "properties": {
+ "predefinedPolicies": {
+ "type": "array",
+ "items": {
+ "$ref": "./network.json#/definitions/SubResource"
+ },
+ "description": "List of available Ssl predefined policy."
+ },
+ "defaultPolicy": {
+ "$ref": "#/definitions/PolicyNameEnum",
+ "description": "Name of the Ssl predefined policy applied by default to application gateway."
+ },
+ "availableCipherSuites": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CipherSuitesEnum"
+ },
+ "description": "List of available Ssl cipher suites."
+ },
+ "availableProtocols": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ProtocolsEnum"
+ },
+ "description": "List of available Ssl protocols."
+ }
+ },
+ "description": "Properties of ApplicationGatewayAvailableSslOptions."
+ },
+ "ApplicationGatewayAvailableSslPredefinedPolicies": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationGatewaySslPredefinedPolicy"
+ },
+ "description": "List of available Ssl predefined policy."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of results."
+ }
+ },
+ "description": "Response for ApplicationGatewayAvailableSslOptions API service call."
+ },
+ "ApplicationGatewaySslPredefinedPolicy": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name of the Ssl predefined policy."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ApplicationGatewaySslPredefinedPolicyPropertiesFormat",
+ "description": "Properties of the application gateway SSL predefined policy."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "An Ssl predefined policy."
+ },
+ "ApplicationGatewaySslPredefinedPolicyPropertiesFormat": {
+ "properties": {
+ "cipherSuites": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CipherSuitesEnum"
+ },
+ "description": "Ssl cipher suites to be enabled in the specified order for application gateway."
+ },
+ "minProtocolVersion": {
+ "$ref": "#/definitions/ProtocolsEnum",
+ "description": "Minimum version of Ssl protocol to be supported on application gateway."
+ }
+ },
+ "description": "Properties of ApplicationGatewaySslPredefinedPolicy."
+ },
+ "ApplicationGatewayCustomError": {
+ "properties": {
+ "statusCode": {
+ "type": "string",
+ "description": "Status code of the application gateway customer error.",
+ "enum": [
+ "HttpStatus403",
+ "HttpStatus502"
+ ],
+ "x-ms-enum": {
+ "name": "ApplicationGatewayCustomErrorStatusCode",
+ "modelAsString": true
+ }
+ },
+ "customErrorPageUrl": {
+ "type": "string",
+ "description": "Error page URL of the application gateway customer error."
+ }
+ },
+ "description": "Customer error of an application gateway."
+ },
+ "PolicyNameEnum": {
+ "type": "string",
+ "description": "Ssl predefined policy name enums.",
+ "enum": [
+ "AppGwSslPolicy20150501",
+ "AppGwSslPolicy20170401",
+ "AppGwSslPolicy20170401S"
+ ],
+ "x-ms-enum": {
+ "name": "ApplicationGatewaySslPolicyName",
+ "modelAsString": true
+ }
+ },
+ "ProtocolsEnum": {
+ "type": "string",
+ "description": "Ssl protocol enums.",
+ "enum": [
+ "TLSv1_0",
+ "TLSv1_1",
+ "TLSv1_2"
+ ],
+ "x-ms-enum": {
+ "name": "ApplicationGatewaySslProtocol",
+ "modelAsString": true
+ }
+ },
+ "CipherSuitesEnum": {
+ "type": "string",
+ "description": "Ssl cipher suites enums.",
+ "enum": [
+ "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384",
+ "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256",
+ "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA",
+ "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA",
+ "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384",
+ "TLS_DHE_RSA_WITH_AES_128_GCM_SHA256",
+ "TLS_DHE_RSA_WITH_AES_256_CBC_SHA",
+ "TLS_DHE_RSA_WITH_AES_128_CBC_SHA",
+ "TLS_RSA_WITH_AES_256_GCM_SHA384",
+ "TLS_RSA_WITH_AES_128_GCM_SHA256",
+ "TLS_RSA_WITH_AES_256_CBC_SHA256",
+ "TLS_RSA_WITH_AES_128_CBC_SHA256",
+ "TLS_RSA_WITH_AES_256_CBC_SHA",
+ "TLS_RSA_WITH_AES_128_CBC_SHA",
+ "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
+ "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
+ "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384",
+ "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
+ "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA",
+ "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA",
+ "TLS_DHE_DSS_WITH_AES_256_CBC_SHA256",
+ "TLS_DHE_DSS_WITH_AES_128_CBC_SHA256",
+ "TLS_DHE_DSS_WITH_AES_256_CBC_SHA",
+ "TLS_DHE_DSS_WITH_AES_128_CBC_SHA",
+ "TLS_RSA_WITH_3DES_EDE_CBC_SHA",
+ "TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA",
+ "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
+ "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
+ ],
+ "x-ms-enum": {
+ "name": "ApplicationGatewaySslCipherSuite",
+ "modelAsString": true
+ }
+ },
+ "RedirectTypeEnum": {
+ "type": "string",
+ "description": "Redirect type enum.",
+ "enum": [
+ "Permanent",
+ "Found",
+ "SeeOther",
+ "Temporary"
+ ],
+ "x-ms-enum": {
+ "name": "ApplicationGatewayRedirectType",
+ "modelAsString": true
+ }
+ },
+ "ApplicationGatewayProtocol": {
+ "type": "string",
+ "description": "Application Gateway protocol.",
+ "enum": [
+ "Http",
+ "Https"
+ ],
+ "x-ms-enum": {
+ "name": "ApplicationGatewayProtocol",
+ "modelAsString": true
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/applicationSecurityGroup.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/applicationSecurityGroup.json
new file mode 100644
index 000000000000..a1b8af5605e3
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/applicationSecurityGroup.json
@@ -0,0 +1,406 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "NetworkManagementClient",
+ "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
+ "version": "2020-07-01"
+ },
+ "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/applicationSecurityGroups/{applicationSecurityGroupName}": {
+ "delete": {
+ "tags": [
+ "ApplicationSecurityGroups"
+ ],
+ "operationId": "ApplicationSecurityGroups_Delete",
+ "description": "Deletes the specified application security group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "applicationSecurityGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the application security group."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Request successful. Resource does not exist."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "200": {
+ "description": "Delete successful."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "x-ms-examples": {
+ "Delete application security group": {
+ "$ref": "./examples/ApplicationSecurityGroupDelete.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "ApplicationSecurityGroups"
+ ],
+ "operationId": "ApplicationSecurityGroups_Get",
+ "description": "Gets information about the specified application security group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "applicationSecurityGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the application security group."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the specified application security group resource.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationSecurityGroup"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get application security group": {
+ "$ref": "./examples/ApplicationSecurityGroupGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "ApplicationSecurityGroups"
+ ],
+ "operationId": "ApplicationSecurityGroups_CreateOrUpdate",
+ "description": "Creates or updates an application security group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "applicationSecurityGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the application security group."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ApplicationSecurityGroup"
+ },
+ "description": "Parameters supplied to the create or update ApplicationSecurityGroup operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Create successful. The operation returns the resulting application security group resource.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationSecurityGroup"
+ }
+ },
+ "200": {
+ "description": "Update successful. The operation returns the resulting application security group resource.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationSecurityGroup"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ },
+ "x-ms-examples": {
+ "Create application security group": {
+ "$ref": "./examples/ApplicationSecurityGroupCreate.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "applicationSecurityGroups"
+ ],
+ "operationId": "ApplicationSecurityGroups_UpdateTags",
+ "description": "Updates an application security group's tags.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "applicationSecurityGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the application security group."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./network.json#/definitions/TagsObject"
+ },
+ "description": "Parameters supplied to update application security group tags."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update successful. The operation returns the resulting ApplicationSecurityGroup resource.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationSecurityGroup"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update application security group tags": {
+ "$ref": "./examples/ApplicationSecurityGroupUpdateTags.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/applicationSecurityGroups": {
+ "get": {
+ "tags": [
+ "ApplicationSecurityGroups"
+ ],
+ "operationId": "ApplicationSecurityGroups_ListAll",
+ "description": "Gets all application security groups in a subscription.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of application security group resources.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationSecurityGroupListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "List all application security groups": {
+ "$ref": "./examples/ApplicationSecurityGroupListAll.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationSecurityGroups": {
+ "get": {
+ "tags": [
+ "ApplicationSecurityGroups"
+ ],
+ "operationId": "ApplicationSecurityGroups_List",
+ "description": "Gets all the application security groups in a resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of application security group resources.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationSecurityGroupListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List load balancers in resource group": {
+ "$ref": "./examples/ApplicationSecurityGroupList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "ApplicationSecurityGroup": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ApplicationSecurityGroupPropertiesFormat",
+ "description": "Properties of the application security group."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "description": "An application security group in a resource group."
+ },
+ "ApplicationSecurityGroupPropertiesFormat": {
+ "properties": {
+ "resourceGuid": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource GUID property of the application security group resource. It uniquely identifies a resource, even if the user changes its name or migrate the resource across subscriptions or resource groups."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the application security group resource."
+ }
+ },
+ "description": "Application security group properties."
+ },
+ "ApplicationSecurityGroupListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationSecurityGroup"
+ },
+ "description": "A list of application security groups."
+ },
+ "nextLink": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "A list of application security groups."
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/availableDelegations.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/availableDelegations.json
new file mode 100644
index 000000000000..3c2621e8321b
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/availableDelegations.json
@@ -0,0 +1,178 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "NetworkManagementClient",
+ "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
+ "version": "2020-07-01"
+ },
+ "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}/providers/Microsoft.Network/locations/{location}/availableDelegations": {
+ "get": {
+ "operationId": "AvailableDelegations_List",
+ "description": "Gets all of the available subnet delegations for this subscription in this region.",
+ "parameters": [
+ {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The location of the subnet."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns all of the possible delegations for a subnet in this subscription in the region.",
+ "schema": {
+ "$ref": "#/definitions/AvailableDelegationsResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get available delegations": {
+ "$ref": "./examples/AvailableDelegationsSubscriptionGet.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/locations/{location}/availableDelegations": {
+ "get": {
+ "operationId": "AvailableResourceGroupDelegations_List",
+ "description": "Gets all of the available subnet delegations for this resource group in this region.",
+ "parameters": [
+ {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The location of the domain name."
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns all of the possible delegations for a subnet in this subscription in the region.",
+ "schema": {
+ "$ref": "#/definitions/AvailableDelegationsResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get available delegations in the resource group": {
+ "$ref": "./examples/AvailableDelegationsResourceGroupGet.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "AvailableDelegationsResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AvailableDelegation"
+ },
+ "description": "An array of available delegations."
+ },
+ "nextLink": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "An array of available delegations."
+ },
+ "AvailableDelegation": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the AvailableDelegation resource."
+ },
+ "id": {
+ "type": "string",
+ "description": "A unique identifier of the AvailableDelegation resource."
+ },
+ "type": {
+ "type": "string",
+ "description": "Resource type."
+ },
+ "serviceName": {
+ "type": "string",
+ "description": "The name of the service and resource."
+ },
+ "actions": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The actions permitted to the service upon delegation."
+ }
+ },
+ "description": "The serviceName of an AvailableDelegation indicates a possible delegation for a subnet."
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/availableServiceAliases.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/availableServiceAliases.json
new file mode 100644
index 000000000000..88659949dfd5
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/availableServiceAliases.json
@@ -0,0 +1,171 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "NetworkManagementClient",
+ "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
+ "version": "2020-07-01"
+ },
+ "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}/providers/Microsoft.Network/locations/{location}/availableServiceAliases": {
+ "get": {
+ "operationId": "AvailableServiceAliases_List",
+ "description": "Gets all available service aliases for this subscription in this region.",
+ "parameters": [
+ {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The location."
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns all available service aliases for the subscription in the region.",
+ "schema": {
+ "$ref": "#/definitions/AvailableServiceAliasesResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get available service aliases": {
+ "$ref": "./examples/AvailableServiceAliasesList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/locations/{location}/availableServiceAliases": {
+ "get": {
+ "operationId": "AvailableServiceAliases_ListByResourceGroup",
+ "description": "Gets all available service aliases for this resource group in this region.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The location."
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns all available service aliases for the resource group in the region.",
+ "schema": {
+ "$ref": "#/definitions/AvailableServiceAliasesResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get available service aliases in the resource group": {
+ "$ref": "./examples/AvailableServiceAliasesListByResourceGroup.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "AvailableServiceAlias": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the service alias."
+ },
+ "id": {
+ "type": "string",
+ "description": "The ID of the service alias."
+ },
+ "type": {
+ "type": "string",
+ "description": "The type of the resource."
+ },
+ "resourceName": {
+ "type": "string",
+ "description": "The resource name of the service alias."
+ }
+ },
+ "description": "The available service alias."
+ },
+ "AvailableServiceAliasesResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AvailableServiceAlias"
+ },
+ "description": "An array of available service aliases."
+ },
+ "nextLink": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "An array of available service aliases."
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/azureFirewall.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/azureFirewall.json
new file mode 100644
index 000000000000..1628c5f61f17
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/azureFirewall.json
@@ -0,0 +1,1085 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "NetworkManagementClient",
+ "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
+ "version": "2020-07-01"
+ },
+ "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/azureFirewalls/{azureFirewallName}": {
+ "delete": {
+ "tags": [
+ "AzureFirewalls"
+ ],
+ "operationId": "AzureFirewalls_Delete",
+ "description": "Deletes the specified Azure Firewall.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "azureFirewallName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Azure Firewall."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "204": {
+ "description": "Request successful. Resource with the specified name does not exist."
+ },
+ "200": {
+ "description": "Delete successful."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete Azure Firewall": {
+ "$ref": "./examples/AzureFirewallDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ },
+ "get": {
+ "tags": [
+ "AzureFirewalls"
+ ],
+ "operationId": "AzureFirewalls_Get",
+ "description": "Gets the specified Azure Firewall.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "azureFirewallName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Azure Firewall."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns an AzureFirewall resource.",
+ "schema": {
+ "$ref": "#/definitions/AzureFirewall"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Azure Firewall": {
+ "$ref": "./examples/AzureFirewallGet.json"
+ },
+ "Get Azure Firewall With Zones": {
+ "$ref": "./examples/AzureFirewallGetWithZones.json"
+ },
+ "Get Azure Firewall With management subnet": {
+ "$ref": "./examples/AzureFirewallGetWithMgmtSubnet.json"
+ },
+ "Get Azure Firewall With Additional Properties": {
+ "$ref": "./examples/AzureFirewallGetWithAdditionalProperties.json"
+ },
+ "Get Azure Firewall With IpGroups": {
+ "$ref": "./examples/AzureFirewallGetWithIpGroups.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "AzureFirewalls"
+ ],
+ "operationId": "AzureFirewalls_CreateOrUpdate",
+ "description": "Creates or updates the specified Azure Firewall.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "azureFirewallName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "minLength": 1,
+ "maxLength": 56,
+ "description": "The name of the Azure Firewall."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/AzureFirewall"
+ },
+ "description": "Parameters supplied to the create or update Azure Firewall operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Create successful. The operation returns the resulting AzureFirewall resource.",
+ "schema": {
+ "$ref": "#/definitions/AzureFirewall"
+ }
+ },
+ "200": {
+ "description": "Update successful. The operation returns the resulting AzureFirewall resource.",
+ "schema": {
+ "$ref": "#/definitions/AzureFirewall"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create Azure Firewall": {
+ "$ref": "./examples/AzureFirewallPut.json"
+ },
+ "Create Azure Firewall With Zones": {
+ "$ref": "./examples/AzureFirewallPutWithZones.json"
+ },
+ "Create Azure Firewall With management subnet": {
+ "$ref": "./examples/AzureFirewallPutWithMgmtSubnet.json"
+ },
+ "Create Azure Firewall in virtual Hub": {
+ "$ref": "./examples/AzureFirewallPutInHub.json"
+ },
+ "Create Azure Firewall With Additional Properties": {
+ "$ref": "./examples/AzureFirewallPutWithAdditionalProperties.json"
+ },
+ "Create Azure Firewall With IpGroups": {
+ "$ref": "./examples/AzureFirewallPutWithIpGroups.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ },
+ "patch": {
+ "tags": [
+ "AzureFirewalls"
+ ],
+ "operationId": "AzureFirewalls_UpdateTags",
+ "description": "Updates tags of an Azure Firewall resource.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "azureFirewallName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Azure Firewall."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./network.json#/definitions/TagsObject"
+ },
+ "description": "Parameters supplied to update azure firewall tags."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "200": {
+ "description": "Update successful. The operation returns the resulting AzureFirewall resource.",
+ "schema": {
+ "$ref": "#/definitions/AzureFirewall"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update Azure Firewall Tags": {
+ "$ref": "./examples/AzureFirewallUpdateTags.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/azureFirewalls": {
+ "get": {
+ "tags": [
+ "AzureFirewalls"
+ ],
+ "operationId": "AzureFirewalls_List",
+ "description": "Lists all Azure Firewalls in a resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The operation returns a list of AzureFirewall resources.",
+ "schema": {
+ "$ref": "#/definitions/AzureFirewallListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List all Azure Firewalls for a given resource group": {
+ "$ref": "./examples/AzureFirewallListByResourceGroup.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/azureFirewalls": {
+ "get": {
+ "tags": [
+ "AzureFirewalls"
+ ],
+ "operationId": "AzureFirewalls_ListAll",
+ "description": "Gets all the Azure Firewalls in a subscription.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The operation returns a list of AzureFirewall resources.",
+ "schema": {
+ "$ref": "#/definitions/AzureFirewallListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List all Azure Firewalls for a given subscription": {
+ "$ref": "./examples/AzureFirewallListBySubscription.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "AzureFirewallIPConfigurationPropertiesFormat": {
+ "properties": {
+ "privateIPAddress": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The Firewall Internal Load Balancer IP to be used as the next hop in User Defined Routes."
+ },
+ "subnet": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "Reference to the subnet resource. This resource must be named 'AzureFirewallSubnet' or 'AzureFirewallManagementSubnet'."
+ },
+ "publicIPAddress": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "Reference to the PublicIP resource. This field is a mandatory input if subnet is not null."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the Azure firewall IP configuration resource."
+ }
+ },
+ "description": "Properties of IP configuration of an Azure Firewall."
+ },
+ "AzureFirewallIPConfiguration": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/AzureFirewallIPConfigurationPropertiesFormat",
+ "description": "Properties of the azure firewall IP configuration."
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the resource that is unique within a resource group. This name can be used to access the resource."
+ },
+ "etag": {
+ "type": "string",
+ "readOnly": true,
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Type of the resource."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "IP configuration of an Azure Firewall."
+ },
+ "AzureFirewallPublicIPAddress": {
+ "properties": {
+ "address": {
+ "type": "string",
+ "description": "Public IP Address value."
+ }
+ },
+ "description": "Public IP Address associated with azure firewall."
+ },
+ "AzureFirewallIpGroups": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource ID."
+ },
+ "changeNumber": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The iteration number."
+ }
+ },
+ "description": "IpGroups associated with azure firewall."
+ },
+ "HubPublicIPAddresses": {
+ "properties": {
+ "addresses": {
+ "type": "array",
+ "description": "The list of Public IP addresses associated with azure firewall or IP addresses to be retained.",
+ "items": {
+ "$ref": "#/definitions/AzureFirewallPublicIPAddress"
+ }
+ },
+ "count": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The number of Public IP addresses associated with azure firewall."
+ }
+ },
+ "description": "Public IP addresses associated with azure firewall."
+ },
+ "HubIPAddresses": {
+ "properties": {
+ "publicIPs": {
+ "description": "Public IP addresses associated with azure firewall.",
+ "$ref": "#/definitions/HubPublicIPAddresses"
+ },
+ "privateIPAddress": {
+ "type": "string",
+ "description": "Private IP Address associated with azure firewall."
+ }
+ },
+ "description": "IP addresses associated with azure firewall."
+ },
+ "IpGroups": {
+ "type": "array",
+ "description": "List of IpGroups associated with azure firewall.",
+ "items": {
+ "$ref": "#/definitions/AzureFirewallIpGroups"
+ }
+ },
+ "AzureFirewallPropertiesFormat": {
+ "properties": {
+ "applicationRuleCollections": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AzureFirewallApplicationRuleCollection"
+ },
+ "description": "Collection of application rule collections used by Azure Firewall."
+ },
+ "natRuleCollections": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AzureFirewallNatRuleCollection"
+ },
+ "description": "Collection of NAT rule collections used by Azure Firewall."
+ },
+ "networkRuleCollections": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AzureFirewallNetworkRuleCollection"
+ },
+ "description": "Collection of network rule collections used by Azure Firewall."
+ },
+ "ipConfigurations": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AzureFirewallIPConfiguration"
+ },
+ "description": "IP configuration of the Azure Firewall resource."
+ },
+ "managementIpConfiguration": {
+ "$ref": "#/definitions/AzureFirewallIPConfiguration",
+ "description": "IP configuration of the Azure Firewall used for management traffic."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the Azure firewall resource."
+ },
+ "threatIntelMode": {
+ "description": "The operation mode for Threat Intelligence.",
+ "$ref": "#/definitions/AzureFirewallThreatIntelMode"
+ },
+ "virtualHub": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "The virtualHub to which the firewall belongs."
+ },
+ "firewallPolicy": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "The firewallPolicy associated with this azure firewall."
+ },
+ "hubIPAddresses": {
+ "description": "IP addresses associated with AzureFirewall.",
+ "$ref": "#/definitions/HubIPAddresses"
+ },
+ "ipGroups": {
+ "readOnly": true,
+ "description": "IpGroups associated with AzureFirewall.",
+ "$ref": "#/definitions/IpGroups"
+ },
+ "sku": {
+ "description": "The Azure Firewall Resource SKU.",
+ "$ref": "#/definitions/AzureFirewallSku"
+ },
+ "additionalProperties": {
+ "$ref": "#/definitions/AzureFirewallAdditionalProperties",
+ "description": "The additional properties used to further config this azure firewall."
+ }
+ },
+ "description": "Properties of the Azure Firewall."
+ },
+ "AzureFirewall": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/AzureFirewallPropertiesFormat",
+ "description": "Properties of the azure firewall."
+ },
+ "zones": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "A list of availability zones denoting where the resource needs to come from."
+ },
+ "etag": {
+ "type": "string",
+ "readOnly": true,
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "description": "Azure Firewall resource."
+ },
+ "AzureFirewallListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AzureFirewall"
+ },
+ "description": "List of Azure Firewalls in a resource group."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of results."
+ }
+ },
+ "description": "Response for ListAzureFirewalls API service call."
+ },
+ "AzureFirewallThreatIntelMode": {
+ "type": "string",
+ "description": "The operation mode for Threat Intel.",
+ "enum": [
+ "Alert",
+ "Deny",
+ "Off"
+ ],
+ "x-ms-enum": {
+ "name": "AzureFirewallThreatIntelMode",
+ "modelAsString": true
+ }
+ },
+ "AzureFirewallAdditionalProperties": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "The additional properties of azure firewall."
+ },
+ "AzureFirewallApplicationRuleCollectionPropertiesFormat": {
+ "properties": {
+ "priority": {
+ "type": "integer",
+ "format": "int32",
+ "maximum": 65000,
+ "exclusiveMaximum": false,
+ "minimum": 100,
+ "exclusiveMinimum": false,
+ "description": "Priority of the application rule collection resource."
+ },
+ "action": {
+ "$ref": "#/definitions/AzureFirewallRCAction",
+ "description": "The action type of a rule collection."
+ },
+ "rules": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AzureFirewallApplicationRule"
+ },
+ "description": "Collection of rules used by a application rule collection."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the application rule collection resource."
+ }
+ },
+ "description": "Properties of the application rule collection."
+ },
+ "AzureFirewallApplicationRuleCollection": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/AzureFirewallApplicationRuleCollectionPropertiesFormat",
+ "description": "Properties of the azure firewall application rule collection."
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of the resource that is unique within the Azure firewall. This name can be used to access the resource."
+ },
+ "etag": {
+ "type": "string",
+ "readOnly": true,
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "Application rule collection resource."
+ },
+ "AzureFirewallApplicationRuleProtocol": {
+ "properties": {
+ "protocolType": {
+ "description": "Protocol type.",
+ "$ref": "#/definitions/AzureFirewallApplicationRuleProtocolType"
+ },
+ "port": {
+ "type": "integer",
+ "format": "int32",
+ "maximum": 64000,
+ "exclusiveMaximum": false,
+ "minimum": 0,
+ "exclusiveMinimum": false,
+ "description": "Port number for the protocol, cannot be greater than 64000. This field is optional."
+ }
+ },
+ "description": "Properties of the application rule protocol."
+ },
+ "AzureFirewallApplicationRule": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name of the application rule."
+ },
+ "description": {
+ "type": "string",
+ "description": "Description of the rule."
+ },
+ "sourceAddresses": {
+ "type": "array",
+ "description": "List of source IP addresses for this rule.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "protocols": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AzureFirewallApplicationRuleProtocol"
+ },
+ "description": "Array of ApplicationRuleProtocols."
+ },
+ "targetFqdns": {
+ "type": "array",
+ "description": "List of FQDNs for this rule.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "fqdnTags": {
+ "type": "array",
+ "description": "List of FQDN Tags for this rule.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "sourceIpGroups": {
+ "type": "array",
+ "description": "List of source IpGroups for this rule.",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "Properties of an application rule."
+ },
+ "AzureFirewallNatRuleCollectionProperties": {
+ "properties": {
+ "priority": {
+ "type": "integer",
+ "format": "int32",
+ "maximum": 65000,
+ "exclusiveMaximum": false,
+ "minimum": 100,
+ "exclusiveMinimum": false,
+ "description": "Priority of the NAT rule collection resource."
+ },
+ "action": {
+ "$ref": "#/definitions/AzureFirewallNatRCAction",
+ "description": "The action type of a NAT rule collection."
+ },
+ "rules": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AzureFirewallNatRule"
+ },
+ "description": "Collection of rules used by a NAT rule collection."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the NAT rule collection resource."
+ }
+ },
+ "description": "Properties of the NAT rule collection."
+ },
+ "AzureFirewallNatRuleCollection": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/AzureFirewallNatRuleCollectionProperties",
+ "description": "Properties of the azure firewall NAT rule collection."
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of the resource that is unique within the Azure firewall. This name can be used to access the resource."
+ },
+ "etag": {
+ "type": "string",
+ "readOnly": true,
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "NAT rule collection resource."
+ },
+ "AzureFirewallNatRule": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name of the NAT rule."
+ },
+ "description": {
+ "type": "string",
+ "description": "Description of the rule."
+ },
+ "sourceAddresses": {
+ "type": "array",
+ "description": "List of source IP addresses for this rule.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "destinationAddresses": {
+ "type": "array",
+ "description": "List of destination IP addresses for this rule. Supports IP ranges, prefixes, and service tags.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "destinationPorts": {
+ "type": "array",
+ "description": "List of destination ports.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "protocols": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AzureFirewallNetworkRuleProtocol"
+ },
+ "description": "Array of AzureFirewallNetworkRuleProtocols applicable to this NAT rule."
+ },
+ "translatedAddress": {
+ "type": "string",
+ "description": "The translated address for this NAT rule."
+ },
+ "translatedPort": {
+ "type": "string",
+ "description": "The translated port for this NAT rule."
+ },
+ "translatedFqdn": {
+ "type": "string",
+ "description": "The translated FQDN for this NAT rule."
+ },
+ "sourceIpGroups": {
+ "type": "array",
+ "description": "List of source IpGroups for this rule.",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "Properties of a NAT rule."
+ },
+ "AzureFirewallNatRCAction": {
+ "properties": {
+ "type": {
+ "description": "The type of action.",
+ "$ref": "#/definitions/AzureFirewallNatRCActionType"
+ }
+ },
+ "description": "AzureFirewall NAT Rule Collection Action."
+ },
+ "AzureFirewallNatRCActionType": {
+ "type": "string",
+ "description": "The action type of a NAT rule collection.",
+ "enum": [
+ "Snat",
+ "Dnat"
+ ],
+ "x-ms-enum": {
+ "name": "AzureFirewallNatRCActionType",
+ "modelAsString": true
+ }
+ },
+ "AzureFirewallNetworkRuleCollectionPropertiesFormat": {
+ "properties": {
+ "priority": {
+ "type": "integer",
+ "format": "int32",
+ "maximum": 65000,
+ "exclusiveMaximum": false,
+ "minimum": 100,
+ "exclusiveMinimum": false,
+ "description": "Priority of the network rule collection resource."
+ },
+ "action": {
+ "$ref": "#/definitions/AzureFirewallRCAction",
+ "description": "The action type of a rule collection."
+ },
+ "rules": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AzureFirewallNetworkRule"
+ },
+ "description": "Collection of rules used by a network rule collection."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the network rule collection resource."
+ }
+ },
+ "description": "Properties of the network rule collection."
+ },
+ "AzureFirewallNetworkRuleCollection": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/AzureFirewallNetworkRuleCollectionPropertiesFormat",
+ "description": "Properties of the azure firewall network rule collection."
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of the resource that is unique within the Azure firewall. This name can be used to access the resource."
+ },
+ "etag": {
+ "type": "string",
+ "readOnly": true,
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "Network rule collection resource."
+ },
+ "AzureFirewallNetworkRule": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name of the network rule."
+ },
+ "description": {
+ "type": "string",
+ "description": "Description of the rule."
+ },
+ "protocols": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AzureFirewallNetworkRuleProtocol"
+ },
+ "description": "Array of AzureFirewallNetworkRuleProtocols."
+ },
+ "sourceAddresses": {
+ "type": "array",
+ "description": "List of source IP addresses for this rule.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "destinationAddresses": {
+ "type": "array",
+ "description": "List of destination IP addresses.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "destinationPorts": {
+ "type": "array",
+ "description": "List of destination ports.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "destinationFqdns": {
+ "type": "array",
+ "description": "List of destination FQDNs.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "sourceIpGroups": {
+ "type": "array",
+ "description": "List of source IpGroups for this rule.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "destinationIpGroups": {
+ "type": "array",
+ "description": "List of destination IpGroups for this rule.",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "Properties of the network rule."
+ },
+ "AzureFirewallRCAction": {
+ "properties": {
+ "type": {
+ "description": "The type of action.",
+ "$ref": "#/definitions/AzureFirewallRCActionType"
+ }
+ },
+ "description": "Properties of the AzureFirewallRCAction."
+ },
+ "AzureFirewallRCActionType": {
+ "type": "string",
+ "description": "The action type of a rule collection.",
+ "enum": [
+ "Allow",
+ "Deny"
+ ],
+ "x-ms-enum": {
+ "name": "AzureFirewallRCActionType",
+ "modelAsString": true
+ }
+ },
+ "AzureFirewallNetworkRuleProtocol": {
+ "type": "string",
+ "description": "The protocol of a Network Rule resource.",
+ "enum": [
+ "TCP",
+ "UDP",
+ "Any",
+ "ICMP"
+ ],
+ "x-ms-enum": {
+ "name": "AzureFirewallNetworkRuleProtocol",
+ "modelAsString": true
+ }
+ },
+ "AzureFirewallApplicationRuleProtocolType": {
+ "type": "string",
+ "description": "The protocol type of a Application Rule resource.",
+ "enum": [
+ "Http",
+ "Https",
+ "Mssql"
+ ],
+ "x-ms-enum": {
+ "name": "AzureFirewallApplicationRuleProtocolType",
+ "modelAsString": true
+ }
+ },
+ "AzureFirewallSku": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name of an Azure Firewall SKU.",
+ "enum": [
+ "AZFW_VNet",
+ "AZFW_Hub"
+ ],
+ "x-ms-enum": {
+ "name": "AzureFirewallSkuName",
+ "modelAsString": true
+ }
+ },
+ "tier": {
+ "type": "string",
+ "description": "Tier of an Azure Firewall.",
+ "enum": [
+ "Standard",
+ "Premium"
+ ],
+ "x-ms-enum": {
+ "name": "AzureFirewallSkuTier",
+ "modelAsString": true
+ }
+ }
+ },
+ "description": "SKU of an Azure Firewall."
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/azureFirewallFqdnTag.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/azureFirewallFqdnTag.json
new file mode 100644
index 000000000000..0b06cbb5cf97
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/azureFirewallFqdnTag.json
@@ -0,0 +1,130 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "NetworkManagementClient",
+ "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
+ "version": "2020-07-01"
+ },
+ "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}/providers/Microsoft.Network/azureFirewallFqdnTags": {
+ "get": {
+ "tags": [
+ "AzureFirewallFqdnTags"
+ ],
+ "operationId": "AzureFirewallFqdnTags_ListAll",
+ "description": "Gets all the Azure Firewall FQDN Tags in a subscription.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The operation returns a list of Azure Firewall FQDN Tag resources.",
+ "schema": {
+ "$ref": "#/definitions/AzureFirewallFqdnTagListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List all Azure Firewall FQDN Tags for a given subscription": {
+ "$ref": "./examples/AzureFirewallFqdnTagsListBySubscription.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "AzureFirewallFqdnTagPropertiesFormat": {
+ "properties": {
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the Azure firewall FQDN tag resource."
+ },
+ "fqdnTagName": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The name of this FQDN Tag."
+ }
+ },
+ "description": "Azure Firewall FQDN Tag Properties."
+ },
+ "AzureFirewallFqdnTag": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/AzureFirewallFqdnTagPropertiesFormat",
+ "description": "Properties of the azure firewall FQDN tag."
+ },
+ "etag": {
+ "type": "string",
+ "readOnly": true,
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "description": "Azure Firewall FQDN Tag Resource."
+ },
+ "AzureFirewallFqdnTagListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AzureFirewallFqdnTag"
+ },
+ "description": "List of Azure Firewall FQDN Tags in a resource group."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of results."
+ }
+ },
+ "description": "Response for ListAzureFirewallFqdnTags API service call."
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/azureWebCategory.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/azureWebCategory.json
new file mode 100644
index 000000000000..79b4e22f62b3
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/azureWebCategory.json
@@ -0,0 +1,184 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "NetworkManagementClient",
+ "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
+ "version": "2020-07-01"
+ },
+ "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}/providers/Microsoft.Network/azureWebCategories/{name}": {
+ "get": {
+ "tags": [
+ "WebCategories"
+ ],
+ "operationId": "WebCategories_Get",
+ "description": "Gets the specified Azure Web Category.",
+ "parameters": [
+ {
+ "name": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the azureWebCategory."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Expands resourceIds back referenced by the azureWebCategory resource."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting azureWebCategory resource.",
+ "schema": {
+ "$ref": "#/definitions/AzureWebCategory"
+ }
+ },
+ "default": {
+ "description": "Unexpected error.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Azure Web Category by name": {
+ "$ref": "./examples/AzureWebCategoryGet.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/azureWebCategories": {
+ "get": {
+ "tags": [
+ "WebCategories"
+ ],
+ "operationId": "WebCategories_ListBySubscription",
+ "description": "Gets all the Azure Web Categories in a subscription.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The operation returns a list of Azure Web Category resources.",
+ "schema": {
+ "$ref": "#/definitions/AzureWebCategoryListResult"
+ }
+ },
+ "default": {
+ "description": "Unexpected Error.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List all Azure Web Categories for a given subscription": {
+ "$ref": "./examples/AzureWebCategoriesListBySubscription.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "AzureWebCategoryPropertiesFormat": {
+ "properties": {
+ "group": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The name of the group that the category belongs to."
+ }
+ },
+ "description": "Azure Web Category Properties."
+ },
+ "AzureWebCategory": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/AzureWebCategoryPropertiesFormat",
+ "description": "Properties of the Azure Web Category."
+ },
+ "id": {
+ "type": "string",
+ "description": "Resource ID."
+ },
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource name."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource type."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "description": "Azure Web Category Resource."
+ },
+ "AzureWebCategoryListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AzureWebCategory"
+ },
+ "description": "List of Azure Web Categories for a given Subscription."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of results."
+ }
+ },
+ "description": "Response for ListAzureWebCategories API service call."
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/bastionHost.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/bastionHost.json
new file mode 100644
index 000000000000..274891d21b78
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/bastionHost.json
@@ -0,0 +1,869 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "NetworkManagementClient",
+ "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
+ "version": "2020-07-01"
+ },
+ "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/bastionHosts/{bastionHostName}": {
+ "delete": {
+ "tags": [
+ "BastionHosts"
+ ],
+ "operationId": "BastionHosts_Delete",
+ "description": "Deletes the specified Bastion Host.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/BastionHostName"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "204": {
+ "description": "Request successful. Resource with the specified name does not exist."
+ },
+ "200": {
+ "description": "Delete successful."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete Bastion Host": {
+ "$ref": "./examples/BastionHostDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ },
+ "get": {
+ "tags": [
+ "BastionHosts"
+ ],
+ "operationId": "BastionHosts_Get",
+ "description": "Gets the specified Bastion Host.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/BastionHostName"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns an BastionHost resource.",
+ "schema": {
+ "$ref": "#/definitions/BastionHost"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Bastion Host": {
+ "$ref": "./examples/BastionHostGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "BastionHosts"
+ ],
+ "operationId": "BastionHosts_CreateOrUpdate",
+ "description": "Creates or updates the specified Bastion Host.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/BastionHostName"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/BastionHost"
+ },
+ "description": "Parameters supplied to the create or update Bastion Host operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Create successful. The operation returns the resulting Bastion Host resource.",
+ "schema": {
+ "$ref": "#/definitions/BastionHost"
+ }
+ },
+ "200": {
+ "description": "Update successful. The operation returns the resulting Bastion Host resource.",
+ "schema": {
+ "$ref": "#/definitions/BastionHost"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create Bastion Host": {
+ "$ref": "./examples/BastionHostPut.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/bastionHosts": {
+ "get": {
+ "tags": [
+ "BastionHosts"
+ ],
+ "operationId": "BastionHosts_List",
+ "description": "Lists all Bastion Hosts in a subscription.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The operation returns a list of Bastion Host resources.",
+ "schema": {
+ "$ref": "#/definitions/BastionHostListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List all Bastion Hosts for a given subscription": {
+ "$ref": "./examples/BastionHostListBySubscription.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/bastionHosts": {
+ "get": {
+ "tags": [
+ "BastionHosts"
+ ],
+ "operationId": "BastionHosts_ListByResourceGroup",
+ "description": "Lists all Bastion Hosts in a resource group.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupName"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The operation returns a list of BastionHost resources.",
+ "schema": {
+ "$ref": "#/definitions/BastionHostListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List all Bastion Hosts for a given resource group": {
+ "$ref": "./examples/BastionHostListByResourceGroup.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/bastionHosts/{bastionHostName}/createShareableLinks": {
+ "post": {
+ "tags": [
+ "BastionHosts",
+ "BastionShareableLink"
+ ],
+ "operationId": "PutBastionShareableLink",
+ "description": "Creates a Bastion Shareable Links for all the VMs specified in the request.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/BastionHostName"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/BastionShareableLinkRequest"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The operation returns a list of shareable links for the specified VMs, giving appropriate error messages as needed.",
+ "schema": {
+ "$ref": "#/definitions/BastionShareableLinkListResult"
+ }
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Create Bastion Shareable Links for the request VMs": {
+ "$ref": "./examples/BastionShareableLinkCreate.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/bastionHosts/{bastionHostName}/deleteShareableLinks": {
+ "post": {
+ "tags": [
+ "BastionHosts",
+ "BastionShareableLink"
+ ],
+ "operationId": "DeleteBastionShareableLink",
+ "description": "Deletes the Bastion Shareable Links for all the VMs specified in the request.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/BastionHostName"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/BastionShareableLinkRequest"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The operation deleted the BastionShareableLinks associated with the VMs, if they existed. No return body."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "x-ms-examples": {
+ "Delete Bastion Shareable Links for the request VMs": {
+ "$ref": "./examples/BastionShareableLinkDelete.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/bastionHosts/{bastionHostName}/getShareableLinks": {
+ "post": {
+ "tags": [
+ "BastionHosts",
+ "BastionShareableLink"
+ ],
+ "operationId": "GetBastionShareableLink",
+ "description": "Return the Bastion Shareable Links for all the VMs specified in the request.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/BastionHostName"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/BastionShareableLinkRequest"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The operation returns a list of shareable links for the specified VMs, giving appropriate error messages as needed.",
+ "schema": {
+ "$ref": "#/definitions/BastionShareableLinkListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Returns the Bastion Shareable Links for the request VMs": {
+ "$ref": "./examples/BastionShareableLinkGet.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/bastionHosts/{bastionHostName}/getActiveSessions": {
+ "post": {
+ "tags": [
+ "BastionHosts"
+ ],
+ "operationId": "GetActiveSessions",
+ "description": "Returns the list of currently active sessions on the Bastion.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/BastionHostName"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The operation returns a list of active sessions on the Bastion.",
+ "schema": {
+ "$ref": "#/definitions/BastionActiveSessionListResult"
+ }
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Returns a list of currently active sessions on the Bastion": {
+ "$ref": "./examples/BastionSessionsList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/bastionHosts/{bastionHostName}/disconnectActiveSessions": {
+ "post": {
+ "tags": [
+ "BastionHosts"
+ ],
+ "operationId": "DisconnectActiveSessions",
+ "description": "Returns the list of currently active sessions on the Bastion.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/BastionHostName"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/SessionIdsParameters"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The operation returns a list of sessions with the state of deleted/failed/not found.",
+ "schema": {
+ "$ref": "#/definitions/BastionSessionDeleteResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Deletes the specified active session": {
+ "$ref": "./examples/BastionSessionDelete.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "BastionHostIPConfigurationPropertiesFormat": {
+ "properties": {
+ "subnet": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "Reference of the subnet resource."
+ },
+ "publicIPAddress": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "Reference of the PublicIP resource."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the bastion host IP configuration resource."
+ },
+ "privateIPAllocationMethod": {
+ "$ref": "./network.json#/definitions/IPAllocationMethod",
+ "description": "Private IP allocation method."
+ }
+ },
+ "required": [
+ "subnet",
+ "publicIPAddress"
+ ],
+ "description": "Properties of IP configuration of an Bastion Host."
+ },
+ "BastionHostIPConfiguration": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/BastionHostIPConfigurationPropertiesFormat",
+ "description": "Represents the ip configuration associated with the resource."
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the resource that is unique within a resource group. This name can be used to access the resource."
+ },
+ "etag": {
+ "type": "string",
+ "readOnly": true,
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Ip configuration type."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "IP configuration of an Bastion Host."
+ },
+ "BastionHostPropertiesFormat": {
+ "properties": {
+ "ipConfigurations": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/BastionHostIPConfiguration"
+ },
+ "description": "IP configuration of the Bastion Host resource."
+ },
+ "dnsName": {
+ "type": "string",
+ "description": "FQDN for the endpoint on which bastion host is accessible."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the bastion host resource."
+ }
+ },
+ "description": "Properties of the Bastion Host."
+ },
+ "BastionHost": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/BastionHostPropertiesFormat",
+ "description": "Represents the bastion host resource."
+ },
+ "etag": {
+ "type": "string",
+ "readOnly": true,
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "description": "Bastion Host resource."
+ },
+ "BastionHostListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/BastionHost"
+ },
+ "description": "List of Bastion Hosts in a resource group."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of results."
+ }
+ },
+ "description": "Response for ListBastionHosts API service call."
+ },
+ "BastionShareableLink": {
+ "properties": {
+ "vm": {
+ "$ref": "#/definitions/VM",
+ "description": "Reference of the virtual machine resource."
+ },
+ "bsl": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The unique Bastion Shareable Link to the virtual machine."
+ },
+ "createdAt": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The time when the link was created."
+ },
+ "message": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Optional field indicating the warning or error message related to the vm in case of partial failure."
+ }
+ },
+ "required": [
+ "vm"
+ ],
+ "description": "Bastion Shareable Link."
+ },
+ "BastionShareableLinkListRequest": {
+ "properties": {
+ "vms": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/BastionShareableLink"
+ },
+ "description": "List of VM references."
+ }
+ },
+ "description": "Post request for all the Bastion Shareable Link endpoints."
+ },
+ "BastionShareableLinkListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/BastionShareableLink"
+ },
+ "description": "List of Bastion Shareable Links for the request."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for all the Bastion Shareable Link endpoints."
+ },
+ "BastionActiveSession": {
+ "properties": {
+ "sessionId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "A unique id for the session."
+ },
+ "startTime": {
+ "type": "object",
+ "readOnly": true,
+ "description": "The time when the session started."
+ },
+ "targetSubscriptionId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The subscription id for the target virtual machine."
+ },
+ "resourceType": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The type of the resource."
+ },
+ "targetHostName": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The host name of the target."
+ },
+ "targetResourceGroup": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The resource group of the target."
+ },
+ "userName": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The user name who is active on this session."
+ },
+ "targetIpAddress": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The IP Address of the target."
+ },
+ "protocol": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The protocol used to connect to the target.",
+ "enum": [
+ "SSH",
+ "RDP"
+ ],
+ "x-ms-enum": {
+ "name": "BastionConnectProtocol",
+ "modelAsString": true
+ }
+ },
+ "targetResourceId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The resource id of the target."
+ },
+ "sessionDurationInMins": {
+ "type": "number",
+ "readOnly": true,
+ "description": "Duration in mins the session has been active."
+ }
+ },
+ "description": "The session detail for a target."
+ },
+ "BastionActiveSessionListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/BastionActiveSession"
+ },
+ "description": "List of active sessions on the bastion."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for GetActiveSessions."
+ },
+ "BastionSessionState": {
+ "properties": {
+ "sessionId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "A unique id for the session."
+ },
+ "message": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Used for extra information."
+ },
+ "state": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The state of the session. Disconnected/Failed/NotFound."
+ }
+ },
+ "description": "The session state detail for a target."
+ },
+ "BastionSessionDeleteResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/BastionSessionState"
+ },
+ "description": "List of sessions with their corresponding state."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for DisconnectActiveSessions."
+ },
+ "VM": {
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "description": "Describes a Virtual Machine."
+ },
+ "SessionIds": {
+ "properties": {
+ "sessionIds": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of session IDs."
+ }
+ },
+ "description": "List of session IDs."
+ }
+ },
+ "parameters": {
+ "ResourceGroupName": {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group.",
+ "x-ms-parameter-location": "method"
+ },
+ "BastionShareableLinkRequest": {
+ "name": "bslRequest",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/BastionShareableLinkListRequest"
+ },
+ "description": "Post request for all the Bastion Shareable Link endpoints.",
+ "x-ms-parameter-location": "method"
+ },
+ "BastionHostName": {
+ "name": "bastionHostName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Bastion Host.",
+ "x-ms-parameter-location": "method"
+ },
+ "SessionIdsParameters": {
+ "name": "sessionIds",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/SessionIds"
+ },
+ "description": "The list of sessionids to disconnect.",
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/checkDnsAvailability.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/checkDnsAvailability.json
new file mode 100644
index 000000000000..69625d7640a3
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/checkDnsAvailability.json
@@ -0,0 +1,96 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "NetworkManagementClient",
+ "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
+ "version": "2020-07-01"
+ },
+ "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}/providers/Microsoft.Network/locations/{location}/CheckDnsNameAvailability": {
+ "get": {
+ "operationId": "CheckDnsNameAvailability",
+ "description": "Checks whether a domain name in the cloudapp.azure.com zone is available for use.",
+ "parameters": [
+ {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The location of the domain name."
+ },
+ {
+ "name": "domainNameLabel",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "The domain name to be verified. It must conform to the following regular expression: ^[a-z][a-z0-9-]{1,61}[a-z0-9]$."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns whether the DNS name is available.",
+ "schema": {
+ "$ref": "#/definitions/DnsNameAvailabilityResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Check Dns Name Availability": {
+ "$ref": "./examples/CheckDnsNameAvailability.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "DnsNameAvailabilityResult": {
+ "properties": {
+ "available": {
+ "type": "boolean",
+ "description": "Domain availability (True/False)."
+ }
+ },
+ "description": "Response for the CheckDnsNameAvailability API service call."
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/cloudServiceNetworkInterface.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/cloudServiceNetworkInterface.json
new file mode 100644
index 000000000000..74e96b4a69f4
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/cloudServiceNetworkInterface.json
@@ -0,0 +1,222 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "NetworkManagementClient",
+ "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
+ "version": "2020-07-01"
+ },
+ "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.Compute/cloudServices/{cloudServiceName}/roleInstances/{roleInstanceName}/networkInterfaces": {
+ "get": {
+ "tags": [
+ "NetworkInterfaces"
+ ],
+ "operationId": "NetworkInterfaces_ListCloudServiceRoleInstanceNetworkInterfaces",
+ "description": "Gets information about all network interfaces in a role instance in a cloud service",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "cloudServiceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the cloud service."
+ },
+ {
+ "name": "roleInstanceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of role instance."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionVmssParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of NetworkInterface resources.",
+ "schema": {
+ "$ref": "./networkInterface.json#/definitions/NetworkInterfaceListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List cloud service role instance network interfaces": {
+ "$ref": "./examples/CloudServiceRoleInstanceNetworkInterfaceList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/cloudServices/{cloudServiceName}/networkInterfaces": {
+ "get": {
+ "tags": [
+ "NetworkInterfaces"
+ ],
+ "operationId": "NetworkInterfaces_ListCloudServiceNetworkInterfaces",
+ "description": "Gets all network interfaces in a cloud service.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "cloudServiceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the cloud service."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionVmssParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of NetworkInterface resources.",
+ "schema": {
+ "$ref": "./networkInterface.json#/definitions/NetworkInterfaceListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List cloud service network interfaces": {
+ "$ref": "./examples/CloudServiceNetworkInterfaceList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/cloudServices/{cloudServiceName}/roleInstances/{roleInstanceName}/networkInterfaces/{networkInterfaceName}": {
+ "get": {
+ "tags": [
+ "NetworkInterfaces"
+ ],
+ "operationId": "NetworkInterfaces_GetCloudServiceNetworkInterface",
+ "description": "Get the specified network interface in a cloud service.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "cloudServiceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the cloud service."
+ },
+ {
+ "name": "roleInstanceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of role instance"
+ },
+ {
+ "name": "networkInterfaceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network interface."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionVmssParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Expands referenced resources."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting NetworkInterface resource.",
+ "schema": {
+ "$ref": "./networkInterface.json#/definitions/NetworkInterface"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get cloud service network interface": {
+ "$ref": "./examples/CloudServiceNetworkInterfaceGet.json"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/cloudServicePublicIpAddress.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/cloudServicePublicIpAddress.json
new file mode 100644
index 000000000000..cdb30527215f
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/cloudServicePublicIpAddress.json
@@ -0,0 +1,241 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "NetworkManagementClient",
+ "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
+ "version": "2020-07-01"
+ },
+ "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.Compute/cloudServices/{cloudServiceName}/publicipaddresses": {
+ "get": {
+ "operationId": "PublicIPAddresses_ListCloudServicePublicIPAddresses",
+ "description": "Gets information about all public IP addresses on a cloud service level.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "cloudServiceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the cloud service."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionVmssParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of PublicIPInterface resources.",
+ "schema": {
+ "$ref": "./publicIpAddress.json#/definitions/PublicIPAddressListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ListVMSSPublicIP": {
+ "$ref": "./examples/CloudServicePublicIpListAll.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/cloudServices/{cloudServiceName}/roleInstances/{roleInstanceName}/networkInterfaces/{networkInterfaceName}/ipconfigurations/{ipConfigurationName}/publicipaddresses": {
+ "get": {
+ "operationId": "PublicIPAddresses_ListCloudServiceRoleInstancePublicIPAddresses",
+ "description": "Gets information about all public IP addresses in a role instance IP configuration in a cloud service.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "cloudServiceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the cloud service."
+ },
+ {
+ "name": "roleInstanceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of role instance"
+ },
+ {
+ "name": "networkInterfaceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The network interface name."
+ },
+ {
+ "name": "ipConfigurationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The IP configuration name."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionVmssParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of PublicIPAddress resources.",
+ "schema": {
+ "$ref": "./publicIpAddress.json#/definitions/PublicIPAddressListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ListVMSSVMPublicIP": {
+ "$ref": "./examples/CloudServiceRoleInstancePublicIpList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/cloudServices/{cloudServiceName}/roleInstances/{roleInstanceName}/networkInterfaces/{networkInterfaceName}/ipconfigurations/{ipConfigurationName}/publicipaddresses/{publicIpAddressName}": {
+ "get": {
+ "operationId": "PublicIPAddresses_GetCloudServicePublicIPAddress",
+ "description": "Get the specified public IP address in a cloud service.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "cloudServiceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the cloud service."
+ },
+ {
+ "name": "roleInstanceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The role instance name."
+ },
+ {
+ "name": "networkInterfaceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network interface."
+ },
+ {
+ "name": "ipConfigurationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the IP configuration."
+ },
+ {
+ "name": "publicIpAddressName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the public IP Address."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionVmssParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Expands referenced resources."
+ }
+ ],
+ "x-ms-examples": {
+ "GetVMSSPublicIP": {
+ "$ref": "./examples/CloudServicePublicIpGet.json"
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting PublicIPAddress resource.",
+ "schema": {
+ "$ref": "./publicIpAddress.json#/definitions/PublicIPAddress"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/customIpPrefix.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/customIpPrefix.json
new file mode 100644
index 000000000000..e29f262f4ff4
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/customIpPrefix.json
@@ -0,0 +1,447 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "NetworkManagementClient",
+ "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
+ "version": "2020-07-01"
+ },
+ "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/customIpPrefixes/{customIpPrefixName}": {
+ "delete": {
+ "tags": [
+ "CustomIpPrefixes"
+ ],
+ "operationId": "CustomIPPrefixes_Delete",
+ "description": "Deletes the specified custom IP prefix.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "customIpPrefixName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the CustomIpPrefix."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Request successful. Resource does not exist."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "200": {
+ "description": "Delete successful."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete custom IP prefix": {
+ "$ref": "./examples/CustomIpPrefixDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ },
+ "get": {
+ "tags": [
+ "CustomIpPrefixes"
+ ],
+ "operationId": "CustomIPPrefixes_Get",
+ "description": "Gets the specified custom IP prefix in a specified resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "customIpPrefixName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the custom IP prefix."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Expands referenced resources."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting CustomIpPrefix resource.",
+ "schema": {
+ "$ref": "#/definitions/CustomIpPrefix"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get custom IP prefix": {
+ "$ref": "./examples/CustomIpPrefixGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "CustomIpPrefixes"
+ ],
+ "operationId": "CustomIPPrefixes_CreateOrUpdate",
+ "description": "Creates or updates a custom IP prefix.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "customIpPrefixName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the custom IP prefix."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CustomIpPrefix"
+ },
+ "description": "Parameters supplied to the create or update custom IP prefix operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Create successful. The operation returns the resulting CustomIpPrefix resource.",
+ "schema": {
+ "$ref": "#/definitions/CustomIpPrefix"
+ }
+ },
+ "200": {
+ "description": "Update successful. The operation returns the resulting CustomIpPrefix resource.",
+ "schema": {
+ "$ref": "#/definitions/CustomIpPrefix"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create custom IP prefix allocation method": {
+ "$ref": "./examples/CustomIpPrefixCreateCustomizedValues.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ },
+ "patch": {
+ "tags": [
+ "CustomIpPrefixes"
+ ],
+ "operationId": "CustomIPPrefixes_UpdateTags",
+ "description": "Updates custom IP prefix tags.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "customIpPrefixName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the custom IP prefix."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./network.json#/definitions/TagsObject"
+ },
+ "description": "Parameters supplied to update custom IP prefix tags."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update successful. The operation returns the resulting customIpPrefix resource.",
+ "schema": {
+ "$ref": "#/definitions/CustomIpPrefix"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update public IP address tags": {
+ "$ref": "./examples/CustomIpPrefixUpdateTags.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/customIpPrefixes": {
+ "get": {
+ "tags": [
+ "CustomIpPrefixes"
+ ],
+ "operationId": "CustomIPPrefixes_ListAll",
+ "description": "Gets all the custom IP prefixes in a subscription.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of CustomIpPrefix resources.",
+ "schema": {
+ "$ref": "#/definitions/CustomIpPrefixListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List all custom IP prefixes": {
+ "$ref": "./examples/CustomIpPrefixListAll.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/customIpPrefixes": {
+ "get": {
+ "tags": [
+ "CustomIpPrefixes"
+ ],
+ "operationId": "CustomIPPrefixes_List",
+ "description": "Gets all custom IP prefixes in a resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of CustomIpPrefix resources.",
+ "schema": {
+ "$ref": "#/definitions/CustomIpPrefixListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List resource group Custom IP prefixes": {
+ "$ref": "./examples/CustomIpPrefixList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "CustomIpPrefixPropertiesFormat": {
+ "properties": {
+ "cidr": {
+ "type": "string",
+ "description": "The prefix range in CIDR notation. Should include the start address and the prefix length."
+ },
+ "commissionedState": {
+ "type": "string",
+ "description": "The commissioned state of the Custom IP Prefix.",
+ "enum": [
+ "Provisioning",
+ "Provisioned",
+ "Commissioning",
+ "Commissioned",
+ "Decommissioning",
+ "Deprovisioning"
+ ],
+ "x-ms-enum": {
+ "name": "CommissionedState",
+ "modelAsString": true
+ }
+ },
+ "publicIpPrefixes": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "./network.json#/definitions/SubResource"
+ },
+ "description": "The list of all referenced PublicIpPrefixes."
+ },
+ "resourceGuid": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource GUID property of the custom IP prefix resource."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the custom IP prefix resource."
+ }
+ },
+ "description": "Custom IP prefix properties."
+ },
+ "CustomIpPrefix": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/CustomIpPrefixPropertiesFormat",
+ "description": "Custom IP prefix properties."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ },
+ "zones": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "A list of availability zones denoting the IP allocated for the resource needs to come from."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "description": "Custom IP prefix resource."
+ },
+ "CustomIpPrefixListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CustomIpPrefix"
+ },
+ "description": "A list of Custom IP prefixes that exists in a resource group."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for ListCustomIpPrefixes API service call."
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/ddosCustomPolicy.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/ddosCustomPolicy.json
new file mode 100644
index 000000000000..6fdc405a3bcd
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/ddosCustomPolicy.json
@@ -0,0 +1,364 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "NetworkManagementClient",
+ "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
+ "version": "2020-07-01"
+ },
+ "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/ddosCustomPolicies/{ddosCustomPolicyName}": {
+ "delete": {
+ "tags": [
+ "ddosCustomPolicies"
+ ],
+ "operationId": "DdosCustomPolicies_Delete",
+ "description": "Deletes the specified DDoS custom policy.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "ddosCustomPolicyName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the DDoS custom policy."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Request successful. Resource does not exist."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "200": {
+ "description": "Delete successful."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "x-ms-examples": {
+ "Delete DDoS custom policy": {
+ "$ref": "./examples/DdosCustomPolicyDelete.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "ddosCustomPolicies"
+ ],
+ "operationId": "DdosCustomPolicies_Get",
+ "description": "Gets information about the specified DDoS custom policy.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "ddosCustomPolicyName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the DDoS custom policy."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the specified DDoS custom policy resource.",
+ "schema": {
+ "$ref": "#/definitions/DdosCustomPolicy"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get DDoS custom policy": {
+ "$ref": "./examples/DdosCustomPolicyGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "ddosCustomPolicies"
+ ],
+ "operationId": "DdosCustomPolicies_CreateOrUpdate",
+ "description": "Creates or updates a DDoS custom policy.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "ddosCustomPolicyName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the DDoS custom policy."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/DdosCustomPolicy"
+ },
+ "description": "Parameters supplied to the create or update operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Create successful. The operation returns the resulting DDoS custom policy resource.",
+ "schema": {
+ "$ref": "#/definitions/DdosCustomPolicy"
+ }
+ },
+ "200": {
+ "description": "Update successful. The operation returns the resulting DDoS custom policy resource.",
+ "schema": {
+ "$ref": "#/definitions/DdosCustomPolicy"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ },
+ "x-ms-examples": {
+ "Create DDoS custom policy": {
+ "$ref": "./examples/DdosCustomPolicyCreate.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "ddosCustomPolicies"
+ ],
+ "operationId": "DdosCustomPolicies_UpdateTags",
+ "description": "Update a DDoS custom policy tags.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "ddosCustomPolicyName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the DDoS custom policy."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./network.json#/definitions/TagsObject"
+ },
+ "description": "Parameters supplied to update DDoS custom policy resource tags."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update successful. The operation returns the resulting DDoS custom policy resource.",
+ "schema": {
+ "$ref": "#/definitions/DdosCustomPolicy"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "DDoS Custom policy Update tags": {
+ "$ref": "./examples/DdosCustomPolicyUpdateTags.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "DdosCustomPolicy": {
+ "description": "A DDoS custom policy in a resource group.",
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/DdosCustomPolicyPropertiesFormat",
+ "description": "Properties of the DDoS custom policy."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ]
+ },
+ "DdosCustomPolicyPropertiesFormat": {
+ "properties": {
+ "resourceGuid": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource GUID property of the DDoS custom policy resource. It uniquely identifies the resource, even if the user changes its name or migrate the resource across subscriptions or resource groups."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the DDoS custom policy resource."
+ },
+ "publicIPAddresses": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "./network.json#/definitions/SubResource"
+ },
+ "description": "The list of public IPs associated with the DDoS custom policy resource. This list is read-only."
+ },
+ "protocolCustomSettings": {
+ "readOnly": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ProtocolCustomSettingsFormat"
+ },
+ "description": "The protocol-specific DDoS policy customization parameters."
+ }
+ },
+ "description": "DDoS custom policy properties."
+ },
+ "ProtocolCustomSettingsFormat": {
+ "properties": {
+ "protocol": {
+ "readOnly": false,
+ "type": "string",
+ "enum": [
+ "Tcp",
+ "Udp",
+ "Syn"
+ ],
+ "x-ms-enum": {
+ "name": "DdosCustomPolicyProtocol",
+ "modelAsString": true
+ },
+ "description": "The protocol for which the DDoS protection policy is being customized."
+ },
+ "triggerRateOverride": {
+ "readOnly": false,
+ "type": "string",
+ "description": "The customized DDoS protection trigger rate."
+ },
+ "sourceRateOverride": {
+ "readOnly": false,
+ "type": "string",
+ "description": "The customized DDoS protection source rate."
+ },
+ "triggerSensitivityOverride": {
+ "readOnly": false,
+ "type": "string",
+ "enum": [
+ "Relaxed",
+ "Low",
+ "Default",
+ "High"
+ ],
+ "x-ms-enum": {
+ "name": "DdosCustomPolicyTriggerSensitivityOverride",
+ "modelAsString": true
+ },
+ "description": "The customized DDoS protection trigger rate sensitivity degrees. High: Trigger rate set with most sensitivity w.r.t. normal traffic. Default: Trigger rate set with moderate sensitivity w.r.t. normal traffic. Low: Trigger rate set with less sensitivity w.r.t. normal traffic. Relaxed: Trigger rate set with least sensitivity w.r.t. normal traffic."
+ }
+ },
+ "description": "DDoS custom policy properties."
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/ddosProtectionPlan.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/ddosProtectionPlan.json
new file mode 100644
index 000000000000..efc43df9f3ca
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/ddosProtectionPlan.json
@@ -0,0 +1,436 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "NetworkManagementClient",
+ "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
+ "version": "2020-07-01"
+ },
+ "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/ddosProtectionPlans/{ddosProtectionPlanName}": {
+ "delete": {
+ "tags": [
+ "DdosProtectionPlans"
+ ],
+ "operationId": "DdosProtectionPlans_Delete",
+ "description": "Deletes the specified DDoS protection plan.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "ddosProtectionPlanName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the DDoS protection plan."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Request successful. Resource does not exist."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "200": {
+ "description": "Delete successful."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "x-ms-examples": {
+ "Delete DDoS protection plan": {
+ "$ref": "./examples/DdosProtectionPlanDelete.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "DdosProtectionPlans"
+ ],
+ "operationId": "DdosProtectionPlans_Get",
+ "description": "Gets information about the specified DDoS protection plan.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "ddosProtectionPlanName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the DDoS protection plan."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the specified DDoS protection plan resource.",
+ "schema": {
+ "$ref": "#/definitions/DdosProtectionPlan"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get DDoS protection plan": {
+ "$ref": "./examples/DdosProtectionPlanGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "DdosProtectionPlans"
+ ],
+ "operationId": "DdosProtectionPlans_CreateOrUpdate",
+ "description": "Creates or updates a DDoS protection plan.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "ddosProtectionPlanName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the DDoS protection plan."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/DdosProtectionPlan"
+ },
+ "description": "Parameters supplied to the create or update operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Create successful. The operation returns the resulting DDoS protection plan resource.",
+ "schema": {
+ "$ref": "#/definitions/DdosProtectionPlan"
+ }
+ },
+ "200": {
+ "description": "Update successful. The operation returns the resulting DDoS protection plan resource.",
+ "schema": {
+ "$ref": "#/definitions/DdosProtectionPlan"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ },
+ "x-ms-examples": {
+ "Create DDoS protection plan": {
+ "$ref": "./examples/DdosProtectionPlanCreate.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "DdosProtectionPlans"
+ ],
+ "operationId": "DdosProtectionPlans_UpdateTags",
+ "description": "Update a DDoS protection plan tags.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "ddosProtectionPlanName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the DDoS protection plan."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./network.json#/definitions/TagsObject"
+ },
+ "description": "Parameters supplied to the update DDoS protection plan resource tags."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update successful. The operation returns the resulting DDoS protection plan resource.",
+ "schema": {
+ "$ref": "#/definitions/DdosProtectionPlan"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "DDoS protection plan Update tags": {
+ "$ref": "./examples/DdosProtectionPlanUpdateTags.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/ddosProtectionPlans": {
+ "get": {
+ "tags": [
+ "DdosProtectionPlans"
+ ],
+ "operationId": "DdosProtectionPlans_List",
+ "description": "Gets all DDoS protection plans in a subscription.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of DDoS protection plan resources.",
+ "schema": {
+ "$ref": "#/definitions/DdosProtectionPlanListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "List all DDoS protection plans": {
+ "$ref": "./examples/DdosProtectionPlanListAll.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/ddosProtectionPlans": {
+ "get": {
+ "tags": [
+ "DdosProtectionPlans"
+ ],
+ "operationId": "DdosProtectionPlans_ListByResourceGroup",
+ "description": "Gets all the DDoS protection plans in a resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of DDoS protection plan resources.",
+ "schema": {
+ "$ref": "#/definitions/DdosProtectionPlanListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List DDoS protection plans in resource group": {
+ "$ref": "./examples/DdosProtectionPlanList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "DdosProtectionPlan": {
+ "description": "A DDoS protection plan in a resource group.",
+ "x-ms-azure-resource": true,
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource ID."
+ },
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource name."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource type."
+ },
+ "location": {
+ "type": "string",
+ "description": "Resource location."
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/DdosProtectionPlanPropertiesFormat",
+ "description": "Properties of the DDoS protection plan."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ }
+ },
+ "DdosProtectionPlanPropertiesFormat": {
+ "properties": {
+ "resourceGuid": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource GUID property of the DDoS protection plan resource. It uniquely identifies the resource, even if the user changes its name or migrate the resource across subscriptions or resource groups."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the DDoS protection plan resource."
+ },
+ "virtualNetworks": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "./network.json#/definitions/SubResource"
+ },
+ "description": "The list of virtual networks associated with the DDoS protection plan resource. This list is read-only."
+ }
+ },
+ "description": "DDoS protection plan properties."
+ },
+ "DdosProtectionPlanListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DdosProtectionPlan"
+ },
+ "description": "A list of DDoS protection plans."
+ },
+ "nextLink": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "A list of DDoS protection plans."
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/dscpConfiguration.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/dscpConfiguration.json
new file mode 100644
index 000000000000..8847335938c5
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/dscpConfiguration.json
@@ -0,0 +1,445 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "NetworkManagementClient",
+ "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
+ "version": "2020-07-01"
+ },
+ "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/dscpConfigurations/{dscpConfigurationName}": {
+ "put": {
+ "tags": [
+ "DscpConfiguration"
+ ],
+ "operationId": "DscpConfiguration_CreateOrUpdate",
+ "description": "Creates or updates a DSCP Configuration.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "dscpConfigurationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/DscpConfiguration"
+ },
+ "description": "Parameters supplied to the create or update dscp configuration operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Create successful. The operation returns the resulting DscpConfiguration resource.",
+ "schema": {
+ "$ref": "#/definitions/DscpConfiguration"
+ }
+ },
+ "200": {
+ "description": "Update successful. The operation returns the resulting DscpConfiguration resource.",
+ "schema": {
+ "$ref": "#/definitions/DscpConfiguration"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create DSCP Configuration": {
+ "$ref": "./examples/DscpConfigurationCreate.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ },
+ "delete": {
+ "tags": [
+ "DscpConfiguration"
+ ],
+ "operationId": "DscpConfiguration_Delete",
+ "description": "Deletes a DSCP Configuration.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "dscpConfigurationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Request successful. Resource does not exist."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "200": {
+ "description": "Delete successful."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete DSCP Configuration": {
+ "$ref": "./examples/DscpConfigurationDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ },
+ "get": {
+ "tags": [
+ "DscpConfiguration"
+ ],
+ "operationId": "DscpConfiguration_Get",
+ "description": "Gets a DSCP Configuration.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "dscpConfigurationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting DSCP Configuration resource.",
+ "schema": {
+ "$ref": "#/definitions/DscpConfiguration"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Dscp Configuration": {
+ "$ref": "./examples/DscpConfigurationGet.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/dscpConfigurations": {
+ "get": {
+ "tags": [
+ "DscpConfigurations"
+ ],
+ "operationId": "DscpConfiguration_List",
+ "description": "Gets a DSCP Configuration.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting DSCP Configuration resource.",
+ "schema": {
+ "$ref": "#/definitions/DscpConfigurationListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Dscp Configuration": {
+ "$ref": "./examples/DscpConfigurationList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/dscpConfigurations": {
+ "get": {
+ "tags": [
+ "DscpConfigurations"
+ ],
+ "operationId": "DscpConfiguration_ListAll",
+ "description": "Gets all dscp configurations in a subscription.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of NetworkInterface resources.",
+ "schema": {
+ "$ref": "#/definitions/DscpConfigurationListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List all network interfaces": {
+ "$ref": "./examples/DscpConfigurationListAll.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "DscpConfiguration": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/DscpConfigurationPropertiesFormat",
+ "description": "Properties of the network interface."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "description": "DSCP Configuration in a resource group."
+ },
+ "DscpConfigurationPropertiesFormat": {
+ "properties": {
+ "markings": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "description": "List of markings to be used in the configuration."
+ },
+ "sourceIpRanges": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/QosIpRange"
+ },
+ "description": "Source IP ranges."
+ },
+ "destinationIpRanges": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/QosIpRange"
+ },
+ "description": "Destination IP ranges."
+ },
+ "sourcePortRanges": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/QosPortRange"
+ },
+ "description": "Sources port ranges."
+ },
+ "destinationPortRanges": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/QosPortRange"
+ },
+ "description": "Destination port ranges."
+ },
+ "protocol": {
+ "type": "string",
+ "enum": [
+ "DoNotUse",
+ "Icmp",
+ "Tcp",
+ "Udp",
+ "Gre",
+ "Esp",
+ "Ah",
+ "Vxlan",
+ "All"
+ ],
+ "x-ms-enum": {
+ "name": "ProtocolType",
+ "modelAsString": true
+ },
+ "description": "RNM supported protocol types."
+ },
+ "qosCollectionId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Qos Collection ID generated by RNM."
+ },
+ "associatedNetworkInterfaces": {
+ "type": "array",
+ "items": {
+ "$ref": "./networkInterface.json#/definitions/NetworkInterface"
+ },
+ "readOnly": true,
+ "description": "Associated Network Interfaces to the DSCP Configuration."
+ },
+ "resourceGuid": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource GUID property of the DSCP Configuration resource."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the DSCP Configuration resource."
+ }
+ },
+ "description": "DSCP Configuration properties."
+ },
+ "QosIpRange": {
+ "properties": {
+ "startIP": {
+ "type": "string",
+ "description": "Start IP Address."
+ },
+ "endIP": {
+ "type": "string",
+ "description": "End IP Address."
+ }
+ },
+ "description": "Qos Traffic Profiler IP Range properties."
+ },
+ "QosPortRange": {
+ "properties": {
+ "start": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Qos Port Range start."
+ },
+ "end": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Qos Port Range end."
+ }
+ },
+ "description": "Qos Traffic Profiler Port range properties."
+ },
+ "DscpConfigurationListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DscpConfiguration"
+ },
+ "description": "A list of dscp configurations in a resource group."
+ },
+ "nextLink": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for the DscpConfigurationList API service call."
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/endpointService.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/endpointService.json
new file mode 100644
index 000000000000..601eba0a9179
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/endpointService.json
@@ -0,0 +1,119 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "NetworkManagementClient",
+ "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
+ "version": "2020-07-01"
+ },
+ "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}/providers/Microsoft.Network/locations/{location}/virtualNetworkAvailableEndpointServices": {
+ "get": {
+ "operationId": "AvailableEndpointServices_List",
+ "description": "List what values of endpoint services are available for use.",
+ "parameters": [
+ {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The location to check available endpoint services."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns list of available endpoint services.",
+ "schema": {
+ "$ref": "#/definitions/EndpointServicesListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "EndpointServicesList": {
+ "$ref": "./examples/EndpointServicesList.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "EndpointServicesListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EndpointServiceResult"
+ },
+ "description": "List of available endpoint services in a region."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for the ListAvailableEndpointServices API service call."
+ },
+ "EndpointServiceResult": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name of the endpoint service.",
+ "readOnly": true
+ },
+ "type": {
+ "type": "string",
+ "description": "Type of the endpoint service.",
+ "readOnly": true
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "Endpoint service."
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayAvailableRequestHeadersGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayAvailableRequestHeadersGet.json
new file mode 100644
index 000000000000..604b15e4c49f
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayAvailableRequestHeadersGet.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "72f988bf-86f1-41af-91ab-2d7cd0dddd4"
+ },
+ "responses": {
+ "200": {
+ "body": [
+ "Accept-Charset"
+ ]
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayAvailableResponseHeadersGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayAvailableResponseHeadersGet.json
new file mode 100644
index 000000000000..474ef7f0df79
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayAvailableResponseHeadersGet.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "72f988bf-86f1-41af-91ab-2d7cd0dddd4"
+ },
+ "responses": {
+ "200": {
+ "body": [
+ "Access-Control-Allow-Origin"
+ ]
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayAvailableServerVariablesGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayAvailableServerVariablesGet.json
new file mode 100644
index 000000000000..3f2549a2be92
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayAvailableServerVariablesGet.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "72f988bf-86f1-41af-91ab-2d7cd0dddd4"
+ },
+ "responses": {
+ "200": {
+ "body": [
+ "request_query"
+ ]
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayAvailableSslOptionsGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayAvailableSslOptionsGet.json
new file mode 100644
index 000000000000..32f54e6d8cba
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayAvailableSslOptionsGet.json
@@ -0,0 +1,64 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "default",
+ "id": "/subscriptions/subid/resourceGroups//providers/Microsoft.Network/ApplicationGatewayAvailableSslOptions/default",
+ "type": "Microsoft.Network/ApplicationGatewayAvailableSslOptions",
+ "properties": {
+ "predefinedPolicies": [
+ {
+ "id": "/subscriptions/subid/resourceGroups//providers/Microsoft.Network/ApplicationGatewayAvailableSslOptions/default/ApplicationGatewaySslPredefinedPolicy/AppGwSslPolicy20150501"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups//providers/Microsoft.Network/ApplicationGatewayAvailableSslOptions/default/ApplicationGatewaySslPredefinedPolicy/AppGwSslPolicy20170401"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups//providers/Microsoft.Network/ApplicationGatewayAvailableSslOptions/default/ApplicationGatewaySslPredefinedPolicy/AppGwSslPolicy20170401S"
+ }
+ ],
+ "defaultPolicy": "AppGwSslPolicy20150501",
+ "availableCipherSuites": [
+ "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
+ "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
+ "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384",
+ "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256",
+ "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA",
+ "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA",
+ "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384",
+ "TLS_DHE_RSA_WITH_AES_128_GCM_SHA256",
+ "TLS_DHE_RSA_WITH_AES_256_CBC_SHA",
+ "TLS_DHE_RSA_WITH_AES_128_CBC_SHA",
+ "TLS_RSA_WITH_AES_256_GCM_SHA384",
+ "TLS_RSA_WITH_AES_128_GCM_SHA256",
+ "TLS_RSA_WITH_AES_256_CBC_SHA256",
+ "TLS_RSA_WITH_AES_128_CBC_SHA256",
+ "TLS_RSA_WITH_AES_256_CBC_SHA",
+ "TLS_RSA_WITH_AES_128_CBC_SHA",
+ "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
+ "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
+ "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384",
+ "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
+ "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA",
+ "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA",
+ "TLS_DHE_DSS_WITH_AES_256_CBC_SHA256",
+ "TLS_DHE_DSS_WITH_AES_128_CBC_SHA256",
+ "TLS_DHE_DSS_WITH_AES_256_CBC_SHA",
+ "TLS_DHE_DSS_WITH_AES_128_CBC_SHA",
+ "TLS_RSA_WITH_3DES_EDE_CBC_SHA",
+ "TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA"
+ ],
+ "availableProtocols": [
+ "TLSv1_0",
+ "TLSv1_1",
+ "TLSv1_2"
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayAvailableSslOptionsPredefinedPoliciesGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayAvailableSslOptionsPredefinedPoliciesGet.json
new file mode 100644
index 000000000000..0426a9958df7
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayAvailableSslOptionsPredefinedPoliciesGet.json
@@ -0,0 +1,101 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "AppGwSslPolicy20150501",
+ "id": "/subscriptions/subid/resourceGroups//providers/Microsoft.Network/ApplicationGatewayAvailableSslOptions/default/ApplicationGatewaySslPredefinedPolicy/AppGwSslPolicy20150501",
+ "properties": {
+ "cipherSuites": [
+ "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
+ "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
+ "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384",
+ "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256",
+ "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA",
+ "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA",
+ "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384",
+ "TLS_DHE_RSA_WITH_AES_128_GCM_SHA256",
+ "TLS_DHE_RSA_WITH_AES_256_CBC_SHA",
+ "TLS_DHE_RSA_WITH_AES_128_CBC_SHA",
+ "TLS_RSA_WITH_AES_256_GCM_SHA384",
+ "TLS_RSA_WITH_AES_128_GCM_SHA256",
+ "TLS_RSA_WITH_AES_256_CBC_SHA256",
+ "TLS_RSA_WITH_AES_128_CBC_SHA256",
+ "TLS_RSA_WITH_AES_256_CBC_SHA",
+ "TLS_RSA_WITH_AES_128_CBC_SHA",
+ "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
+ "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
+ "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384",
+ "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
+ "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA",
+ "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA",
+ "TLS_DHE_DSS_WITH_AES_256_CBC_SHA256",
+ "TLS_DHE_DSS_WITH_AES_128_CBC_SHA256",
+ "TLS_DHE_DSS_WITH_AES_256_CBC_SHA",
+ "TLS_DHE_DSS_WITH_AES_128_CBC_SHA",
+ "TLS_RSA_WITH_3DES_EDE_CBC_SHA",
+ "TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA"
+ ],
+ "minProtocolVersion": "TLSv1_0"
+ }
+ },
+ {
+ "name": "AppGwSslPolicy20170401",
+ "id": "/subscriptions/subid/resourceGroups//providers/Microsoft.Network/ApplicationGatewayAvailableSslOptions/default/ApplicationGatewaySslPredefinedPolicy/AppGwSslPolicy20170401",
+ "properties": {
+ "cipherSuites": [
+ "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
+ "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
+ "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA",
+ "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA",
+ "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
+ "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384",
+ "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
+ "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
+ "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA",
+ "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA",
+ "TLS_RSA_WITH_AES_256_GCM_SHA384",
+ "TLS_RSA_WITH_AES_128_GCM_SHA256",
+ "TLS_RSA_WITH_AES_256_CBC_SHA256",
+ "TLS_RSA_WITH_AES_128_CBC_SHA256",
+ "TLS_RSA_WITH_AES_256_CBC_SHA",
+ "TLS_RSA_WITH_AES_128_CBC_SHA"
+ ],
+ "minProtocolVersion": "TLSv1_1"
+ }
+ },
+ {
+ "name": "AppGwSslPolicy20170401S",
+ "id": "/subscriptions/subid/resourceGroups//providers/Microsoft.Network/ApplicationGatewayAvailableSslOptions/default/ApplicationGatewaySslPredefinedPolicy/AppGwSslPolicy20170401S",
+ "properties": {
+ "cipherSuites": [
+ "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
+ "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
+ "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA",
+ "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA",
+ "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
+ "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384",
+ "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
+ "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
+ "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA",
+ "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA",
+ "TLS_RSA_WITH_AES_256_GCM_SHA384",
+ "TLS_RSA_WITH_AES_128_GCM_SHA256",
+ "TLS_RSA_WITH_AES_256_CBC_SHA256",
+ "TLS_RSA_WITH_AES_128_CBC_SHA256",
+ "TLS_RSA_WITH_AES_256_CBC_SHA",
+ "TLS_RSA_WITH_AES_128_CBC_SHA"
+ ],
+ "minProtocolVersion": "TLSv1_2"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayAvailableSslOptionsPredefinedPolicyGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayAvailableSslOptionsPredefinedPolicyGet.json
new file mode 100644
index 000000000000..52619b65e510
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayAvailableSslOptionsPredefinedPolicyGet.json
@@ -0,0 +1,48 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "predefinedPolicyName": "AppGwSslPolicy20150501"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "AppGwSslPolicy20150501",
+ "id": "/subscriptions/subid/resourceGroups//providers/Microsoft.Network/ApplicationGatewayAvailableSslOptions/default/ApplicationGatewaySslPredefinedPolicy/AppGwSslPolicy20150501",
+ "properties": {
+ "cipherSuites": [
+ "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
+ "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
+ "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384",
+ "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256",
+ "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA",
+ "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA",
+ "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384",
+ "TLS_DHE_RSA_WITH_AES_128_GCM_SHA256",
+ "TLS_DHE_RSA_WITH_AES_256_CBC_SHA",
+ "TLS_DHE_RSA_WITH_AES_128_CBC_SHA",
+ "TLS_RSA_WITH_AES_256_GCM_SHA384",
+ "TLS_RSA_WITH_AES_128_GCM_SHA256",
+ "TLS_RSA_WITH_AES_256_CBC_SHA256",
+ "TLS_RSA_WITH_AES_128_CBC_SHA256",
+ "TLS_RSA_WITH_AES_256_CBC_SHA",
+ "TLS_RSA_WITH_AES_128_CBC_SHA",
+ "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
+ "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
+ "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384",
+ "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
+ "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA",
+ "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA",
+ "TLS_DHE_DSS_WITH_AES_256_CBC_SHA256",
+ "TLS_DHE_DSS_WITH_AES_128_CBC_SHA256",
+ "TLS_DHE_DSS_WITH_AES_256_CBC_SHA",
+ "TLS_DHE_DSS_WITH_AES_128_CBC_SHA",
+ "TLS_RSA_WITH_3DES_EDE_CBC_SHA",
+ "TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA"
+ ],
+ "minProtocolVersion": "TLSv1_0"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayAvailableWafRuleSetsGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayAvailableWafRuleSetsGet.json
new file mode 100644
index 000000000000..0105b762f9d3
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayAvailableWafRuleSetsGet.json
@@ -0,0 +1,36 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "OWASP_3.0",
+ "id": "/subscriptions//resourceGroups//providers/Microsoft.Network/applicationGatewayAvailableWafRuleSets/",
+ "type": "Microsoft.Network/applicationGatewayAvailableWafRuleSets",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ruleSetType": "OWASP",
+ "ruleSetVersion": "3.0",
+ "ruleGroups": [
+ {
+ "ruleGroupName": "General",
+ "description": "",
+ "rules": [
+ {
+ "ruleId": 200004,
+ "description": "Possible Multipart Unmatched Boundary."
+ }
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayBackendHealthGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayBackendHealthGet.json
new file mode 100644
index 000000000000..b24059c2476b
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayBackendHealthGet.json
@@ -0,0 +1,57 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "appgw",
+ "applicationGatewayName": "appgw"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "backendAddressPools": [
+ {
+ "backendAddressPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendaddressPools/MFAnalyticsPool"
+ },
+ "backendHttpSettingsCollection": [
+ {
+ "backendHttpSettings": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendHttpSettingsCollection/MFPoolSettings"
+ },
+ "servers": [
+ {
+ "address": "10.220.1.8",
+ "health": "Up"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "backendAddressPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendaddressPools/MFPool"
+ },
+ "backendHttpSettingsCollection": [
+ {
+ "backendHttpSettings": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendHttpSettingsCollection/MFPoolSettings"
+ },
+ "servers": [
+ {
+ "address": "10.220.1.4",
+ "health": "Up"
+ },
+ {
+ "address": "10.220.1.5",
+ "health": "Up"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayBackendHealthTest.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayBackendHealthTest.json
new file mode 100644
index 000000000000..261a7cd6620c
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayBackendHealthTest.json
@@ -0,0 +1,45 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "applicationGatewayName": "appgw",
+ "probeRequest": {
+ "protocol": "Http",
+ "pickHostNameFromBackendHttpSettings": true,
+ "path": "/",
+ "timeout": 30,
+ "backendAddressPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendaddressPools/MFAnalyticsPool"
+ },
+ "backendHttpSettings": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendHttpSettingsCollection/MFPoolSettings"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "backendAddressPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendaddressPools/MFAnalyticsPool"
+ },
+ "backendHealthHttpSettings": {
+ "backendHttpSettings": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendHttpSettingsCollection/MFPoolSettings"
+ },
+ "servers": [
+ {
+ "address": "10.220.1.4",
+ "health": "Up"
+ },
+ {
+ "address": "10.220.1.5",
+ "health": "Up"
+ }
+ ]
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayCreate.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayCreate.json
new file mode 100644
index 000000000000..d47124a73a4d
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayCreate.json
@@ -0,0 +1,878 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "applicationGatewayName": "appgw",
+ "parameters": {
+ "identity": {
+ "type": "UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity1": {}
+ }
+ },
+ "location": "eastus",
+ "properties": {
+ "sku": {
+ "name": "Standard_v2",
+ "tier": "Standard_v2",
+ "capacity": 3
+ },
+ "gatewayIPConfigurations": [
+ {
+ "name": "appgwipc",
+ "properties": {
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet/subnets/appgwsubnet"
+ }
+ }
+ }
+ ],
+ "sslCertificates": [
+ {
+ "name": "sslcert",
+ "properties": {
+ "data": "****",
+ "password": "****"
+ }
+ },
+ {
+ "name": "sslcert2",
+ "properties": {
+ "keyVaultSecretId": "https://kv/secret"
+ }
+ }
+ ],
+ "trustedRootCertificates": [
+ {
+ "name": "rootcert",
+ "properties": {
+ "data": "****"
+ }
+ },
+ {
+ "name": "rootcert1",
+ "properties": {
+ "keyVaultSecretId": "https://kv/secret"
+ }
+ }
+ ],
+ "trustedClientCertificates": [
+ {
+ "name": "clientcert",
+ "properties": {
+ "data": "****"
+ }
+ }
+ ],
+ "frontendIPConfigurations": [
+ {
+ "name": "appgwfip",
+ "properties": {
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/appgwpip"
+ }
+ }
+ }
+ ],
+ "frontendPorts": [
+ {
+ "name": "appgwfp",
+ "properties": {
+ "port": 443
+ }
+ },
+ {
+ "name": "appgwfp80",
+ "properties": {
+ "port": 80
+ }
+ }
+ ],
+ "backendAddressPools": [
+ {
+ "name": "appgwpool",
+ "properties": {
+ "backendAddresses": [
+ {
+ "ipAddress": "10.0.1.1"
+ },
+ {
+ "ipAddress": "10.0.1.2"
+ }
+ ]
+ }
+ }
+ ],
+ "backendHttpSettingsCollection": [
+ {
+ "name": "appgwbhs",
+ "properties": {
+ "port": 80,
+ "protocol": "Http",
+ "cookieBasedAffinity": "Disabled",
+ "requestTimeout": 30
+ }
+ }
+ ],
+ "sslProfiles": [
+ {
+ "name": "sslProfile1",
+ "properties": {
+ "sslPolicy": {
+ "policyType": "Custom",
+ "minProtocolVersion": "TLSv1_1",
+ "cipherSuites": [
+ "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256"
+ ]
+ },
+ "clientAuthConfiguration": {
+ "verifyClientCertIssuerDN": true
+ },
+ "trustedClientCertificates": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/trustedClientCertificates/clientcert"
+ }
+ ]
+ }
+ }
+ ],
+ "httpListeners": [
+ {
+ "name": "appgwhl",
+ "properties": {
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/frontendIPConfigurations/appgwfip"
+ },
+ "frontendPort": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/frontendPorts/appgwfp"
+ },
+ "protocol": "Https",
+ "sslCertificate": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/sslCertificates/sslcert"
+ },
+ "sslProfile": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/sslProfiles/sslProfile1"
+ },
+ "requireServerNameIndication": false
+ }
+ },
+ {
+ "name": "appgwhttplistener",
+ "properties": {
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/frontendIPConfigurations/appgwfip"
+ },
+ "frontendPort": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/frontendPorts/appgwfp80"
+ },
+ "protocol": "Http"
+ }
+ }
+ ],
+ "urlPathMaps": [
+ {
+ "name": "pathMap1",
+ "properties": {
+ "defaultBackendAddressPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendAddressPools/appgwpool"
+ },
+ "defaultBackendHttpSettings": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendHttpSettingsCollection/appgwbhs"
+ },
+ "defaultRewriteRuleSet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/rewriteRuleSets/rewriteRuleSet1"
+ },
+ "pathRules": [
+ {
+ "name": "apiPaths",
+ "properties": {
+ "paths": [
+ "/api",
+ "/v1/api"
+ ],
+ "backendAddressPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendAddressPools/appgwpool"
+ },
+ "backendHttpSettings": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendHttpSettingsCollection/appgwbhs"
+ },
+ "rewriteRuleSet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/rewriteRuleSets/rewriteRuleSet1"
+ }
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "requestRoutingRules": [
+ {
+ "name": "appgwrule",
+ "properties": {
+ "ruleType": "Basic",
+ "priority": 10,
+ "httpListener": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/httpListeners/appgwhl"
+ },
+ "backendAddressPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendAddressPools/appgwpool"
+ },
+ "backendHttpSettings": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendHttpSettingsCollection/appgwbhs"
+ },
+ "rewriteRuleSet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/rewriteRuleSets/rewriteRuleSet1"
+ }
+ }
+ },
+ {
+ "name": "appgwPathBasedRule",
+ "properties": {
+ "ruleType": "PathBasedRouting",
+ "priority": 20,
+ "httpListener": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/httpListeners/appgwhttplistener"
+ },
+ "urlPathMap": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/urlPathMaps/pathMap1"
+ }
+ }
+ }
+ ],
+ "rewriteRuleSets": [
+ {
+ "name": "rewriteRuleSet1",
+ "properties": {
+ "rewriteRules": [
+ {
+ "name": "Set X-Forwarded-For",
+ "ruleSequence": 102,
+ "conditions": [
+ {
+ "variable": "http_req_Authorization",
+ "pattern": "^Bearer",
+ "ignoreCase": true,
+ "negate": false
+ }
+ ],
+ "actionSet": {
+ "requestHeaderConfigurations": [
+ {
+ "headerName": "X-Forwarded-For",
+ "headerValue": "{var_add_x_forwarded_for_proxy}"
+ }
+ ],
+ "responseHeaderConfigurations": [
+ {
+ "headerName": "Strict-Transport-Security",
+ "headerValue": "max-age=31536000"
+ }
+ ],
+ "urlConfiguration": {
+ "modifiedPath": "/abc"
+ }
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "name": "appgw",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw",
+ "type": "Microsoft.Network/applicationGateways",
+ "location": "southcentralus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "sku": {
+ "name": "Standard_Medium",
+ "tier": "Standard",
+ "capacity": 3
+ },
+ "operationalState": "Running",
+ "gatewayIPConfigurations": [
+ {
+ "name": "appgwipc",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/gatewayIPConfigurations/appgwipc",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/virtualNetwork1/subnets/appgwsubnet"
+ }
+ }
+ }
+ ],
+ "sslCertificates": [
+ {
+ "name": "sslcert",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/sslCertificates/sslcert",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "publicCertData": "*****"
+ }
+ }
+ ],
+ "trustedClientCertificates": [
+ {
+ "name": "clientcert",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/trustedClientCertificates/clientcert",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "data": "****"
+ }
+ }
+ ],
+ "authenticationCertificates": [],
+ "frontendIPConfigurations": [
+ {
+ "name": "appgwfip",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/frontendIPConfigurations/appgwfip",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAllocationMethod": "Dynamic",
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/appgwpip"
+ }
+ }
+ }
+ ],
+ "frontendPorts": [
+ {
+ "name": "appgwfp",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/frontendPorts/appgwfp",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "port": 443
+ }
+ },
+ {
+ "name": "appgwfp80",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/frontendPorts/appgwfp80",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "port": 80
+ }
+ }
+ ],
+ "backendAddressPools": [
+ {
+ "name": "appgwpool",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendAddressPools/appgwpool",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "backendAddresses": []
+ }
+ }
+ ],
+ "backendHttpSettingsCollection": [
+ {
+ "name": "appgwbhs",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendHttpSettingsCollection/appgwbhs",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "port": 80,
+ "protocol": "Http",
+ "cookieBasedAffinity": "Disabled",
+ "requestTimeout": 30
+ }
+ }
+ ],
+ "sslProfiles": [
+ {
+ "name": "sslProfile1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/sslProfiles/sslProfile1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "sslPolicy": {
+ "policyType": "Custom",
+ "minProtocolVersion": "TLSv1_1",
+ "cipherSuites": [
+ "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256"
+ ]
+ },
+ "clientAuthConfiguration": {
+ "verifyClientCertIssuerDN": true
+ },
+ "trustedClientCertificates": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/trustedClientCertificates/clientcert"
+ }
+ ]
+ }
+ }
+ ],
+ "httpListeners": [
+ {
+ "name": "appgwhl",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/httpListeners/appgwhl",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/frontendIPConfigurations/appgwfip"
+ },
+ "frontendPort": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/frontendPorts/appgwfp"
+ },
+ "protocol": "Https",
+ "sslCertificate": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/sslCertificates/sslcert"
+ },
+ "sslProfile": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/sslProfiles/sslProfile1"
+ },
+ "requireServerNameIndication": false
+ }
+ },
+ {
+ "name": "appgwhttplistener",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/httpListeners/appgwhttplistener",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/frontendIPConfigurations/appgwfip"
+ },
+ "frontendPort": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/frontendPorts/appgwfp80"
+ },
+ "protocol": "Http"
+ }
+ }
+ ],
+ "urlPathMaps": [
+ {
+ "name": "pathMap1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/urlPathMaps/pathMap1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "defaultBackendAddressPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendAddressPools/appgwpool"
+ },
+ "defaultBackendHttpSettings": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendHttpSettingsCollection/appgwbhs"
+ },
+ "defaultRewriteRuleSet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/rewriteRuleSets/rewriteRuleSet1"
+ },
+ "pathRules": [
+ {
+ "name": "apiPaths",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/urlPathMaps/pathMap1/pathRules/apiPaths",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "paths": [
+ "/api",
+ "/v1/api"
+ ],
+ "backendAddressPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendAddressPools/appgwpool"
+ },
+ "backendHttpSettings": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendHttpSettingsCollection/appgwbhs"
+ },
+ "rewriteRuleSet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/rewriteRuleSets/rewriteRuleSet1"
+ }
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "requestRoutingRules": [
+ {
+ "name": "appgwrule",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/requestRoutingRules/appgwrule",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ruleType": "Basic",
+ "httpListener": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/httpListeners/appgwhl"
+ },
+ "backendAddressPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendAddressPools/appgwpool"
+ },
+ "backendHttpSettings": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendHttpSettingsCollection/appgwbhs"
+ },
+ "rewriteRuleSet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/rewriteRuleSets/rewriteRuleSet1"
+ }
+ }
+ },
+ {
+ "name": "appgwPathBasedRule",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/requestRoutingRules/appgwPathBasedRule",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ruleType": "PathBasedRouting",
+ "httpListener": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/httpListeners/appgwhttplistener"
+ },
+ "urlPathMap": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/urlPathMaps/pathMap1"
+ }
+ }
+ }
+ ],
+ "rewriteRuleSets": [
+ {
+ "name": "rewriteRuleSet1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/rewriteRuleSets/rewriteRuleSet1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "rewriteRules": [
+ {
+ "name": "Set X-Forwarded-For",
+ "ruleSequence": 102,
+ "conditions": [
+ {
+ "variable": "http_req_Authorization",
+ "pattern": "^Bearer",
+ "ignoreCase": true,
+ "negate": false
+ }
+ ],
+ "actionSet": {
+ "requestHeaderConfigurations": [
+ {
+ "headerName": "X-Forwarded-For",
+ "headerValue": "{var_remote-addr}"
+ }
+ ],
+ "responseHeaderConfigurations": [
+ {
+ "headerName": "Strict-Transport-Security",
+ "headerValue": "max-age=31536000"
+ }
+ ],
+ "urlConfiguration": {
+ "modifiedPath": "/abc",
+ "reroute": true
+ }
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "probes": []
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "name": "appgw",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw",
+ "type": "Microsoft.Network/applicationGateways",
+ "location": "southcentralus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "sku": {
+ "name": "Standard_Medium",
+ "tier": "Standard",
+ "capacity": 3
+ },
+ "operationalState": "Running",
+ "gatewayIPConfigurations": [
+ {
+ "name": "appgwipc",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/gatewayIPConfigurations/appgwipc",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/virtualNetwork1/subnets/appgwsubnet"
+ }
+ }
+ }
+ ],
+ "sslCertificates": [
+ {
+ "name": "sslcert",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/sslCertificates/sslcert",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "publicCertData": "*****"
+ }
+ }
+ ],
+ "trustedClientCertificates": [
+ {
+ "name": "clientcert",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/trustedClientCertificates/clientcert",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "data": "****"
+ }
+ }
+ ],
+ "authenticationCertificates": [],
+ "frontendIPConfigurations": [
+ {
+ "name": "appgwfip",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/frontendIPConfigurations/appgwfip",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAllocationMethod": "Dynamic",
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/appgwpip"
+ },
+ "privateLinkConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/privateLinkConfigurations/privateLinkConfig1"
+ }
+ }
+ }
+ ],
+ "frontendPorts": [
+ {
+ "name": "appgwfp",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/frontendPorts/appgwfp",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "port": 443
+ }
+ },
+ {
+ "name": "appgwfp80",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/frontendPorts/appgwfp80",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "port": 80
+ }
+ }
+ ],
+ "backendAddressPools": [
+ {
+ "name": "appgwpool",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendAddressPools/appgwpool",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "backendAddresses": []
+ }
+ }
+ ],
+ "backendHttpSettingsCollection": [
+ {
+ "name": "appgwbhs",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendHttpSettingsCollection/appgwbhs",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "port": 80,
+ "protocol": "Http",
+ "cookieBasedAffinity": "Disabled",
+ "requestTimeout": 30
+ }
+ }
+ ],
+ "sslProfiles": [
+ {
+ "name": "sslProfile1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/sslProfiles/sslProfile1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "sslPolicy": {
+ "policyType": "Custom",
+ "minProtocolVersion": "TLSv1_1",
+ "cipherSuites": [
+ "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256"
+ ]
+ },
+ "clientAuthConfiguration": {
+ "verifyClientCertIssuerDN": true
+ },
+ "trustedClientCertificates": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/trustedClientCertificates/clientcert"
+ }
+ ]
+ }
+ }
+ ],
+ "httpListeners": [
+ {
+ "name": "appgwhl",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/httpListeners/appgwhl",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/frontendIPConfigurations/appgwfip"
+ },
+ "frontendPort": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/frontendPorts/appgwfp"
+ },
+ "protocol": "Https",
+ "sslCertificate": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/sslCertificates/sslcert"
+ },
+ "sslProfile": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/sslProfiles/sslProfile1"
+ },
+ "requireServerNameIndication": false
+ }
+ },
+ {
+ "name": "appgwhttplistener",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/httpListeners/appgwhttplistener",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/frontendIPConfigurations/appgwfip"
+ },
+ "frontendPort": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/frontendPorts/appgwfp80"
+ },
+ "protocol": "Http"
+ }
+ }
+ ],
+ "urlPathMaps": [
+ {
+ "name": "pathMap1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/urlPathMaps/pathMap1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "defaultBackendAddressPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendAddressPools/appgwpool"
+ },
+ "defaultBackendHttpSettings": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendHttpSettingsCollection/appgwbhs"
+ },
+ "defaultRewriteRuleSet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/rewriteRuleSets/rewriteRuleSet1"
+ },
+ "pathRules": [
+ {
+ "name": "apiPaths",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/urlPathMaps/pathMap1/pathRules/apiPaths",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "paths": [
+ "/api",
+ "/v1/api"
+ ],
+ "backendAddressPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendAddressPools/appgwpool"
+ },
+ "backendHttpSettings": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendHttpSettingsCollection/appgwbhs"
+ },
+ "rewriteRuleSet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/rewriteRuleSets/rewriteRuleSet1"
+ }
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "requestRoutingRules": [
+ {
+ "name": "appgwrule",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/requestRoutingRules/appgwrule",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ruleType": "Basic",
+ "httpListener": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/httpListeners/appgwhl"
+ },
+ "backendAddressPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendAddressPools/appgwpool"
+ },
+ "backendHttpSettings": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendHttpSettingsCollection/appgwbhs"
+ },
+ "rewriteRuleSet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/rewriteRuleSets/rewriteRuleSet1"
+ }
+ }
+ },
+ {
+ "name": "appgwPathBasedRule",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/requestRoutingRules/appgwPathBasedRule",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ruleType": "PathBasedRouting",
+ "httpListener": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/httpListeners/appgwhttplistener"
+ },
+ "urlPathMap": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/urlPathMaps/pathMap1"
+ }
+ }
+ }
+ ],
+ "rewriteRuleSets": [
+ {
+ "name": "rewriteRuleSet1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/rewriteRuleSets/rewriteRuleSet1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "rewriteRules": [
+ {
+ "name": "Set X-Forwarded-For",
+ "ruleSequence": 102,
+ "conditions": [
+ {
+ "variable": "http_req_Authorization",
+ "pattern": "^Bearer",
+ "ignoreCase": true,
+ "negate": false
+ }
+ ],
+ "actionSet": {
+ "requestHeaderConfigurations": [
+ {
+ "headerName": "X-Forwarded-For",
+ "headerValue": "{var_remote-addr}"
+ }
+ ],
+ "responseHeaderConfigurations": [
+ {
+ "headerName": "Strict-Transport-Security",
+ "headerValue": "max-age=31536000"
+ }
+ ],
+ "urlConfiguration": {
+ "modifiedPath": "/abc",
+ "modifiedQueryString": "x=y&a=b"
+ }
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "probes": [],
+ "privateLinkConfigurations": [
+ {
+ "name": "privateLinkConfig1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/privateLinkConfigurations/privateLinkConfig1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ipConfigurations": [
+ {
+ "name": "natNicIpconfig1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/privateLinkConfigurations/privateLinkConfig1/ipConfigurations/natNicIpconfig1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAllocationMethod": "Dynamic",
+ "primary": true,
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet/subnets/appgwsubnet"
+ }
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayDelete.json
new file mode 100644
index 000000000000..6598a1c04008
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "applicationGatewayName": "appgw"
+ },
+ "responses": {
+ "202": {},
+ "204": {},
+ "200": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayGet.json
new file mode 100644
index 000000000000..0d0f441b1ad8
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayGet.json
@@ -0,0 +1,331 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "applicationGatewayName": "appgw"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "appgw",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw",
+ "type": "Microsoft.Network/applicationGateways",
+ "location": "southcentralus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "sku": {
+ "name": "Standard_Medium",
+ "tier": "Standard",
+ "capacity": 3
+ },
+ "operationalState": "Running",
+ "gatewayIPConfigurations": [
+ {
+ "name": "appgwipc",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/gatewayIPConfigurations/appgwipc",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/virtualNetwork1/subnets/appgwsubnet"
+ }
+ }
+ }
+ ],
+ "sslCertificates": [
+ {
+ "name": "sslcert",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/sslCertificates/sslcert",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "publicCertData": "*****"
+ }
+ }
+ ],
+ "trustedClientCertificates": [
+ {
+ "name": "clientcert",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/trustedClientCertificates/clientcert",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "data": "****"
+ }
+ }
+ ],
+ "authenticationCertificates": [],
+ "frontendIPConfigurations": [
+ {
+ "name": "appgwfip",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/frontendIPConfigurations/appgwfip",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAllocationMethod": "Dynamic",
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/appgwpip"
+ }
+ }
+ }
+ ],
+ "frontendPorts": [
+ {
+ "name": "appgwfp",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/frontendPorts/appgwfp",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "port": 443
+ }
+ },
+ {
+ "name": "appgwfp80",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/frontendPorts/appgwfp80",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "port": 80
+ }
+ }
+ ],
+ "backendAddressPools": [
+ {
+ "name": "appgwpool",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendAddressPools/appgwpool",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "backendAddresses": []
+ }
+ }
+ ],
+ "backendHttpSettingsCollection": [
+ {
+ "name": "appgwbhs",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendHttpSettingsCollection/appgwbhs",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "port": 80,
+ "protocol": "Http",
+ "cookieBasedAffinity": "Disabled",
+ "requestTimeout": 30
+ }
+ }
+ ],
+ "sslProfiles": [
+ {
+ "name": "sslProfile1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/sslProfiles/sslProfile1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "sslPolicy": {
+ "policyType": "Custom",
+ "minProtocolVersion": "TLSv1_1",
+ "cipherSuites": [
+ "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256"
+ ]
+ },
+ "clientAuthConfiguration": {
+ "verifyClientCertIssuerDN": true
+ },
+ "trustedClientCertificates": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/trustedClientCertificates/clientcert"
+ }
+ ]
+ }
+ }
+ ],
+ "httpListeners": [
+ {
+ "name": "appgwhl",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/httpListeners/appgwhl",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/frontendIPConfigurations/appgwfip"
+ },
+ "frontendPort": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/frontendPorts/appgwfp"
+ },
+ "protocol": "Https",
+ "sslCertificate": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/sslCertificates/sslcert"
+ },
+ "sslProfile": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/sslProfiles/sslProfile1"
+ },
+ "requireServerNameIndication": false
+ }
+ },
+ {
+ "name": "appgwhttplistener",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/httpListeners/appgwhttplistener",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/frontendIPConfigurations/appgwfip"
+ },
+ "frontendPort": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/frontendPorts/appgwfp80"
+ },
+ "protocol": "Http"
+ }
+ }
+ ],
+ "urlPathMaps": [
+ {
+ "name": "pathMap1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/urlPathMaps/pathMap1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "defaultBackendAddressPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendAddressPools/appgwpool"
+ },
+ "defaultBackendHttpSettings": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendHttpSettingsCollection/appgwbhs"
+ },
+ "defaultRewriteRuleSet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/rewriteRuleSets/rewriteRuleSet1"
+ },
+ "pathRules": [
+ {
+ "name": "apiPaths",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/urlPathMaps/pathMap1/pathRules/apiPaths",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "paths": [
+ "/api",
+ "/v1/api"
+ ],
+ "backendAddressPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendAddressPools/appgwpool"
+ },
+ "backendHttpSettings": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendHttpSettingsCollection/appgwbhs"
+ },
+ "rewriteRuleSet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/rewriteRuleSets/rewriteRuleSet1"
+ }
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "requestRoutingRules": [
+ {
+ "name": "appgwrule",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/requestRoutingRules/appgwrule",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ruleType": "Basic",
+ "priority": 10,
+ "httpListener": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/httpListeners/appgwhl"
+ },
+ "backendAddressPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendAddressPools/appgwpool"
+ },
+ "backendHttpSettings": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendHttpSettingsCollection/appgwbhs"
+ },
+ "rewriteRuleSet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/rewriteRuleSets/rewriteRuleSet1"
+ }
+ }
+ },
+ {
+ "name": "appgwPathBasedRule",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/requestRoutingRules/appgwPathBasedRule",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ruleType": "PathBasedRouting",
+ "priority": 20,
+ "httpListener": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/httpListeners/appgwhttplistener"
+ },
+ "urlPathMap": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/urlPathMaps/pathMap1"
+ }
+ }
+ }
+ ],
+ "rewriteRuleSets": [
+ {
+ "name": "rewriteRuleSet1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/rewriteRuleSets/rewriteRuleSet1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "rewriteRules": [
+ {
+ "name": "Set X-Forwarded-For",
+ "ruleSequence": 102,
+ "conditions": [
+ {
+ "variable": "http_req_Authorization",
+ "pattern": "^Bearer",
+ "ignoreCase": true,
+ "negate": false
+ }
+ ],
+ "actionSet": {
+ "requestHeaderConfigurations": [
+ {
+ "headerName": "X-Forwarded-For",
+ "headerValue": "{var_remote-addr}"
+ }
+ ],
+ "responseHeaderConfigurations": [
+ {
+ "headerName": "Strict-Transport-Security",
+ "headerValue": "max-age=31536000"
+ }
+ ],
+ "urlConfiguration": {
+ "modifiedPath": "/abc",
+ "modifiedQueryString": "x=y&a=b",
+ "reroute": false
+ }
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "probes": [],
+ "privateLinkConfigurations": [
+ {
+ "name": "privateLink1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/privateLinkConfigurations/privateLink1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ipConfigurations": [
+ {
+ "name": "natNicIpconfig1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/privateLinkConfigurations/privateLink1/privateLinkConfigurations/privateLink1/ipConfigurations/natNicIpconfig1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAllocationMethod": "Dynamic",
+ "primary": true,
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/virtualNetwork1/subnets/appgwsubnet"
+ }
+ }
+ },
+ {
+ "name": "natNicIpconfig2",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/privateLinkConfigurations/privateLink1/privateLinkConfigurations/privateLink1/ipConfigurations/natNicIpconfig2",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAllocationMethod": "Dynamic",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/virtualNetwork1/subnets/appgwsubnet"
+ }
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "privateEndpointConnections": []
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayList.json
new file mode 100644
index 000000000000..2f58b4868f8c
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayList.json
@@ -0,0 +1,125 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "appgw",
+ "type": "Microsoft.Network/applicationGateways",
+ "location": "southcentralus",
+ "properties": {
+ "sku": {
+ "name": "Standard_Medium",
+ "tier": "Standard",
+ "capacity": 3
+ },
+ "gatewayIPConfigurations": [
+ {
+ "name": "appgwipc",
+ "properties": {
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet/subnets/appgwsubnet"
+ }
+ }
+ }
+ ],
+ "sslCertificates": [
+ {
+ "name": "sslcert",
+ "properties": {
+ "data": "base64-pfxData",
+ "password": "pass1"
+ }
+ }
+ ],
+ "frontendIPConfigurations": [
+ {
+ "name": "appgwfip",
+ "properties": {
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/appgwpip"
+ }
+ }
+ }
+ ],
+ "frontendPorts": [
+ {
+ "name": "appgwfp",
+ "properties": {
+ "port": 443
+ }
+ }
+ ],
+ "backendAddressPools": [
+ {
+ "name": "appgwpool",
+ "properties": {
+ "backendAddresses": [
+ {
+ "ipAddress": "10.0.1.1"
+ },
+ {
+ "ipAddress": "10.0.1.2"
+ }
+ ]
+ }
+ }
+ ],
+ "backendHttpSettingsCollection": [
+ {
+ "name": "appgwbhs",
+ "properties": {
+ "port": 80,
+ "protocol": "Http",
+ "cookieBasedAffinity": "Disabled",
+ "requestTimeout": 30
+ }
+ }
+ ],
+ "httpListeners": [
+ {
+ "name": "appgwhl",
+ "properties": {
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/frontendIPConfigurations/appgwfip"
+ },
+ "frontendPort": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/frontendPorts/appgwfp"
+ },
+ "protocol": "Https",
+ "sslCertificate": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/sslCertificates/sslcert"
+ },
+ "requireServerNameIndication": false
+ }
+ }
+ ],
+ "requestRoutingRules": [
+ {
+ "name": "appgwrule",
+ "properties": {
+ "ruleType": "Basic",
+ "httpListener": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/httpListeners/appgwhl"
+ },
+ "backendAddressPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendAddressPools/appgwpool"
+ },
+ "backendHttpSettings": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendHttpSettingsCollection/appgwbhs"
+ }
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayListAll.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayListAll.json
new file mode 100644
index 000000000000..8e8ecbd48c86
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayListAll.json
@@ -0,0 +1,124 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "appgw",
+ "type": "Microsoft.Network/applicationGateways",
+ "location": "southcentralus",
+ "properties": {
+ "sku": {
+ "name": "Standard_Medium",
+ "tier": "Standard",
+ "capacity": 3
+ },
+ "gatewayIPConfigurations": [
+ {
+ "name": "appgwipc",
+ "properties": {
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet/subnets/appgwsubnet"
+ }
+ }
+ }
+ ],
+ "sslCertificates": [
+ {
+ "name": "sslcert",
+ "properties": {
+ "data": "base64-pfxData",
+ "password": "pass1"
+ }
+ }
+ ],
+ "frontendIPConfigurations": [
+ {
+ "name": "appgwfip",
+ "properties": {
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/appgwpip"
+ }
+ }
+ }
+ ],
+ "frontendPorts": [
+ {
+ "name": "appgwfp",
+ "properties": {
+ "port": 443
+ }
+ }
+ ],
+ "backendAddressPools": [
+ {
+ "name": "appgwpool",
+ "properties": {
+ "backendAddresses": [
+ {
+ "ipAddress": "10.0.1.1"
+ },
+ {
+ "ipAddress": "10.0.1.2"
+ }
+ ]
+ }
+ }
+ ],
+ "backendHttpSettingsCollection": [
+ {
+ "name": "appgwbhs",
+ "properties": {
+ "port": 80,
+ "protocol": "Http",
+ "cookieBasedAffinity": "Disabled",
+ "requestTimeout": 30
+ }
+ }
+ ],
+ "httpListeners": [
+ {
+ "name": "appgwhl",
+ "properties": {
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/frontendIPConfigurations/appgwfip"
+ },
+ "frontendPort": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/frontendPorts/appgwfp"
+ },
+ "protocol": "Https",
+ "sslCertificate": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/sslCertificates/sslcert"
+ },
+ "requireServerNameIndication": false
+ }
+ }
+ ],
+ "requestRoutingRules": [
+ {
+ "name": "appgwrule",
+ "properties": {
+ "ruleType": "Basic",
+ "httpListener": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/httpListeners/appgwhl"
+ },
+ "backendAddressPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendAddressPools/appgwpool"
+ },
+ "backendHttpSettings": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/backendHttpSettingsCollection/appgwbhs"
+ }
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayPrivateEndpointConnectionDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayPrivateEndpointConnectionDelete.json
new file mode 100644
index 000000000000..225ae7b834ed
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayPrivateEndpointConnectionDelete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "applicationGatewayName": "appgw",
+ "connectionName": "connection1"
+ },
+ "responses": {
+ "202": {},
+ "204": {},
+ "200": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayPrivateEndpointConnectionGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayPrivateEndpointConnectionGet.json
new file mode 100644
index 000000000000..a73fcc3092a6
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayPrivateEndpointConnectionGet.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "applicationGatewayName": "appgw",
+ "connectionName": "connection1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "coonection1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/privateLinkResources/connection1",
+ "type": "Microsoft.Network/applicationGateways/privateEndpointConnections",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateEndpoint": {
+ "id": "/subscriptions/subid2/resourceGroups/rg1/providers/Microsoft.Network/privateEndpoints/pe1"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Approval Done"
+ },
+ "linkIdentifier": "805319460"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayPrivateEndpointConnectionList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayPrivateEndpointConnectionList.json
new file mode 100644
index 000000000000..8565fd9c615e
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayPrivateEndpointConnectionList.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "applicationGatewayName": "appgw"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "coonection1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/privateLinkResources/connection1",
+ "type": "Microsoft.Network/applicationGateways/privateEndpointConnections",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateEndpoint": {
+ "id": "/subscriptions/subid2/resourceGroups/rg1/providers/Microsoft.Network/privateEndpoints/pe1"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Approval Done"
+ },
+ "linkIdentifier": "805319460"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayPrivateEndpointConnectionUpdate.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayPrivateEndpointConnectionUpdate.json
new file mode 100644
index 000000000000..fe86029e3f03
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayPrivateEndpointConnectionUpdate.json
@@ -0,0 +1,39 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "applicationGatewayName": "appgw",
+ "connectionName": "connection1",
+ "parameters": {
+ "name": "connection1",
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/subId2/resourceGroups/rg1/providers/Microsoft.Network/privateEndpoints/testPe"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "approved it for some reason."
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "testPlePeConnection",
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateEndpoints/testPe"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "approved it for some reason."
+ },
+ "linkIdentifier": "linkId"
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayPrivateLinkResourceList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayPrivateLinkResourceList.json
new file mode 100644
index 000000000000..a8584c0f2b86
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayPrivateLinkResourceList.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "applicationGatewayName": "appgw"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "privateLink1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/appgw/privateLinkResources/privateLink1",
+ "type": "Microsoft.Network/applicationGateways/privateLinkResources",
+ "properties": {
+ "groupId": "privateLink1",
+ "requiredMembers": [
+ "privateLink1"
+ ],
+ "requiredZoneNames": []
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayStart.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayStart.json
new file mode 100644
index 000000000000..57def277a540
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayStart.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "applicationGatewayName": "appgw"
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayStop.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayStop.json
new file mode 100644
index 000000000000..57def277a540
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayStop.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "applicationGatewayName": "appgw"
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayUpdateTags.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayUpdateTags.json
new file mode 100644
index 000000000000..e19e772cacc7
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationGatewayUpdateTags.json
@@ -0,0 +1,148 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "applicationGatewayName": "AppGw",
+ "parameters": {
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "AppGw",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/AppGw",
+ "type": "Microsoft.Network/applicationGateways",
+ "location": "westus",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-000000000000",
+ "sku": {
+ "name": "Standard_Small",
+ "tier": "Standard",
+ "capacity": 2
+ },
+ "operationalState": "Running",
+ "gatewayIPConfigurations": [
+ {
+ "name": "GatewayIp01",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/AppGw/gatewayIPConfigurations/GatewayIp01",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet/subnets/subnet1"
+ }
+ }
+ }
+ ],
+ "sslCertificates": [],
+ "authenticationCertificates": [],
+ "frontendIPConfigurations": [
+ {
+ "name": "FrontEndConfig01",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/AppGw/frontendIPConfigurations/FrontEndConfig01",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAllocationMethod": "Dynamic",
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/publicIp1"
+ }
+ }
+ }
+ ],
+ "frontendPorts": [
+ {
+ "name": "FrontEndPort01",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/AppGw/frontendPorts/FrontEndPort01",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "port": 80
+ }
+ }
+ ],
+ "backendAddressPools": [
+ {
+ "name": "Pool01",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/AppGw/backendAddressPools/Pool01",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "backendAddresses": [
+ {
+ "ipAddress": "10.10.10.1"
+ },
+ {
+ "ipAddress": "10.10.10.2"
+ },
+ {
+ "ipAddress": "10.10.10.3"
+ }
+ ]
+ }
+ }
+ ],
+ "backendHttpSettingsCollection": [
+ {
+ "name": "PoolSetting01",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/AppGw/backendHttpSettingsCollection/PoolSetting01",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "port": 80,
+ "protocol": "Http",
+ "cookieBasedAffinity": "Disabled",
+ "pickHostNameFromBackendAddress": false,
+ "requestTimeout": 30
+ }
+ }
+ ],
+ "httpListeners": [
+ {
+ "name": "listener1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/AppGw/httpListeners/listener1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/AppGw/frontendIPConfigurations/FrontEndConfig01"
+ },
+ "frontendPort": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/AppGw/frontendPorts/FrontEndPort01"
+ },
+ "protocol": "Http",
+ "requireServerNameIndication": false
+ }
+ }
+ ],
+ "urlPathMaps": [],
+ "requestRoutingRules": [
+ {
+ "name": "Rule01",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/AppGw/requestRoutingRules/Rule01",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ruleType": "Basic",
+ "httpListener": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/AppGw/httpListeners/listener1"
+ },
+ "backendAddressPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/AppGw/backendAddressPools/Pool01"
+ },
+ "backendHttpSettings": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationGateways/AppGw/backendHttpSettingsCollection/PoolSetting01"
+ }
+ }
+ }
+ ],
+ "probes": [],
+ "redirectConfigurations": []
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationSecurityGroupCreate.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationSecurityGroupCreate.json
new file mode 100644
index 000000000000..272ade0e39ca
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationSecurityGroupCreate.json
@@ -0,0 +1,38 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "applicationSecurityGroupName": "test-asg",
+ "parameters": {
+ "location": "westus",
+ "properties": {}
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "test-asg",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationSecurityGroups/test-asg",
+ "type": "Microsoft.Network/applicationSecurityGroups",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-000000000000"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "test-asg",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationSecurityGroups/test-asg",
+ "type": "Microsoft.Network/applicationSecurityGroups",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-000000000000"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationSecurityGroupDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationSecurityGroupDelete.json
new file mode 100644
index 000000000000..6bd7141a3b96
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationSecurityGroupDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "applicationSecurityGroupName": "test-asg"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationSecurityGroupGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationSecurityGroupGet.json
new file mode 100644
index 000000000000..f7548e8d2ede
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationSecurityGroupGet.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "applicationSecurityGroupName": "test-asg"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "test-asg",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationSecurityGroups/test-asg",
+ "type": "Microsoft.Network/applicationSecurityGroups",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-000000000000"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationSecurityGroupList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationSecurityGroupList.json
new file mode 100644
index 000000000000..760e6b46a054
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationSecurityGroupList.json
@@ -0,0 +1,35 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationSecurityGroups/asg1",
+ "name": "asg1",
+ "type": "Microsoft.Network/applicationSecurityGroups",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-000000000000"
+ }
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationSecurityGroups/asg2",
+ "name": "asg2",
+ "type": "Microsoft.Network/applicationSecurityGroups",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-000000000000"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationSecurityGroupListAll.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationSecurityGroupListAll.json
new file mode 100644
index 000000000000..489667cfbcdf
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationSecurityGroupListAll.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationSecurityGroups/asg1",
+ "name": "asg1",
+ "type": "Microsoft.Network/applicationSecurityGroups",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-000000000000"
+ }
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationSecurityGroups/asg2",
+ "name": "asg2",
+ "type": "Microsoft.Network/applicationSecurityGroups",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-000000000000"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationSecurityGroupUpdateTags.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationSecurityGroupUpdateTags.json
new file mode 100644
index 000000000000..a351894f137c
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ApplicationSecurityGroupUpdateTags.json
@@ -0,0 +1,33 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "applicationSecurityGroupName": "test-asg",
+ "location": "westus",
+ "parameters": {
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "test-asg",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/applicationSecurityGroups/test-asg",
+ "type": "Microsoft.Network/applicationSecurityGroups",
+ "location": "westus",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-000000000000"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AutoApprovedPrivateLinkServicesGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AutoApprovedPrivateLinkServicesGet.json
new file mode 100644
index 000000000000..ff55dcb0f165
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AutoApprovedPrivateLinkServicesGet.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "location": "regionName",
+ "subscriptionId": "subId"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "privateLinkService": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateLinkServices/testPls1"
+ },
+ {
+ "privateLinkService": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateLinkServices/testPls2"
+ },
+ {
+ "privateLinkService": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateLinkServices/testPls3"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AutoApprovedPrivateLinkServicesResourceGroupGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AutoApprovedPrivateLinkServicesResourceGroupGet.json
new file mode 100644
index 000000000000..d2178f579950
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AutoApprovedPrivateLinkServicesResourceGroupGet.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "location": "regionName",
+ "subscriptionId": "subId",
+ "resourceGroupName": "rg1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "privateLinkService": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateLinkServices/testPls1"
+ },
+ {
+ "privateLinkService": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateLinkServices/testPls2"
+ },
+ {
+ "privateLinkService": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateLinkServices/testPls3"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AvailableDelegationsResourceGroupGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AvailableDelegationsResourceGroupGet.json
new file mode 100644
index 000000000000..cf5b0d357108
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AvailableDelegationsResourceGroupGet.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "location": "westcentralus",
+ "subscriptionId": "subId",
+ "resourceGroupName": "rg1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "Microsoft.Provider.resourceType",
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/availableDelegations/Microsoft.Provider.resourceType",
+ "type": "Microsoft.Network/availableDelegations",
+ "serviceName": "Microsoft.Provider/resourceType",
+ "actions": [
+ "Microsoft.Network/resource/action"
+ ]
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AvailableDelegationsSubscriptionGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AvailableDelegationsSubscriptionGet.json
new file mode 100644
index 000000000000..d8be52f19693
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AvailableDelegationsSubscriptionGet.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "location": "westcentralus",
+ "subscriptionId": "subId"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "Microsoft.Provider.resourceType",
+ "id": "/subscriptions/subId/providers/Microsoft.Network/availableDelegations/Microsoft.Provider.resourceType",
+ "type": "Microsoft.Network/availableDelegations",
+ "serviceName": "Microsoft.Provider/resourceType",
+ "actions": [
+ "Microsoft.Network/resource/action"
+ ]
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AvailablePrivateEndpointTypesGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AvailablePrivateEndpointTypesGet.json
new file mode 100644
index 000000000000..b625f0e23d88
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AvailablePrivateEndpointTypesGet.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "location": "regionName",
+ "subscriptionId": "subId"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subId/providers/Microsoft.Network/availablePrivateEndpointTypes/Microsoft.Provider.resourceType",
+ "type": "Microsoft.Network/availablePrivateEndpointTypes",
+ "resourceName": "Microsoft.Provider/resourceType"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AvailablePrivateEndpointTypesResourceGroupGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AvailablePrivateEndpointTypesResourceGroupGet.json
new file mode 100644
index 000000000000..a2792d624fb3
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AvailablePrivateEndpointTypesResourceGroupGet.json
@@ -0,0 +1,21 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "location": "regionName",
+ "subscriptionId": "subId",
+ "resourceGroupName": "rg1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/availablePrivateEndpointTypes/Microsoft.Provider.resourceType",
+ "type": "Microsoft.Network/availablePrivateEndpointTypes",
+ "resourceName": "Microsoft.Provider/resourceType"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AvailableServiceAliasesList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AvailableServiceAliasesList.json
new file mode 100644
index 000000000000..dc1bed46d06e
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AvailableServiceAliasesList.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "location": "westcentralus",
+ "subscriptionId": "subId"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "servicesAzure",
+ "id": "/subscriptions/subId/providers/Microsoft.Network/AvailableServiceAliases/servicesAzure",
+ "type": "Microsoft.Network/AvailableServiceAliases",
+ "resourceName": "/services/Azure"
+ },
+ {
+ "name": "servicesAzureManagedInstance",
+ "id": "/subscriptions/subId/providers/Microsoft.Network/AvailableServiceAliases/servicesAzureManagedInstance",
+ "type": "Microsoft.Network/AvailableServiceAliases",
+ "resourceName": "/services/Azure/ManagedInstance"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AvailableServiceAliasesListByResourceGroup.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AvailableServiceAliasesListByResourceGroup.json
new file mode 100644
index 000000000000..fd2d12b28e36
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AvailableServiceAliasesListByResourceGroup.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "location": "westcentralus",
+ "subscriptionId": "subId",
+ "resourceGroupName": "rg1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "servicesAzure",
+ "id": "/subscriptions/subId/providers/Microsoft.Network/AvailableServiceAliases/servicesAzure",
+ "type": "Microsoft.Network/AvailableServiceAliases",
+ "resourceName": "/services/Azure"
+ },
+ {
+ "name": "servicesAzureManagedInstance",
+ "id": "/subscriptions/subId/providers/Microsoft.Network/AvailableServiceAliases/servicesAzureManagedInstance",
+ "type": "Microsoft.Network/AvailableServiceAliases",
+ "resourceName": "/services/Azure/ManagedInstance"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureFirewallDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureFirewallDelete.json
new file mode 100644
index 000000000000..c2936ee81c45
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureFirewallDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "azureFirewallName": "azurefirewall"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureFirewallFqdnTagsListBySubscription.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureFirewallFqdnTagsListBySubscription.json
new file mode 100644
index 000000000000..25854a7800c3
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureFirewallFqdnTagsListBySubscription.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "azfwfqdntag",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewallFqdnTags/azfwfqdntag",
+ "type": "Microsoft.Network/azureFirewallFqdnTags",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "fqdnTagName": "azfwfqdntag"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureFirewallGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureFirewallGet.json
new file mode 100644
index 000000000000..2023f56b0862
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureFirewallGet.json
@@ -0,0 +1,177 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "azureFirewallName": "azurefirewall"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "azurefirewall",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azurefirewall",
+ "type": "Microsoft.Network/azureFirewalls",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "zones": [],
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "sku": {
+ "name": "AZFW_VNet",
+ "tier": "Standard"
+ },
+ "threatIntelMode": "Alert",
+ "ipConfigurations": [
+ {
+ "name": "azureFirewallIpConfiguration",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azurefirewallgw/ipConfigurations/azureFirewallIpConfiguration",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "10.0.0.0",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/AzureFirewallSubnet"
+ },
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pipName"
+ }
+ }
+ }
+ ],
+ "applicationRuleCollections": [
+ {
+ "name": "apprulecoll",
+ "properties": {
+ "priority": 110,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "name": "rule1",
+ "description": "Deny inbound rule",
+ "protocols": [
+ {
+ "protocolType": "Https",
+ "port": 443
+ }
+ ],
+ "targetFqdns": [
+ "www.test.com"
+ ],
+ "sourceAddresses": [
+ "216.58.216.164",
+ "10.0.0.0/24"
+ ]
+ }
+ ]
+ }
+ }
+ ],
+ "natRuleCollections": [
+ {
+ "name": "natrulecoll",
+ "properties": {
+ "priority": 112,
+ "action": {
+ "type": "Dnat"
+ },
+ "rules": [
+ {
+ "name": "DNAT-HTTPS-traffic",
+ "description": "D-NAT all outbound web traffic for inspection",
+ "sourceAddresses": [
+ "*"
+ ],
+ "destinationAddresses": [
+ "1.2.3.4"
+ ],
+ "destinationPorts": [
+ "443"
+ ],
+ "protocols": [
+ "TCP"
+ ],
+ "translatedAddress": "1.2.3.5",
+ "translatedPort": "8443"
+ },
+ {
+ "name": "DNAT-HTTP-traffic-With-FQDN",
+ "description": "D-NAT all inbound web traffic for inspection",
+ "sourceAddresses": [
+ "*"
+ ],
+ "destinationAddresses": [
+ "1.2.3.4"
+ ],
+ "destinationPorts": [
+ "80"
+ ],
+ "protocols": [
+ "TCP"
+ ],
+ "translatedFqdn": "internalhttpserver",
+ "translatedPort": "880"
+ }
+ ]
+ }
+ }
+ ],
+ "networkRuleCollections": [
+ {
+ "name": "netrulecoll",
+ "properties": {
+ "priority": 112,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "name": "L4-traffic",
+ "description": "Block traffic based on source IPs and ports",
+ "sourceAddresses": [
+ "192.168.1.1-192.168.1.12",
+ "10.1.4.12-10.1.4.255"
+ ],
+ "destinationPorts": [
+ "443-444",
+ "8443"
+ ],
+ "destinationAddresses": [
+ "*"
+ ],
+ "protocols": [
+ "TCP"
+ ]
+ },
+ {
+ "name": "L4-traffic-with-FQDN",
+ "description": "Block traffic based on source IPs and ports to amazon",
+ "sourceAddresses": [
+ "10.2.4.12-10.2.4.255"
+ ],
+ "destinationPorts": [
+ "443-444",
+ "8443"
+ ],
+ "destinationFqdns": [
+ "www.amazon.com"
+ ],
+ "protocols": [
+ "TCP"
+ ]
+ }
+ ]
+ }
+ }
+ ],
+ "ipGroups": [],
+ "additionalProperties": {}
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureFirewallGetWithAdditionalProperties.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureFirewallGetWithAdditionalProperties.json
new file mode 100644
index 000000000000..11ae6155be7c
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureFirewallGetWithAdditionalProperties.json
@@ -0,0 +1,179 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "azureFirewallName": "azurefirewall"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "azurefirewall",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azurefirewall",
+ "type": "Microsoft.Network/azureFirewalls",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "zones": [],
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "sku": {
+ "name": "AZFW_VNet",
+ "tier": "Standard"
+ },
+ "threatIntelMode": "Alert",
+ "ipConfigurations": [
+ {
+ "name": "azureFirewallIpConfiguration",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azurefirewallgw/ipConfigurations/azureFirewallIpConfiguration",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "10.0.0.0",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/AzureFirewallSubnet"
+ },
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pipName"
+ }
+ }
+ }
+ ],
+ "applicationRuleCollections": [
+ {
+ "name": "apprulecoll",
+ "properties": {
+ "priority": 110,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "name": "rule1",
+ "description": "Deny inbound rule",
+ "protocols": [
+ {
+ "protocolType": "Https",
+ "port": 443
+ }
+ ],
+ "targetFqdns": [
+ "www.test.com"
+ ],
+ "sourceAddresses": [
+ "216.58.216.164",
+ "10.0.0.0/24"
+ ]
+ }
+ ]
+ }
+ }
+ ],
+ "natRuleCollections": [
+ {
+ "name": "natrulecoll",
+ "properties": {
+ "priority": 112,
+ "action": {
+ "type": "Dnat"
+ },
+ "rules": [
+ {
+ "name": "DNAT-HTTPS-traffic",
+ "description": "D-NAT all outbound web traffic for inspection",
+ "sourceAddresses": [
+ "*"
+ ],
+ "destinationAddresses": [
+ "1.2.3.4"
+ ],
+ "destinationPorts": [
+ "443"
+ ],
+ "protocols": [
+ "TCP"
+ ],
+ "translatedAddress": "1.2.3.5",
+ "translatedPort": "8443"
+ },
+ {
+ "name": "DNAT-HTTP-traffic-With-FQDN",
+ "description": "D-NAT all inbound web traffic for inspection",
+ "sourceAddresses": [
+ "*"
+ ],
+ "destinationAddresses": [
+ "1.2.3.4"
+ ],
+ "destinationPorts": [
+ "80"
+ ],
+ "protocols": [
+ "TCP"
+ ],
+ "translatedFqdn": "internalhttpserver",
+ "translatedPort": "880"
+ }
+ ]
+ }
+ }
+ ],
+ "networkRuleCollections": [
+ {
+ "name": "netrulecoll",
+ "properties": {
+ "priority": 112,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "name": "L4-traffic",
+ "description": "Block traffic based on source IPs and ports",
+ "sourceAddresses": [
+ "192.168.1.1-192.168.1.12",
+ "10.1.4.12-10.1.4.255"
+ ],
+ "destinationPorts": [
+ "443-444",
+ "8443"
+ ],
+ "destinationAddresses": [
+ "*"
+ ],
+ "protocols": [
+ "TCP"
+ ]
+ },
+ {
+ "name": "L4-traffic-with-FQDN",
+ "description": "Block traffic based on source IPs and ports to amazon",
+ "sourceAddresses": [
+ "10.2.4.12-10.2.4.255"
+ ],
+ "destinationPorts": [
+ "443-444",
+ "8443"
+ ],
+ "destinationFqdns": [
+ "www.amazon.com"
+ ],
+ "protocols": [
+ "TCP"
+ ]
+ }
+ ]
+ }
+ }
+ ],
+ "additionalProperties": {
+ "key1": "value1",
+ "key2": "value2"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureFirewallGetWithIpGroups.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureFirewallGetWithIpGroups.json
new file mode 100644
index 000000000000..d1e347edbc68
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureFirewallGetWithIpGroups.json
@@ -0,0 +1,189 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "azureFirewallName": "azurefirewall"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "azurefirewall",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azurefirewall",
+ "type": "Microsoft.Network/azureFirewalls",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "zones": [],
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "sku": {
+ "name": "AZFW_VNet",
+ "tier": "Standard"
+ },
+ "threatIntelMode": "Alert",
+ "ipConfigurations": [
+ {
+ "name": "azureFirewallIpConfiguration",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azurefirewallgw/ipConfigurations/azureFirewallIpConfiguration",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "10.0.0.0",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/AzureFirewallSubnet"
+ },
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pipName"
+ }
+ }
+ }
+ ],
+ "applicationRuleCollections": [
+ {
+ "name": "apprulecoll",
+ "properties": {
+ "priority": 110,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "name": "rule1",
+ "description": "Deny inbound rule",
+ "protocols": [
+ {
+ "protocolType": "Https",
+ "port": 443
+ }
+ ],
+ "targetFqdns": [
+ "www.test.com"
+ ],
+ "sourceIpGroups": [
+ "/subscriptions/subId/providers/Microsoft.Network/resourceGroup/myResourceGroup/ipGroups/ipGroups1"
+ ]
+ }
+ ]
+ }
+ }
+ ],
+ "natRuleCollections": [
+ {
+ "name": "natrulecoll",
+ "properties": {
+ "priority": 112,
+ "action": {
+ "type": "Dnat"
+ },
+ "rules": [
+ {
+ "name": "DNAT-HTTPS-traffic",
+ "description": "D-NAT all outbound web traffic for inspection",
+ "sourceAddresses": [
+ "*"
+ ],
+ "destinationAddresses": [
+ "1.2.3.4"
+ ],
+ "destinationPorts": [
+ "443"
+ ],
+ "protocols": [
+ "TCP"
+ ],
+ "translatedAddress": "1.2.3.5",
+ "translatedPort": "8443"
+ },
+ {
+ "name": "DNAT-HTTP-traffic-With-FQDN",
+ "description": "D-NAT all inbound web traffic for inspection",
+ "sourceIpGroups": [
+ "/subscriptions/subId/providers/Microsoft.Network/resourceGroup/myResourceGroup/ipGroups/ipGroups1"
+ ],
+ "destinationAddresses": [
+ "1.2.3.4"
+ ],
+ "destinationPorts": [
+ "80"
+ ],
+ "protocols": [
+ "TCP"
+ ],
+ "translatedFqdn": "internalhttpserver",
+ "translatedPort": "880"
+ }
+ ]
+ }
+ }
+ ],
+ "networkRuleCollections": [
+ {
+ "name": "netrulecoll",
+ "properties": {
+ "priority": 112,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "name": "L4-traffic",
+ "description": "Block traffic based on source IPs and ports",
+ "sourceAddresses": [
+ "192.168.1.1-192.168.1.12",
+ "10.1.4.12-10.1.4.255"
+ ],
+ "destinationPorts": [
+ "443-444",
+ "8443"
+ ],
+ "destinationIpGroups": [
+ "/subscriptions/subId/providers/Microsoft.Network/resourceGroup/myResourceGroup/ipGroups/ipGroups2"
+ ],
+ "protocols": [
+ "TCP"
+ ]
+ },
+ {
+ "name": "L4-traffic-with-FQDN",
+ "description": "Block traffic based on source IPs and ports to amazon",
+ "sourceIpGroups": [
+ "/subscriptions/subId/providers/Microsoft.Network/resourceGroup/myResourceGroup/ipGroups/ipGroups3"
+ ],
+ "destinationPorts": [
+ "443-444",
+ "8443"
+ ],
+ "destinationFqdns": [
+ "www.amazon.com"
+ ],
+ "protocols": [
+ "TCP"
+ ]
+ }
+ ]
+ }
+ }
+ ],
+ "ipGroups": [
+ {
+ "id": "/subscriptions/subId/providers/Microsoft.Network/resourceGroup/myResourceGroup/ipGroups/ipGroups1",
+ "changeNumber": "5"
+ },
+ {
+ "id": "/subscriptions/subId/providers/Microsoft.Network/resourceGroup/myResourceGroup/ipGroups/ipGroups2",
+ "changeNumber": "4"
+ },
+ {
+ "id": "/subscriptions/subId/providers/Microsoft.Network/resourceGroup/myResourceGroup/ipGroups/ipGroups3",
+ "changeNumber": "1"
+ }
+ ],
+ "additionalProperties": {}
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureFirewallGetWithMgmtSubnet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureFirewallGetWithMgmtSubnet.json
new file mode 100644
index 000000000000..963ed93df141
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureFirewallGetWithMgmtSubnet.json
@@ -0,0 +1,190 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "azureFirewallName": "azurefirewall"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "azurefirewall",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azurefirewall",
+ "type": "Microsoft.Network/azureFirewalls",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "zones": [],
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "sku": {
+ "name": "AZFW_VNet",
+ "tier": "Standard"
+ },
+ "threatIntelMode": "Alert",
+ "ipConfigurations": [
+ {
+ "name": "azureFirewallIpConfiguration",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azurefirewallgw/ipConfigurations/azureFirewallIpConfiguration",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "10.0.0.0",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/AzureFirewallSubnet"
+ },
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pipName"
+ }
+ }
+ }
+ ],
+ "managementIpConfiguration": {
+ "name": "azureFirewallMgmtIpConfiguration",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azurefirewallgw/ipConfigurations/azureFirewallMgmtIpConfiguration",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/AzureFirewallManagementSubnet"
+ },
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/managementPipName"
+ }
+ }
+ },
+ "applicationRuleCollections": [
+ {
+ "name": "apprulecoll",
+ "properties": {
+ "priority": 110,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "name": "rule1",
+ "description": "Deny inbound rule",
+ "protocols": [
+ {
+ "protocolType": "Https",
+ "port": 443
+ }
+ ],
+ "targetFqdns": [
+ "www.test.com"
+ ],
+ "sourceAddresses": [
+ "216.58.216.164",
+ "10.0.0.0/24"
+ ]
+ }
+ ]
+ }
+ }
+ ],
+ "natRuleCollections": [
+ {
+ "name": "natrulecoll",
+ "properties": {
+ "priority": 112,
+ "action": {
+ "type": "Dnat"
+ },
+ "rules": [
+ {
+ "name": "DNAT-HTTPS-traffic",
+ "description": "D-NAT all outbound web traffic for inspection",
+ "sourceAddresses": [
+ "*"
+ ],
+ "destinationAddresses": [
+ "1.2.3.4"
+ ],
+ "destinationPorts": [
+ "443"
+ ],
+ "protocols": [
+ "TCP"
+ ],
+ "translatedAddress": "1.2.3.5",
+ "translatedPort": "8443"
+ },
+ {
+ "name": "DNAT-HTTP-traffic-With-FQDN",
+ "description": "D-NAT all inbound web traffic for inspection",
+ "sourceAddresses": [
+ "*"
+ ],
+ "destinationAddresses": [
+ "1.2.3.4"
+ ],
+ "destinationPorts": [
+ "80"
+ ],
+ "protocols": [
+ "TCP"
+ ],
+ "translatedFqdn": "internalhttpserver",
+ "translatedPort": "880"
+ }
+ ]
+ }
+ }
+ ],
+ "networkRuleCollections": [
+ {
+ "name": "netrulecoll",
+ "properties": {
+ "priority": 112,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "name": "L4-traffic",
+ "description": "Block traffic based on source IPs and ports",
+ "sourceAddresses": [
+ "192.168.1.1-192.168.1.12",
+ "10.1.4.12-10.1.4.255"
+ ],
+ "destinationPorts": [
+ "443-444",
+ "8443"
+ ],
+ "destinationAddresses": [
+ "*"
+ ],
+ "protocols": [
+ "TCP"
+ ]
+ },
+ {
+ "name": "L4-traffic-with-FQDN",
+ "description": "Block traffic based on source IPs and ports to amazon",
+ "sourceAddresses": [
+ "10.2.4.12-10.2.4.255"
+ ],
+ "destinationPorts": [
+ "443-444",
+ "8443"
+ ],
+ "destinationFqdns": [
+ "www.amazon.com"
+ ],
+ "protocols": [
+ "TCP"
+ ]
+ }
+ ]
+ }
+ }
+ ],
+ "additionalProperties": {}
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureFirewallGetWithZones.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureFirewallGetWithZones.json
new file mode 100644
index 000000000000..4b5f7dc5f469
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureFirewallGetWithZones.json
@@ -0,0 +1,181 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "azureFirewallName": "azurefirewall"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "azurefirewall",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azurefirewall",
+ "type": "Microsoft.Network/azureFirewalls",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US 2",
+ "zones": [
+ "1",
+ "2",
+ "3"
+ ],
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "sku": {
+ "name": "AZFW_VNet",
+ "tier": "Standard"
+ },
+ "threatIntelMode": "Alert",
+ "ipConfigurations": [
+ {
+ "name": "azureFirewallIpConfiguration",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azurefirewallgw/ipConfigurations/azureFirewallIpConfiguration",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "10.0.0.0",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/AzureFirewallSubnet"
+ },
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pipName"
+ }
+ }
+ }
+ ],
+ "applicationRuleCollections": [
+ {
+ "name": "apprulecoll",
+ "properties": {
+ "priority": 110,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "name": "rule1",
+ "description": "Deny inbound rule",
+ "protocols": [
+ {
+ "protocolType": "Https",
+ "port": 443
+ }
+ ],
+ "targetFqdns": [
+ "www.test.com"
+ ],
+ "sourceAddresses": [
+ "216.58.216.164",
+ "10.0.0.0/24"
+ ]
+ }
+ ]
+ }
+ }
+ ],
+ "natRuleCollections": [
+ {
+ "name": "natrulecoll",
+ "properties": {
+ "priority": 112,
+ "action": {
+ "type": "Dnat"
+ },
+ "rules": [
+ {
+ "name": "DNAT-HTTPS-traffic",
+ "description": "D-NAT all outbound web traffic for inspection",
+ "sourceAddresses": [
+ "*"
+ ],
+ "destinationAddresses": [
+ "1.2.3.4"
+ ],
+ "destinationPorts": [
+ "443"
+ ],
+ "protocols": [
+ "TCP"
+ ],
+ "translatedAddress": "1.2.3.5",
+ "translatedPort": "8443"
+ },
+ {
+ "name": "DNAT-HTTP-traffic-With-FQDN",
+ "description": "D-NAT all inbound web traffic for inspection",
+ "sourceAddresses": [
+ "*"
+ ],
+ "destinationAddresses": [
+ "1.2.3.4"
+ ],
+ "destinationPorts": [
+ "80"
+ ],
+ "protocols": [
+ "TCP"
+ ],
+ "translatedFqdn": "internalhttpserver",
+ "translatedPort": "880"
+ }
+ ]
+ }
+ }
+ ],
+ "networkRuleCollections": [
+ {
+ "name": "netrulecoll",
+ "properties": {
+ "priority": 112,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "name": "L4-traffic",
+ "description": "Block traffic based on source IPs and ports",
+ "sourceAddresses": [
+ "192.168.1.1-192.168.1.12",
+ "10.1.4.12-10.1.4.255"
+ ],
+ "destinationPorts": [
+ "443-444",
+ "8443"
+ ],
+ "destinationAddresses": [
+ "*"
+ ],
+ "protocols": [
+ "TCP"
+ ]
+ },
+ {
+ "name": "L4-traffic-with-FQDN",
+ "description": "Block traffic based on source IPs and ports to amazon",
+ "sourceAddresses": [
+ "10.2.4.12-10.2.4.255"
+ ],
+ "destinationPorts": [
+ "443-444",
+ "8443"
+ ],
+ "destinationFqdns": [
+ "www.amazon.com"
+ ],
+ "protocols": [
+ "TCP"
+ ]
+ }
+ ]
+ }
+ }
+ ],
+ "ipGroups": [],
+ "additionalProperties": {}
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureFirewallListByResourceGroup.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureFirewallListByResourceGroup.json
new file mode 100644
index 000000000000..936d3cc581d3
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureFirewallListByResourceGroup.json
@@ -0,0 +1,193 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "azurefirewall",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azurefirewall",
+ "type": "Microsoft.Network/azureFirewalls",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "zones": [],
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "threatIntelMode": "Alert",
+ "ipConfigurations": [
+ {
+ "name": "azureFirewallIpConfiguration",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azfirewallgw/ipConfigurations/azureFirewallIpConfiguration",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "10.0.0.0",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/AzureFirewallSubnet"
+ },
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pipName"
+ }
+ }
+ }
+ ],
+ "managementIpConfiguration": {
+ "name": "azureFirewallMgmtIpConfiguration",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azurefirewallgw/ipConfigurations/azureFirewallMgmtIpConfiguration",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/AzureFirewallManagementSubnet"
+ },
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/managementPipName"
+ }
+ }
+ },
+ "applicationRuleCollections": [
+ {
+ "name": "apprulecoll",
+ "properties": {
+ "priority": 110,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "name": "rule1",
+ "description": "Deny inbound rule",
+ "protocols": [
+ {
+ "protocolType": "Https",
+ "port": 443
+ }
+ ],
+ "targetFqdns": [
+ "www.test.com"
+ ],
+ "sourceAddresses": [
+ "216.58.216.164",
+ "10.0.0.0/24"
+ ]
+ }
+ ]
+ }
+ }
+ ],
+ "natRuleCollections": [
+ {
+ "name": "natrulecoll",
+ "properties": {
+ "priority": 112,
+ "action": {
+ "type": "Dnat"
+ },
+ "rules": [
+ {
+ "name": "DNAT-HTTPS-traffic",
+ "description": "D-NAT all outbound web traffic for inspection",
+ "sourceAddresses": [
+ "*"
+ ],
+ "destinationAddresses": [
+ "1.2.3.4"
+ ],
+ "destinationPorts": [
+ "443"
+ ],
+ "protocols": [
+ "TCP"
+ ],
+ "translatedAddress": "1.2.3.5",
+ "translatedPort": "8443"
+ },
+ {
+ "name": "DNAT-HTTP-traffic-With-FQDN",
+ "description": "D-NAT all inbound web traffic for inspection",
+ "sourceAddresses": [
+ "*"
+ ],
+ "destinationAddresses": [
+ "1.2.3.4"
+ ],
+ "destinationPorts": [
+ "80"
+ ],
+ "protocols": [
+ "TCP"
+ ],
+ "translatedFqdn": "internalhttpserver",
+ "translatedPort": "880"
+ }
+ ]
+ }
+ }
+ ],
+ "networkRuleCollections": [
+ {
+ "name": "netrulecoll",
+ "properties": {
+ "priority": 112,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "name": "L4-traffic",
+ "description": "Block traffic based on source IPs and ports",
+ "sourceAddresses": [
+ "192.168.1.1-192.168.1.12",
+ "10.1.4.12-10.1.4.255"
+ ],
+ "destinationPorts": [
+ "443-444",
+ "8443"
+ ],
+ "destinationAddresses": [
+ "*"
+ ],
+ "protocols": [
+ "TCP"
+ ]
+ },
+ {
+ "name": "L4-traffic-with-FQDN",
+ "description": "Block traffic based on source IPs and ports to amazon",
+ "sourceAddresses": [
+ "10.2.4.12-10.2.4.255"
+ ],
+ "destinationPorts": [
+ "443-444",
+ "8443"
+ ],
+ "destinationFqdns": [
+ "www.amazon.com"
+ ],
+ "protocols": [
+ "TCP"
+ ]
+ }
+ ]
+ }
+ }
+ ],
+ "ipGroups": [],
+ "additionalProperties": {
+ "key1": "value1",
+ "key2": "value2"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureFirewallListBySubscription.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureFirewallListBySubscription.json
new file mode 100644
index 000000000000..412d2c337905
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureFirewallListBySubscription.json
@@ -0,0 +1,192 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "azurefirewall",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azurefirewall",
+ "type": "Microsoft.Network/azureFirewalls",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "zones": [],
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "threatIntelMode": "Alert",
+ "ipConfigurations": [
+ {
+ "name": "azureFirewallIpConfiguration",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azfirewallgw/ipConfigurations/azureFirewallIpConfiguration",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "10.0.0.0",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/AzureFirewallSubnet"
+ },
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pipName"
+ }
+ }
+ }
+ ],
+ "managementIpConfiguration": {
+ "name": "azureFirewallMgmtIpConfiguration",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azurefirewallgw/ipConfigurations/azureFirewallMgmtIpConfiguration",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/AzureFirewallManagementSubnet"
+ },
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/managementPipName"
+ }
+ }
+ },
+ "applicationRuleCollections": [
+ {
+ "name": "apprulecoll",
+ "properties": {
+ "priority": 110,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "name": "rule1",
+ "description": "Deny inbound rule",
+ "protocols": [
+ {
+ "protocolType": "Https",
+ "port": 443
+ }
+ ],
+ "targetFqdns": [
+ "www.test.com"
+ ],
+ "sourceAddresses": [
+ "216.58.216.164",
+ "10.0.0.0/24"
+ ]
+ }
+ ]
+ }
+ }
+ ],
+ "natRuleCollections": [
+ {
+ "name": "natrulecoll",
+ "properties": {
+ "priority": 112,
+ "action": {
+ "type": "Dnat"
+ },
+ "rules": [
+ {
+ "name": "DNAT-HTTPS-traffic",
+ "description": "D-NAT all outbound web traffic for inspection",
+ "sourceAddresses": [
+ "*"
+ ],
+ "destinationAddresses": [
+ "1.2.3.4"
+ ],
+ "destinationPorts": [
+ "443"
+ ],
+ "protocols": [
+ "TCP"
+ ],
+ "translatedAddress": "1.2.3.5",
+ "translatedPort": "8443"
+ },
+ {
+ "name": "DNAT-HTTP-traffic-With-FQDN",
+ "description": "D-NAT all inbound web traffic for inspection",
+ "sourceAddresses": [
+ "*"
+ ],
+ "destinationAddresses": [
+ "1.2.3.4"
+ ],
+ "destinationPorts": [
+ "80"
+ ],
+ "protocols": [
+ "TCP"
+ ],
+ "translatedFqdn": "internalhttpserver",
+ "translatedPort": "880"
+ }
+ ]
+ }
+ }
+ ],
+ "networkRuleCollections": [
+ {
+ "name": "netrulecoll",
+ "properties": {
+ "priority": 112,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "name": "L4-traffic",
+ "description": "Block traffic based on source IPs and ports",
+ "sourceAddresses": [
+ "192.168.1.1-192.168.1.12",
+ "10.1.4.12-10.1.4.255"
+ ],
+ "destinationPorts": [
+ "443-444",
+ "8443"
+ ],
+ "destinationAddresses": [
+ "*"
+ ],
+ "protocols": [
+ "TCP"
+ ]
+ },
+ {
+ "name": "L4-traffic-with-FQDN",
+ "description": "Block traffic based on source IPs and ports to amazon",
+ "sourceAddresses": [
+ "10.2.4.12-10.2.4.255"
+ ],
+ "destinationPorts": [
+ "443-444",
+ "8443"
+ ],
+ "destinationFqdns": [
+ "www.amazon.com"
+ ],
+ "protocols": [
+ "TCP"
+ ]
+ }
+ ]
+ }
+ }
+ ],
+ "ipGroups": [],
+ "additionalProperties": {
+ "key1": "value1",
+ "key2": "value2"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureFirewallPut.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureFirewallPut.json
new file mode 100644
index 000000000000..c66b9ab1d666
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureFirewallPut.json
@@ -0,0 +1,497 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "azureFirewallName": "azurefirewall",
+ "parameters": {
+ "tags": {
+ "key1": "value1"
+ },
+ "location": "West US",
+ "zones": [],
+ "properties": {
+ "sku": {
+ "name": "AZFW_VNet",
+ "tier": "Standard"
+ },
+ "threatIntelMode": "Alert",
+ "ipConfigurations": [
+ {
+ "name": "azureFirewallIpConfiguration",
+ "properties": {
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/AzureFirewallSubnet"
+ },
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pipName"
+ }
+ }
+ }
+ ],
+ "applicationRuleCollections": [
+ {
+ "name": "apprulecoll",
+ "properties": {
+ "priority": 110,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "name": "rule1",
+ "description": "Deny inbound rule",
+ "protocols": [
+ {
+ "protocolType": "Https",
+ "port": 443
+ }
+ ],
+ "targetFqdns": [
+ "www.test.com"
+ ],
+ "sourceAddresses": [
+ "216.58.216.164",
+ "10.0.0.0/24"
+ ]
+ }
+ ]
+ }
+ }
+ ],
+ "natRuleCollections": [
+ {
+ "name": "natrulecoll",
+ "properties": {
+ "priority": 112,
+ "action": {
+ "type": "Dnat"
+ },
+ "rules": [
+ {
+ "name": "DNAT-HTTPS-traffic",
+ "description": "D-NAT all outbound web traffic for inspection",
+ "sourceAddresses": [
+ "*"
+ ],
+ "destinationAddresses": [
+ "1.2.3.4"
+ ],
+ "destinationPorts": [
+ "443"
+ ],
+ "protocols": [
+ "TCP"
+ ],
+ "translatedAddress": "1.2.3.5",
+ "translatedPort": "8443"
+ },
+ {
+ "name": "DNAT-HTTP-traffic-With-FQDN",
+ "description": "D-NAT all inbound web traffic for inspection",
+ "sourceAddresses": [
+ "*"
+ ],
+ "destinationAddresses": [
+ "1.2.3.4"
+ ],
+ "destinationPorts": [
+ "80"
+ ],
+ "protocols": [
+ "TCP"
+ ],
+ "translatedFqdn": "internalhttpserver",
+ "translatedPort": "880"
+ }
+ ]
+ }
+ }
+ ],
+ "networkRuleCollections": [
+ {
+ "name": "netrulecoll",
+ "properties": {
+ "priority": 112,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "name": "L4-traffic",
+ "description": "Block traffic based on source IPs and ports",
+ "sourceAddresses": [
+ "192.168.1.1-192.168.1.12",
+ "10.1.4.12-10.1.4.255"
+ ],
+ "destinationPorts": [
+ "443-444",
+ "8443"
+ ],
+ "destinationAddresses": [
+ "*"
+ ],
+ "protocols": [
+ "TCP"
+ ]
+ },
+ {
+ "name": "L4-traffic-with-FQDN",
+ "description": "Block traffic based on source IPs and ports to amazon",
+ "sourceAddresses": [
+ "10.2.4.12-10.2.4.255"
+ ],
+ "destinationPorts": [
+ "443-444",
+ "8443"
+ ],
+ "destinationFqdns": [
+ "www.amazon.com"
+ ],
+ "protocols": [
+ "TCP"
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "azurefirewall",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azurefirewall",
+ "type": "Microsoft.Network/azureFirewalls",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "zones": [],
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "sku": {
+ "name": "AZFW_VNet",
+ "tier": "Standard"
+ },
+ "threatIntelMode": "Alert",
+ "ipConfigurations": [
+ {
+ "name": "azureFirewallIpConfiguration",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azfirewallgw/ipConfigurations/azureFirewallIpConfiguration",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "10.0.0.0",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/AzureFirewallSubnet"
+ },
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pipName"
+ }
+ }
+ }
+ ],
+ "applicationRuleCollections": [
+ {
+ "name": "apprulecoll",
+ "properties": {
+ "priority": 110,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "name": "rule1",
+ "description": "Deny inbound rule",
+ "protocols": [
+ {
+ "protocolType": "Https",
+ "port": 443
+ }
+ ],
+ "targetFqdns": [
+ "www.test.com"
+ ],
+ "sourceAddresses": [
+ "216.58.216.164",
+ "10.0.0.0/24"
+ ]
+ }
+ ]
+ }
+ }
+ ],
+ "natRuleCollections": [
+ {
+ "name": "natrulecoll",
+ "properties": {
+ "priority": 112,
+ "action": {
+ "type": "Dnat"
+ },
+ "rules": [
+ {
+ "name": "DNAT-HTTPS-traffic",
+ "description": "D-NAT all outbound web traffic for inspection",
+ "sourceAddresses": [
+ "*"
+ ],
+ "destinationAddresses": [
+ "1.2.3.4"
+ ],
+ "destinationPorts": [
+ "443"
+ ],
+ "protocols": [
+ "TCP"
+ ],
+ "translatedAddress": "1.2.3.5",
+ "translatedPort": "8443"
+ },
+ {
+ "name": "DNAT-HTTP-traffic-With-FQDN",
+ "description": "D-NAT all inbound web traffic for inspection",
+ "sourceAddresses": [
+ "*"
+ ],
+ "destinationAddresses": [
+ "1.2.3.4"
+ ],
+ "destinationPorts": [
+ "80"
+ ],
+ "protocols": [
+ "TCP"
+ ],
+ "translatedPort": "880",
+ "translatedFqdn": "internalhttpserver"
+ }
+ ]
+ }
+ }
+ ],
+ "networkRuleCollections": [
+ {
+ "name": "netrulecoll",
+ "properties": {
+ "priority": 112,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "name": "L4-traffic",
+ "description": "Block traffic based on source IPs and ports",
+ "sourceAddresses": [
+ "192.168.1.1-192.168.1.12",
+ "10.1.4.12-10.1.4.255"
+ ],
+ "destinationPorts": [
+ "443-444",
+ "8443"
+ ],
+ "destinationAddresses": [
+ "*"
+ ],
+ "protocols": [
+ "TCP"
+ ]
+ },
+ {
+ "name": "L4-traffic-with-FQDN",
+ "description": "Block traffic based on source IPs and ports to amazon",
+ "sourceAddresses": [
+ "10.2.4.12-10.2.4.255"
+ ],
+ "destinationPorts": [
+ "443-444",
+ "8443"
+ ],
+ "protocols": [
+ "TCP"
+ ],
+ "destinationFqdns": [
+ "www.amazon.com"
+ ]
+ }
+ ]
+ }
+ }
+ ],
+ "ipGroups": [],
+ "additionalProperties": {}
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "azurefirewall",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azurefirewall",
+ "type": "Microsoft.Network/azureFirewalls",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "zones": [],
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "sku": {
+ "name": "AZFW_VNet",
+ "tier": "Standard"
+ },
+ "threatIntelMode": "Alert",
+ "ipConfigurations": [
+ {
+ "name": "azureFirewallIpConfiguration",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azfirewallgw/ipConfigurations/azureFirewallIpConfiguration",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "10.0.0.0",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/AzureFirewallSubnet"
+ },
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pipName"
+ }
+ }
+ }
+ ],
+ "applicationRuleCollections": [
+ {
+ "name": "apprulecoll",
+ "properties": {
+ "priority": 110,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "name": "rule1",
+ "description": "Deny inbound rule",
+ "protocols": [
+ {
+ "protocolType": "Https",
+ "port": 443
+ }
+ ],
+ "targetFqdns": [
+ "www.test.com"
+ ],
+ "sourceAddresses": [
+ "216.58.216.164",
+ "10.0.0.0/24"
+ ]
+ }
+ ]
+ }
+ }
+ ],
+ "natRuleCollections": [
+ {
+ "name": "natrulecoll",
+ "properties": {
+ "priority": 112,
+ "action": {
+ "type": "Dnat"
+ },
+ "rules": [
+ {
+ "name": "DNAT-HTTPS-traffic",
+ "description": "D-NAT all outbound web traffic for inspection",
+ "sourceAddresses": [
+ "*"
+ ],
+ "destinationAddresses": [
+ "1.2.3.4"
+ ],
+ "destinationPorts": [
+ "443"
+ ],
+ "protocols": [
+ "TCP"
+ ],
+ "translatedAddress": "1.2.3.5",
+ "translatedPort": "8443"
+ },
+ {
+ "name": "DNAT-HTTP-traffic-With-FQDN",
+ "description": "D-NAT all inbound web traffic for inspection",
+ "sourceAddresses": [
+ "*"
+ ],
+ "destinationAddresses": [
+ "1.2.3.4"
+ ],
+ "destinationPorts": [
+ "80"
+ ],
+ "protocols": [
+ "TCP"
+ ],
+ "translatedFqdn": "internalhttpserver",
+ "translatedPort": "880"
+ }
+ ]
+ }
+ }
+ ],
+ "networkRuleCollections": [
+ {
+ "name": "netrulecoll",
+ "properties": {
+ "priority": 112,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "name": "L4-traffic",
+ "description": "Block traffic based on source IPs and ports",
+ "sourceAddresses": [
+ "192.168.1.1-192.168.1.12",
+ "10.1.4.12-10.1.4.255"
+ ],
+ "destinationPorts": [
+ "443-444",
+ "8443"
+ ],
+ "destinationAddresses": [
+ "*"
+ ],
+ "protocols": [
+ "TCP"
+ ]
+ },
+ {
+ "name": "L4-traffic-with-FQDN",
+ "description": "Block traffic based on source IPs and ports to amazon",
+ "sourceAddresses": [
+ "10.2.4.12-10.2.4.255"
+ ],
+ "destinationPorts": [
+ "443-444",
+ "8443"
+ ],
+ "destinationFqdns": [
+ "www.amazon.com"
+ ],
+ "protocols": [
+ "TCP"
+ ]
+ }
+ ]
+ }
+ }
+ ],
+ "additionalProperties": {}
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureFirewallPutInHub.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureFirewallPutInHub.json
new file mode 100644
index 000000000000..50ab0373c4c1
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureFirewallPutInHub.json
@@ -0,0 +1,115 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "azureFirewallName": "azurefirewall",
+ "parameters": {
+ "tags": {
+ "key1": "value1"
+ },
+ "location": "West US",
+ "zones": [],
+ "properties": {
+ "sku": {
+ "name": "AZFW_Hub",
+ "tier": "Standard"
+ },
+ "threatIntelMode": "Alert",
+ "virtualHub": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub1"
+ },
+ "firewallPolicy": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/firewallPolicies/policy1"
+ },
+ "hubIPAddresses": {
+ "publicIPs": {
+ "addresses": [],
+ "count": 1
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "azurefirewall",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azurefirewall",
+ "type": "Microsoft.Network/azureFirewalls",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "zones": [],
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "sku": {
+ "name": "AZFW_Hub",
+ "tier": "Standard"
+ },
+ "threatIntelMode": "Alert",
+ "virtualHub": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub1"
+ },
+ "firewallPolicy": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/firewallPolicies/policy1"
+ },
+ "hubIPAddresses": {
+ "publicIPs": {
+ "addresses": [
+ {
+ "address": "13.73.240.12"
+ }
+ ],
+ "count": 1
+ },
+ "privateIPAddress": "10.0.0.0"
+ },
+ "additionalProperties": {}
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "azurefirewall",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azurefirewall",
+ "type": "Microsoft.Network/azureFirewalls",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "zones": [],
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "sku": {
+ "name": "AZFW_Hub",
+ "tier": "Standard"
+ },
+ "threatIntelMode": "Alert",
+ "virtualHub": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub1"
+ },
+ "firewallPolicy": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/firewallPolicies/policy1"
+ },
+ "hubIPAddresses": {
+ "publicIPs": {
+ "addresses": [
+ {
+ "address": "13.73.240.12"
+ }
+ ],
+ "count": 1
+ },
+ "privateIPAddress": "10.0.0.0"
+ },
+ "ipGroups": [],
+ "additionalProperties": {}
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureFirewallPutWithAdditionalProperties.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureFirewallPutWithAdditionalProperties.json
new file mode 100644
index 000000000000..5ce33940e1bf
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureFirewallPutWithAdditionalProperties.json
@@ -0,0 +1,507 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "azureFirewallName": "azurefirewall",
+ "parameters": {
+ "tags": {
+ "key1": "value1"
+ },
+ "location": "West US",
+ "zones": [],
+ "properties": {
+ "sku": {
+ "name": "AZFW_VNet",
+ "tier": "Standard"
+ },
+ "threatIntelMode": "Alert",
+ "ipConfigurations": [
+ {
+ "name": "azureFirewallIpConfiguration",
+ "properties": {
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/AzureFirewallSubnet"
+ },
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pipName"
+ }
+ }
+ }
+ ],
+ "applicationRuleCollections": [
+ {
+ "name": "apprulecoll",
+ "properties": {
+ "priority": 110,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "name": "rule1",
+ "description": "Deny inbound rule",
+ "protocols": [
+ {
+ "protocolType": "Https",
+ "port": 443
+ }
+ ],
+ "targetFqdns": [
+ "www.test.com"
+ ],
+ "sourceAddresses": [
+ "216.58.216.164",
+ "10.0.0.0/24"
+ ]
+ }
+ ]
+ }
+ }
+ ],
+ "natRuleCollections": [
+ {
+ "name": "natrulecoll",
+ "properties": {
+ "priority": 112,
+ "action": {
+ "type": "Dnat"
+ },
+ "rules": [
+ {
+ "name": "DNAT-HTTPS-traffic",
+ "description": "D-NAT all outbound web traffic for inspection",
+ "sourceAddresses": [
+ "*"
+ ],
+ "destinationAddresses": [
+ "1.2.3.4"
+ ],
+ "destinationPorts": [
+ "443"
+ ],
+ "protocols": [
+ "TCP"
+ ],
+ "translatedAddress": "1.2.3.5",
+ "translatedPort": "8443"
+ },
+ {
+ "name": "DNAT-HTTP-traffic-With-FQDN",
+ "description": "D-NAT all inbound web traffic for inspection",
+ "sourceAddresses": [
+ "*"
+ ],
+ "destinationAddresses": [
+ "1.2.3.4"
+ ],
+ "destinationPorts": [
+ "80"
+ ],
+ "protocols": [
+ "TCP"
+ ],
+ "translatedFqdn": "internalhttpserver",
+ "translatedPort": "880"
+ }
+ ]
+ }
+ }
+ ],
+ "networkRuleCollections": [
+ {
+ "name": "netrulecoll",
+ "properties": {
+ "priority": 112,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "name": "L4-traffic",
+ "description": "Block traffic based on source IPs and ports",
+ "sourceAddresses": [
+ "192.168.1.1-192.168.1.12",
+ "10.1.4.12-10.1.4.255"
+ ],
+ "destinationPorts": [
+ "443-444",
+ "8443"
+ ],
+ "destinationAddresses": [
+ "*"
+ ],
+ "protocols": [
+ "TCP"
+ ]
+ },
+ {
+ "name": "L4-traffic-with-FQDN",
+ "description": "Block traffic based on source IPs and ports to amazon",
+ "sourceAddresses": [
+ "10.2.4.12-10.2.4.255"
+ ],
+ "destinationPorts": [
+ "443-444",
+ "8443"
+ ],
+ "destinationFqdns": [
+ "www.amazon.com"
+ ],
+ "protocols": [
+ "TCP"
+ ]
+ }
+ ]
+ }
+ }
+ ],
+ "ipGroups": [],
+ "additionalProperties": {
+ "key1": "value1",
+ "key2": "value2"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "azurefirewall",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azurefirewall",
+ "type": "Microsoft.Network/azureFirewalls",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "zones": [],
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "sku": {
+ "name": "AZFW_VNet",
+ "tier": "Standard"
+ },
+ "threatIntelMode": "Alert",
+ "ipConfigurations": [
+ {
+ "name": "azureFirewallIpConfiguration",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azfirewallgw/ipConfigurations/azureFirewallIpConfiguration",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "10.0.0.0",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/AzureFirewallSubnet"
+ },
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pipName"
+ }
+ }
+ }
+ ],
+ "applicationRuleCollections": [
+ {
+ "name": "apprulecoll",
+ "properties": {
+ "priority": 110,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "name": "rule1",
+ "description": "Deny inbound rule",
+ "protocols": [
+ {
+ "protocolType": "Https",
+ "port": 443
+ }
+ ],
+ "targetFqdns": [
+ "www.test.com"
+ ],
+ "sourceAddresses": [
+ "216.58.216.164",
+ "10.0.0.0/24"
+ ]
+ }
+ ]
+ }
+ }
+ ],
+ "natRuleCollections": [
+ {
+ "name": "natrulecoll",
+ "properties": {
+ "priority": 112,
+ "action": {
+ "type": "Dnat"
+ },
+ "rules": [
+ {
+ "name": "DNAT-HTTPS-traffic",
+ "description": "D-NAT all outbound web traffic for inspection",
+ "sourceAddresses": [
+ "*"
+ ],
+ "destinationAddresses": [
+ "1.2.3.4"
+ ],
+ "destinationPorts": [
+ "443"
+ ],
+ "protocols": [
+ "TCP"
+ ],
+ "translatedAddress": "1.2.3.5",
+ "translatedPort": "8443"
+ },
+ {
+ "name": "DNAT-HTTP-traffic-With-FQDN",
+ "description": "D-NAT all inbound web traffic for inspection",
+ "sourceAddresses": [
+ "*"
+ ],
+ "destinationAddresses": [
+ "1.2.3.4"
+ ],
+ "destinationPorts": [
+ "80"
+ ],
+ "protocols": [
+ "TCP"
+ ],
+ "translatedPort": "880",
+ "translatedFqdn": "internalhttpserver"
+ }
+ ]
+ }
+ }
+ ],
+ "networkRuleCollections": [
+ {
+ "name": "netrulecoll",
+ "properties": {
+ "priority": 112,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "name": "L4-traffic",
+ "description": "Block traffic based on source IPs and ports",
+ "sourceAddresses": [
+ "192.168.1.1-192.168.1.12",
+ "10.1.4.12-10.1.4.255"
+ ],
+ "destinationPorts": [
+ "443-444",
+ "8443"
+ ],
+ "destinationAddresses": [
+ "*"
+ ],
+ "protocols": [
+ "TCP"
+ ]
+ },
+ {
+ "name": "L4-traffic-with-FQDN",
+ "description": "Block traffic based on source IPs and ports to amazon",
+ "sourceAddresses": [
+ "10.2.4.12-10.2.4.255"
+ ],
+ "destinationPorts": [
+ "443-444",
+ "8443"
+ ],
+ "protocols": [
+ "TCP"
+ ],
+ "destinationFqdns": [
+ "www.amazon.com"
+ ]
+ }
+ ]
+ }
+ }
+ ],
+ "additionalProperties": {
+ "key1": "value1",
+ "key2": "value2"
+ }
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "azurefirewall",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azurefirewall",
+ "type": "Microsoft.Network/azureFirewalls",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "zones": [],
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "sku": {
+ "name": "AZFW_VNet",
+ "tier": "Standard"
+ },
+ "threatIntelMode": "Alert",
+ "ipConfigurations": [
+ {
+ "name": "azureFirewallIpConfiguration",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azfirewallgw/ipConfigurations/azureFirewallIpConfiguration",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "10.0.0.0",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/AzureFirewallSubnet"
+ },
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pipName"
+ }
+ }
+ }
+ ],
+ "applicationRuleCollections": [
+ {
+ "name": "apprulecoll",
+ "properties": {
+ "priority": 110,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "name": "rule1",
+ "description": "Deny inbound rule",
+ "protocols": [
+ {
+ "protocolType": "Https",
+ "port": 443
+ }
+ ],
+ "targetFqdns": [
+ "www.test.com"
+ ],
+ "sourceAddresses": [
+ "216.58.216.164",
+ "10.0.0.0/24"
+ ]
+ }
+ ]
+ }
+ }
+ ],
+ "natRuleCollections": [
+ {
+ "name": "natrulecoll",
+ "properties": {
+ "priority": 112,
+ "action": {
+ "type": "Dnat"
+ },
+ "rules": [
+ {
+ "name": "DNAT-HTTPS-traffic",
+ "description": "D-NAT all outbound web traffic for inspection",
+ "sourceAddresses": [
+ "*"
+ ],
+ "destinationAddresses": [
+ "1.2.3.4"
+ ],
+ "destinationPorts": [
+ "443"
+ ],
+ "protocols": [
+ "TCP"
+ ],
+ "translatedAddress": "1.2.3.5",
+ "translatedPort": "8443"
+ },
+ {
+ "name": "DNAT-HTTP-traffic-With-FQDN",
+ "description": "D-NAT all inbound web traffic for inspection",
+ "sourceAddresses": [
+ "*"
+ ],
+ "destinationAddresses": [
+ "1.2.3.4"
+ ],
+ "destinationPorts": [
+ "80"
+ ],
+ "protocols": [
+ "TCP"
+ ],
+ "translatedFqdn": "internalhttpserver",
+ "translatedPort": "880"
+ }
+ ]
+ }
+ }
+ ],
+ "networkRuleCollections": [
+ {
+ "name": "netrulecoll",
+ "properties": {
+ "priority": 112,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "name": "L4-traffic",
+ "description": "Block traffic based on source IPs and ports",
+ "sourceAddresses": [
+ "192.168.1.1-192.168.1.12",
+ "10.1.4.12-10.1.4.255"
+ ],
+ "destinationPorts": [
+ "443-444",
+ "8443"
+ ],
+ "destinationAddresses": [
+ "*"
+ ],
+ "protocols": [
+ "TCP"
+ ]
+ },
+ {
+ "name": "L4-traffic-with-FQDN",
+ "description": "Block traffic based on source IPs and ports to amazon",
+ "sourceAddresses": [
+ "10.2.4.12-10.2.4.255"
+ ],
+ "destinationPorts": [
+ "443-444",
+ "8443"
+ ],
+ "destinationFqdns": [
+ "www.amazon.com"
+ ],
+ "protocols": [
+ "TCP"
+ ]
+ }
+ ]
+ }
+ }
+ ],
+ "additionalProperties": {
+ "key1": "value1",
+ "key2": "value2"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureFirewallPutWithIpGroups.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureFirewallPutWithIpGroups.json
new file mode 100644
index 000000000000..ee12f59b068c
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureFirewallPutWithIpGroups.json
@@ -0,0 +1,505 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "azureFirewallName": "azurefirewall",
+ "parameters": {
+ "tags": {
+ "key1": "value1"
+ },
+ "location": "West US",
+ "zones": [],
+ "properties": {
+ "sku": {
+ "name": "AZFW_VNet",
+ "tier": "Standard"
+ },
+ "threatIntelMode": "Alert",
+ "ipConfigurations": [
+ {
+ "name": "azureFirewallIpConfiguration",
+ "properties": {
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/AzureFirewallSubnet"
+ },
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pipName"
+ }
+ }
+ }
+ ],
+ "applicationRuleCollections": [
+ {
+ "name": "apprulecoll",
+ "properties": {
+ "priority": 110,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "name": "rule1",
+ "description": "Deny inbound rule",
+ "protocols": [
+ {
+ "protocolType": "Https",
+ "port": 443
+ }
+ ],
+ "targetFqdns": [
+ "www.test.com"
+ ],
+ "sourceAddresses": [
+ "216.58.216.164",
+ "10.0.0.0/24"
+ ]
+ }
+ ]
+ }
+ }
+ ],
+ "natRuleCollections": [
+ {
+ "name": "natrulecoll",
+ "properties": {
+ "priority": 112,
+ "action": {
+ "type": "Dnat"
+ },
+ "rules": [
+ {
+ "name": "DNAT-HTTPS-traffic",
+ "description": "D-NAT all outbound web traffic for inspection",
+ "sourceAddresses": [
+ "*"
+ ],
+ "destinationAddresses": [
+ "1.2.3.4"
+ ],
+ "destinationPorts": [
+ "443"
+ ],
+ "protocols": [
+ "TCP"
+ ],
+ "translatedAddress": "1.2.3.5",
+ "translatedPort": "8443"
+ },
+ {
+ "name": "DNAT-HTTP-traffic-With-FQDN",
+ "description": "D-NAT all inbound web traffic for inspection",
+ "sourceAddresses": [
+ "*"
+ ],
+ "destinationAddresses": [
+ "1.2.3.4"
+ ],
+ "destinationPorts": [
+ "80"
+ ],
+ "protocols": [
+ "TCP"
+ ],
+ "translatedFqdn": "internalhttpserver",
+ "translatedPort": "880"
+ }
+ ]
+ }
+ }
+ ],
+ "networkRuleCollections": [
+ {
+ "name": "netrulecoll",
+ "properties": {
+ "priority": 112,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "name": "L4-traffic",
+ "description": "Block traffic based on source IPs and ports",
+ "sourceAddresses": [
+ "192.168.1.1-192.168.1.12",
+ "10.1.4.12-10.1.4.255"
+ ],
+ "destinationPorts": [
+ "443-444",
+ "8443"
+ ],
+ "destinationAddresses": [
+ "*"
+ ],
+ "protocols": [
+ "TCP"
+ ]
+ },
+ {
+ "name": "L4-traffic-with-FQDN",
+ "description": "Block traffic based on source IPs and ports to amazon",
+ "sourceAddresses": [
+ "10.2.4.12-10.2.4.255"
+ ],
+ "destinationPorts": [
+ "443-444",
+ "8443"
+ ],
+ "destinationFqdns": [
+ "www.amazon.com"
+ ],
+ "protocols": [
+ "TCP"
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "azurefirewall",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azurefirewall",
+ "type": "Microsoft.Network/azureFirewalls",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "zones": [],
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "sku": {
+ "name": "AZFW_VNet",
+ "tier": "Standard"
+ },
+ "threatIntelMode": "Alert",
+ "ipConfigurations": [
+ {
+ "name": "azureFirewallIpConfiguration",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azfirewallgw/ipConfigurations/azureFirewallIpConfiguration",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "10.0.0.0",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/AzureFirewallSubnet"
+ },
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pipName"
+ }
+ }
+ }
+ ],
+ "applicationRuleCollections": [
+ {
+ "name": "apprulecoll",
+ "properties": {
+ "priority": 110,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "name": "rule1",
+ "description": "Deny inbound rule",
+ "protocols": [
+ {
+ "protocolType": "Https",
+ "port": 443
+ }
+ ],
+ "targetFqdns": [
+ "www.test.com"
+ ],
+ "sourceAddresses": [
+ "216.58.216.164",
+ "10.0.0.0/24"
+ ]
+ }
+ ]
+ }
+ }
+ ],
+ "natRuleCollections": [
+ {
+ "name": "natrulecoll",
+ "properties": {
+ "priority": 112,
+ "action": {
+ "type": "Dnat"
+ },
+ "rules": [
+ {
+ "name": "DNAT-HTTPS-traffic",
+ "description": "D-NAT all outbound web traffic for inspection",
+ "sourceAddresses": [
+ "*"
+ ],
+ "destinationAddresses": [
+ "1.2.3.4"
+ ],
+ "destinationPorts": [
+ "443"
+ ],
+ "protocols": [
+ "TCP"
+ ],
+ "translatedAddress": "1.2.3.5",
+ "translatedPort": "8443"
+ },
+ {
+ "name": "DNAT-HTTP-traffic-With-FQDN",
+ "description": "D-NAT all inbound web traffic for inspection",
+ "sourceAddresses": [
+ "*"
+ ],
+ "destinationAddresses": [
+ "1.2.3.4"
+ ],
+ "destinationPorts": [
+ "80"
+ ],
+ "protocols": [
+ "TCP"
+ ],
+ "translatedPort": "880",
+ "translatedFqdn": "internalhttpserver"
+ }
+ ]
+ }
+ }
+ ],
+ "networkRuleCollections": [
+ {
+ "name": "netrulecoll",
+ "properties": {
+ "priority": 112,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "name": "L4-traffic",
+ "description": "Block traffic based on source IPs and ports",
+ "sourceAddresses": [
+ "192.168.1.1-192.168.1.12",
+ "10.1.4.12-10.1.4.255"
+ ],
+ "destinationPorts": [
+ "443-444",
+ "8443"
+ ],
+ "destinationAddresses": [
+ "*"
+ ],
+ "protocols": [
+ "TCP"
+ ]
+ },
+ {
+ "name": "L4-traffic-with-FQDN",
+ "description": "Block traffic based on source IPs and ports to amazon",
+ "sourceAddresses": [
+ "10.2.4.12-10.2.4.255"
+ ],
+ "destinationPorts": [
+ "443-444",
+ "8443"
+ ],
+ "protocols": [
+ "TCP"
+ ],
+ "destinationFqdns": [
+ "www.amazon.com"
+ ]
+ }
+ ]
+ }
+ }
+ ],
+ "additionalProperties": {}
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "azurefirewall",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azurefirewall",
+ "type": "Microsoft.Network/azureFirewalls",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "zones": [],
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "sku": {
+ "name": "AZFW_VNet",
+ "tier": "Standard"
+ },
+ "threatIntelMode": "Alert",
+ "ipConfigurations": [
+ {
+ "name": "azureFirewallIpConfiguration",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azfirewallgw/ipConfigurations/azureFirewallIpConfiguration",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "10.0.0.0",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/AzureFirewallSubnet"
+ },
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pipName"
+ }
+ }
+ }
+ ],
+ "applicationRuleCollections": [
+ {
+ "name": "apprulecoll",
+ "properties": {
+ "priority": 110,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "name": "rule1",
+ "description": "Deny inbound rule",
+ "protocols": [
+ {
+ "protocolType": "Https",
+ "port": 443
+ }
+ ],
+ "targetFqdns": [
+ "www.test.com"
+ ],
+ "sourceIpGroups": [
+ "/subscriptions/subId/providers/Microsoft.Network/resourceGroup/myResourceGroup/ipGroups/ipGroups1"
+ ]
+ }
+ ]
+ }
+ }
+ ],
+ "natRuleCollections": [
+ {
+ "name": "natrulecoll",
+ "properties": {
+ "priority": 112,
+ "action": {
+ "type": "Dnat"
+ },
+ "rules": [
+ {
+ "name": "DNAT-HTTPS-traffic",
+ "description": "D-NAT all outbound web traffic for inspection",
+ "sourceIpGroups": [
+ "/subscriptions/subId/providers/Microsoft.Network/resourceGroup/myResourceGroup/ipGroups/ipGroups1"
+ ],
+ "destinationAddresses": [
+ "1.2.3.4"
+ ],
+ "destinationPorts": [
+ "443"
+ ],
+ "protocols": [
+ "TCP"
+ ],
+ "translatedAddress": "1.2.3.5",
+ "translatedPort": "8443"
+ },
+ {
+ "name": "DNAT-HTTP-traffic-With-FQDN",
+ "description": "D-NAT all inbound web traffic for inspection",
+ "sourceAddresses": [
+ "*"
+ ],
+ "destinationAddresses": [
+ "1.2.3.4"
+ ],
+ "destinationPorts": [
+ "80"
+ ],
+ "protocols": [
+ "TCP"
+ ],
+ "translatedFqdn": "internalhttpserver",
+ "translatedPort": "880"
+ }
+ ]
+ }
+ }
+ ],
+ "networkRuleCollections": [
+ {
+ "name": "netrulecoll",
+ "properties": {
+ "priority": 112,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "name": "L4-traffic",
+ "description": "Block traffic based on source IPs and ports",
+ "sourceAddresses": [
+ "192.168.1.1-192.168.1.12",
+ "10.1.4.12-10.1.4.255"
+ ],
+ "destinationPorts": [
+ "443-444",
+ "8443"
+ ],
+ "destinationAddresses": [
+ "*"
+ ],
+ "protocols": [
+ "TCP"
+ ]
+ },
+ {
+ "name": "L4-traffic-with-FQDN",
+ "description": "Block traffic based on source IPs and ports to amazon",
+ "sourceAddresses": [
+ "10.2.4.12-10.2.4.255"
+ ],
+ "destinationPorts": [
+ "443-444",
+ "8443"
+ ],
+ "destinationIpGroups": [
+ "/subscriptions/subId/providers/Microsoft.Network/resourceGroup/myResourceGroup/ipGroups/ipGroups2"
+ ],
+ "protocols": [
+ "TCP"
+ ]
+ }
+ ]
+ }
+ }
+ ],
+ "ipGroups": [
+ {
+ "id": "/subscriptions/subId/providers/Microsoft.Network/resourceGroup/myResourceGroup/ipGroups/ipGroups1",
+ "changeNumber": "5"
+ },
+ {
+ "id": "/subscriptions/subId/providers/Microsoft.Network/resourceGroup/myResourceGroup/ipGroups/ipGroups2",
+ "changeNumber": "4"
+ }
+ ],
+ "additionalProperties": {}
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureFirewallPutWithMgmtSubnet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureFirewallPutWithMgmtSubnet.json
new file mode 100644
index 000000000000..feb566f59942
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureFirewallPutWithMgmtSubnet.json
@@ -0,0 +1,507 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "azureFirewallName": "azurefirewall",
+ "parameters": {
+ "tags": {
+ "key1": "value1"
+ },
+ "location": "West US",
+ "zones": [],
+ "properties": {
+ "sku": {
+ "name": "AZFW_VNet",
+ "tier": "Standard"
+ },
+ "threatIntelMode": "Alert",
+ "ipConfigurations": [
+ {
+ "name": "azureFirewallIpConfiguration",
+ "properties": {
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/AzureFirewallSubnet"
+ },
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pipName"
+ }
+ }
+ }
+ ],
+ "managementIpConfiguration": {
+ "name": "azureFirewallMgmtIpConfiguration",
+ "properties": {
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/AzureFirewallManagementSubnet"
+ },
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/managementPipName"
+ }
+ }
+ },
+ "applicationRuleCollections": [
+ {
+ "name": "apprulecoll",
+ "properties": {
+ "priority": 110,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "name": "rule1",
+ "description": "Deny inbound rule",
+ "protocols": [
+ {
+ "protocolType": "Https",
+ "port": 443
+ }
+ ],
+ "targetFqdns": [
+ "www.test.com"
+ ],
+ "sourceAddresses": [
+ "216.58.216.164",
+ "10.0.0.0/24"
+ ]
+ }
+ ]
+ }
+ }
+ ],
+ "natRuleCollections": [
+ {
+ "name": "natrulecoll",
+ "properties": {
+ "priority": 112,
+ "action": {
+ "type": "Dnat"
+ },
+ "rules": [
+ {
+ "name": "DNAT-HTTPS-traffic",
+ "description": "D-NAT all outbound web traffic for inspection",
+ "sourceAddresses": [
+ "*"
+ ],
+ "destinationAddresses": [
+ "1.2.3.4"
+ ],
+ "destinationPorts": [
+ "443"
+ ],
+ "protocols": [
+ "TCP"
+ ],
+ "translatedAddress": "1.2.3.5",
+ "translatedPort": "8443"
+ },
+ {
+ "name": "DNAT-HTTP-traffic-With-FQDN",
+ "description": "D-NAT all inbound web traffic for inspection",
+ "sourceAddresses": [
+ "*"
+ ],
+ "destinationAddresses": [
+ "1.2.3.4"
+ ],
+ "destinationPorts": [
+ "80"
+ ],
+ "protocols": [
+ "TCP"
+ ],
+ "translatedFqdn": "internalhttpserver",
+ "translatedPort": "880"
+ }
+ ]
+ }
+ }
+ ],
+ "networkRuleCollections": [
+ {
+ "name": "netrulecoll",
+ "properties": {
+ "priority": 112,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "name": "L4-traffic",
+ "description": "Block traffic based on source IPs and ports",
+ "sourceAddresses": [
+ "192.168.1.1-192.168.1.12",
+ "10.1.4.12-10.1.4.255"
+ ],
+ "destinationPorts": [
+ "443-444",
+ "8443"
+ ],
+ "destinationAddresses": [
+ "*"
+ ],
+ "protocols": [
+ "TCP"
+ ]
+ },
+ {
+ "name": "L4-traffic-with-FQDN",
+ "description": "Block traffic based on source IPs and ports to amazon",
+ "sourceAddresses": [
+ "10.2.4.12-10.2.4.255"
+ ],
+ "destinationPorts": [
+ "443-444",
+ "8443"
+ ],
+ "destinationFqdns": [
+ "www.amazon.com"
+ ],
+ "protocols": [
+ "TCP"
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "azurefirewall",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azurefirewall",
+ "type": "Microsoft.Network/azureFirewalls",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "zones": [],
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "sku": {
+ "name": "AZFW_VNet",
+ "tier": "Standard"
+ },
+ "threatIntelMode": "Alert",
+ "ipConfigurations": [
+ {
+ "name": "azureFirewallIpConfiguration",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azfirewallgw/ipConfigurations/azureFirewallIpConfiguration",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "10.0.0.0",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/AzureFirewallSubnet"
+ },
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pipName"
+ }
+ }
+ }
+ ],
+ "applicationRuleCollections": [
+ {
+ "name": "apprulecoll",
+ "properties": {
+ "priority": 110,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "name": "rule1",
+ "description": "Deny inbound rule",
+ "protocols": [
+ {
+ "protocolType": "Https",
+ "port": 443
+ }
+ ],
+ "targetFqdns": [
+ "www.test.com"
+ ],
+ "sourceAddresses": [
+ "216.58.216.164",
+ "10.0.0.0/24"
+ ]
+ }
+ ]
+ }
+ }
+ ],
+ "natRuleCollections": [
+ {
+ "name": "natrulecoll",
+ "properties": {
+ "priority": 112,
+ "action": {
+ "type": "Dnat"
+ },
+ "rules": [
+ {
+ "name": "DNAT-HTTPS-traffic",
+ "description": "D-NAT all outbound web traffic for inspection",
+ "sourceAddresses": [
+ "*"
+ ],
+ "destinationAddresses": [
+ "1.2.3.4"
+ ],
+ "destinationPorts": [
+ "443"
+ ],
+ "protocols": [
+ "TCP"
+ ],
+ "translatedAddress": "1.2.3.5",
+ "translatedPort": "8443"
+ },
+ {
+ "name": "DNAT-HTTP-traffic-With-FQDN",
+ "description": "D-NAT all inbound web traffic for inspection",
+ "sourceAddresses": [
+ "*"
+ ],
+ "destinationAddresses": [
+ "1.2.3.4"
+ ],
+ "destinationPorts": [
+ "80"
+ ],
+ "protocols": [
+ "TCP"
+ ],
+ "translatedPort": "880",
+ "translatedFqdn": "internalhttpserver"
+ }
+ ]
+ }
+ }
+ ],
+ "networkRuleCollections": [
+ {
+ "name": "netrulecoll",
+ "properties": {
+ "priority": 112,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "name": "L4-traffic",
+ "description": "Block traffic based on source IPs and ports",
+ "sourceAddresses": [
+ "192.168.1.1-192.168.1.12",
+ "10.1.4.12-10.1.4.255"
+ ],
+ "destinationPorts": [
+ "443-444",
+ "8443"
+ ],
+ "destinationAddresses": [
+ "*"
+ ],
+ "protocols": [
+ "TCP"
+ ]
+ },
+ {
+ "name": "L4-traffic-with-FQDN",
+ "description": "Block traffic based on source IPs and ports to amazon",
+ "sourceAddresses": [
+ "10.2.4.12-10.2.4.255"
+ ],
+ "destinationPorts": [
+ "443-444",
+ "8443"
+ ],
+ "protocols": [
+ "TCP"
+ ],
+ "destinationFqdns": [
+ "www.amazon.com"
+ ]
+ }
+ ]
+ }
+ }
+ ],
+ "additionalProperties": {}
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "azurefirewall",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azurefirewall",
+ "type": "Microsoft.Network/azureFirewalls",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "zones": [],
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "sku": {
+ "name": "AZFW_VNet",
+ "tier": "Standard"
+ },
+ "threatIntelMode": "Alert",
+ "ipConfigurations": [
+ {
+ "name": "azureFirewallIpConfiguration",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azfirewallgw/ipConfigurations/azureFirewallIpConfiguration",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "10.0.0.0",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/AzureFirewallSubnet"
+ },
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pipName"
+ }
+ }
+ }
+ ],
+ "applicationRuleCollections": [
+ {
+ "name": "apprulecoll",
+ "properties": {
+ "priority": 110,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "name": "rule1",
+ "description": "Deny inbound rule",
+ "protocols": [
+ {
+ "protocolType": "Https",
+ "port": 443
+ }
+ ],
+ "targetFqdns": [
+ "www.test.com"
+ ],
+ "sourceAddresses": [
+ "216.58.216.164",
+ "10.0.0.0/24"
+ ]
+ }
+ ]
+ }
+ }
+ ],
+ "natRuleCollections": [
+ {
+ "name": "natrulecoll",
+ "properties": {
+ "priority": 112,
+ "action": {
+ "type": "Dnat"
+ },
+ "rules": [
+ {
+ "name": "DNAT-HTTPS-traffic",
+ "description": "D-NAT all outbound web traffic for inspection",
+ "sourceAddresses": [
+ "*"
+ ],
+ "destinationAddresses": [
+ "1.2.3.4"
+ ],
+ "destinationPorts": [
+ "443"
+ ],
+ "protocols": [
+ "TCP"
+ ],
+ "translatedAddress": "1.2.3.5",
+ "translatedPort": "8443"
+ },
+ {
+ "name": "DNAT-HTTP-traffic-With-FQDN",
+ "description": "D-NAT all inbound web traffic for inspection",
+ "sourceAddresses": [
+ "*"
+ ],
+ "destinationAddresses": [
+ "1.2.3.4"
+ ],
+ "destinationPorts": [
+ "80"
+ ],
+ "protocols": [
+ "TCP"
+ ],
+ "translatedFqdn": "internalhttpserver",
+ "translatedPort": "880"
+ }
+ ]
+ }
+ }
+ ],
+ "networkRuleCollections": [
+ {
+ "name": "netrulecoll",
+ "properties": {
+ "priority": 112,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "name": "L4-traffic",
+ "description": "Block traffic based on source IPs and ports",
+ "sourceAddresses": [
+ "192.168.1.1-192.168.1.12",
+ "10.1.4.12-10.1.4.255"
+ ],
+ "destinationPorts": [
+ "443-444",
+ "8443"
+ ],
+ "destinationAddresses": [
+ "*"
+ ],
+ "protocols": [
+ "TCP"
+ ]
+ },
+ {
+ "name": "L4-traffic-with-FQDN",
+ "description": "Block traffic based on source IPs and ports to amazon",
+ "sourceAddresses": [
+ "10.2.4.12-10.2.4.255"
+ ],
+ "destinationPorts": [
+ "443-444",
+ "8443"
+ ],
+ "destinationFqdns": [
+ "www.amazon.com"
+ ],
+ "protocols": [
+ "TCP"
+ ]
+ }
+ ]
+ }
+ }
+ ],
+ "additionalProperties": {}
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureFirewallPutWithZones.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureFirewallPutWithZones.json
new file mode 100644
index 000000000000..3164c5862065
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureFirewallPutWithZones.json
@@ -0,0 +1,509 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "azureFirewallName": "azurefirewall",
+ "parameters": {
+ "location": "West US 2",
+ "tags": {
+ "key1": "value1"
+ },
+ "zones": [
+ "1",
+ "2",
+ "3"
+ ],
+ "properties": {
+ "threatIntelMode": "Alert",
+ "sku": {
+ "name": "AZFW_VNet",
+ "tier": "Standard"
+ },
+ "ipConfigurations": [
+ {
+ "name": "azureFirewallIpConfiguration",
+ "properties": {
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/AzureFirewallSubnet"
+ },
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pipName"
+ }
+ }
+ }
+ ],
+ "applicationRuleCollections": [
+ {
+ "name": "apprulecoll",
+ "properties": {
+ "priority": 110,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "name": "rule1",
+ "description": "Deny inbound rule",
+ "protocols": [
+ {
+ "protocolType": "Https",
+ "port": 443
+ }
+ ],
+ "targetFqdns": [
+ "www.test.com"
+ ],
+ "sourceAddresses": [
+ "216.58.216.164",
+ "10.0.0.0/24"
+ ]
+ }
+ ]
+ }
+ }
+ ],
+ "natRuleCollections": [
+ {
+ "name": "natrulecoll",
+ "properties": {
+ "priority": 112,
+ "action": {
+ "type": "Dnat"
+ },
+ "rules": [
+ {
+ "name": "DNAT-HTTPS-traffic",
+ "description": "D-NAT all outbound web traffic for inspection",
+ "sourceAddresses": [
+ "*"
+ ],
+ "destinationAddresses": [
+ "1.2.3.4"
+ ],
+ "destinationPorts": [
+ "443"
+ ],
+ "protocols": [
+ "TCP"
+ ],
+ "translatedAddress": "1.2.3.5",
+ "translatedPort": "8443"
+ },
+ {
+ "name": "DNAT-HTTP-traffic-With-FQDN",
+ "description": "D-NAT all inbound web traffic for inspection",
+ "sourceAddresses": [
+ "*"
+ ],
+ "destinationAddresses": [
+ "1.2.3.4"
+ ],
+ "destinationPorts": [
+ "80"
+ ],
+ "protocols": [
+ "TCP"
+ ],
+ "translatedFqdn": "internalhttpserver",
+ "translatedPort": "880"
+ }
+ ]
+ }
+ }
+ ],
+ "networkRuleCollections": [
+ {
+ "name": "netrulecoll",
+ "properties": {
+ "priority": 112,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "name": "L4-traffic",
+ "description": "Block traffic based on source IPs and ports",
+ "sourceAddresses": [
+ "192.168.1.1-192.168.1.12",
+ "10.1.4.12-10.1.4.255"
+ ],
+ "destinationPorts": [
+ "443-444",
+ "8443"
+ ],
+ "destinationAddresses": [
+ "*"
+ ],
+ "protocols": [
+ "TCP"
+ ]
+ },
+ {
+ "name": "L4-traffic-with-FQDN",
+ "description": "Block traffic based on source IPs and ports to amazon",
+ "sourceAddresses": [
+ "10.2.4.12-10.2.4.255"
+ ],
+ "destinationPorts": [
+ "443-444",
+ "8443"
+ ],
+ "destinationFqdns": [
+ "www.amazon.com"
+ ],
+ "protocols": [
+ "TCP"
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "azurefirewall",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azurefirewall",
+ "type": "Microsoft.Network/azureFirewalls",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US 2",
+ "zones": [
+ "1",
+ "2",
+ "3"
+ ],
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "sku": {
+ "name": "AZFW_VNet",
+ "tier": "Standard"
+ },
+ "threatIntelMode": "Alert",
+ "ipConfigurations": [
+ {
+ "name": "azureFirewallIpConfiguration",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azfirewallgw/ipConfigurations/azureFirewallIpConfiguration",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "10.0.0.0",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/AzureFirewallSubnet"
+ },
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pipName"
+ }
+ }
+ }
+ ],
+ "applicationRuleCollections": [
+ {
+ "name": "apprulecoll",
+ "properties": {
+ "priority": 110,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "name": "rule1",
+ "description": "Deny inbound rule",
+ "protocols": [
+ {
+ "protocolType": "Https",
+ "port": 443
+ }
+ ],
+ "targetFqdns": [
+ "www.test.com"
+ ],
+ "sourceAddresses": [
+ "216.58.216.164",
+ "10.0.0.0/24"
+ ]
+ }
+ ]
+ }
+ }
+ ],
+ "natRuleCollections": [
+ {
+ "name": "natrulecoll",
+ "properties": {
+ "priority": 112,
+ "action": {
+ "type": "Dnat"
+ },
+ "rules": [
+ {
+ "name": "DNAT-HTTPS-traffic",
+ "description": "D-NAT all outbound web traffic for inspection",
+ "sourceAddresses": [
+ "*"
+ ],
+ "destinationAddresses": [
+ "1.2.3.4"
+ ],
+ "destinationPorts": [
+ "443"
+ ],
+ "protocols": [
+ "TCP"
+ ],
+ "translatedAddress": "1.2.3.5",
+ "translatedPort": "8443"
+ },
+ {
+ "name": "DNAT-HTTP-traffic-With-FQDN",
+ "description": "D-NAT all inbound web traffic for inspection",
+ "sourceAddresses": [
+ "*"
+ ],
+ "destinationAddresses": [
+ "1.2.3.4"
+ ],
+ "destinationPorts": [
+ "80"
+ ],
+ "protocols": [
+ "TCP"
+ ],
+ "translatedFqdn": "internalhttpserver",
+ "translatedPort": "880"
+ }
+ ]
+ }
+ }
+ ],
+ "networkRuleCollections": [
+ {
+ "name": "netrulecoll",
+ "properties": {
+ "priority": 112,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "name": "L4-traffic",
+ "description": "Block traffic based on source IPs and ports",
+ "sourceAddresses": [
+ "192.168.1.1-192.168.1.12",
+ "10.1.4.12-10.1.4.255"
+ ],
+ "destinationPorts": [
+ "443-444",
+ "8443"
+ ],
+ "destinationAddresses": [
+ "*"
+ ],
+ "protocols": [
+ "TCP"
+ ]
+ },
+ {
+ "name": "L4-traffic-with-FQDN",
+ "description": "Block traffic based on source IPs and ports to amazon",
+ "sourceAddresses": [
+ "10.2.4.12-10.2.4.255"
+ ],
+ "destinationPorts": [
+ "443-444",
+ "8443"
+ ],
+ "destinationFqdns": [
+ "www.amazon.com"
+ ],
+ "protocols": [
+ "TCP"
+ ]
+ }
+ ]
+ }
+ }
+ ],
+ "ipGroups": [],
+ "additionalProperties": {}
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "azurefirewall",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azurefirewall",
+ "type": "Microsoft.Network/azureFirewalls",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US 2",
+ "zones": [
+ "1",
+ "2",
+ "3"
+ ],
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "sku": {
+ "name": "AZFW_VNet",
+ "tier": "Standard"
+ },
+ "threatIntelMode": "Alert",
+ "ipConfigurations": [
+ {
+ "name": "azureFirewallIpConfiguration",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azfirewallgw/ipConfigurations/azureFirewallIpConfiguration",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "10.0.0.0",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/AzureFirewallSubnet"
+ },
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pipName"
+ }
+ }
+ }
+ ],
+ "applicationRuleCollections": [
+ {
+ "name": "apprulecoll",
+ "properties": {
+ "priority": 110,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "name": "rule1",
+ "description": "Deny inbound rule",
+ "protocols": [
+ {
+ "protocolType": "Https",
+ "port": 443
+ }
+ ],
+ "targetFqdns": [
+ "www.test.com"
+ ],
+ "sourceAddresses": [
+ "216.58.216.164",
+ "10.0.0.0/24"
+ ]
+ }
+ ]
+ }
+ }
+ ],
+ "natRuleCollections": [
+ {
+ "name": "natrulecoll",
+ "properties": {
+ "priority": 112,
+ "action": {
+ "type": "Dnat"
+ },
+ "rules": [
+ {
+ "name": "DNAT-HTTPS-traffic",
+ "description": "D-NAT all outbound web traffic for inspection",
+ "sourceAddresses": [
+ "*"
+ ],
+ "destinationAddresses": [
+ "1.2.3.4"
+ ],
+ "destinationPorts": [
+ "443"
+ ],
+ "protocols": [
+ "TCP"
+ ],
+ "translatedAddress": "1.2.3.5",
+ "translatedPort": "8443"
+ },
+ {
+ "name": "DNAT-HTTP-traffic-With-FQDN",
+ "description": "D-NAT all inbound web traffic for inspection",
+ "sourceAddresses": [
+ "*"
+ ],
+ "destinationAddresses": [
+ "1.2.3.4"
+ ],
+ "destinationPorts": [
+ "80"
+ ],
+ "protocols": [
+ "TCP"
+ ],
+ "translatedFqdn": "internalhttpserver",
+ "translatedPort": "880"
+ }
+ ]
+ }
+ }
+ ],
+ "networkRuleCollections": [
+ {
+ "name": "netrulecoll",
+ "properties": {
+ "priority": 112,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "name": "L4-traffic",
+ "description": "Block traffic based on source IPs and ports",
+ "sourceAddresses": [
+ "192.168.1.1-192.168.1.12",
+ "10.1.4.12-10.1.4.255"
+ ],
+ "destinationPorts": [
+ "443-444",
+ "8443"
+ ],
+ "destinationAddresses": [
+ "*"
+ ],
+ "protocols": [
+ "TCP"
+ ]
+ },
+ {
+ "name": "L4-traffic-with-FQDN",
+ "description": "Block traffic based on source IPs and ports to amazon",
+ "sourceAddresses": [
+ "10.2.4.12-10.2.4.255"
+ ],
+ "destinationPorts": [
+ "443-444",
+ "8443"
+ ],
+ "destinationFqdns": [
+ "www.amazon.com"
+ ],
+ "protocols": [
+ "TCP"
+ ]
+ }
+ ]
+ }
+ }
+ ],
+ "additionalProperties": {}
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureFirewallUpdateTags.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureFirewallUpdateTags.json
new file mode 100644
index 000000000000..62632a36bdab
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureFirewallUpdateTags.json
@@ -0,0 +1,33 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "azfwtest",
+ "azureFirewallName": "fw1",
+ "parameters": {
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ }
+ }
+ },
+ "responses": {
+ "202": {},
+ "200": {
+ "body": {
+ "name": "fw1",
+ "id": "/subscriptions/subid/resourceGroups/azfwtest/providers/Microsoft.Network/azureFirewalls/fw1",
+ "type": "Microsoft.Network/azureFirewalls",
+ "location": "brazilsouth",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "threatIntelMode": "Alert"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureWebCategoriesListBySubscription.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureWebCategoriesListBySubscription.json
new file mode 100644
index 000000000000..d03e3a0c89b5
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureWebCategoriesListBySubscription.json
@@ -0,0 +1,23 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "4de8428a-4a92-4cea-90ff-b47128b8cab8"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "Arts",
+ "id": "/subscriptions/4de8428a-4a92-4cea-90ff-b47128b8cab8/providers/Microsoft.Network/azureWebCategories/Arts",
+ "type": "Microsoft.Network/azureWebCategories",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "group": "General"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureWebCategoryGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureWebCategoryGet.json
new file mode 100644
index 000000000000..e2986f38c247
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/AzureWebCategoryGet.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "4de8428a-4a92-4cea-90ff-b47128b8cab8",
+ "name": "Arts"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "Arts",
+ "id": "/subscriptions/4de8428a-4a92-4cea-90ff-b47128b8cab8/providers/Microsoft.Network/azureWebCategories/Arts",
+ "type": "Microsoft.Network/azureWebCategories",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "group": "General"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/BastionHostDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/BastionHostDelete.json
new file mode 100644
index 000000000000..67becd5dc53e
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/BastionHostDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "bastionHostName": "bastionhosttenant"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/BastionHostGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/BastionHostGet.json
new file mode 100644
index 000000000000..bbd0279df61e
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/BastionHostGet.json
@@ -0,0 +1,44 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "bastionHostName": "bastionhosttenant'"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "bastionhost'",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/bastionHosts/bastionhosttenant'",
+ "type": "Microsoft.Network/bastionHosts",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "dnsName": "bst-9d89d361-100e-4c01-b92d-466548c476dc.bastion.azure.com",
+ "ipConfigurations": [
+ {
+ "name": "bastionHostIpConfiguration",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/bastionHosts/bastionhosttenant/bastionHostIpConfigurations/bastionHostIpConfiguration",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "type": "Microsoft.Network/bastionHosts/bastionHostIpConfigurations",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAllocationMethod": "Dynamic",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/BastionHostSubnet"
+ },
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pipName"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/BastionHostListByResourceGroup.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/BastionHostListByResourceGroup.json
new file mode 100644
index 000000000000..cef173fc79a6
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/BastionHostListByResourceGroup.json
@@ -0,0 +1,44 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "bastionhost'",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/bastionHosts/bastionhosttenant'",
+ "type": "Microsoft.Network/bastionHosts",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "dnsName": "bst-9d89d361-100e-4c01-b92d-466548c476dc.bastion.azure.com",
+ "ipConfigurations": [
+ {
+ "name": "bastionHostIpConfiguration",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/bastionHosts/bastionhosttenant/bastionHostIpConfigurations/bastionHostIpConfiguration",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "type": "Microsoft.Network/bastionHosts/bastionHostIpConfigurations",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAllocationMethod": "Dynamic",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/BastionHostSubnet"
+ },
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pipName"
+ }
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/BastionHostListBySubscription.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/BastionHostListBySubscription.json
new file mode 100644
index 000000000000..96ce117307fc
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/BastionHostListBySubscription.json
@@ -0,0 +1,43 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "bastionhost'",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/bastionHosts/bastionhosttenant'",
+ "type": "Microsoft.Network/bastionHosts",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "dnsName": "bst-9d89d361-100e-4c01-b92d-466548c476dc.bastion.azure.com",
+ "ipConfigurations": [
+ {
+ "name": "bastionHostIpConfiguration",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/bastionHosts/bastionhosttenant/bastionHostIpConfigurations/bastionHostIpConfiguration",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "type": "Microsoft.Network/bastionHosts/bastionHostIpConfigurations",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAllocationMethod": "Dynamic",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/BastionHostSubnet"
+ },
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pipName"
+ }
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/BastionHostPut.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/BastionHostPut.json
new file mode 100644
index 000000000000..0654d94541c9
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/BastionHostPut.json
@@ -0,0 +1,89 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "bastionHostName": "bastionhosttenant'",
+ "parameters": {
+ "properties": {
+ "ipConfigurations": [
+ {
+ "name": "bastionHostIpConfiguration",
+ "properties": {
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/BastionHostSubnet"
+ },
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pipName"
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "bastionhost'",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/bastionHosts/bastionhosttenant'",
+ "type": "Microsoft.Network/bastionHosts",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "dnsName": "bst-9d89d361-100e-4c01-b92d-466548c476dc.bastion.azure.com",
+ "ipConfigurations": [
+ {
+ "name": "bastionHostIpConfiguration",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/bastionHosts/bastionhosttenant/bastionHostIpConfigurations/bastionHostIpConfiguration",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "type": "Microsoft.Network/bastionHosts/bastionHostIpConfigurations",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAllocationMethod": "Dynamic",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/BastionHostSubnet"
+ },
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pipName"
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "bastionhost'",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/bastionHosts/bastionhosttenant'",
+ "type": "Microsoft.Network/bastionHosts",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "dnsName": "bst-9d89d361-100e-4c01-b92d-466548c476dc.bastion.azure.com",
+ "ipConfigurations": [
+ {
+ "name": "bastionHostIpConfiguration",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/bastionHosts/bastionhosttenant/bastionHostIpConfigurations/bastionHostIpConfiguration",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "type": "Microsoft.Network/bastionHosts/bastionHostIpConfigurations",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAllocationMethod": "Dynamic",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/BastionHostSubnet"
+ },
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pipName"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/BastionSessionDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/BastionSessionDelete.json
new file mode 100644
index 000000000000..b8a18a00ed98
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/BastionSessionDelete.json
@@ -0,0 +1,36 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "bastionHostName": "bastionhosttenant",
+ "sessionIds": [
+ "session1",
+ "session2",
+ "session3"
+ ]
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "sessionId": "session1",
+ "message": "session session1 invalidated!",
+ "state": "Disconnected"
+ },
+ {
+ "sessionId": "session2",
+ "message": "session session2 could not be disconnected!",
+ "state": "Failed"
+ },
+ {
+ "sessionId": "session3",
+ "message": "session session3 not found!",
+ "state": "NotFound"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/BastionSessionsList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/BastionSessionsList.json
new file mode 100644
index 000000000000..e5e3c95aca31
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/BastionSessionsList.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "bastionHostName": "bastionhosttenant"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "sessionId": "sessionId",
+ "startTime": "2019-1-1T12:00:00.0000Z",
+ "targetSubscriptionId": "subid",
+ "resourceType": "VM",
+ "targetHostName": "vm01",
+ "targetResourceGroup": "rg1",
+ "userName": "user",
+ "targetIpAddress": "1.1.1.1",
+ "protocol": "SSH",
+ "targetResourceId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachines/vm01",
+ "sessionDurationInMins": 0.0
+ }
+ ]
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/BastionShareableLinkCreate.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/BastionShareableLinkCreate.json
new file mode 100644
index 000000000000..adb3f615cf14
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/BastionShareableLinkCreate.json
@@ -0,0 +1,45 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "bastionHostName": "bastionhosttenant",
+ "bslRequest": {
+ "vms": [
+ {
+ "vm": {
+ "id": "/subscriptions/subid/resourceGroups/rgx/providers/Microsoft.Compute/virtualMachines/vm1"
+ }
+ },
+ {
+ "vm": {
+ "id": "/subscriptions/subid/resourceGroups/rgx/providers/Microsoft.Compute/virtualMachines/vm2"
+ }
+ }
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "vm": {
+ "id": "/subscriptions/subid/resourceGroups/rgx/providers/Microsoft.Compute/virtualMachines/vm1"
+ },
+ "bsl": "http://bst-bastionhostid.bastion.com/api/shareable-url/tokenvm1",
+ "createdAt": "2019-10-18T12:00:00.0000Z"
+ },
+ {
+ "vm": {
+ "id": "/subscriptions/subid/resourceGroups/rgx/providers/Microsoft.Compute/virtualMachines/vm2"
+ },
+ "bsl": "http://bst-bastionhostid.bastion.com/api/shareable-url/tokenvm2",
+ "createdAt": "2019-10-17T12:00:00.0000Z"
+ }
+ ]
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/BastionShareableLinkDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/BastionShareableLinkDelete.json
new file mode 100644
index 000000000000..c866f53e36ea
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/BastionShareableLinkDelete.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "bastionHostName": "bastionhosttenant",
+ "bslRequest": {
+ "vms": [
+ {
+ "vm": {
+ "id": "/subscriptions/subid/resourceGroups/rgx/providers/Microsoft.Compute/virtualMachines/vm1"
+ }
+ },
+ {
+ "vm": {
+ "id": "/subscriptions/subid/resourceGroups/rgx/providers/Microsoft.Compute/virtualMachines/vm2"
+ }
+ }
+ ]
+ }
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/BastionShareableLinkGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/BastionShareableLinkGet.json
new file mode 100644
index 000000000000..cf90973da725
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/BastionShareableLinkGet.json
@@ -0,0 +1,44 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "bastionHostName": "bastionhosttenant",
+ "bslRequest": {
+ "vms": [
+ {
+ "vm": {
+ "id": "/subscriptions/subid/resourceGroups/rgx/providers/Microsoft.Compute/virtualMachines/vm1"
+ }
+ },
+ {
+ "vm": {
+ "id": "/subscriptions/subid/resourceGroups/rgx/providers/Microsoft.Compute/virtualMachines/vm2"
+ }
+ }
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "vm": {
+ "id": "/subscriptions/subid/resourceGroups/rgx/providers/Microsoft.Compute/virtualMachines/vm1"
+ },
+ "bsl": "http://bst-bastionhostid.bastion.com/api/shareable-url/tokenvm1",
+ "createdAt": "2019-10-18T12:00:00.0000Z"
+ },
+ {
+ "vm": {
+ "id": "/subscriptions/subid/resourceGroups/rgx/providers/Microsoft.Compute/virtualMachines/vm2"
+ },
+ "bsl": "http://bst-bastionhostid.bastion.com/api/shareable-url/tokenvm2",
+ "createdAt": "2019-10-17T12:00:00.0000Z"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/CheckDnsNameAvailability.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/CheckDnsNameAvailability.json
new file mode 100644
index 000000000000..a143c61640f5
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/CheckDnsNameAvailability.json
@@ -0,0 +1,15 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "location": "westus",
+ "domainNameLabel": "testdns"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "available": false
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/CheckPrivateLinkServiceVisibility.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/CheckPrivateLinkServiceVisibility.json
new file mode 100644
index 000000000000..71ee4a00004c
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/CheckPrivateLinkServiceVisibility.json
@@ -0,0 +1,18 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "location": "westus",
+ "parameters": {
+ "privateLinkServiceAlias": "mypls.00000000-0000-0000-0000-000000000000.azure.privatelinkservice"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "visible": true
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/CheckPrivateLinkServiceVisibilityByResourceGroup.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/CheckPrivateLinkServiceVisibilityByResourceGroup.json
new file mode 100644
index 000000000000..50a0e592fc7f
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/CheckPrivateLinkServiceVisibilityByResourceGroup.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "location": "westus",
+ "resourceGroupName": "rg1",
+ "parameters": {
+ "privateLinkServiceAlias": "mypls.00000000-0000-0000-0000-000000000000.azure.privatelinkservice"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "visible": true
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/CloudServiceNetworkInterfaceGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/CloudServiceNetworkInterfaceGet.json
new file mode 100644
index 000000000000..94012add8807
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/CloudServiceNetworkInterfaceGet.json
@@ -0,0 +1,65 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkInterfaceName": "nic1",
+ "cloudServiceName": "cs1",
+ "roleInstanceName": "TestVMRole_IN_0"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "nic1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/cloudServices/cs1/roleInstances/TestVMRole_IN_0/networkInterfaces/nic1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ipConfigurations": [
+ {
+ "name": "ip1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/cloudServices/cs1/roleInstances/TestVMRole_IN_0/networkInterfaces/nic1/ipConfigurations/ip1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "10.0.0.5",
+ "privateIPAllocationMethod": "Dynamic",
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/cloudServices/cs1/roleInstances/TestVMRole_IN_0/networkInterfaces/nic1/ipConfigurations/ip1/publicIPAddresses/pub1"
+ },
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1"
+ },
+ "primary": true,
+ "privateIPAddressVersion": "IPv4",
+ "loadBalancerBackendAddressPools": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb1/backendAddressPools/addressPool1"
+ }
+ ],
+ "loadBalancerInboundNatRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb1/inboundNatRules/natPool1.1"
+ }
+ ]
+ }
+ }
+ ],
+ "dnsSettings": {
+ "dnsServers": [],
+ "appliedDnsServers": [],
+ "internalDomainNameSuffix": "dns.cdmx.internal.cloudapp.net"
+ },
+ "macAddress": "00-00-00-00-00-00",
+ "enableAcceleratedNetworking": false,
+ "enableIPForwarding": false,
+ "networkSecurityGroup": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/nsg1"
+ },
+ "primary": true,
+ "roleInstance": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/cloudServices/cs1/roleInstances/TestVMRole_IN_0"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/CloudServiceNetworkInterfaceList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/CloudServiceNetworkInterfaceList.json
new file mode 100644
index 000000000000..3dd70d7f7e20
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/CloudServiceNetworkInterfaceList.json
@@ -0,0 +1,118 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "cloudServiceName": "cs1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "nic1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/cloudServices/cs1/roleInstances/TestVMRole_IN_0/networkInterfaces/nic1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ipConfigurations": [
+ {
+ "name": "ip1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/cloudServices/cs1/roleInstances/TestVMRole_IN_0/networkInterfaces/nic1/ipConfigurations/ip1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "10.0.0.4",
+ "privateIPAllocationMethod": "Dynamic",
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/cloudServices/cs1/roleInstances/TestVMRole_IN_0/networkInterfaces/nic1/ipConfigurations/ip1/publicIPAddresses/pub1"
+ },
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1"
+ },
+ "primary": true,
+ "privateIPAddressVersion": "IPv4",
+ "loadBalancerBackendAddressPools": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb1/backendAddressPools/addressPool1"
+ }
+ ],
+ "loadBalancerInboundNatRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb1/inboundNatRules/natPool1.0"
+ }
+ ]
+ }
+ }
+ ],
+ "dnsSettings": {
+ "dnsServers": [],
+ "appliedDnsServers": [],
+ "internalDomainNameSuffix": "ruw4wz3grewudjsyzrxj44pxod.cdmx.internal.cloudapp.net"
+ },
+ "macAddress": "00-00-00-00-00-00",
+ "enableAcceleratedNetworking": false,
+ "enableIPForwarding": false,
+ "networkSecurityGroup": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/nsg1"
+ },
+ "primary": true,
+ "roleInstance": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/cloudServices/cs1/roleInstances/TestVMRole_IN_0"
+ }
+ }
+ },
+ {
+ "name": "nic1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/cloudServices/cs1/roleInstances/TestVMRole_IN_1/networkInterfaces/nic1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ipConfigurations": [
+ {
+ "name": "ip1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/cloudServices/cs1/roleInstances/TestVMRole_IN_1/networkInterfaces/nic1/ipConfigurations/ip1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "10.0.0.5",
+ "privateIPAllocationMethod": "Dynamic",
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/cloudServices/cs1/roleInstances/TestVMRole_IN_1/networkInterfaces/nic1/ipConfigurations/ip1/publicIPAddresses/pub1"
+ },
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1"
+ },
+ "primary": true,
+ "privateIPAddressVersion": "IPv4",
+ "loadBalancerBackendAddressPools": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb1/backendAddressPools/addressPool1"
+ }
+ ],
+ "loadBalancerInboundNatRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb1/inboundNatRules/natPool1.1"
+ }
+ ]
+ }
+ }
+ ],
+ "dnsSettings": {
+ "dnsServers": [],
+ "appliedDnsServers": [],
+ "internalDomainNameSuffix": "ruw4wz3grewudjsyzrxj44pxod.cdmx.internal.cloudapp.net"
+ },
+ "macAddress": "00-00-00-00-00-00",
+ "enableAcceleratedNetworking": false,
+ "enableIPForwarding": false,
+ "networkSecurityGroup": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/nsg1"
+ },
+ "primary": true,
+ "roleInstance": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/cloudServices/cs1/roleInstances/TestVMRole_IN_1"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/CloudServicePublicIpGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/CloudServicePublicIpGet.json
new file mode 100644
index 000000000000..1d6651c825e1
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/CloudServicePublicIpGet.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "cloudServiceName": "cs1",
+ "resourceGroupName": "cs-tester",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "roleInstanceName": "Test_VM_0",
+ "networkInterfaceName": "nic1",
+ "ipConfigurationName": "ip1",
+ "publicIpAddressName": "pub1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/cs-tester/providers/Microsoft.Compute/cloudServices/cs1/roleInstances/Test_VM_0/networkInterfaces/nic1/ipConfigurations/ip1/publicIPAddresses/pub1",
+ "name": "pub1",
+ "properties": {
+ "publicIPAllocationMethod": "Dynamic",
+ "publicIPAddressVersion": "IPv4",
+ "ipConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/cs-tester/providers/Microsoft.Compute/cloudServices/cs1/roleInstances/Test_VM_0/networkInterfaces/nic1/ipConfigurations/ip1"
+ },
+ "dnsSettings": {
+ "domainNameLabel": "vm1.testvmssacc",
+ "fqdn": "vm1.testvmssacc.southeastasia.cloudapp.azure.com"
+ },
+ "ipAddress": "13.67.119.72",
+ "idleTimeoutInMinutes": 10,
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/CloudServicePublicIpListAll.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/CloudServicePublicIpListAll.json
new file mode 100644
index 000000000000..5b11123281e0
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/CloudServicePublicIpListAll.json
@@ -0,0 +1,52 @@
+{
+ "parameters": {
+ "cloudServiceName": "cs1",
+ "resourceGroupName": "cs-tester",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/cs-tester/providers/Microsoft.Compute/cloudServices/cs1/roleInstances/Test_VM_0/networkInterfaces/nic1/ipConfigurations/ip1/publicIPAddresses/pub1",
+ "name": "pub1",
+ "properties": {
+ "publicIPAllocationMethod": "Dynamic",
+ "publicIPAddressVersion": "IPv4",
+ "ipConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/cs-tester/providers/Microsoft.Compute/cloudServices/cs1/roleInstances/Test_VM_0/networkInterfaces/nic1/ipConfigurations/ip1"
+ },
+ "dnsSettings": {
+ "domainNameLabel": "vm1.testvmssacc",
+ "fqdn": "vm1.testvmssacc.southeastasia.cloudapp.azure.com"
+ },
+ "ipAddress": "13.67.119.72",
+ "idleTimeoutInMinutes": 10,
+ "provisioningState": "Succeeded"
+ }
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/cs-tester/providers/Microsoft.Compute/cloudServices/cs1/roleInstances/Test_VM_3/networkInterfaces/nic1/ipConfigurations/ip1/publicIPAddresses/pub1",
+ "name": "pub1",
+ "properties": {
+ "publicIPAllocationMethod": "Dynamic",
+ "publicIPAddressVersion": "IPv4",
+ "ipConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/cs-tester/providers/Microsoft.Compute/cloudServices/cs1/roleInstances/Test_VM_3/networkInterfaces/nic1/ipConfigurations/ip1"
+ },
+ "dnsSettings": {
+ "domainNameLabel": "vm3.testvmssacc",
+ "fqdn": "vm3.testvmssacc.southeastasia.cloudapp.azure.com"
+ },
+ "ipAddress": "13.67.118.216",
+ "idleTimeoutInMinutes": 10,
+ "provisioningState": "Succeeded"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/CloudServiceRoleInstanceNetworkInterfaceList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/CloudServiceRoleInstanceNetworkInterfaceList.json
new file mode 100644
index 000000000000..8cdcd90bb227
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/CloudServiceRoleInstanceNetworkInterfaceList.json
@@ -0,0 +1,68 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "cloudServiceName": "cs1",
+ "roleInstanceName": "TestVMRole_IN_0"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "nic1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/cloudServices/cs1/roleInstances/TestVMRole_IN_0/networkInterfaces/nic1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ipConfigurations": [
+ {
+ "name": "ip1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/cloudServices/cs1/roleInstances/TestVMRole_IN_0/networkInterfaces/nic1/ipConfigurations/ip1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "10.0.0.5",
+ "privateIPAllocationMethod": "Dynamic",
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/cloudServices/cs1/roleInstances/TestVMRole_IN_0/networkInterfaces/nic1/ipConfigurations/ip1/publicIPAddresses/pub1"
+ },
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1"
+ },
+ "primary": true,
+ "privateIPAddressVersion": "IPv4",
+ "loadBalancerBackendAddressPools": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb1/backendAddressPools/addressPool1"
+ }
+ ],
+ "loadBalancerInboundNatRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb1/inboundNatRules/natPool1.1"
+ }
+ ]
+ }
+ }
+ ],
+ "dnsSettings": {
+ "dnsServers": [],
+ "appliedDnsServers": [],
+ "internalDomainNameSuffix": "ruw4wz3grewudjsyzrxj44pxod.cdmx.internal.cloudapp.net"
+ },
+ "macAddress": "00-00-00-00-00-00",
+ "enableAcceleratedNetworking": false,
+ "enableIPForwarding": false,
+ "networkSecurityGroup": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/nsg1"
+ },
+ "primary": true,
+ "roleInstance": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/cloudServices/cs1/roleInstances/TestVMRole_IN_0"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/CloudServiceRoleInstancePublicIpList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/CloudServiceRoleInstancePublicIpList.json
new file mode 100644
index 000000000000..b1d9317a24b1
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/CloudServiceRoleInstancePublicIpList.json
@@ -0,0 +1,37 @@
+{
+ "parameters": {
+ "cloudServiceName": "cs1",
+ "resourceGroupName": "cs-tester",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "roleInstanceName": "Test_VM_0",
+ "networkInterfaceName": "nic1",
+ "ipConfigurationName": "ip1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/cs-tester/providers/Microsoft.Compute/cloudServices/cs1/roleInstances/Test_VM_0/networkInterfaces/nic1/ipConfigurations/ip1/publicIPAddresses/pub1",
+ "name": "pub1",
+ "properties": {
+ "publicIPAllocationMethod": "Dynamic",
+ "publicIPAddressVersion": "IPv4",
+ "ipConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/cs-tester/providers/Microsoft.Compute/cloudServices/cs1/roleInstances/Test_VM_0/networkInterfaces/nic1/ipConfigurations/ip1"
+ },
+ "dnsSettings": {
+ "domainNameLabel": "vm1.testvmssacc",
+ "fqdn": "vm1.testvmssacc.southeastasia.cloudapp.azure.com"
+ },
+ "ipAddress": "13.67.119.72",
+ "idleTimeoutInMinutes": 10,
+ "provisioningState": "Succeeded"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/CustomIpPrefixCreateCustomizedValues.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/CustomIpPrefixCreateCustomizedValues.json
new file mode 100644
index 000000000000..d59e567520e0
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/CustomIpPrefixCreateCustomizedValues.json
@@ -0,0 +1,57 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "customIpPrefixName": "test-customipprefix",
+ "zones": [
+ "1"
+ ],
+ "parameters": {
+ "location": "westus",
+ "properties": {
+ "cidr": "0.0.0.0/24"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "test-customipprefix",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/customIpPrefixes/test-customipprefix",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "location": "westus",
+ "zones": [
+ "1"
+ ],
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-00000000",
+ "cidr": "192.168.254.2/24",
+ "commissionedState": "Provisioning",
+ "publicIpPrefixes": []
+ },
+ "type": "Microsoft.Network/customIpPrefixes"
+ }
+ },
+ "201": {
+ "body": {
+ "name": "test-customipprefix",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/customIpPrefixes/test-customipprefix",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "location": "westus",
+ "zones": [
+ "1"
+ ],
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-00000000",
+ "cidr": "192.168.254.2/24",
+ "commissionedState": "Provisioning",
+ "publicIpPrefixes": []
+ },
+ "type": "Microsoft.Network/customIpPrefixes"
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/CustomIpPrefixDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/CustomIpPrefixDelete.json
new file mode 100644
index 000000000000..f403f12d0044
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/CustomIpPrefixDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "customIpPrefixName": "test-customipprefix"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/CustomIpPrefixGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/CustomIpPrefixGet.json
new file mode 100644
index 000000000000..cee5246cf9b7
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/CustomIpPrefixGet.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "customIpPrefixName": "test-customipprefix"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "test-customipprefix",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/customIpPrefixes/test-customipprefix",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-00000000",
+ "cidr": "0.0.0.0/24",
+ "commissionedState": "Commissioned",
+ "publicIpPrefixes": []
+ },
+ "type": "Microsoft.Network/customIpPrefixes"
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/CustomIpPrefixList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/CustomIpPrefixList.json
new file mode 100644
index 000000000000..70d690295156
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/CustomIpPrefixList.json
@@ -0,0 +1,43 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "test-customipprefix",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/customIpPrefixes/test-customipprefix",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-00000000",
+ "cidr": "0.0.0.0/24",
+ "commissionedState": "Commissioned",
+ "publicIpPrefixes": []
+ },
+ "type": "Microsoft.Network/customIpPrefixes"
+ },
+ {
+ "name": "test-customipprefix2",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/customIpPrefixes/test-customipprefix2",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-00000000",
+ "cidr": "0.0.1.0/30",
+ "commissionedState": "Commissioned",
+ "publicIpPrefixes": []
+ },
+ "type": "Microsoft.Network/customIpPrefixes"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/CustomIpPrefixListAll.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/CustomIpPrefixListAll.json
new file mode 100644
index 000000000000..f1e03d5a4af4
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/CustomIpPrefixListAll.json
@@ -0,0 +1,56 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "test-customipprefix",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/customIpPrefixes/test-customipprefix",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-00000000",
+ "cidr": "0.0.0.0/24",
+ "commissionedState": "Commissioned",
+ "publicIpPrefixes": []
+ },
+ "type": "Microsoft.Network/customIpPrefixes"
+ },
+ {
+ "name": "test-customipprefix2",
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/customIpPrefixes/test-customipprefix2",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-00000000",
+ "cidr": "0.0.1.0/30",
+ "commissionedState": "Commissioned",
+ "publicIpPrefixes": []
+ },
+ "type": "Microsoft.Network/customIpPrefixes"
+ },
+ {
+ "name": "test-customipprefix2",
+ "id": "/subscriptions/subid/resourceGroups/rg3/providers/Microsoft.Network/customIpPrefixes/test-customipprefix2",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-00000000",
+ "cidr": "0.0.1.0/22",
+ "commissionedState": "Provisioning",
+ "publicIpPrefixes": []
+ },
+ "type": "Microsoft.Network/customIpPrefixes"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/CustomIpPrefixUpdateTags.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/CustomIpPrefixUpdateTags.json
new file mode 100644
index 000000000000..08b91dca7bcb
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/CustomIpPrefixUpdateTags.json
@@ -0,0 +1,42 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "customIpPrefixName": "test-customipprefix",
+ "zones": [
+ "1"
+ ],
+ "parameters": {
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "test-customipprefix",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/customIpPrefixes/test-customipprefix",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "location": "westus",
+ "zones": [
+ "1"
+ ],
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-00000000",
+ "cidr": "192.168.254.2/24",
+ "commissionedState": "Provisioning",
+ "publicIpPrefixes": []
+ },
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "type": "Microsoft.Network/customIpPrefixes"
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DdosCustomPolicyCreate.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DdosCustomPolicyCreate.json
new file mode 100644
index 000000000000..f4820aceed2d
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DdosCustomPolicyCreate.json
@@ -0,0 +1,58 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "ddosCustomPolicyName": "test-ddos-custom-policy",
+ "parameters": {
+ "location": "centraluseuap",
+ "properties": {
+ "protocolCustomSettings": [
+ {
+ "protocol": "Tcp"
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "test-ddos-custom-policy",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/ddosCustomPolicies/test-ddos-custom-policy",
+ "type": "Microsoft.Network/ddosCustomPolicies",
+ "location": "centraluseuap",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-000000000000",
+ "publicIPAddresses": [],
+ "protocolCustomSettings": [
+ {
+ "protocol": "Tcp",
+ "triggerRateOverride": "20000"
+ }
+ ]
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "test-ddos-custom-policy",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/ddosCustomPolicies/test-ddos-custom-policy",
+ "type": "Microsoft.Network/ddosCustomPolicies",
+ "location": "centraluseuap",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-000000000000",
+ "publicIPAddresses": [],
+ "protocolCustomSettings": [
+ {
+ "protocol": "Tcp",
+ "triggerRateOverride": "20000"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DdosCustomPolicyDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DdosCustomPolicyDelete.json
new file mode 100644
index 000000000000..510dba2d6311
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DdosCustomPolicyDelete.json
@@ -0,0 +1,16 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "ddosCustomPolicyName": "test-ddos-custom-policy",
+ "parameters": {
+ "properties": {}
+ }
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DdosCustomPolicyGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DdosCustomPolicyGet.json
new file mode 100644
index 000000000000..b7e62af8eb82
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DdosCustomPolicyGet.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "ddosCustomPolicyName": "test-ddos-custom-policy"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "test-ddos-custom-policy",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/ddosCustomPolicies/test-ddos-custom-policy",
+ "type": "Microsoft.Network/ddosCustomPolicies",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-000000000000",
+ "publicIPAddresses": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/test-ip"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DdosCustomPolicyUpdateTags.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DdosCustomPolicyUpdateTags.json
new file mode 100644
index 000000000000..b744e7760731
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DdosCustomPolicyUpdateTags.json
@@ -0,0 +1,39 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "ddosCustomPolicyName": "test-ddos-custom-policy",
+ "parameters": {
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "test-ddos-custom-policy",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/ddosCustomPolicies/test-ddos-custom-policy",
+ "type": "Microsoft.Network/ddosCustomPolicies",
+ "location": "westus",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-000000000000",
+ "publicIPAddresses": [],
+ "protocolCustomSettings": [
+ {
+ "protocol": "Tcp",
+ "triggerRateOverride": "20000"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DdosProtectionPlanCreate.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DdosProtectionPlanCreate.json
new file mode 100644
index 000000000000..b63940273921
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DdosProtectionPlanCreate.json
@@ -0,0 +1,40 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "ddosProtectionPlanName": "test-plan",
+ "parameters": {
+ "location": "westus",
+ "properties": {}
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "test-plan",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/ddosProtectionPlans/test-plan",
+ "type": "Microsoft.Network/ddosProtectionPlans",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-000000000000",
+ "virtualNetworks": []
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "test-plan",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/ddosProtectionPlans/test-plan",
+ "type": "Microsoft.Network/ddosProtectionPlans",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-000000000000",
+ "virtualNetworks": []
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DdosProtectionPlanDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DdosProtectionPlanDelete.json
new file mode 100644
index 000000000000..dd960cfb85fc
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DdosProtectionPlanDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "ddosProtectionPlanName": "test-plan"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DdosProtectionPlanGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DdosProtectionPlanGet.json
new file mode 100644
index 000000000000..d7b34dd75ba1
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DdosProtectionPlanGet.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "ddosProtectionPlanName": "test-plan"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "test-plan",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/ddosProtectionPlans/test-plan",
+ "type": "Microsoft.Network/ddosProtectionPlans",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-000000000000",
+ "virtualNetworks": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DdosProtectionPlanList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DdosProtectionPlanList.json
new file mode 100644
index 000000000000..2426068de0d9
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DdosProtectionPlanList.json
@@ -0,0 +1,45 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/ddosProtectionPlans/plan1",
+ "name": "plan1",
+ "type": "Microsoft.Network/ddosProtectionPlans",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-000000000000",
+ "virtualNetworks": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet"
+ }
+ ]
+ }
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/ddosProtectionPlans/plan2",
+ "name": "plan2",
+ "type": "Microsoft.Network/ddosProtectionPlans",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-000000000000",
+ "virtualNetworks": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DdosProtectionPlanListAll.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DdosProtectionPlanListAll.json
new file mode 100644
index 000000000000..4d94c96dfd01
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DdosProtectionPlanListAll.json
@@ -0,0 +1,47 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/ddosProtectionPlans/plan1",
+ "name": "plan1",
+ "type": "Microsoft.Network/ddosProtectionPlans",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-000000000000",
+ "virtualNetworks": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet1"
+ }
+ ]
+ }
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/ddosProtectionPlans/plan2",
+ "name": "plan2",
+ "type": "Microsoft.Network/ddosProtectionPlans",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-000000000000",
+ "virtualNetworks": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet3"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DdosProtectionPlanUpdateTags.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DdosProtectionPlanUpdateTags.json
new file mode 100644
index 000000000000..2baa24c252a2
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DdosProtectionPlanUpdateTags.json
@@ -0,0 +1,33 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "ddosProtectionPlanName": "test-plan",
+ "parameters": {
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "test-plan",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/ddosProtectionPlans/test-plan",
+ "type": "Microsoft.Network/ddosProtectionPlans",
+ "location": "westus",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-000000000000",
+ "virtualNetworks": []
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DefaultSecurityRuleGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DefaultSecurityRuleGet.json
new file mode 100644
index 000000000000..6dc86762566e
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DefaultSecurityRuleGet.json
@@ -0,0 +1,33 @@
+{
+ "parameters": {
+ "resourceGroupName": "testrg",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "networkSecurityGroupName": "nsg1",
+ "defaultSecurityRuleName": "AllowVnetInBound"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "AllowVnetInBound",
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/networkSecurityGroups/nsg1/defaultSecurityRules/AllowVnetInBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow inbound traffic from all VMs in VNET",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "VirtualNetwork",
+ "destinationAddressPrefix": "VirtualNetwork",
+ "access": "Allow",
+ "priority": 65000,
+ "direction": "Inbound",
+ "sourcePortRanges": [],
+ "destinationPortRanges": [],
+ "sourceAddressPrefixes": [],
+ "destinationAddressPrefixes": []
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DefaultSecurityRuleList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DefaultSecurityRuleList.json
new file mode 100644
index 000000000000..50fcb27d86a2
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DefaultSecurityRuleList.json
@@ -0,0 +1,136 @@
+{
+ "parameters": {
+ "resourceGroupName": "testrg",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "networkSecurityGroupName": "nsg1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "AllowVnetInBound",
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/networkSecurityGroups/nsg1/defaultSecurityRules/AllowVnetInBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow inbound traffic from all VMs in VNET",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "VirtualNetwork",
+ "destinationAddressPrefix": "VirtualNetwork",
+ "access": "Allow",
+ "priority": 65000,
+ "direction": "Inbound",
+ "sourcePortRanges": [],
+ "destinationPortRanges": [],
+ "sourceAddressPrefixes": [],
+ "destinationAddressPrefixes": []
+ }
+ },
+ {
+ "name": "AllowAzureLoadBalancerInBound",
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/networkSecurityGroups/nsg1/defaultSecurityRules/AllowAzureLoadBalancerInBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow inbound traffic from azure load balancer",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "AzureLoadBalancer",
+ "destinationAddressPrefix": "*",
+ "access": "Allow",
+ "priority": 65001,
+ "direction": "Inbound",
+ "sourcePortRanges": [],
+ "destinationPortRanges": [],
+ "sourceAddressPrefixes": [],
+ "destinationAddressPrefixes": []
+ }
+ },
+ {
+ "name": "DenyAllInBound",
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/networkSecurityGroups/nsg1/defaultSecurityRules/DenyAllInBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Deny all inbound traffic",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "*",
+ "destinationAddressPrefix": "*",
+ "access": "Deny",
+ "priority": 65500,
+ "direction": "Inbound",
+ "sourcePortRanges": [],
+ "destinationPortRanges": [],
+ "sourceAddressPrefixes": [],
+ "destinationAddressPrefixes": []
+ }
+ },
+ {
+ "name": "AllowVnetOutBound",
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/networkSecurityGroups/nsg1/defaultSecurityRules/AllowVnetOutBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow outbound traffic from all VMs to all VMs in VNET",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "VirtualNetwork",
+ "destinationAddressPrefix": "VirtualNetwork",
+ "access": "Allow",
+ "priority": 65000,
+ "direction": "Outbound",
+ "sourcePortRanges": [],
+ "destinationPortRanges": [],
+ "sourceAddressPrefixes": [],
+ "destinationAddressPrefixes": []
+ }
+ },
+ {
+ "name": "AllowInternetOutBound",
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/networkSecurityGroups/nsg1/defaultSecurityRules/AllowInternetOutBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow outbound traffic from all VMs to Internet",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "*",
+ "destinationAddressPrefix": "Internet",
+ "access": "Allow",
+ "priority": 65001,
+ "direction": "Outbound",
+ "sourcePortRanges": [],
+ "destinationPortRanges": [],
+ "sourceAddressPrefixes": [],
+ "destinationAddressPrefixes": []
+ }
+ },
+ {
+ "name": "DenyAllOutBound",
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/networkSecurityGroups/nsg1/defaultSecurityRules/DenyAllOutBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Deny all outbound traffic",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "*",
+ "destinationAddressPrefix": "*",
+ "access": "Deny",
+ "priority": 65500,
+ "direction": "Outbound",
+ "sourcePortRanges": [],
+ "destinationPortRanges": [],
+ "sourceAddressPrefixes": [],
+ "destinationAddressPrefixes": []
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DscpConfigurationCreate.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DscpConfigurationCreate.json
new file mode 100644
index 000000000000..11a313d4369e
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DscpConfigurationCreate.json
@@ -0,0 +1,176 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "dscpConfigurationName": "mydscpconfig",
+ "parameters": {
+ "properties": {
+ "markings": [
+ 46,
+ 10
+ ],
+ "sourceIpRanges": [
+ {
+ "startIP": "127.0.0.1",
+ "endIP": "127.0.0.2"
+ },
+ {
+ "startIP": "127.0.1.1",
+ "endIP": "127.0.1.2"
+ }
+ ],
+ "destinationIpRanges": [
+ {
+ "startIP": "127.0.10.1",
+ "endIP": "127.0.10.2"
+ },
+ {
+ "startIP": "127.0.11.1",
+ "endIP": "127.0.11.2"
+ }
+ ],
+ "sourcePortRanges": [
+ {
+ "start": 10,
+ "end": 11
+ },
+ {
+ "start": 20,
+ "end": 21
+ }
+ ],
+ "destinationPortRanges": [
+ {
+ "start": 15,
+ "end": 15
+ },
+ {
+ "start": 26,
+ "end": 27
+ }
+ ],
+ "protocol": "Tcp"
+ },
+ "location": "eastus"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "mydscpConfig",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/dscpConfiguration/mydscpConfig",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "markings": [
+ 46,
+ 10
+ ],
+ "sourceIpRanges": [
+ {
+ "startIP": "127.0.0.1",
+ "endIP": "127.0.0.2"
+ },
+ {
+ "startIP": "127.0.1.1",
+ "endIP": "127.0.1.2"
+ }
+ ],
+ "destinationIpRanges": [
+ {
+ "startIP": "127.0.10.1",
+ "endIP": "127.0.10.2"
+ },
+ {
+ "startIP": "127.0.11.1",
+ "endIP": "127.0.11.2"
+ }
+ ],
+ "sourcePortRanges": [
+ {
+ "start": 10,
+ "end": 11
+ },
+ {
+ "start": 20,
+ "end": 21
+ }
+ ],
+ "destinationPortRanges": [
+ {
+ "start": 15,
+ "end": 15
+ },
+ {
+ "start": 26,
+ "end": 27
+ }
+ ],
+ "protocol": "Tcp",
+ "associatedNetworkInterfaces": [],
+ "qosCollectionId": "0f8fad5b-d9cb-469f-a165-70867728950e"
+ },
+ "type": "Microsoft.Network/dscpConfiguration"
+ }
+ },
+ "201": {
+ "body": {
+ "name": "mydscpConfig",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/dscpConfiguration/mydscpConfig",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "markings": [
+ 46,
+ 10
+ ],
+ "sourceIpRanges": [
+ {
+ "startIP": "127.0.0.1",
+ "endIP": "127.0.0.2"
+ },
+ {
+ "startIP": "127.0.1.1",
+ "endIP": "127.0.1.2"
+ }
+ ],
+ "destinationIpRanges": [
+ {
+ "startIP": "127.0.10.1",
+ "endIP": "127.0.10.2"
+ },
+ {
+ "startIP": "127.0.11.1",
+ "endIP": "127.0.11.2"
+ }
+ ],
+ "sourcePortRanges": [
+ {
+ "start": 10,
+ "end": 11
+ },
+ {
+ "start": 20,
+ "end": 21
+ }
+ ],
+ "destinationPortRanges": [
+ {
+ "start": 15,
+ "end": 15
+ },
+ {
+ "start": 26,
+ "end": 27
+ }
+ ],
+ "protocol": "Tcp",
+ "associatedNetworkInterfaces": [],
+ "qosCollectionId": "0f8fad5b-d9cb-469f-a165-70867728950e"
+ },
+ "type": "Microsoft.Network/dscpConfiguration"
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DscpConfigurationDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DscpConfigurationDelete.json
new file mode 100644
index 000000000000..cfb04e66b5d1
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DscpConfigurationDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "dscpConfigurationName": "mydscpConfig"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DscpConfigurationGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DscpConfigurationGet.json
new file mode 100644
index 000000000000..b7f5e7bdbbd4
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DscpConfigurationGet.json
@@ -0,0 +1,55 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "dscpConfigurationName": "mydscpConfig"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "mydscpConfig",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/dscpConfiguration/mydscpConfig",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "associatedNetworkInterfaces": [
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/test-nic1",
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/test-nic2"
+ ],
+ "qosCollectionId": "0f8fad5b-d9cb-469f-a165-70867728950e",
+ "markings": [
+ 46,
+ 10
+ ],
+ "sourceIpRanges": [
+ {
+ "startIP": "127.0.0.1",
+ "endIP": "127.0.0.2"
+ }
+ ],
+ "destinationIpRanges": [
+ {
+ "startIP": "127.0.10.1",
+ "endIP": "127.0.10.2"
+ }
+ ],
+ "sourcePortRanges": [
+ {
+ "start": 11,
+ "end": 12
+ }
+ ],
+ "destinationPortRanges": [
+ {
+ "start": 61,
+ "end": 62
+ }
+ ],
+ "protocol": "Tcp"
+ },
+ "type": "Microsoft.Network/dscpConfiguration"
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DscpConfigurationList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DscpConfigurationList.json
new file mode 100644
index 000000000000..00d70ee7148c
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DscpConfigurationList.json
@@ -0,0 +1,101 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "mydscpConfig",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/dscpConfiguration/mydscpConfig",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "associatedNetworkInterfaces": [
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/test-nic1",
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/test-nic2"
+ ],
+ "qosCollectionId": "0f8fad5b-d9cb-469f-a165-70867728950e",
+ "markings": [
+ 46,
+ 10
+ ],
+ "sourceIpRanges": [
+ {
+ "startIP": "127.0.0.1",
+ "endIP": "127.0.0.2"
+ }
+ ],
+ "destinationIpRanges": [
+ {
+ "startIP": "127.0.10.1",
+ "endIP": "127.0.10.2"
+ }
+ ],
+ "sourcePortRanges": [
+ {
+ "start": 11,
+ "end": 12
+ }
+ ],
+ "destinationPortRanges": [
+ {
+ "start": 61,
+ "end": 62
+ }
+ ],
+ "protocol": "Tcp"
+ },
+ "type": "Microsoft.Network/dscpConfiguration"
+ },
+ {
+ "name": "mydscpConfig2",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/dscpConfiguration/mydscpConfig2",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "associatedNetworkInterfaces": [
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/test-nic3",
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/test-nic4"
+ ],
+ "qosCollectionId": "9as24mf6-d9cb-7a7f-a165-70867728950e",
+ "markings": [
+ 46,
+ 10
+ ],
+ "sourceIpRanges": [
+ {
+ "startIP": "128.0.0.1",
+ "endIP": "128.0.0.2"
+ }
+ ],
+ "destinationIpRanges": [
+ {
+ "startIP": "128.0.10.1",
+ "endIP": "128.0.10.2"
+ }
+ ],
+ "sourcePortRanges": [
+ {
+ "start": 11,
+ "end": 12
+ }
+ ],
+ "destinationPortRanges": [
+ {
+ "start": 61,
+ "end": 62
+ }
+ ],
+ "protocol": "Tcp"
+ },
+ "type": "Microsoft.Network/dscpConfiguration"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DscpConfigurationListAll.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DscpConfigurationListAll.json
new file mode 100644
index 000000000000..1eedbc6cd8ea
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/DscpConfigurationListAll.json
@@ -0,0 +1,100 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "mydscpConfig",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/dscpConfiguration/mydscpConfig",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "associatedNetworkInterfaces": [
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/test-nic1",
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/test-nic2"
+ ],
+ "qosCollectionId": "0f8fad5b-d9cb-469f-a165-70867728950e",
+ "markings": [
+ 46,
+ 10
+ ],
+ "sourceIpRanges": [
+ {
+ "startIP": "127.0.0.1",
+ "endIP": "127.0.0.2"
+ }
+ ],
+ "destinationIpRanges": [
+ {
+ "startIP": "127.0.10.1",
+ "endIP": "127.0.10.2"
+ }
+ ],
+ "sourcePortRanges": [
+ {
+ "start": 11,
+ "end": 12
+ }
+ ],
+ "destinationPortRanges": [
+ {
+ "start": 61,
+ "end": 62
+ }
+ ],
+ "protocol": "Tcp"
+ },
+ "type": "Microsoft.Network/dscpConfiguration"
+ },
+ {
+ "name": "mydscpConfig2",
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/dscpConfiguration/mydscpConfig2",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "associatedNetworkInterfaces": [
+ "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/networkInterfaces/test-nic3",
+ "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/networkInterfaces/test-nic4"
+ ],
+ "qosCollectionId": "9as24mf6-d9cb-7a7f-a165-70867728950e",
+ "markings": [
+ 46,
+ 10
+ ],
+ "sourceIpRanges": [
+ {
+ "startIP": "128.0.0.1",
+ "endIP": "128.0.0.2"
+ }
+ ],
+ "destinationIpRanges": [
+ {
+ "startIP": "128.0.10.1",
+ "endIP": "128.0.10.2"
+ }
+ ],
+ "sourcePortRanges": [
+ {
+ "start": 11,
+ "end": 12
+ }
+ ],
+ "destinationPortRanges": [
+ {
+ "start": 61,
+ "end": 62
+ }
+ ],
+ "protocol": "Tcp"
+ },
+ "type": "Microsoft.Network/dscpConfiguration"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/EffectiveRoutesListForConnection.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/EffectiveRoutesListForConnection.json
new file mode 100644
index 000000000000..1288f07575bd
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/EffectiveRoutesListForConnection.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualHubName": "virtualHub1",
+ "api-version": "2020-07-01",
+ "effectiveRoutesParameters": {
+ "resourceId": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/expressRouteGateways/expressRouteGatewayName/expressRouteConnections/connectionName",
+ "virtualWanResourceType": "ExpressRouteConnection"
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "Request successful. Follow the location header for the effective routes list."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/EffectiveRoutesListForRouteTable.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/EffectiveRoutesListForRouteTable.json
new file mode 100644
index 000000000000..8e923d10f5ad
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/EffectiveRoutesListForRouteTable.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualHubName": "virtualHub1",
+ "api-version": "2020-07-01",
+ "effectiveRoutesParameters": {
+ "resourceId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1",
+ "virtualWanResourceType": "RouteTable"
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "Request successful. Follow the location header for the effective routes list."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/EffectiveRoutesListForVirtualHub.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/EffectiveRoutesListForVirtualHub.json
new file mode 100644
index 000000000000..014fe13a180f
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/EffectiveRoutesListForVirtualHub.json
@@ -0,0 +1,17 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualHubName": "virtualHub1",
+ "api-version": "2020-07-01",
+ "effectiveRoutesParameters": null
+ },
+ "responses": {
+ "200": {
+ "description": "Request successful. Follow the location header for the effective routes list."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/EndpointServicesList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/EndpointServicesList.json
new file mode 100644
index 000000000000..78ba57500d73
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/EndpointServicesList.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "location": "westus",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "Microsoft.Storage",
+ "id": "/subscriptions/subid/providers/Microsoft.Network/virtualNetworkEndpointServices/Microsoft.Storage",
+ "type": "Microsoft.Network/virtualNetworkEndpointServices"
+ },
+ {
+ "name": "Microsoft.Sql",
+ "id": "/subscriptions/subid/providers/Microsoft.Network/virtualNetworkEndpointServices/Microsoft.Sql",
+ "type": "Microsoft.Network/virtualNetworkEndpointServices"
+ },
+ {
+ "name": "Microsoft.AzureActiveDirectory",
+ "id": "/subscriptions/subid/providers/Microsoft.Network/virtualNetworkEndpointServices/Microsoft.AzureActiveDirectory",
+ "type": "Microsoft.Network/virtualNetworkEndpointServices"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitARPTableList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitARPTableList.json
new file mode 100644
index 000000000000..1f8c21896d07
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitARPTableList.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "circuitName": "circuitName",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "peeringName": "peeringName",
+ "devicePath": "devicePath"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "age": 0,
+ "interface": "Microsoft",
+ "ipAddress": "IPAddress",
+ "macAddress": "macAddress"
+ }
+ ]
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitAuthorizationCreate.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitAuthorizationCreate.json
new file mode 100644
index 000000000000..8dcfaf8408ec
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitAuthorizationCreate.json
@@ -0,0 +1,36 @@
+{
+ "parameters": {
+ "circuitName": "circuitName",
+ "resourceGroupName": "rg1",
+ "authorizationName": "authorizatinName",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "authorizationParameters": {
+ "properties": {}
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "name": "authorizationName",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRouteCircuits/circuitName/authorizations/authorizationName",
+ "etag": "W/\"e22dd4b2-4c24-44cf-b702-70a472b62914\"",
+ "properties": {
+ "provisioningState": "Updating",
+ "authorizationUseStatus": "Available"
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "name": "authorizationName",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRouteCircuits/circuitName/authorizations/authorizationName",
+ "etag": "W/\"e22dd4b2-4c24-44cf-b702-70a472b62914\"",
+ "properties": {
+ "provisioningState": "Updating",
+ "authorizationUseStatus": "Available"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitAuthorizationDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitAuthorizationDelete.json
new file mode 100644
index 000000000000..c1dfbb1bb7a7
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitAuthorizationDelete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "circuitName": "circuitName",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "authorizationName": "authorizationName"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitAuthorizationGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitAuthorizationGet.json
new file mode 100644
index 000000000000..9b49ac2799c4
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitAuthorizationGet.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "circuitName": "circuitName",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "authorizationName": "authorizationName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "MyAuthorization1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRouteCircuits/circuitName/authorizations/MyAuthorization1",
+ "etag": "W/\"e33c875f-48df-4a91-b7d3-eb95b5ddbb89\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "authorizationKey": "authKey",
+ "authorizationUseStatus": "Available"
+ },
+ "type": "Microsoft.Network/expressRouteCircuits/authorizations"
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitAuthorizationList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitAuthorizationList.json
new file mode 100644
index 000000000000..ff25e6fed982
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitAuthorizationList.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "circuitName": "circuitName",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "MyAuthorization1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRouteCircuits/circuitName/authorizations/MyAuthorization1",
+ "etag": "W/\"e33c875f-48df-4a91-b7d3-eb95b5ddbb89\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "authorizationKey": "authKey",
+ "authorizationUseStatus": "Available"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitConnectionCreate.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitConnectionCreate.json
new file mode 100644
index 000000000000..c5572873d739
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitConnectionCreate.json
@@ -0,0 +1,74 @@
+{
+ "parameters": {
+ "connectionName": "circuitConnectionUSAUS",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid1",
+ "circuitName": "ExpressRouteARMCircuitA",
+ "peeringName": "AzurePrivatePeering",
+ "type": "Microsoft.Network/expressRouteCircuits/peerings/connections",
+ "expressRouteCircuitConnectionParameters": {
+ "properties": {
+ "expressRouteCircuitPeering": {
+ "id": "/subscriptions/subid1/resourceGroups/dedharcktinit/providers/Microsoft.Network/expressRouteCircuits/dedharcktlocal/peerings/AzurePrivatePeering"
+ },
+ "peerExpressRouteCircuitPeering": {
+ "id": "/subscriptions/subid2/resourceGroups/dedharcktpeer/providers/Microsoft.Network/expressRouteCircuits/dedharcktremote/peerings/AzurePrivatePeering"
+ },
+ "authorizationKey": "946a1918-b7a2-4917-b43c-8c4cdaee006a",
+ "addressPrefix": "10.0.0.0/29",
+ "ipv6CircuitConnectionConfig": {
+ "addressPrefix": "aa:bb::/125"
+ }
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid1/resourceGroups/dedharcktinit/providers/Microsoft.Network/expressRouteCircuits/ExpressRouteARMCircuitA/peerings/AzurePrivatePeering/connections/circuitConnectionUSAUS",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "name": "circuitConnectionUSAUS",
+ "properties": {
+ "expressRouteCircuitPeering": {
+ "id": "/subscriptions/subid1/resourceGroups/dedharcktinit/providers/Microsoft.Network/expressRouteCircuits/dedharcktlocal/peerings/AzurePrivatePeering"
+ },
+ "peerExpressRouteCircuitPeering": {
+ "id": "/subscriptions/subid2/resourceGroups/dedharcktpeer/providers/Microsoft.Network/expressRouteCircuits/dedharcktremote/peerings/AzurePrivatePeering"
+ },
+ "authorizationKey": "946a1918-b7a2-4917-b43c-8c4cdaee006a",
+ "addressPrefix": "10.0.0.0/24",
+ "circuitConnectionStatus": "Connected",
+ "provisioningState": "Succeeded",
+ "ipv6CircuitConnectionConfig": {
+ "addressPrefix": "aa:bb::1/125",
+ "circuitConnectionStatus": "Connected"
+ }
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid1/resourceGroups/dedharcktinit/providers/Microsoft.Network/expressRouteCircuits/ExpressRouteARMCircuitA/peerings/AzurePrivatePeering/connections/circuitConnectionUSAUS",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "name": "circuitConnectionUSAUS",
+ "properties": {
+ "expressRouteCircuitPeering": {
+ "id": "/subscriptions/subid1/resourceGroups/dedharcktinit/providers/Microsoft.Network/expressRouteCircuits/dedharcktlocal/peerings/AzurePrivatePeering"
+ },
+ "peerExpressRouteCircuitPeering": {
+ "id": "/subscriptions/subid2/resourceGroups/dedharcktpeer/providers/Microsoft.Network/expressRouteCircuits/dedharcktremote/peerings/AzurePrivatePeering"
+ },
+ "authorizationKey": "946a1918-b7a2-4917-b43c-8c4cdaee006a",
+ "addressPrefix": "10.0.0.0/24",
+ "circuitConnectionStatus": "Connected",
+ "provisioningState": "Succeeded",
+ "ipv6CircuitConnectionConfig": {
+ "addressPrefix": "aa:bb::1/125",
+ "circuitConnectionStatus": "Connected"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitConnectionDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitConnectionDelete.json
new file mode 100644
index 000000000000..fef3515350e5
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitConnectionDelete.json
@@ -0,0 +1,15 @@
+{
+ "parameters": {
+ "circuitName": "ExpressRouteARMCircuitA",
+ "peeringName": "AzurePrivatePeering",
+ "connectionName": "circuitConnectionUSAUS",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitConnectionGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitConnectionGet.json
new file mode 100644
index 000000000000..b49038148ff3
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitConnectionGet.json
@@ -0,0 +1,36 @@
+{
+ "parameters": {
+ "connectionName": "circuitConnectionUSAUS",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid1",
+ "circuitName": "ExpressRouteARMCircuitA",
+ "peeringName": "AzurePrivatePeering"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid1/resourceGroups/dedharcktinit/providers/Microsoft.Network/expressRouteCircuits/ExpressRouteARMCircuitA/peerings/AzurePrivatePeering/connections/circuitConnectionUSAUS",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "name": "circuitConnectionUSAUS",
+ "properties": {
+ "expressRouteCircuitPeering": {
+ "id": "/subscriptions/subid1/resourceGroups/dedharcktinit/providers/Microsoft.Network/expressRouteCircuits/dedharcktlocal/peerings/AzurePrivatePeering"
+ },
+ "peerExpressRouteCircuitPeering": {
+ "id": "/subscriptions/subid2/resourceGroups/dedharcktpeer/providers/Microsoft.Network/expressRouteCircuits/dedharcktremote/peerings/AzurePrivatePeering"
+ },
+ "authorizationKey": "946a1918-b7a2-4917-b43c-8c4cdaee006a",
+ "addressPrefix": "10.0.0.0/24",
+ "circuitConnectionStatus": "Connected",
+ "provisioningState": "Succeeded",
+ "ipv6CircuitConnectionConfig": {
+ "addressPrefix": "aa:bb::1/125",
+ "circuitConnectionStatus": "Connected"
+ }
+ },
+ "type": "Microsoft.Network/expressRouteCircuits/peerings/connections"
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitConnectionList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitConnectionList.json
new file mode 100644
index 000000000000..bcf3cd976153
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitConnectionList.json
@@ -0,0 +1,54 @@
+{
+ "parameters": {
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid1",
+ "circuitName": "ExpressRouteARMCircuitA",
+ "peeringName": "AzurePrivatePeering"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid1/resourceGroups/dedharcktinit/providers/Microsoft.Network/expressRouteCircuits/ExpressRouteARMCircuitA/peerings/AzurePrivatePeering/connections/circuitConnectionUSAUS",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "name": "circuitConnectionUSAUS",
+ "properties": {
+ "expressRouteCircuitPeering": {
+ "id": "/subscriptions/subid1/resourceGroups/dedharcktinit/providers/Microsoft.Network/expressRouteCircuits/dedharcktlocal/peerings/AzurePrivatePeering"
+ },
+ "peerExpressRouteCircuitPeering": {
+ "id": "/subscriptions/subid2/resourceGroups/dedharcktpeer/providers/Microsoft.Network/expressRouteCircuits/dedharcktremote/peerings/AzurePrivatePeering"
+ },
+ "authorizationKey": "946a1918-b7a2-4917-b43c-8c4cdaee006a",
+ "addressPrefix": "10.0.0.0/24",
+ "circuitConnectionStatus": "Connected",
+ "provisioningState": "Succeeded",
+ "ipv6CircuitConnectionConfig": {
+ "addressPrefix": "aa:bb::1/125",
+ "circuitConnectionStatus": "Connected"
+ }
+ }
+ },
+ {
+ "id": "/subscriptions/subid1/resourceGroups/dedharcktinit/providers/Microsoft.Network/expressRouteCircuits/ExpressRouteARMCircuitA/peerings/AzurePrivatePeering/connections/circuitConnectionUSEUR",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "name": "circuitConnectionUSEUR",
+ "properties": {
+ "expressRouteCircuitPeering": {
+ "id": "/subscriptions/subid1/resourceGroups/dedharcktinit/providers/Microsoft.Network/expressRouteCircuits/dedharcktlocal/peerings/AzurePrivatePeering"
+ },
+ "peerExpressRouteCircuitPeering": {
+ "id": "/subscriptions/subid1/resourceGroups/dedharckteurope/providers/Microsoft.Network/expressRouteCircuits/dedharcktams/peerings/AzurePrivatePeering"
+ },
+ "addressPrefix": "20.0.0.0/24",
+ "circuitConnectionStatus": "Connected",
+ "provisioningState": "Succeeded"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitCreate.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitCreate.json
new file mode 100644
index 000000000000..9829082a2c9d
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitCreate.json
@@ -0,0 +1,84 @@
+{
+ "parameters": {
+ "circuitName": "circuitName",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "parameters": {
+ "sku": {
+ "name": "Standard_MeteredData",
+ "tier": "Standard",
+ "family": "MeteredData"
+ },
+ "properties": {
+ "authorizations": [],
+ "peerings": [],
+ "allowClassicOperations": false,
+ "serviceProviderProperties": {
+ "serviceProviderName": "Equinix",
+ "peeringLocation": "Silicon Valley",
+ "bandwidthInMbps": 200
+ }
+ },
+ "location": "Brazil South"
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "name": "circuitName",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRouteCircuits/circuitName",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "type": "Microsoft.Network/expressRouteCircuits",
+ "location": "Brazil South",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "peerings": [],
+ "authorizations": [],
+ "serviceProviderProperties": {
+ "serviceProviderName": "Equinix",
+ "peeringLocation": "Silicon Valley",
+ "bandwidthInMbps": 200
+ },
+ "circuitProvisioningState": "Enabled",
+ "allowClassicOperations": false,
+ "serviceKey": "a1410692-0000-4ceb-b94a-b90b94d398d1",
+ "serviceProviderProvisioningState": "NotProvisioned"
+ },
+ "sku": {
+ "name": "Standard_MeteredData",
+ "tier": "Standard",
+ "family": "MeteredData"
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "name": "circuitName",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRouteCircuits/circuitName",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "type": "Microsoft.Network/expressRouteCircuits",
+ "location": "Brazil South",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "peerings": [],
+ "authorizations": [],
+ "serviceProviderProperties": {
+ "serviceProviderName": "Equinix",
+ "peeringLocation": "Silicon Valley",
+ "bandwidthInMbps": 200
+ },
+ "circuitProvisioningState": "Enabled",
+ "allowClassicOperations": false,
+ "serviceKey": "a1410692-0000-4ceb-b94a-b90b94d398d1",
+ "serviceProviderProvisioningState": "NotProvisioned"
+ },
+ "sku": {
+ "name": "Standard_MeteredData",
+ "tier": "Standard",
+ "family": "MeteredData"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitCreateOnExpressRoutePort.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitCreateOnExpressRoutePort.json
new file mode 100644
index 000000000000..98f7fcdb1f06
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitCreateOnExpressRoutePort.json
@@ -0,0 +1,79 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "api-version": "2020-07-01",
+ "resourceGroupName": "rg1",
+ "type": "Microsoft.Network/expressRouteCircuits",
+ "circuitName": "expressRouteCircuit1",
+ "parameters": {
+ "location": "westus",
+ "sku": {
+ "name": "Premium_MeteredData",
+ "tier": "Premium",
+ "family": "MeteredData"
+ },
+ "properties": {
+ "expressRoutePort": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRoutePorts/portName"
+ },
+ "bandwidthInGbps": 10
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "expressRouteCircuit1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRouteCircuits/expressRouteCircuit1",
+ "type": "Microsoft.Network/expressRouteCircuits",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "peerings": [],
+ "authorizations": [],
+ "expressRoutePort": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRoutePorts/portName"
+ },
+ "bandwidthInGbps": 10,
+ "circuitProvisioningState": "Enabled",
+ "allowClassicOperations": false,
+ "gatewayManagerEtag": "20",
+ "serviceKey": "d281f746-ee01-4d00-8b0a-edec4833772b",
+ "serviceProviderProvisioningState": "Provisioned"
+ },
+ "sku": {
+ "name": "Premium_MeteredData",
+ "tier": "Premium",
+ "family": "MeteredData"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "expressRouteCircuit1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRouteCircuits/expressRouteCircuit1",
+ "type": "Microsoft.Network/expressRouteCircuits",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "peerings": [],
+ "authorizations": [],
+ "expressRoutePort": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRoutePorts/portName"
+ },
+ "bandwidthInGbps": 10,
+ "circuitProvisioningState": "Enabled",
+ "allowClassicOperations": false,
+ "gatewayManagerEtag": "20",
+ "serviceKey": "d281f746-ee01-4d00-8b0a-edec4833772b",
+ "serviceProviderProvisioningState": "Provisioned"
+ },
+ "sku": {
+ "name": "Premium_MeteredData",
+ "tier": "Premium",
+ "family": "MeteredData"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitDelete.json
new file mode 100644
index 000000000000..9ccc4b7f5126
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "circuitName": "circuitName",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitGet.json
new file mode 100644
index 000000000000..534948642051
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitGet.json
@@ -0,0 +1,38 @@
+{
+ "parameters": {
+ "circuitName": "circuitName",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "circuitName",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRouteCircuits/circuitName",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "type": "Microsoft.Network/expressRouteCircuits",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "peerings": [],
+ "authorizations": [],
+ "serviceProviderProperties": {
+ "serviceProviderName": "providerName",
+ "peeringLocation": "peeringLocation",
+ "bandwidthInMbps": 200
+ },
+ "circuitProvisioningState": "Enabled",
+ "allowClassicOperations": false,
+ "serviceKey": "a1410692-0000-4ceb-b94a-b90b94d398d1",
+ "serviceProviderProvisioningState": "NotProvisioned"
+ },
+ "sku": {
+ "name": "Standard_MeteredData",
+ "tier": "Standard",
+ "family": "MeteredData"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitListByResourceGroup.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitListByResourceGroup.json
new file mode 100644
index 000000000000..9c7bd0d11012
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitListByResourceGroup.json
@@ -0,0 +1,91 @@
+{
+ "parameters": {
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "circuitName1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRouteCircuits/circuitName1",
+ "etag": "W/\"832b28c3-f5fd-4d2a-a2cb-6e4a2fe452b3\"",
+ "type": "Microsoft.Network/expressRouteCircuits",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "peerings": [],
+ "authorizations": [
+ {
+ "name": "MyAuthorization1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRouteCircuits/circuitName/authorizations/MyAuthorization1",
+ "etag": "W/\"832b28c3-f5fd-4d2a-a2cb-6e4a2fe452b3\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "authorizationKey": "authkey",
+ "authorizationUseStatus": "Available"
+ }
+ }
+ ],
+ "serviceProviderProperties": {
+ "serviceProviderName": "providerName",
+ "peeringLocation": "peeringLocation",
+ "bandwidthInMbps": 200
+ },
+ "circuitProvisioningState": "Enabled",
+ "allowClassicOperations": false,
+ "gatewayManagerEtag": "113",
+ "serviceKey": "a1410692-ed3b-4ceb-b94a-b90b95d398d1",
+ "serviceProviderProvisioningState": "Provisioned"
+ },
+ "sku": {
+ "name": "Standard_MeteredData",
+ "tier": "Standard",
+ "family": "MeteredData"
+ }
+ },
+ {
+ "name": "circuitName2",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRouteCircuits/circuitName2",
+ "etag": "W/\"e33c875f-48df-4a91-b7d3-eb95b5ddbb89\"",
+ "type": "Microsoft.Network/expressRouteCircuits",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "peerings": [],
+ "authorizations": [
+ {
+ "name": "MyAuthorization2",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRouteCircuits/circuitName2/authorizations/MyAuthorization2",
+ "etag": "W/\"e33c875f-48df-4a91-b7d3-eb95b5ddbb89\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "authorizationKey": "authkey",
+ "authorizationUseStatus": "Available"
+ }
+ }
+ ],
+ "serviceProviderProperties": {
+ "serviceProviderName": "providerName",
+ "peeringLocation": "peeringLocation",
+ "bandwidthInMbps": 200
+ },
+ "circuitProvisioningState": "Enabled",
+ "allowClassicOperations": false,
+ "gatewayManagerEtag": "",
+ "serviceKey": "6569625a-9ba4-498b-9719-14d778eef609",
+ "serviceProviderProvisioningState": "NotProvisioned"
+ },
+ "sku": {
+ "name": "Standard_MeteredData",
+ "tier": "Standard",
+ "family": "MeteredData"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitListBySubscription.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitListBySubscription.json
new file mode 100644
index 000000000000..e43df47957d6
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitListBySubscription.json
@@ -0,0 +1,90 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "circuitName1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRouteCircuits/circuitName1",
+ "etag": "W/\"832b28c3-f5fd-4d2a-a2cb-6e4a2fe452b3\"",
+ "type": "Microsoft.Network/expressRouteCircuits",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "peerings": [],
+ "authorizations": [
+ {
+ "name": "MyAuthorization1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRouteCircuits/circuitName/authorizations/MyAuthorization1",
+ "etag": "W/\"832b28c3-f5fd-4d2a-a2cb-6e4a2fe452b3\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "authorizationKey": "authkey",
+ "authorizationUseStatus": "Available"
+ }
+ }
+ ],
+ "serviceProviderProperties": {
+ "serviceProviderName": "providerName",
+ "peeringLocation": "peeringLocation",
+ "bandwidthInMbps": 200
+ },
+ "circuitProvisioningState": "Enabled",
+ "allowClassicOperations": false,
+ "gatewayManagerEtag": "113",
+ "serviceKey": "a1410692-ed3b-4ceb-b94a-b90b95d398d1",
+ "serviceProviderProvisioningState": "Provisioned"
+ },
+ "sku": {
+ "name": "Standard_MeteredData",
+ "tier": "Standard",
+ "family": "MeteredData"
+ }
+ },
+ {
+ "name": "circuitName2",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRouteCircuits/circuitName2",
+ "etag": "W/\"e33c875f-48df-4a91-b7d3-eb95b5ddbb89\"",
+ "type": "Microsoft.Network/expressRouteCircuits",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "peerings": [],
+ "authorizations": [
+ {
+ "name": "MyAuthorization2",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRouteCircuits/circuitName2/authorizations/MyAuthorization2",
+ "etag": "W/\"e33c875f-48df-4a91-b7d3-eb95b5ddbb89\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "authorizationKey": "authkey",
+ "authorizationUseStatus": "Available"
+ }
+ }
+ ],
+ "serviceProviderProperties": {
+ "serviceProviderName": "providerName",
+ "peeringLocation": "peeringLocation",
+ "bandwidthInMbps": 200
+ },
+ "circuitProvisioningState": "Enabled",
+ "allowClassicOperations": false,
+ "gatewayManagerEtag": "",
+ "serviceKey": "6569625a-9ba4-498b-9719-14d778eef609",
+ "serviceProviderProvisioningState": "NotProvisioned"
+ },
+ "sku": {
+ "name": "Standard_MeteredData",
+ "tier": "Standard",
+ "family": "MeteredData"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitPeeringCreate.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitPeeringCreate.json
new file mode 100644
index 000000000000..ab67d44981fe
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitPeeringCreate.json
@@ -0,0 +1,75 @@
+{
+ "parameters": {
+ "peeringName": "AzurePrivatePeering",
+ "circuitName": "circuitName",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "peeringParameters": {
+ "properties": {
+ "peerASN": 200,
+ "primaryPeerAddressPrefix": "192.168.16.252/30",
+ "secondaryPeerAddressPrefix": "192.168.18.252/30",
+ "vlanId": 200
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "name": "AzurePrivatePeering",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRouteCircuits/circuitName/peerings/AzurePrivatePeering",
+ "etag": "W/\"72090554-7e3b-43f2-80ad-99a9020dcb11\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "peeringType": "AzurePrivatePeering",
+ "azureASN": 12076,
+ "peerASN": 200,
+ "primaryPeerAddressPrefix": "192.168.16.252/30",
+ "secondaryPeerAddressPrefix": "192.168.18.252/30",
+ "primaryAzurePort": "",
+ "secondaryAzurePort": "",
+ "state": "Enabled",
+ "vlanId": 200,
+ "gatewayManagerEtag": "",
+ "lastModifiedBy": "Customer",
+ "ipv6PeeringConfig": {
+ "primaryPeerAddressPrefix": "3FFE:FFFF:0:CD30::/126",
+ "secondaryPeerAddressPrefix": "3FFE:FFFF:0:CD30::4/126",
+ "state": "Enabled"
+ },
+ "expressRouteConnection": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRouteGateways/expressRouteGatewayName/expressRouteConnections/connectionName"
+ }
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "name": "AzurePrivatePeering",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRouteCircuits/circuitName/peerings/AzurePrivatePeering",
+ "etag": "W/\"72090554-7e3b-43f2-80ad-99a9020dcb11\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "peeringType": "AzurePrivatePeering",
+ "azureASN": 12076,
+ "peerASN": 200,
+ "primaryPeerAddressPrefix": "192.168.16.252/30",
+ "secondaryPeerAddressPrefix": "192.168.18.252/30",
+ "primaryAzurePort": "",
+ "secondaryAzurePort": "",
+ "state": "Enabled",
+ "vlanId": 200,
+ "gatewayManagerEtag": "",
+ "lastModifiedBy": "Customer",
+ "ipv6PeeringConfig": {
+ "primaryPeerAddressPrefix": "3FFE:FFFF:0:CD30::/126",
+ "secondaryPeerAddressPrefix": "3FFE:FFFF:0:CD30::4/126",
+ "state": "Enabled"
+ },
+ "expressRouteConnection": ""
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitPeeringDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitPeeringDelete.json
new file mode 100644
index 000000000000..675fd7843bc6
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitPeeringDelete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "circuitName": "circuitName",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "peeringName": "peeringName"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitPeeringGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitPeeringGet.json
new file mode 100644
index 000000000000..f198676100a4
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitPeeringGet.json
@@ -0,0 +1,61 @@
+{
+ "parameters": {
+ "circuitName": "circuitName",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "peeringName": "MicrosoftPeering"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "MicrosoftPeering",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRouteCircuits/circuitName/peerings/MicrosoftPeering",
+ "etag": "W/\"b2a25b98-2e6d-4d46-87f2-089de5f6fdf9\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "peeringType": "MicrosoftPeering",
+ "azureASN": 12076,
+ "peerASN": 100,
+ "primaryPeerAddressPrefix": "123.0.0.0/30",
+ "secondaryPeerAddressPrefix": "123.0.0.4/30",
+ "primaryAzurePort": "A51-TEST-06GMR-CIS-1-PRI-A",
+ "secondaryAzurePort": "A51-TEST-06GMR-CIS-2-SEC-A",
+ "state": "Enabled",
+ "vlanId": 300,
+ "gatewayManagerEtag": "103",
+ "lastModifiedBy": "Customer",
+ "microsoftPeeringConfig": {
+ "advertisedPublicPrefixes": [
+ "123.1.0.0/24"
+ ],
+ "advertisedCommunities": [],
+ "advertisedPublicPrefixesState": "ValidationNeeded",
+ "customerASN": 23,
+ "legacyMode": 0,
+ "routingRegistryName": "ARIN"
+ },
+ "ipv6PeeringConfig": {
+ "primaryPeerAddressPrefix": "3FFE:FFFF:0:CD30::/126",
+ "secondaryPeerAddressPrefix": "3FFE:FFFF:0:CD30::4/126",
+ "state": "Enabled",
+ "microsoftPeeringConfig": {
+ "advertisedPublicPrefixes": [
+ "3FFE:FFFF:0:CD31::/120"
+ ],
+ "advertisedCommunities": [],
+ "advertisedPublicPrefixesState": "ValidationNeeded",
+ "customerASN": 23,
+ "legacyMode": 0,
+ "routingRegistryName": "ARIN"
+ }
+ },
+ "routeFilter": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/routeFilters/filterName"
+ }
+ },
+ "type": "Microsoft.Network/expressRouteCircuits/peerings"
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitPeeringList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitPeeringList.json
new file mode 100644
index 000000000000..de008b1f472a
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitPeeringList.json
@@ -0,0 +1,88 @@
+{
+ "parameters": {
+ "circuitName": "circuitName",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "MicrosoftPeering",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRouteCircuits/circuitName/peerings/MicrosoftPeering",
+ "etag": "W/\"b2a25b98-2e6d-4d46-87f2-089de5f6fdf9\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "peeringType": "MicrosoftPeering",
+ "azureASN": 12076,
+ "peerASN": 100,
+ "primaryPeerAddressPrefix": "123.0.0.0/30",
+ "secondaryPeerAddressPrefix": "123.0.0.4/30",
+ "primaryAzurePort": "A51-TEST-06GMR-CIS-1-PRI-A",
+ "secondaryAzurePort": "A51-TEST-06GMR-CIS-2-SEC-A",
+ "state": "Enabled",
+ "vlanId": 300,
+ "gatewayManagerEtag": "103",
+ "lastModifiedBy": "Customer",
+ "microsoftPeeringConfig": {
+ "advertisedPublicPrefixes": [
+ "123.1.0.0/24"
+ ],
+ "advertisedCommunities": [],
+ "advertisedPublicPrefixesState": "ValidationNeeded",
+ "customerASN": 23,
+ "legacyMode": 0,
+ "routingRegistryName": "ARIN"
+ },
+ "ipv6PeeringConfig": {
+ "primaryPeerAddressPrefix": "3FFE:FFFF:0:CD30::/126",
+ "secondaryPeerAddressPrefix": "3FFE:FFFF:0:CD30::4/126",
+ "state": "Enabled",
+ "microsoftPeeringConfig": {
+ "advertisedPublicPrefixes": [
+ "3FFE:FFFF:0:CD31::/120"
+ ],
+ "advertisedCommunities": [],
+ "advertisedPublicPrefixesState": "ValidationNeeded",
+ "customerASN": 23,
+ "legacyMode": 0,
+ "routingRegistryName": "ARIN"
+ }
+ },
+ "expressRouteConnection": ""
+ }
+ },
+ {
+ "name": "AzurePrivatePeering",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRouteCircuits/circuitName/peerings/AzurePrivatePeering",
+ "etag": "W/\"b2a25b98-2e6d-4d46-87f2-089de5f6fdf9\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "peeringType": "AzurePrivatePeering",
+ "azureASN": 12076,
+ "peerASN": 100,
+ "primaryPeerAddressPrefix": "10.0.0.0/30",
+ "secondaryPeerAddressPrefix": "10.0.0.4/30",
+ "primaryAzurePort": "A51-TEST-06GMR-CIS-1-PRI-A",
+ "secondaryAzurePort": "A51-TEST-06GMR-CIS-2-SEC-A",
+ "state": "Enabled",
+ "vlanId": 200,
+ "gatewayManagerEtag": "103",
+ "lastModifiedBy": "Customer",
+ "ipv6PeeringConfig": {
+ "primaryPeerAddressPrefix": "3FFE:FFFF:0:CD30::/126",
+ "secondaryPeerAddressPrefix": "3FFE:FFFF:0:CD30::4/126",
+ "state": "Enabled"
+ },
+ "expressRouteConnection": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRouteGateways/expressRouteGatewayName/expressRouteConnections/connectionName"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitPeeringStats.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitPeeringStats.json
new file mode 100644
index 000000000000..bd2213bee546
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitPeeringStats.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "circuitName": "circuitName",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "peeringName": "peeringName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "primarybytesIn": 537408,
+ "primarybytesOut": 44032550,
+ "secondarybytesIn": 0,
+ "secondarybytesOut": 39002500
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitRouteTableList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitRouteTableList.json
new file mode 100644
index 000000000000..08e4857f99fc
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitRouteTableList.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "circuitName": "circuitName",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "peeringName": "peeringName",
+ "devicePath": "devicePath"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "network": "",
+ "nextHop": "",
+ "locPrf": "",
+ "weight": 0,
+ "path": ""
+ }
+ ]
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitRouteTableSummaryList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitRouteTableSummaryList.json
new file mode 100644
index 000000000000..29dfd900c2ca
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitRouteTableSummaryList.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "circuitName": "circuitName",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "peeringName": "peeringName",
+ "devicePath": "devicePath"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "neighbor": "100.65.171.1",
+ "v": 4,
+ "as": 9583,
+ "upDown": "never",
+ "statePfxRcd": "Idle"
+ }
+ ]
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitStats.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitStats.json
new file mode 100644
index 000000000000..c77b7025c32d
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitStats.json
@@ -0,0 +1,18 @@
+{
+ "parameters": {
+ "circuitName": "circuitName",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "primarybytesIn": 537408,
+ "primarybytesOut": 44032550,
+ "secondarybytesIn": 0,
+ "secondarybytesOut": 39002500
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitUpdateTags.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitUpdateTags.json
new file mode 100644
index 000000000000..297821681c37
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCircuitUpdateTags.json
@@ -0,0 +1,48 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "ertest",
+ "circuitName": "er1",
+ "parameters": {
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "er1",
+ "id": "/subscriptions/subid/resourceGroups/ertest/providers/Microsoft.Network/expressRouteCircuits/er1",
+ "type": "Microsoft.Network/expressRouteCircuits",
+ "location": "brazilsouth",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "properties": {
+ "provisioningState": "Failed",
+ "peerings": [],
+ "authorizations": [],
+ "serviceProviderProperties": {
+ "serviceProviderName": "Equinix",
+ "peeringLocation": "Silicon Valley",
+ "bandwidthInMbps": 1000
+ },
+ "circuitProvisioningState": "Enabled",
+ "allowClassicOperations": false,
+ "gatewayManagerEtag": "",
+ "serviceKey": "0b392c2e-1e9d-46d7-b5e0-9ce90ca6b60c",
+ "serviceProviderProvisioningState": "NotProvisioned"
+ },
+ "sku": {
+ "name": "Standard_MeteredData",
+ "tier": "Standard",
+ "family": "MeteredData"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteConnectionCreate.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteConnectionCreate.json
new file mode 100644
index 000000000000..78976c3abbdc
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteConnectionCreate.json
@@ -0,0 +1,102 @@
+{
+ "parameters": {
+ "expressRouteGatewayName": "gateway-2",
+ "resourceGroupName": "resourceGroupName",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "connectionName": "connectionName",
+ "putExpressRouteConnectionParameters": {
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/expressRouteGateways/gateway-2/expressRouteConnections/connectionName",
+ "name": "connectionName",
+ "properties": {
+ "routingWeight": 2,
+ "authorizationKey": "authorizationKey",
+ "expressRouteCircuitPeering": {
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/expressRouteCircuits/circuitName/peerings/AzurePrivatePeering"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "connectionName",
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/expressRouteGateways/gateway-2/expressRouteConnections/connectionName",
+ "properties": {
+ "provisioningState": "Provisioned",
+ "expressRouteCircuitPeering": {
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/expressRouteCircuits/circuitName/peerings/AzurePrivatePeering"
+ },
+ "authorizationKey": "authorizationKey",
+ "routingWeight": 2,
+ "enableInternetSecurity": false,
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/virtualHubs/hub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/virtualHubs/hub1/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/virtualHubs/hub1/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/virtualHubs/hub1/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
+ }
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "connectionName",
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/expressRouteGateways/gateway-2/expressRouteConnections/connectionName",
+ "properties": {
+ "provisioningState": "Provisioned",
+ "expressRouteCircuitPeering": {
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/expressRouteCircuits/circuitName/peerings/AzurePrivatePeering"
+ },
+ "authorizationKey": "authorizationKey",
+ "routingWeight": 2,
+ "enableInternetSecurity": false,
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/virtualHubs/hub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/virtualHubs/hub1/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/virtualHubs/hub1/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/virtualHubs/hub1/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteConnectionDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteConnectionDelete.json
new file mode 100644
index 000000000000..30b8856dca23
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteConnectionDelete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "expressRouteGatewayName": "expressRouteGatewayName",
+ "resourceGroupName": "resourceGroupName",
+ "connectionName": "connectionName",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "202": {},
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteConnectionGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteConnectionGet.json
new file mode 100644
index 000000000000..19f7f5d635d6
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteConnectionGet.json
@@ -0,0 +1,51 @@
+{
+ "parameters": {
+ "expressRouteGatewayName": "expressRouteGatewayName",
+ "resourceGroupName": "resourceGroupName",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "connectionName": "connectionName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "connectionName",
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/expressRouteGateways/expressRouteGatewayName/expressRouteConnections/connectionName",
+ "properties": {
+ "provisioningState": "Provisioned",
+ "expressRouteCircuitPeering": {
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/expressRouteCircuits/circuitName/peerings/AzurePrivatePeering"
+ },
+ "authorizationKey": "authorizationKey",
+ "routingWeight": 1,
+ "enableInternetSecurity": false,
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/virtualHubs/hub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/virtualHubs/hub1/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/virtualHubs/hub1/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/virtualHubs/hub1/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteConnectionList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteConnectionList.json
new file mode 100644
index 000000000000..a4bc1084b4cf
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteConnectionList.json
@@ -0,0 +1,54 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "resourceGroupName": "resourceGroupName",
+ "expressRouteGatewayName": "expressRouteGatewayName",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "connectionName",
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/expressRouteGateways/expressRouteGatewayName/expressRouteConnections/connectionName",
+ "properties": {
+ "provisioningState": "Provisioned",
+ "expressRouteCircuitPeering": {
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/expressRouteCircuits/circuitName/peerings/AzurePrivatePeering"
+ },
+ "authorizationKey": "authorizationKey",
+ "routingWeight": 1,
+ "enableInternetSecurity": false,
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/virtualHubs/hub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/virtualHubs/hub1/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/virtualHubs/hub1/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/virtualHubs/hub1/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCrossConnectionBgpPeeringCreate.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCrossConnectionBgpPeeringCreate.json
new file mode 100644
index 000000000000..e9b59dfd80b4
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCrossConnectionBgpPeeringCreate.json
@@ -0,0 +1,75 @@
+{
+ "parameters": {
+ "peeringName": "AzurePrivatePeering",
+ "crossConnectionName": "",
+ "resourceGroupName": "CrossConnection-SiliconValley",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "peeringParameters": {
+ "properties": {
+ "peerASN": 200,
+ "primaryPeerAddressPrefix": "192.168.16.252/30",
+ "secondaryPeerAddressPrefix": "192.168.18.252/30",
+ "vlanId": 200,
+ "ipv6PeeringConfig": {
+ "primaryPeerAddressPrefix": "3FFE:FFFF:0:CD30::/126",
+ "secondaryPeerAddressPrefix": "3FFE:FFFF:0:CD30::4/126"
+ }
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "name": "AzurePrivatePeering",
+ "id": "/subscriptions/subid/resourceGroups/CrossConnection-SiliconValley/providers/Microsoft.Network/expressRouteCrossConnections//peerings/AzurePrivatePeering",
+ "etag": "W/\"72090554-7e3b-43f2-80ad-99a9020dcb11\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "peeringType": "AzurePrivatePeering",
+ "azureASN": 12076,
+ "peerASN": 200,
+ "primaryPeerAddressPrefix": "192.168.16.252/30",
+ "secondaryPeerAddressPrefix": "192.168.18.252/30",
+ "primaryAzurePort": "",
+ "secondaryAzurePort": "",
+ "state": "Enabled",
+ "vlanId": 200,
+ "gatewayManagerEtag": "",
+ "lastModifiedBy": "Customer",
+ "ipv6PeeringConfig": {
+ "primaryPeerAddressPrefix": "3FFE:FFFF:0:CD30::/126",
+ "secondaryPeerAddressPrefix": "3FFE:FFFF:0:CD30::4/126",
+ "state": "Enabled"
+ }
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "name": "AzurePrivatePeering",
+ "id": "/subscriptions/subid/resourceGroups/CrossConnection-Boydton1DC/providers/Microsoft.Network/expressRouteCrossConnections//peerings/AzurePrivatePeering",
+ "etag": "W/\"72090554-7e3b-43f2-80ad-99a9020dcb11\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "peeringType": "AzurePrivatePeering",
+ "azureASN": 12076,
+ "peerASN": 200,
+ "primaryPeerAddressPrefix": "192.168.16.252/30",
+ "secondaryPeerAddressPrefix": "192.168.18.252/30",
+ "primaryAzurePort": "",
+ "secondaryAzurePort": "",
+ "state": "Enabled",
+ "vlanId": 200,
+ "gatewayManagerEtag": "",
+ "lastModifiedBy": "Customer",
+ "ipv6PeeringConfig": {
+ "primaryPeerAddressPrefix": "3FFE:FFFF:0:CD30::/126",
+ "secondaryPeerAddressPrefix": "3FFE:FFFF:0:CD30::4/126",
+ "state": "Enabled"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCrossConnectionBgpPeeringDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCrossConnectionBgpPeeringDelete.json
new file mode 100644
index 000000000000..b3e69b1e21c4
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCrossConnectionBgpPeeringDelete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "peeringName": "AzurePrivatePeering",
+ "crossConnectionName": "",
+ "resourceGroupName": "CrossConnection-SiliconValley",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCrossConnectionBgpPeeringGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCrossConnectionBgpPeeringGet.json
new file mode 100644
index 000000000000..eac3d462f34d
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCrossConnectionBgpPeeringGet.json
@@ -0,0 +1,37 @@
+{
+ "parameters": {
+ "peeringName": "AzurePrivatePeering",
+ "crossConnectionName": "",
+ "resourceGroupName": "CrossConnection-SiliconValley",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "AzurePrivatePeering",
+ "id": "/subscriptions/subid/resourceGroups/CrossConnection-Boydton1DC/providers/Microsoft.Network/expressRouteCrossConnections//peerings/AzurePrivatePeering",
+ "etag": "W/\"72090554-7e3b-43f2-80ad-99a9020dcb11\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "peeringType": "AzurePrivatePeering",
+ "azureASN": 12076,
+ "peerASN": 200,
+ "primaryPeerAddressPrefix": "192.168.16.252/30",
+ "secondaryPeerAddressPrefix": "192.168.18.252/30",
+ "primaryAzurePort": "",
+ "secondaryAzurePort": "",
+ "state": "Enabled",
+ "vlanId": 200,
+ "gatewayManagerEtag": "",
+ "lastModifiedBy": "Customer",
+ "ipv6PeeringConfig": {
+ "primaryPeerAddressPrefix": "3FFE:FFFF:0:CD30::/126",
+ "secondaryPeerAddressPrefix": "3FFE:FFFF:0:CD30::4/126",
+ "state": "Enabled"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCrossConnectionBgpPeeringList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCrossConnectionBgpPeeringList.json
new file mode 100644
index 000000000000..66849630f563
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCrossConnectionBgpPeeringList.json
@@ -0,0 +1,40 @@
+{
+ "parameters": {
+ "crossConnectionName": "",
+ "resourceGroupName": "CrossConnection-SiliconValley",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "AzurePrivatePeering",
+ "id": "/subscriptions/subid/resourceGroups/CrossConnection-SiliconValley/providers/Microsoft.Network/expressRouteCrossConnections//peerings/AzurePrivatePeering",
+ "etag": "W/\"72090554-7e3b-43f2-80ad-99a9020dcb11\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "peeringType": "AzurePrivatePeering",
+ "azureASN": 12076,
+ "peerASN": 200,
+ "primaryPeerAddressPrefix": "192.168.16.252/30",
+ "secondaryPeerAddressPrefix": "192.168.18.252/30",
+ "primaryAzurePort": "",
+ "secondaryAzurePort": "",
+ "state": "Enabled",
+ "vlanId": 200,
+ "gatewayManagerEtag": "",
+ "lastModifiedBy": "Customer",
+ "ipv6PeeringConfig": {
+ "primaryPeerAddressPrefix": "3FFE:FFFF:0:CD30::/126",
+ "secondaryPeerAddressPrefix": "3FFE:FFFF:0:CD30::4/126",
+ "state": "Enabled"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCrossConnectionGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCrossConnectionGet.json
new file mode 100644
index 000000000000..888e32237161
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCrossConnectionGet.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "CrossConnection-SiliconValley",
+ "crossConnectionName": ""
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "",
+ "id": "/subscriptions/subid/resourceGroups/CrossConnection-SiliconValley/providers/Microsoft.Network/expressRouteCrossConnections/",
+ "type": "Microsoft.Network/expressRouteCrossConnections",
+ "location": "brazilsouth",
+ "etag": "W/\"c0e6477e-8150-4d4f-9bf6-bb10e6acb63a\"",
+ "properties": {
+ "provisioningState": "Enabled",
+ "expressRouteCircuit": {
+ "id": "/subscriptions/subid/resourceGroups/ertest/providers/Microsoft.Network/expressRouteCircuits/er1"
+ },
+ "peerings": [],
+ "peeringLocation": "SiliconValley",
+ "bandwidthInMbps": 1000,
+ "primaryAzurePort": "bvtazureixp01",
+ "secondaryAzurePort": "bvtazureixp01",
+ "sTag": 2,
+ "serviceProviderProvisioningState": "NotProvisioned"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCrossConnectionList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCrossConnectionList.json
new file mode 100644
index 000000000000..e1b6b92c792d
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCrossConnectionList.json
@@ -0,0 +1,33 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "",
+ "id": "/subscriptions/subid/resourceGroups/CrossConnectionSiliconValley/providers/Microsoft.Network/expressRouteCrossConnections/",
+ "type": "Microsoft.Network/expressRouteCrossConnections",
+ "location": "brazilsouth",
+ "properties": {
+ "provisioningState": "Enabled",
+ "expressRouteCircuit": {
+ "id": "/subscriptions/subid/resourceGroups/ertest/providers/Microsoft.Network/expressRouteCircuits/er1"
+ },
+ "peerings": [],
+ "peeringLocation": "SiliconValley",
+ "bandwidthInMbps": 1000,
+ "primaryAzurePort": "bvtazureixp01",
+ "secondaryAzurePort": "bvtazureixp01",
+ "sTag": 2,
+ "serviceProviderProvisioningState": "NotProvisioned"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCrossConnectionListByResourceGroup.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCrossConnectionListByResourceGroup.json
new file mode 100644
index 000000000000..2a22f0bf8b0d
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCrossConnectionListByResourceGroup.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "resourceGroupName": "CrossConnection-SiliconValley",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "",
+ "id": "/subscriptions/subid/resourceGroups/CrossConnectionSilicon-Valley/providers/Microsoft.Network/expressRouteCrossConnections/",
+ "type": "Microsoft.Network/expressRouteCrossConnections",
+ "location": "brazilsouth",
+ "properties": {
+ "provisioningState": "Enabled",
+ "expressRouteCircuit": {
+ "id": "/subscriptions/subid/resourceGroups/ertest/providers/Microsoft.Network/expressRouteCircuits/er1"
+ },
+ "peerings": [],
+ "peeringLocation": "SiliconValley",
+ "bandwidthInMbps": 1000,
+ "primaryAzurePort": "bvtazureixp01",
+ "secondaryAzurePort": "bvtazureixp01",
+ "sTag": 2,
+ "serviceProviderProvisioningState": "NotProvisioned"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCrossConnectionUpdate.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCrossConnectionUpdate.json
new file mode 100644
index 000000000000..c9de7ae42e92
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCrossConnectionUpdate.json
@@ -0,0 +1,36 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "CrossConnection-SiliconValley",
+ "crossConnectionName": "",
+ "parameters": {
+ "properties": {
+ "serviceProviderProvisioningState": "NotProvisioned"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "",
+ "id": "/subscriptions/subid/resourceGroups/CrossConnectionSiliconValley/providers/Microsoft.Network/expressRouteCrossConnections/",
+ "type": "Microsoft.Network/expressRouteCrossConnections",
+ "location": "brazilsouth",
+ "properties": {
+ "provisioningState": "Enabled",
+ "expressRouteCircuit": {
+ "id": "/subscriptions/subid/resourceGroups/ertest/providers/Microsoft.Network/expressRouteCircuits/er1"
+ },
+ "peerings": [],
+ "peeringLocation": "SiliconValley",
+ "bandwidthInMbps": 1000,
+ "primaryAzurePort": "bvtazureixp01",
+ "secondaryAzurePort": "bvtazureixp01",
+ "sTag": 2,
+ "serviceProviderProvisioningState": "NotProvisioned"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCrossConnectionUpdateTags.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCrossConnectionUpdateTags.json
new file mode 100644
index 000000000000..2d3286a1dbaf
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCrossConnectionUpdateTags.json
@@ -0,0 +1,41 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "CrossConnection-SiliconValley",
+ "crossConnectionName": "",
+ "crossConnectionParameters": {
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "er1",
+ "id": "/subscriptions/subid/resourceGroups/CrossConnectionSiliconValley/providers/Microsoft.Network/expressRouteCrossConnections/",
+ "type": "Microsoft.Network/expressRouteCrossConnections",
+ "location": "brazilsouth",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "properties": {
+ "provisioningState": "Failed",
+ "expressRouteCircuit": {
+ "id": "/subscriptions/subid/resourceGroups/ertest/providers/Microsoft.Network/expressRouteCircuits/er1"
+ },
+ "peerings": [],
+ "peeringLocation": "SiliconValley",
+ "bandwidthInMbps": 1000,
+ "primaryAzurePort": "bvtazureixp01",
+ "secondaryAzurePort": "bvtazureixp01",
+ "sTag": 2,
+ "serviceProviderProvisioningState": "NotProvisioned"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCrossConnectionsArpTable.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCrossConnectionsArpTable.json
new file mode 100644
index 000000000000..1bd618b2bbc8
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCrossConnectionsArpTable.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "peeringName": "AzurePrivatePeering",
+ "crossConnectionName": "",
+ "resourceGroupName": "CrossConnection-SiliconValley",
+ "devicePath": "primary",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "age": 0,
+ "interface": "Microsoft",
+ "ipAddress": "192.116.14.254",
+ "macAddress": "885a.9269.9110"
+ }
+ ]
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCrossConnectionsRouteTable.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCrossConnectionsRouteTable.json
new file mode 100644
index 000000000000..dc890aa967f5
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCrossConnectionsRouteTable.json
@@ -0,0 +1,33 @@
+{
+ "parameters": {
+ "peeringName": "AzurePrivatePeering",
+ "crossConnectionName": "",
+ "resourceGroupName": "CrossConnection-SiliconValley",
+ "devicePath": "primary",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "network": "10.6.0.0/16",
+ "nextHop": "10.6.1.12",
+ "locPrf": "",
+ "weight": 0,
+ "path": "65514"
+ },
+ {
+ "network": "10.7.0.0/16",
+ "nextHop": "10.7.1.13",
+ "locPrf": "",
+ "weight": 0,
+ "path": "65514"
+ }
+ ]
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCrossConnectionsRouteTableSummary.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCrossConnectionsRouteTableSummary.json
new file mode 100644
index 000000000000..b20cffb72a70
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteCrossConnectionsRouteTableSummary.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "peeringName": "AzurePrivatePeering",
+ "crossConnectionName": "",
+ "resourceGroupName": "CrossConnection-SiliconValley",
+ "devicePath": "primary",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "neighbor": "10.6.1.112",
+ "asn": 65514,
+ "upDown": "1d14h",
+ "stateOrPrefixesReceived": "Active"
+ },
+ {
+ "neighbor": "10.6.1.113",
+ "asn": 65514,
+ "upDown": "1d14h",
+ "stateOrPrefixesReceived": "1"
+ }
+ ]
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteGatewayCreate.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteGatewayCreate.json
new file mode 100644
index 000000000000..d5ff59dbe39b
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteGatewayCreate.json
@@ -0,0 +1,63 @@
+{
+ "parameters": {
+ "expressRouteGatewayName": "gateway-2",
+ "subscriptionId": "subid",
+ "resourceGroupName": "resourceGroupName",
+ "api-version": "2020-07-01",
+ "putExpressRouteGatewayParameters": {
+ "location": "westus",
+ "properties": {
+ "virtualHub": {
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupId/providers/Microsoft.Network/virtualHubs/virtualHubName"
+ },
+ "autoScaleConfiguration": {
+ "bounds": {
+ "min": 3
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "name": "gateway-2",
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/expressRouteGateways/gateway-2",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "westus",
+ "type": "Microsoft.Network/expressRouteGateways",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "virtualHub": {
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/virtualHubs/virtualHubName"
+ },
+ "autoScaleConfiguration": {
+ "bounds": {
+ "min": 3
+ }
+ }
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "name": "gateway-2",
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/expressRouteGateways/gateway-2",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "westus",
+ "type": "Microsoft.Network/expressRouteGateways",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "virtualHub": {
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/virtualHubs/virtualHubName"
+ },
+ "autoScaleConfiguration": {
+ "bounds": {
+ "min": 3
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteGatewayDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteGatewayDelete.json
new file mode 100644
index 000000000000..97ad572d0e99
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteGatewayDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "expressRouteGatewayName": "expressRouteGatewayName",
+ "resourceGroupName": "resourceGroupName",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "202": {},
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteGatewayGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteGatewayGet.json
new file mode 100644
index 000000000000..e1b1a104b024
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteGatewayGet.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "expressRouteGatewayName": "expressRouteGatewayName",
+ "resourceGroupName": "resourceGroupName",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "expressRouteGatewayName",
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/expressRouteGateways/expressRouteGatewayName",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "westus",
+ "type": "Microsoft.Network/expressRouteGateways",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "virtualHub": {
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/virtualHubs/virtualHubName"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteGatewayListByResourceGroup.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteGatewayListByResourceGroup.json
new file mode 100644
index 000000000000..c8fee328f366
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteGatewayListByResourceGroup.json
@@ -0,0 +1,73 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "resourceGroupName": "resourceGroupName",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "expressRouteGatewayName",
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/expressRouteGateways/expressRouteGatewayName",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "westus",
+ "type": "Microsoft.Network/expressRouteGateways",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "virtualHub": {
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/virtualHubs/virtualHubName"
+ },
+ "autoScaleConfiguration": {
+ "bounds": {
+ "min": 2
+ }
+ },
+ "expressRouteConnections": [
+ {
+ "name": "connectionName",
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/expressRouteGateways/expressRouteGatewayName/expressRouteConnections/connectionName",
+ "properties": {
+ "provisioningState": "Provisioned",
+ "expressRouteCircuitPeering": {
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/expressRouteCircuits/circuitName/peerings/AzurePrivatePeering"
+ },
+ "authorizationKey": "f28e9c99-78d8-4248-a855-c54cf6beb99d",
+ "routingWeight": 1,
+ "enableInternetSecurity": false,
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/virtualHubs/virtualHubName/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/virtualHubs/virtualHubName/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/virtualHubs/virtualHubName/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/virtualHubs/hvirtualHubNameub1/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
+ }
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteGatewayListBySubscription.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteGatewayListBySubscription.json
new file mode 100644
index 000000000000..a134c73d2b9b
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteGatewayListBySubscription.json
@@ -0,0 +1,72 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "expressRouteGatewayName",
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/expressRouteGateways/expressRouteGatewayName",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "westus",
+ "type": "Microsoft.Network/expressRouteGateways",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "virtualHub": {
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/virtualHubs/virtualHubName"
+ },
+ "autoScaleConfiguration": {
+ "bounds": {
+ "min": 2
+ }
+ },
+ "expressRouteConnections": [
+ {
+ "name": "connectionName",
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/expressRouteGateways/expressRouteGatewayName/expressRouteConnections/connectionName",
+ "properties": {
+ "provisioningState": "Provisioned",
+ "expressRouteCircuitPeering": {
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/expressRouteCircuits/circuitName/peerings/AzurePrivatePeering"
+ },
+ "authorizationKey": "f28e9c99-78d8-4248-a855-c54cf6beb99d",
+ "routingWeight": 1,
+ "enableInternetSecurity": false,
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/virtualHubs/virtualHubName/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/virtualHubs/virtualHubName/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/virtualHubs/virtualHubName/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/resourceGroupName/providers/Microsoft.Network/virtualHubs/hvirtualHubNameub1/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
+ }
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteLinkGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteLinkGet.json
new file mode 100644
index 000000000000..16bc1fb62bcc
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteLinkGet.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "api-version": "2020-07-01",
+ "resourceGroupName": "rg1",
+ "expressRoutePortName": "portName",
+ "linkName": "linkName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "linkName",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRoutePorts/portName/links/linkName",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "routerName": "router1",
+ "interfaceName": "Ethernet 0/0",
+ "patchPanelId": "patchPanelId1",
+ "rackId": "rackId1",
+ "connectorType": "LC",
+ "adminState": "Disabled"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteLinkList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteLinkList.json
new file mode 100644
index 000000000000..9a70cac032fd
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteLinkList.json
@@ -0,0 +1,42 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "api-version": "2020-07-01",
+ "resourceGroupName": "rg1",
+ "expressRoutePortName": "portName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "link1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRoutePorts/portName/links/link1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "routerName": "router1",
+ "interfaceName": "Ethernet 0/0",
+ "patchPanelId": "patchPanelId1",
+ "rackId": "rackId1",
+ "connectorType": "LC",
+ "adminState": "Disabled"
+ }
+ },
+ {
+ "name": "link2",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRoutePorts/portName/links/link2",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "routerName": "router2",
+ "interfaceName": "Ethernet 0/0",
+ "patchPanelId": "patchPanelId2",
+ "rackId": "rackId2",
+ "connectorType": "LC",
+ "adminState": "Disabled"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRoutePortCreate.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRoutePortCreate.json
new file mode 100644
index 000000000000..ffaedcbfc02b
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRoutePortCreate.json
@@ -0,0 +1,112 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "api-version": "2020-07-01",
+ "resourceGroupName": "rg1",
+ "expressRoutePortName": "portName",
+ "parameters": {
+ "location": "westus",
+ "properties": {
+ "peeringLocation": "peeringLocationName",
+ "bandwidthInGbps": 100,
+ "encapsulation": "QinQ"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "portName",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRoutePorts/portName",
+ "type": "Microsoft.Network/expressRoutePorts",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "peeringLocation": "peeringLocationName",
+ "bandwidthInGbps": 100,
+ "provisionedBandwidthInGbps": 0.0,
+ "mtu": "1500",
+ "encapsulation": "QinQ",
+ "etherType": "0x8100",
+ "allocationDate": "Friday, July 1, 2018",
+ "links": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRoutePorts/portName/links/link1",
+ "name": "link1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "routerName": "router1",
+ "interfaceName": "Ethernet 0/0",
+ "patchPanelId": "patchPanelId1",
+ "rackId": "rackId1",
+ "connectorType": "LC",
+ "adminState": "Disabled"
+ }
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRoutePorts/portName/links/link2",
+ "name": "link2",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "routerName": "router2",
+ "interfaceName": "Ethernet 0/0",
+ "patchPanelId": "patchPanelId2",
+ "rackId": "rackId2",
+ "connectorType": "LC",
+ "adminState": "Disabled"
+ }
+ }
+ ],
+ "circuits": []
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "portName",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRoutePorts/portName",
+ "type": "Microsoft.Network/expressRoutePorts",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "peeringLocation": "peeringLocationName",
+ "bandwidthInGbps": 100,
+ "provisionedBandwidthInGbps": 0.0,
+ "mtu": "1500",
+ "encapsulation": "QinQ",
+ "etherType": "0x8100",
+ "allocationDate": "Friday, July 1, 2018",
+ "links": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRoutePorts/portName/links/link1",
+ "name": "link1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "routerName": "router1",
+ "interfaceName": "Ethernet 0/0",
+ "patchPanelId": "patchPanelId1",
+ "rackId": "rackId1",
+ "connectorType": "LC",
+ "adminState": "Disabled"
+ }
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRoutePorts/portName/links/link2",
+ "name": "link2",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "routerName": "router2",
+ "interfaceName": "Ethernet 0/0",
+ "patchPanelId": "patchPanelId2",
+ "rackId": "rackId2",
+ "connectorType": "LC",
+ "adminState": "Disabled"
+ }
+ }
+ ],
+ "circuits": []
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRoutePortDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRoutePortDelete.json
new file mode 100644
index 000000000000..a0016c27e1ad
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRoutePortDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "api-version": "2020-07-01",
+ "resourceGroupName": "rg1",
+ "expressRoutePortName": "portName"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRoutePortGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRoutePortGet.json
new file mode 100644
index 000000000000..ae1dee61d185
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRoutePortGet.json
@@ -0,0 +1,57 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "api-version": "2020-07-01",
+ "resourceGroupName": "rg1",
+ "expressRoutePortName": "portName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "portName",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRoutePorts/portName",
+ "type": "Microsoft.Network/expressRoutePorts",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "peeringLocation": "peeringLocationName",
+ "bandwidthInGbps": 100,
+ "provisionedBandwidthInGbps": 0.0,
+ "mtu": "1500",
+ "encapsulation": "QinQ",
+ "etherType": "0x8100",
+ "allocationDate": "Friday, July 1, 2018",
+ "links": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRoutePorts/portName/links/link1",
+ "name": "link1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "routerName": "router1",
+ "interfaceName": "Ethernet 0/0",
+ "patchPanelId": "patchPanelId1",
+ "rackId": "rackId1",
+ "connectorType": "LC",
+ "adminState": "Disabled"
+ }
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRoutePorts/portName/links/link2",
+ "name": "link2",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "routerName": "router2",
+ "interfaceName": "Ethernet 0/0",
+ "patchPanelId": "patchPanelId2",
+ "rackId": "rackId2",
+ "connectorType": "LC",
+ "adminState": "Disabled"
+ }
+ }
+ ],
+ "circuits": []
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRoutePortList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRoutePortList.json
new file mode 100644
index 000000000000..5d80b7283159
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRoutePortList.json
@@ -0,0 +1,59 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "api-version": "2020-07-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "portName",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRoutePorts/portName",
+ "type": "Microsoft.Network/expressRoutePorts",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "peeringLocation": "peeringLocationName",
+ "bandwidthInGbps": 100,
+ "provisionedBandwidthInGbps": 0.0,
+ "mtu": "1500",
+ "encapsulation": "QinQ",
+ "etherType": "0x8100",
+ "allocationDate": "Friday, July 1, 2018",
+ "links": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRoutePorts/portName/links/link1",
+ "name": "link1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "routerName": "router1",
+ "interfaceName": "Ethernet 0/0",
+ "patchPanelId": "patchPanelId1",
+ "rackId": "rackId1",
+ "connectorType": "LC",
+ "adminState": "Disabled"
+ }
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRoutePorts/portName/links/link2",
+ "name": "link2",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "routerName": "router2",
+ "interfaceName": "Ethernet 0/0",
+ "patchPanelId": "patchPanelId2",
+ "rackId": "rackId2",
+ "connectorType": "LC",
+ "adminState": "Disabled"
+ }
+ }
+ ],
+ "circuits": []
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRoutePortListByResourceGroup.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRoutePortListByResourceGroup.json
new file mode 100644
index 000000000000..d19d9e89ce79
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRoutePortListByResourceGroup.json
@@ -0,0 +1,60 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "api-version": "2020-07-01",
+ "resourceGroupName": "rg1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "portName",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRoutePorts/portName",
+ "type": "Microsoft.Network/expressRoutePorts",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "peeringLocation": "peeringLocationName",
+ "bandwidthInGbps": 100,
+ "provisionedBandwidthInGbps": 0.0,
+ "mtu": "1500",
+ "encapsulation": "QinQ",
+ "etherType": "0x8100",
+ "allocationDate": "Friday, July 1, 2018",
+ "links": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRoutePorts/portName/links/link1",
+ "name": "link1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "routerName": "router1",
+ "interfaceName": "Ethernet 0/0",
+ "patchPanelId": "patchPanelId1",
+ "rackId": "rackId1",
+ "connectorType": "LC",
+ "adminState": "Disabled"
+ }
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRoutePorts/portName/links/link2",
+ "name": "link2",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "routerName": "router2",
+ "interfaceName": "Ethernet 0/0",
+ "patchPanelId": "patchPanelId2",
+ "rackId": "rackId2",
+ "connectorType": "LC",
+ "adminState": "Disabled"
+ }
+ }
+ ],
+ "circuits": []
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRoutePortUpdateLink.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRoutePortUpdateLink.json
new file mode 100644
index 000000000000..8d407c1862d4
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRoutePortUpdateLink.json
@@ -0,0 +1,120 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "api-version": "2020-07-01",
+ "resourceGroupName": "rg1",
+ "expressRoutePortName": "portName",
+ "parameters": {
+ "location": "westus",
+ "properties": {
+ "peeringLocation": "peeringLocationName",
+ "bandwidthInGbps": 100,
+ "encapsulation": "QinQ",
+ "links": [
+ {
+ "name": "link1",
+ "properties": {
+ "adminState": "Enabled"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "portName",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRoutePorts/portName",
+ "type": "Microsoft.Network/expressRoutePorts",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "peeringLocation": "peeringLocationName",
+ "bandwidthInGbps": 100,
+ "provisionedBandwidthInGbps": 0.0,
+ "mtu": "1500",
+ "encapsulation": "QinQ",
+ "etherType": "0x8100",
+ "allocationDate": "Friday, July 1, 2018",
+ "links": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRoutePorts/portName/links/link1",
+ "name": "link1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "routerName": "router1",
+ "interfaceName": "Ethernet 0/0",
+ "patchPanelId": "patchPanelId1",
+ "rackId": "rackId1",
+ "connectorType": "LC",
+ "adminState": "Enabled"
+ }
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRoutePorts/portName/links/link2",
+ "name": "link2",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "routerName": "router2",
+ "interfaceName": "Ethernet 0/0",
+ "patchPanelId": "patchPanelId2",
+ "rackId": "rackId2",
+ "connectorType": "LC",
+ "adminState": "Disabled"
+ }
+ }
+ ],
+ "circuits": []
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "portName",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRoutePorts/portName",
+ "type": "Microsoft.Network/expressRoutePorts",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "peeringLocation": "peeringLocationName",
+ "bandwidthInGbps": 100,
+ "provisionedBandwidthInGbps": 0.0,
+ "mtu": "1500",
+ "encapsulation": "QinQ",
+ "etherType": "0x8100",
+ "allocationDate": "Friday, July 1, 2018",
+ "links": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRoutePorts/portName/links/link1",
+ "name": "link1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "routerName": "router1",
+ "interfaceName": "Ethernet 0/0",
+ "patchPanelId": "patchPanelId1",
+ "rackId": "rackId1",
+ "connectorType": "LC",
+ "adminState": "Enabled"
+ }
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRoutePorts/portName/links/link2",
+ "name": "link2",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "routerName": "router2",
+ "interfaceName": "Ethernet 0/0",
+ "patchPanelId": "patchPanelId2",
+ "rackId": "rackId2",
+ "connectorType": "LC",
+ "adminState": "Disabled"
+ }
+ }
+ ],
+ "circuits": []
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRoutePortUpdateTags.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRoutePortUpdateTags.json
new file mode 100644
index 000000000000..b7337d2789e4
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRoutePortUpdateTags.json
@@ -0,0 +1,63 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "api-version": "2020-07-01",
+ "resourceGroupName": "rg1",
+ "expressRoutePortName": "portName",
+ "parameters": {
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "portName",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRoutePorts/portName",
+ "type": "Microsoft.Network/expressRoutePorts",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "peeringLocation": "peeringLocationName",
+ "bandwidthInGbps": 100,
+ "provisionedBandwidthInGbps": 0.0,
+ "mtu": "1500",
+ "encapsulation": "QinQ",
+ "etherType": "0x8100",
+ "allocationDate": "Friday, July 1, 2018",
+ "links": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRoutePorts/portName/links/link1",
+ "name": "link1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "routerName": "router1",
+ "interfaceName": "Ethernet 0/0",
+ "patchPanelId": "patchPanelId1",
+ "rackId": "rackId1",
+ "connectorType": "LC",
+ "adminState": "Disabled"
+ }
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRoutePorts/portName/links/link2",
+ "name": "link2",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "routerName": "router2",
+ "interfaceName": "Ethernet 0/0",
+ "patchPanelId": "patchPanelId2",
+ "rackId": "rackId2",
+ "connectorType": "LC",
+ "adminState": "Disabled"
+ }
+ }
+ ],
+ "circuits": []
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRoutePortsLocationGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRoutePortsLocationGet.json
new file mode 100644
index 000000000000..36021943124b
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRoutePortsLocationGet.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "api-version": "2020-07-01",
+ "locationName": "locationName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "locationName",
+ "id": "/subscriptions/subid/providers/Microsoft.Network/expressRoutePortsLocations/locationName",
+ "type": "Microsoft.Network/expressRoutePortsLocations",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "address": "123 Main Street, City, State, Zip",
+ "contact": "email@address.com",
+ "availableBandwidths": [
+ {
+ "offerName": "100 Gbps",
+ "valueInGbps": 100
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRoutePortsLocationList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRoutePortsLocationList.json
new file mode 100644
index 000000000000..aa10893d3d1e
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRoutePortsLocationList.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "api-version": "2020-07-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "locationName",
+ "id": "/subscriptions/subid/providers/Microsoft.Network/expressRoutePortsLocations/locationName",
+ "type": "Microsoft.Network/expressRoutePortsLocations",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "address": "123 Main Street, City, State, Zip",
+ "contact": "email@address.com",
+ "availableBandwidths": []
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteProviderList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteProviderList.json
new file mode 100644
index 000000000000..3c4a5ae0491c
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ExpressRouteProviderList.json
@@ -0,0 +1,60 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "providerName",
+ "id": "/subscriptions//resourceGroups//providers/Microsoft.Network/expressRouteServiceProviders/",
+ "type": "Microsoft.Network/expressRouteServiceProviders",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "peeringLocations": [
+ "peeringLocation1",
+ "peeringLocation2"
+ ],
+ "bandwidthsOffered": [
+ {
+ "offerName": "50Mbps",
+ "valueInMbps": 50
+ },
+ {
+ "offerName": "100Mbps",
+ "valueInMbps": 100
+ },
+ {
+ "offerName": "200Mbps",
+ "valueInMbps": 200
+ },
+ {
+ "offerName": "500Mbps",
+ "valueInMbps": 500
+ },
+ {
+ "offerName": "1Gbps",
+ "valueInMbps": 1000
+ },
+ {
+ "offerName": "2Gbps",
+ "valueInMbps": 2000
+ },
+ {
+ "offerName": "5Gbps",
+ "valueInMbps": 5000
+ },
+ {
+ "offerName": "10Gbps",
+ "valueInMbps": 10000
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyDelete.json
new file mode 100644
index 000000000000..eadcb32db046
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "firewallPolicyName": "firewallPolicy"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyGet.json
new file mode 100644
index 000000000000..5c9bf22d176b
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyGet.json
@@ -0,0 +1,83 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "firewallPolicyName": "firewallPolicy"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "firewallPolicy",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/firewallPolicies/firewallPolicy",
+ "type": "Microsoft.Network/firewallPolicies",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "threatIntelMode": "Alert",
+ "threatIntelWhitelist": {
+ "ipAddresses": [
+ "20.3.4.5"
+ ],
+ "fqdns": [
+ "*.microsoft.com"
+ ]
+ },
+ "ruleCollectionGroups": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/firewallPolicies/firewallPolicy/ruleCollectionGroups/ruleCollectionGroup1"
+ }
+ ],
+ "firewalls": [],
+ "dnsSettings": {
+ "servers": [
+ "30.3.4.5"
+ ],
+ "enableProxy": true,
+ "requireProxyForNetworkRules": false
+ },
+ "sku": {
+ "tier": "Premium"
+ },
+ "intrusionDetection": {
+ "mode": "Alert",
+ "configuration": {
+ "signatureOverrides": [
+ {
+ "id": "2525004",
+ "mode": "Deny"
+ }
+ ],
+ "bypassTrafficSettings": [
+ {
+ "name": "bypassRule1",
+ "description": "Rule 1",
+ "protocol": "TCP",
+ "sourceAddresses": [
+ "1.2.3.4"
+ ],
+ "destinationAddresses": [
+ "5.6.7.8"
+ ],
+ "destinationPorts": [
+ "*"
+ ]
+ }
+ ]
+ }
+ },
+ "transportSecurity": {
+ "certificateAuthority": {
+ "name": "clientcert",
+ "keyVaultSecretId": "https://kv/secret"
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyListByResourceGroup.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyListByResourceGroup.json
new file mode 100644
index 000000000000..b692c8709a4b
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyListByResourceGroup.json
@@ -0,0 +1,45 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "firewallPolicy",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/firewallPolicies/firewallPolicy",
+ "type": "Microsoft.Network/firewallPolicies",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "threatIntelMode": "Alert",
+ "ruleCollectionGroups": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/firewallPolicies/firewallPolicy/ruleCollectionGroups/ruleCollectionGroup1"
+ }
+ ],
+ "firewalls": [],
+ "dnsSettings": {
+ "servers": [
+ "30.3.4.5"
+ ],
+ "enableProxy": true,
+ "requireProxyForNetworkRules": false
+ },
+ "sku": {
+ "tier": "Standard"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyListBySubscription.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyListBySubscription.json
new file mode 100644
index 000000000000..50fe370c18c1
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyListBySubscription.json
@@ -0,0 +1,44 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "firewallPolicy",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/firewallPolicies/firewallPolicy",
+ "type": "Microsoft.Network/firewallPolicies",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "threatIntelMode": "Alert",
+ "ruleCollectionGroups": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/firewallPolicies/firewallPolicy/ruleCollectionGroups/ruleCollectionGroup1"
+ }
+ ],
+ "firewalls": [],
+ "dnsSettings": {
+ "servers": [
+ "30.3.4.5"
+ ],
+ "enableProxy": true,
+ "requireProxyForNetworkRules": false
+ },
+ "sku": {
+ "tier": "Standard"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyNatRuleCollectionGroupGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyNatRuleCollectionGroupGet.json
new file mode 100644
index 000000000000..5365417b95df
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyNatRuleCollectionGroupGet.json
@@ -0,0 +1,54 @@
+{
+ "parameters": {
+ "ruleCollectionGroupName": "ruleCollectionGroup1",
+ "firewallPolicyName": "firewallPolicy",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "ruleCollectionGroup1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/firewallPolicies/firewallPolicy/ruleCollectionGroups/ruleCollectionGroup1",
+ "etag": "W/\"72090554-7e3b-43f2-80ad-99a9020dcb11\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "priority": 100,
+ "ruleCollections": [
+ {
+ "ruleCollectionType": "FirewallPolicyNatRuleCollection",
+ "action": {
+ "type": "DNAT"
+ },
+ "rules": [
+ {
+ "ruleType": "NatRule",
+ "name": "NatRule1",
+ "translatedFqdn": "internalhttpserver",
+ "translatedPort": "8080",
+ "ipProtocols": [
+ "TCP",
+ "UDP"
+ ],
+ "sourceAddresses": [
+ "2.2.2.2"
+ ],
+ "sourceIpGroups": [],
+ "destinationAddresses": [
+ "152.23.32.23"
+ ],
+ "destinationPorts": [
+ "8080"
+ ]
+ }
+ ],
+ "name": "NatRC",
+ "priority": 100
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyNatRuleCollectionGroupPut.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyNatRuleCollectionGroupPut.json
new file mode 100644
index 000000000000..a32d9110dcdb
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyNatRuleCollectionGroupPut.json
@@ -0,0 +1,133 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "firewallPolicyName": "firewallPolicy",
+ "ruleCollectionGroupName": "ruleCollectionGroup1",
+ "parameters": {
+ "properties": {
+ "priority": 100,
+ "ruleCollections": [
+ {
+ "ruleCollectionType": "FirewallPolicyNatRuleCollection",
+ "priority": 100,
+ "name": "Example-Nat-Rule-Collection",
+ "action": {
+ "type": "DNAT"
+ },
+ "rules": [
+ {
+ "ruleType": "NatRule",
+ "name": "nat-rule1",
+ "translatedFqdn": "internalhttp.server.net",
+ "translatedPort": "8080",
+ "ipProtocols": [
+ "TCP",
+ "UDP"
+ ],
+ "sourceAddresses": [
+ "2.2.2.2"
+ ],
+ "sourceIpGroups": [],
+ "destinationAddresses": [
+ "152.23.32.23"
+ ],
+ "destinationPorts": [
+ "8080"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "ruleCollectionGroup1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/firewallPolicies/firewallPolicy/ruleCollectionGroups/ruleCollectionGroup1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "priority": 100,
+ "ruleCollections": [
+ {
+ "ruleCollectionType": "FirewallPolicyNatRuleCollection",
+ "name": "Example-Nat-Rule-Collection",
+ "priority": 100,
+ "action": {
+ "type": "DNAT"
+ },
+ "rules": [
+ {
+ "ruleType": "NatRule",
+ "name": "nat-rule1",
+ "translatedFqdn": "internalhttp.server.net",
+ "translatedPort": "8080",
+ "ipProtocols": [
+ "TCP",
+ "UDP"
+ ],
+ "sourceAddresses": [
+ "2.2.2.2"
+ ],
+ "sourceIpGroups": [],
+ "destinationAddresses": [
+ "152.23.32.23"
+ ],
+ "destinationPorts": [
+ "8080"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "firewallPolicy",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/firewallPolicies/firewallPolicy",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ruleCollections": [
+ {
+ "ruleCollectionType": "FirewallPolicyNatRuleCollection",
+ "name": "Example-Nat-Rule-Collection",
+ "priority": 100,
+ "action": {
+ "type": "DNAT"
+ },
+ "rules": [
+ {
+ "ruleType": "NatRule",
+ "name": "nat-rule1",
+ "translatedFqdn": "internalhttp.server.net",
+ "translatedPort": "8080",
+ "ipProtocols": [
+ "TCP",
+ "UDP"
+ ],
+ "sourceAddresses": [
+ "2.2.2.2"
+ ],
+ "sourceIpGroups": [],
+ "destinationAddresses": [
+ "152.23.32.23"
+ ],
+ "destinationPorts": [
+ "8080"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyPut.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyPut.json
new file mode 100644
index 000000000000..ce54af24bb58
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyPut.json
@@ -0,0 +1,222 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "firewallPolicyName": "firewallPolicy",
+ "parameters": {
+ "tags": {
+ "key1": "value1"
+ },
+ "location": "West US",
+ "properties": {
+ "threatIntelMode": "Alert",
+ "threatIntelWhitelist": {
+ "ipAddresses": [
+ "20.3.4.5"
+ ],
+ "fqdns": [
+ "*.microsoft.com"
+ ]
+ },
+ "dnsSettings": {
+ "servers": [
+ "30.3.4.5"
+ ],
+ "enableProxy": true,
+ "requireProxyForNetworkRules": false
+ },
+ "sku": {
+ "tier": "Premium"
+ },
+ "intrusionDetection": {
+ "mode": "Alert",
+ "configuration": {
+ "signatureOverrides": [
+ {
+ "id": "2525004",
+ "mode": "Deny"
+ }
+ ],
+ "bypassTrafficSettings": [
+ {
+ "name": "bypassRule1",
+ "description": "Rule 1",
+ "protocol": "TCP",
+ "sourceAddresses": [
+ "1.2.3.4"
+ ],
+ "destinationAddresses": [
+ "5.6.7.8"
+ ],
+ "destinationPorts": [
+ "*"
+ ]
+ }
+ ]
+ }
+ },
+ "transportSecurity": {
+ "certificateAuthority": {
+ "name": "clientcert",
+ "keyVaultSecretId": "https://kv/secret"
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "firewallPolicy",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/firewallPolicies/firewallPolicy",
+ "type": "Microsoft.Network/firewallPolicies",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "threatIntelMode": "Alert",
+ "threatIntelWhitelist": {
+ "ipAddresses": [
+ "20.3.4.5"
+ ],
+ "fqdns": [
+ "*.microsoft.com"
+ ]
+ },
+ "ruleCollectionGroups": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/firewallPolicies/firewallPolicy/ruleCollectionGroups/ruleCollectionGroup1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/firewallPolicies/firewallPolicy/ruleCollectionGroups/ruleCollectionGroup2"
+ }
+ ],
+ "firewalls": [],
+ "dnsSettings": {
+ "servers": [
+ "30.3.4.5"
+ ],
+ "enableProxy": true,
+ "requireProxyForNetworkRules": false
+ },
+ "sku": {
+ "tier": "Premium"
+ },
+ "intrusionDetection": {
+ "mode": "Alert",
+ "configuration": {
+ "signatureOverrides": [
+ {
+ "id": "2525004",
+ "mode": "Deny"
+ }
+ ],
+ "bypassTrafficSettings": [
+ {
+ "name": "bypassRule1",
+ "description": "Rule 1",
+ "protocol": "TCP",
+ "sourceAddresses": [
+ "1.2.3.4"
+ ],
+ "destinationAddresses": [
+ "5.6.7.8"
+ ],
+ "destinationPorts": [
+ "*"
+ ]
+ }
+ ]
+ }
+ },
+ "transportSecurity": {
+ "certificateAuthority": {
+ "name": "clientcert",
+ "keyVaultSecretId": "https://kv/secret"
+ }
+ }
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "firewallPolicy",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/firewallPolicies/firewallPolicy",
+ "type": "Microsoft.Network/firewallPolicies",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "threatIntelMode": "Alert",
+ "threatIntelWhitelist": {
+ "ipAddresses": [
+ "20.3.4.5"
+ ],
+ "fqdns": [
+ "*.microsoft.com"
+ ]
+ },
+ "ruleCollectionGroups": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/firewallPolicies/firewallPolicy/ruleCollectionGroups/ruleCollectionGroup1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/firewallPolicies/firewallPolicy/ruleCollectionGroups/ruleCollectionGroup2"
+ }
+ ],
+ "firewalls": [],
+ "dnsSettings": {
+ "servers": [
+ "30.3.4.5"
+ ],
+ "enableProxy": true,
+ "requireProxyForNetworkRules": false
+ },
+ "sku": {
+ "tier": "Premium"
+ },
+ "intrusionDetection": {
+ "mode": "Alert",
+ "configuration": {
+ "signatureOverrides": [
+ {
+ "id": "2525004",
+ "mode": "Deny"
+ }
+ ],
+ "bypassTrafficSettings": [
+ {
+ "name": "bypassRule1",
+ "description": "Rule 1",
+ "protocol": "TCP",
+ "sourceAddresses": [
+ "1.2.3.4"
+ ],
+ "destinationAddresses": [
+ "5.6.7.8"
+ ],
+ "destinationPorts": [
+ "*"
+ ]
+ }
+ ]
+ }
+ },
+ "transportSecurity": {
+ "certificateAuthority": {
+ "name": "clientcert",
+ "keyVaultSecretId": "https://kv/secret"
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyRuleCollectionGroupDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyRuleCollectionGroupDelete.json
new file mode 100644
index 000000000000..319c829bea14
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyRuleCollectionGroupDelete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "ruleCollectionGroupName": "ruleCollectionGroup1",
+ "firewallPolicyName": "firewallPolicy",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyRuleCollectionGroupGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyRuleCollectionGroupGet.json
new file mode 100644
index 000000000000..17fa3a434e28
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyRuleCollectionGroupGet.json
@@ -0,0 +1,50 @@
+{
+ "parameters": {
+ "ruleCollectionGroupName": "ruleCollectionGroup1",
+ "firewallPolicyName": "firewallPolicy",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "ruleCollectionGroup1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/firewallPolicies/firewallPolicy/ruleCollectionGroups/ruleCollectionGroup1",
+ "etag": "W/\"72090554-7e3b-43f2-80ad-99a9020dcb11\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "priority": 110,
+ "ruleCollections": [
+ {
+ "ruleCollectionType": "FirewallPolicyFilterRuleCollection",
+ "name": "Example-Filter-Rule-Collection",
+ "priority": 200,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "ruleType": "NetworkRule",
+ "name": "network-rule1",
+ "sourceAddresses": [
+ "10.1.25.0/24"
+ ],
+ "destinationAddresses": [
+ "*"
+ ],
+ "ipProtocols": [
+ "TCP"
+ ],
+ "destinationPorts": [
+ "*"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyRuleCollectionGroupList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyRuleCollectionGroupList.json
new file mode 100644
index 000000000000..84d55cb36fbb
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyRuleCollectionGroupList.json
@@ -0,0 +1,54 @@
+{
+ "parameters": {
+ "firewallPolicyName": "firewallPolicy",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "ruleCollectionGroup1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/firewallPolicies/firewallPolicy/ruleCollectionGroups/ruleCollectionGroup1",
+ "etag": "W/\"72090554-7e3b-43f2-80ad-99a9020dcb11\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "priority": 110,
+ "ruleCollections": [
+ {
+ "name": "Example-Filter-Rule-Collection",
+ "ruleCollectionType": "FirewallPolicyFilterRuleCollection",
+ "priority": 120,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "name": "network-rule-1",
+ "ruleType": "NetworkRule",
+ "description": "Network rule",
+ "destinationAddresses": [
+ "*"
+ ],
+ "sourceAddresses": [
+ "10.1.25.0/24"
+ ],
+ "ipProtocols": [
+ "TCP"
+ ],
+ "destinationPorts": [
+ "*"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyRuleCollectionGroupPut.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyRuleCollectionGroupPut.json
new file mode 100644
index 000000000000..c2ca3790b438
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyRuleCollectionGroupPut.json
@@ -0,0 +1,122 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "firewallPolicyName": "firewallPolicy",
+ "ruleCollectionGroupName": "ruleCollectionGroup1",
+ "parameters": {
+ "properties": {
+ "priority": 100,
+ "ruleCollections": [
+ {
+ "ruleCollectionType": "FirewallPolicyFilterRuleCollection",
+ "name": "Example-Filter-Rule-Collection",
+ "priority": 100,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "ruleType": "NetworkRule",
+ "name": "network-rule1",
+ "sourceAddresses": [
+ "10.1.25.0/24"
+ ],
+ "destinationAddresses": [
+ "*"
+ ],
+ "ipProtocols": [
+ "TCP"
+ ],
+ "destinationPorts": [
+ "*"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "ruleCollectionGroup1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/firewallPolicies/firewallPolicy/ruleCollectionGroups/ruleCollectionGroup1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "priority": 100,
+ "ruleCollections": [
+ {
+ "ruleCollectionType": "FirewallPolicyFilterRuleCollection",
+ "name": "Example-Filter-Rule-Collection",
+ "priority": 100,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "ruleType": "NetworkRule",
+ "name": "network-rule1",
+ "sourceAddresses": [
+ "10.1.25.0/24"
+ ],
+ "destinationAddresses": [
+ "*"
+ ],
+ "ipProtocols": [
+ "TCP"
+ ],
+ "destinationPorts": [
+ "*"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "firewallPolicy",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/firewallPolicies/firewallPolicy",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "priority": 100,
+ "ruleCollections": [
+ {
+ "ruleCollectionType": "FirewallPolicyFilterRuleCollection",
+ "name": "Example-Filter-Rule-Collection",
+ "priority": 100,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "ruleType": "NetworkRule",
+ "name": "network-rule1",
+ "sourceAddresses": [
+ "10.1.25.0/24"
+ ],
+ "destinationAddresses": [
+ "*"
+ ],
+ "ipProtocols": [
+ "TCP"
+ ],
+ "destinationPorts": [
+ "*"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyRuleCollectionGroupWithIpGroupsGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyRuleCollectionGroupWithIpGroupsGet.json
new file mode 100644
index 000000000000..6e1dfbe37007
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyRuleCollectionGroupWithIpGroupsGet.json
@@ -0,0 +1,50 @@
+{
+ "parameters": {
+ "ruleCollectionGroupName": "ruleGroup1",
+ "firewallPolicyName": "firewallPolicy",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "ruleGroup1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/firewallPolicies/firewallPolicy/ruleGroups/ruleGroup1",
+ "etag": "W/\"72090554-7e3b-43f2-80ad-99a9020dcb11\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "priority": 110,
+ "ruleCollections": [
+ {
+ "ruleCollectionType": "FirewallPolicyFilterRuleCollection",
+ "name": "Example-Filter-Rule-Collection",
+ "priority": 200,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "ruleType": "NetworkRule",
+ "name": "network-rule1",
+ "ipProtocols": [
+ "TCP"
+ ],
+ "destinationPorts": [
+ "*"
+ ],
+ "sourceIpGroups": [
+ "/subscriptions/subid/providers/Microsoft.Network/resourceGroup/rg1/ipGroups/ipGroups1"
+ ],
+ "destinationIpGroups": [
+ "/subscriptions/subid/providers/Microsoft.Network/resourceGroup/rg1/ipGroups/ipGroups2"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyRuleCollectionGroupWithIpGroupsList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyRuleCollectionGroupWithIpGroupsList.json
new file mode 100644
index 000000000000..b90735b66d44
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyRuleCollectionGroupWithIpGroupsList.json
@@ -0,0 +1,54 @@
+{
+ "parameters": {
+ "firewallPolicyName": "firewallPolicy",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "ruleCollectionGroup1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/firewallPolicies/firewallPolicy/ruleCollectionGroups/ruleCollectionGroup1",
+ "etag": "W/\"72090554-7e3b-43f2-80ad-99a9020dcb11\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "priority": 110,
+ "ruleCollections": [
+ {
+ "name": "Example-Filter-Rule-Collection",
+ "ruleCollectionType": "FirewallPolicyFilterRuleCollection",
+ "priority": 120,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "name": "network-rule-1",
+ "ruleType": "NetworkRule",
+ "description": "Network rule",
+ "sourceIpGroups": [
+ "/subscriptions/subid/providers/Microsoft.Network/resourceGroup/rg1/ipGroups/ipGroups1"
+ ],
+ "destinationIpGroups": [
+ "/subscriptions/subid/providers/Microsoft.Network/resourceGroup/rg1/ipGroups/ipGroups2"
+ ],
+ "ipProtocols": [
+ "TCP"
+ ],
+ "destinationPorts": [
+ "*"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyRuleCollectionGroupWithIpGroupsPut.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyRuleCollectionGroupWithIpGroupsPut.json
new file mode 100644
index 000000000000..1545bbd3445a
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyRuleCollectionGroupWithIpGroupsPut.json
@@ -0,0 +1,119 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "firewallPolicyName": "firewallPolicy",
+ "ruleCollectionGroupName": "ruleCollectionGroup1",
+ "parameters": {
+ "properties": {
+ "priority": 110,
+ "ruleCollections": [
+ {
+ "ruleCollectionType": "FirewallPolicyFilterRuleCollection",
+ "name": "Example-Filter-Rule-Collection",
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "ruleType": "NetworkRule",
+ "name": "network-1",
+ "ipProtocols": [
+ "TCP"
+ ],
+ "destinationPorts": [
+ "*"
+ ],
+ "sourceIpGroups": [
+ "/subscriptions/subid/providers/Microsoft.Network/resourceGroup/rg1/ipGroups/ipGroups1"
+ ],
+ "destinationIpGroups": [
+ "/subscriptions/subid/providers/Microsoft.Network/resourceGroup/rg1/ipGroups/ipGroups2"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "ruleCollectionGroup1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/firewallPolicies/firewallPolicy/ruleCollectionGroups/ruleCollectionGroup1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "priority": 110,
+ "ruleCollections": [
+ {
+ "ruleCollectionType": "FirewallPolicyFilterRuleCollection",
+ "name": "Example-Filter-Rule-Collection",
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "ruleType": "NetworkRule",
+ "name": "network-1",
+ "ipProtocols": [
+ "TCP"
+ ],
+ "destinationPorts": [
+ "*"
+ ],
+ "sourceIpGroups": [
+ "/subscriptions/subid/providers/Microsoft.Network/resourceGroup/rg1/ipGroups/ipGroups1"
+ ],
+ "destinationIpGroups": [
+ "/subscriptions/subid/providers/Microsoft.Network/resourceGroup/rg1/ipGroups/ipGroups2"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "firewallPolicy",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/firewallPolicies/firewallPolicy",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "priority": 110,
+ "ruleCollections": [
+ {
+ "ruleCollectionType": "FirewallPolicyFilterRuleCollection",
+ "name": "Example-Filter-Rule-Collection",
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "ruleType": "NetworkRule",
+ "name": "network-1",
+ "ipProtocols": [
+ "TCP"
+ ],
+ "destinationPorts": [
+ "*"
+ ],
+ "sourceIpGroups": [
+ "/subscriptions/subid/providers/Microsoft.Network/resourceGroup/rg1/ipGroups/ipGroups1"
+ ],
+ "destinationIpGroups": [
+ "/subscriptions/subid/providers/Microsoft.Network/resourceGroup/rg1/ipGroups/ipGroups2"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyRuleCollectionGroupWithWebCategoriesGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyRuleCollectionGroupWithWebCategoriesGet.json
new file mode 100644
index 000000000000..62fe0684caf4
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyRuleCollectionGroupWithWebCategoriesGet.json
@@ -0,0 +1,52 @@
+{
+ "parameters": {
+ "ruleCollectionGroupName": "ruleCollectionGroup1",
+ "firewallPolicyName": "firewallPolicy",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "e747cc13-97d4-4a79-b463-42d7f4e558f2"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "ruleCollectionGroup1",
+ "id": "/subscriptions/e747cc13-97d4-4a79-b463-42d7f4e558f2/resourceGroups/rg1/providers/Microsoft.Network/firewallPolicies/firewallPolicy/ruleCollectionGroups/ruleCollectionGroup1",
+ "etag": "W/\"72090554-7e3b-43f2-80ad-99a9020dcb11\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "priority": 110,
+ "ruleCollections": [
+ {
+ "ruleCollectionType": "FirewallPolicyFilterRuleCollection",
+ "name": "Example-Filter-Rule-Collection",
+ "priority": 200,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "ruleType": "ApplicationRule",
+ "name": "rule1",
+ "description": "Deny inbound rule",
+ "protocols": [
+ {
+ "protocolType": "Https",
+ "port": 443
+ }
+ ],
+ "sourceAddresses": [
+ "216.58.216.164",
+ "10.0.0.0/24"
+ ],
+ "webCategories": [
+ "Hacking"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyRuleCollectionGroupWithWebCategoriesList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyRuleCollectionGroupWithWebCategoriesList.json
new file mode 100644
index 000000000000..5c2c0fb3eede
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyRuleCollectionGroupWithWebCategoriesList.json
@@ -0,0 +1,55 @@
+{
+ "parameters": {
+ "firewallPolicyName": "firewallPolicy",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "e747cc13-97d4-4a79-b463-42d7f4e558f2"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "ruleCollectionGroup1",
+ "id": "/subscriptions/e747cc13-97d4-4a79-b463-42d7f4e558f2/resourceGroups/rg1/providers/Microsoft.Network/firewallPolicies/firewallPolicy/ruleCollectionGroups/ruleCollectionGroup1",
+ "etag": "W/\"72090554-7e3b-43f2-80ad-99a9020dcb11\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "priority": 110,
+ "ruleCollections": [
+ {
+ "name": "Example-Filter-Rule-Collection",
+ "ruleCollectionType": "FirewallPolicyFilterRuleCollection",
+ "priority": 120,
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "ruleType": "ApplicationRule",
+ "name": "rule1",
+ "description": "Deny inbound rule",
+ "protocols": [
+ {
+ "protocolType": "Https",
+ "port": 443
+ }
+ ],
+ "sourceAddresses": [
+ "216.58.216.164",
+ "10.0.0.0/24"
+ ],
+ "webCategories": [
+ "Hacking"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyRuleCollectionGroupWithWebCategoriesPut.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyRuleCollectionGroupWithWebCategoriesPut.json
new file mode 100644
index 000000000000..85d2498ba21e
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/FirewallPolicyRuleCollectionGroupWithWebCategoriesPut.json
@@ -0,0 +1,125 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "e747cc13-97d4-4a79-b463-42d7f4e558f2",
+ "resourceGroupName": "rg1",
+ "firewallPolicyName": "firewallPolicy",
+ "ruleCollectionGroupName": "ruleCollectionGroup1",
+ "parameters": {
+ "properties": {
+ "priority": 110,
+ "ruleCollections": [
+ {
+ "ruleCollectionType": "FirewallPolicyFilterRuleCollection",
+ "name": "Example-Filter-Rule-Collection",
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "ruleType": "ApplicationRule",
+ "name": "rule1",
+ "description": "Deny inbound rule",
+ "protocols": [
+ {
+ "protocolType": "Https",
+ "port": 443
+ }
+ ],
+ "sourceAddresses": [
+ "216.58.216.164",
+ "10.0.0.0/24"
+ ],
+ "webCategories": [
+ "Hacking"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "ruleCollectionGroup1",
+ "id": "/subscriptions/e747cc13-97d4-4a79-b463-42d7f4e558f2/resourceGroups/rg1/providers/Microsoft.Network/firewallPolicies/firewallPolicy/ruleCollectionGroups/ruleCollectionGroup1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "priority": 110,
+ "ruleCollections": [
+ {
+ "ruleCollectionType": "FirewallPolicyFilterRuleCollection",
+ "name": "Example-Filter-Rule-Collection",
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "ruleType": "ApplicationRule",
+ "name": "rule1",
+ "description": "Deny inbound rule",
+ "protocols": [
+ {
+ "protocolType": "Https",
+ "port": 443
+ }
+ ],
+ "sourceAddresses": [
+ "216.58.216.164",
+ "10.0.0.0/24"
+ ],
+ "webCategories": [
+ "Hacking"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "firewallPolicy",
+ "id": "/subscriptions/e747cc13-97d4-4a79-b463-42d7f4e558f2/resourceGroups/rg1/providers/Microsoft.Network/firewallPolicies/firewallPolicy",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "priority": 110,
+ "ruleCollections": [
+ {
+ "ruleCollectionType": "FirewallPolicyFilterRuleCollection",
+ "name": "Example-Filter-Rule-Collection",
+ "action": {
+ "type": "Deny"
+ },
+ "rules": [
+ {
+ "ruleType": "ApplicationRule",
+ "name": "rule1",
+ "description": "Deny inbound rule",
+ "protocols": [
+ {
+ "protocolType": "Https",
+ "port": 443
+ }
+ ],
+ "sourceAddresses": [
+ "216.58.216.164",
+ "10.0.0.0/24"
+ ],
+ "webCategories": [
+ "Hacking"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/GenerateExpressRoutePortsLOA.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/GenerateExpressRoutePortsLOA.json
new file mode 100644
index 000000000000..ee6442a4c98b
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/GenerateExpressRoutePortsLOA.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "api-version": "2020-07-01",
+ "resourceGroupName": "rg1",
+ "expressRoutePortName": "portName",
+ "request": {
+ "customerName": "customerName"
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the content as a base64 encoded string",
+ "body": {
+ "encodedContent": "TWFuIGlzIGRpc3"
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/GenerateVirtualWanVpnServerConfigurationVpnProfile.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/GenerateVirtualWanVpnServerConfigurationVpnProfile.json
new file mode 100644
index 000000000000..99d4a5b58d88
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/GenerateVirtualWanVpnServerConfigurationVpnProfile.json
@@ -0,0 +1,18 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualWANName": "wan1",
+ "vpnClientParams": {
+ "vpnServerConfigurationResourceId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnServerConfigurations/vpnconfig1",
+ "authenticationMethod": "EAPTLS"
+ }
+ },
+ "responses": {
+ "202": {},
+ "200": {
+ "body": ""
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/GetVirtualWanVpnServerConfigurations.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/GetVirtualWanVpnServerConfigurations.json
new file mode 100644
index 000000000000..0ada7a8b1d12
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/GetVirtualWanVpnServerConfigurations.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "virtualWANName": "wan1"
+ },
+ "responses": {
+ "200": {
+ "description": "Request successful.",
+ "body": {
+ "vpnServerConfigurationResourceIds": [
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnServerConfigurations/vpnconfig1",
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnServerConfigurations/vpnconfig2"
+ ]
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/HubRouteTableDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/HubRouteTableDelete.json
new file mode 100644
index 000000000000..79d8853d21ef
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/HubRouteTableDelete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "routeTableName": "hubRouteTable1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "virtualHubName": "virtualHub1"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/HubRouteTableGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/HubRouteTableGet.json
new file mode 100644
index 000000000000..d35acea33b41
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/HubRouteTableGet.json
@@ -0,0 +1,47 @@
+{
+ "parameters": {
+ "routeTableName": "hubRouteTable1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "virtualHubName": "virtualHub1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "name": "hubRouteTable1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "routes": [
+ {
+ "name": "route1",
+ "destinationType": "CIDR",
+ "destinations": [
+ "10.0.0.0/8",
+ "20.0.0.0/8",
+ "30.0.0.0/8"
+ ],
+ "nextHopType": "ResourceId",
+ "nextHop": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azureFirewall1"
+ }
+ ],
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "associatedConnections": [
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubVirtualNetworkConnections/vnetConnn1",
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubVirtualNetworkConnections/vnetConnn2"
+ ],
+ "propagatingConnections": [
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRouteGateways/erg1/expressRouteConnections/erConn1",
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/vpngw1/vpnConnections/vpnConn2"
+ ]
+ },
+ "type": "Microsoft.Network/virtualHubs/hubRouteTables"
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/HubRouteTableList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/HubRouteTableList.json
new file mode 100644
index 000000000000..96fa33d5a96c
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/HubRouteTableList.json
@@ -0,0 +1,81 @@
+{
+ "parameters": {
+ "virtualHubName": "virtualHub1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": [
+ {
+ "name": "hubRouteTable1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "routes": [
+ {
+ "name": "route1a",
+ "destinationType": "CIDR",
+ "destinations": [
+ "10.0.0.0/8",
+ "20.0.0.0/8",
+ "30.0.0.0/8"
+ ],
+ "nextHopType": "ResourceId",
+ "nextHop": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azureFirewall1"
+ }
+ ],
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "associatedConnections": [
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubVirtualNetworkConnections/vnetConnn1",
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubVirtualNetworkConnections/vnetConnn2"
+ ],
+ "propagatingConnections": [
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRouteGateways/erg1/expressRouteConnections/erConn1",
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/vpngw1/vpnConnections/vpnConn2"
+ ]
+ },
+ "type": "Microsoft.Network/virtualHubs/hubRouteTables"
+ },
+ {
+ "name": "hubRouteTable2",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable2",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "routes": [
+ {
+ "name": "route2a",
+ "destinationType": "CIDR",
+ "destinations": [
+ "40.0.0.0/8",
+ "50.0.0.0/8",
+ "60.0.0.0/8"
+ ],
+ "nextHopType": "ResourceId",
+ "nextHop": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub1/hubVirtualNetworkConnections/vn1"
+ }
+ ],
+ "labels": [
+ "label3"
+ ],
+ "associatedConnections": [
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubVirtualNetworkConnections/vnetConnn3",
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubVirtualNetworkConnections/vnetConnn4"
+ ],
+ "propagatingConnections": [
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRouteGateways/erg1/expressRouteConnections/erConn2",
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/vpngw1/vpnConnections/vpnConn1"
+ ]
+ },
+ "type": "Microsoft.Network/virtualHubs/hubRouteTables"
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/HubRouteTablePut.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/HubRouteTablePut.json
new file mode 100644
index 000000000000..ea3c4f7fd098
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/HubRouteTablePut.json
@@ -0,0 +1,104 @@
+{
+ "parameters": {
+ "routeTableName": "hubRouteTable1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "virtualHubName": "virtualHub1",
+ "routeTableParameters": {
+ "properties": {
+ "routes": [
+ {
+ "name": "route1",
+ "destinationType": "CIDR",
+ "destinations": [
+ "10.0.0.0/8",
+ "20.0.0.0/8",
+ "30.0.0.0/8"
+ ],
+ "nextHopType": "ResourceId",
+ "nextHop": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azureFirewall1"
+ }
+ ],
+ "labels": [
+ "label1",
+ "label2"
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "name": "hubRouteTable1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "routes": [
+ {
+ "name": "route1",
+ "destinationType": "CIDR",
+ "destinations": [
+ "10.0.0.0/8",
+ "20.0.0.0/8",
+ "30.0.0.0/8"
+ ],
+ "nextHopType": "ResourceId",
+ "nextHop": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azureFirewall1"
+ }
+ ],
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "associatedConnections": [
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubVirtualNetworkConnections/vnetConnn1",
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubVirtualNetworkConnections/vnetConnn2"
+ ],
+ "propagatingConnections": [
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRouteGateways/erg1/expressRouteConnections/erConn1",
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/vpngw1/vpnConnections/vpnConn2"
+ ]
+ },
+ "type": "Microsoft.Network/virtualHubs/hubRouteTables"
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/routeTables/virtualHubRouteTable1a",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "name": "hubRouteTable1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "routes": [
+ {
+ "name": "route1",
+ "destinationType": "CIDR",
+ "destinations": [
+ "10.0.0.0/8",
+ "20.0.0.0/8",
+ "30.0.0.0/8"
+ ],
+ "nextHopType": "ResourceId",
+ "nextHop": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azureFirewall1"
+ }
+ ],
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "associatedConnections": [
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubVirtualNetworkConnections/vnetConnn1",
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubVirtualNetworkConnections/vnetConnn2"
+ ],
+ "propagatingConnections": [
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/expressRouteGateways/erg1/expressRouteConnections/erConn1",
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/vpngw1/vpnConnections/vpnConn2"
+ ]
+ },
+ "type": "Microsoft.Network/virtualHubs/hubRouteTables"
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/HubVirtualNetworkConnectionDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/HubVirtualNetworkConnectionDelete.json
new file mode 100644
index 000000000000..34dc2247bdb6
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/HubVirtualNetworkConnectionDelete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "connectionName": "connection1",
+ "virtualHubName": "virtualHub1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/HubVirtualNetworkConnectionGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/HubVirtualNetworkConnectionGet.json
new file mode 100644
index 000000000000..687f21d5d438
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/HubVirtualNetworkConnectionGet.json
@@ -0,0 +1,67 @@
+{
+ "parameters": {
+ "connectionName": "connection1",
+ "virtualHubName": "virtualHub1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "connection1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/virtualHubVnetConnections/connection1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "remoteVirtualNetwork": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1"
+ },
+ "enableInternetSecurity": false,
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": [
+ {
+ "name": "route1",
+ "addressPrefixes": [
+ "10.1.0.0/16",
+ "10.2.0.0/16"
+ ],
+ "nextHopIpAddress": "10.0.0.68"
+ },
+ {
+ "name": "route2",
+ "addressPrefixes": [
+ "10.3.0.0/16",
+ "10.4.0.0/16"
+ ],
+ "nextHopIpAddress": "10.0.0.65"
+ }
+ ]
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/HubVirtualNetworkConnectionList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/HubVirtualNetworkConnectionList.json
new file mode 100644
index 000000000000..3b9140cea410
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/HubVirtualNetworkConnectionList.json
@@ -0,0 +1,123 @@
+{
+ "parameters": {
+ "connectionName": "connection1",
+ "virtualHubName": "virtualHub1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": [
+ {
+ "name": "connection1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/virtualHubVnetConnections/connection1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "remoteVirtualNetwork": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1"
+ },
+ "enableInternetSecurity": false,
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": [
+ {
+ "name": "route1",
+ "addressPrefixes": [
+ "10.1.0.0/16",
+ "10.2.0.0/16"
+ ],
+ "nextHopIpAddress": "10.0.0.68"
+ },
+ {
+ "name": "route2",
+ "addressPrefixes": [
+ "10.3.0.0/16",
+ "10.4.0.0/16"
+ ],
+ "nextHopIpAddress": "10.0.0.65"
+ }
+ ]
+ }
+ }
+ }
+ },
+ {
+ "name": "connection2",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/virtualHubVnetConnections/connection2",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "remoteVirtualNetwork": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet2"
+ },
+ "enableInternetSecurity": false,
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": [
+ {
+ "name": "route1",
+ "addressPrefixes": [
+ "10.1.0.0/16",
+ "10.2.0.0/16"
+ ],
+ "nextHopIpAddress": "10.0.0.68"
+ },
+ {
+ "name": "route2",
+ "addressPrefixes": [
+ "10.3.0.0/16",
+ "10.4.0.0/16"
+ ],
+ "nextHopIpAddress": "10.0.0.65"
+ }
+ ]
+ }
+ }
+ }
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/HubVirtualNetworkConnectionPut.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/HubVirtualNetworkConnectionPut.json
new file mode 100644
index 000000000000..f17446b18c09
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/HubVirtualNetworkConnectionPut.json
@@ -0,0 +1,155 @@
+{
+ "parameters": {
+ "connectionName": "connection1",
+ "virtualHubName": "virtualHub1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "hubVirtualNetworkConnectionParameters": {
+ "properties": {
+ "remoteVirtualNetwork": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/SpokeVnet1"
+ },
+ "enableInternetSecurity": false,
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": [
+ {
+ "name": "route1",
+ "addressPrefixes": [
+ "10.1.0.0/16",
+ "10.2.0.0/16"
+ ],
+ "nextHopIpAddress": "10.0.0.68"
+ },
+ {
+ "name": "route2",
+ "addressPrefixes": [
+ "10.3.0.0/16",
+ "10.4.0.0/16"
+ ],
+ "nextHopIpAddress": "10.0.0.65"
+ }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "connection1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubVirtualNetworkConnections/connection1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Updating",
+ "remoteVirtualNetwork": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/SpokeVnet1"
+ },
+ "enableInternetSecurity": false,
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": [
+ {
+ "name": "route1",
+ "addressPrefixes": [
+ "10.1.0.0/16",
+ "10.2.0.0/16"
+ ],
+ "nextHopIpAddress": "10.0.0.68"
+ },
+ {
+ "name": "route2",
+ "addressPrefixes": [
+ "10.3.0.0/16",
+ "10.4.0.0/16"
+ ],
+ "nextHopIpAddress": "10.0.0.65"
+ }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "connection1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubVirtualNetworkConnections/connection1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Updating",
+ "remoteVirtualNetwork": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/SpokeVnet1"
+ },
+ "enableInternetSecurity": false,
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": [
+ {
+ "name": "route1",
+ "addressPrefixes": [
+ "10.1.0.0/16",
+ "10.2.0.0/16"
+ ],
+ "nextHopIpAddress": "10.0.0.68"
+ },
+ {
+ "name": "route2",
+ "addressPrefixes": [
+ "10.3.0.0/16",
+ "10.4.0.0/16"
+ ],
+ "nextHopIpAddress": "10.0.0.65"
+ }
+ ]
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/InboundNatRuleCreate.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/InboundNatRuleCreate.json
new file mode 100644
index 000000000000..65f00dd9c9f1
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/InboundNatRuleCreate.json
@@ -0,0 +1,66 @@
+{
+ "parameters": {
+ "resourceGroupName": "testrg",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "loadBalancerName": "lb1",
+ "inboundNatRuleName": "natRule1.1",
+ "inboundNatRuleParameters": {
+ "properties": {
+ "protocol": "Tcp",
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb1/frontendIPConfigurations/ip1"
+ },
+ "frontendPort": 3390,
+ "backendPort": 3389,
+ "idleTimeoutInMinutes": 4,
+ "enableTcpReset": false,
+ "enableFloatingIP": false
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "natRule1.1",
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb1/inboundNatRules/natRule1.1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb1/frontendIPConfigurations/ip1"
+ },
+ "frontendPort": 3390,
+ "backendPort": 3389,
+ "enableFloatingIP": false,
+ "idleTimeoutInMinutes": 4,
+ "protocol": "Tcp",
+ "enableTcpReset": false,
+ "backendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1/virtualMachines/1/networkInterfaces/nic1/ipConfigurations/ip1"
+ }
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "natRule1.1",
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb1/inboundNatRules/natRule1.1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb1/frontendIPConfigurations/ip1"
+ },
+ "frontendPort": 3390,
+ "backendPort": 3389,
+ "enableFloatingIP": false,
+ "idleTimeoutInMinutes": 4,
+ "protocol": "Tcp",
+ "enableTcpReset": false,
+ "backendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1/virtualMachines/1/networkInterfaces/nic1/ipConfigurations/ip1"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/InboundNatRuleDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/InboundNatRuleDelete.json
new file mode 100644
index 000000000000..a23e38091c31
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/InboundNatRuleDelete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "resourceGroupName": "testrg",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "loadBalancerName": "lb1",
+ "inboundNatRuleName": "natRule1.1"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/InboundNatRuleGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/InboundNatRuleGet.json
new file mode 100644
index 000000000000..6e3643be4eb0
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/InboundNatRuleGet.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "resourceGroupName": "testrg",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "loadBalancerName": "lb1",
+ "inboundNatRuleName": "natRule1.1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "natRule1.1",
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb1/inboundNatRules/natRule1.1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb1/frontendIPConfigurations/ip1"
+ },
+ "frontendPort": 3390,
+ "backendPort": 3389,
+ "enableFloatingIP": false,
+ "idleTimeoutInMinutes": 4,
+ "protocol": "Tcp",
+ "enableTcpReset": true,
+ "backendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1/virtualMachines/1/networkInterfaces/nic1/ipConfigurations/ip1"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/InboundNatRuleList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/InboundNatRuleList.json
new file mode 100644
index 000000000000..f87fb0cb9fde
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/InboundNatRuleList.json
@@ -0,0 +1,54 @@
+{
+ "parameters": {
+ "resourceGroupName": "testrg",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "loadBalancerName": "lb1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "natRule1.1",
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb1/inboundNatRules/natRule1.1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb1/frontendIPConfigurations/ip1"
+ },
+ "frontendPort": 3390,
+ "backendPort": 3389,
+ "enableFloatingIP": false,
+ "idleTimeoutInMinutes": 4,
+ "protocol": "Tcp",
+ "enableTcpReset": true,
+ "backendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1/virtualMachines/1/networkInterfaces/nic1/ipConfigurations/ip1"
+ }
+ }
+ },
+ {
+ "name": "natRule1.3",
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb1/inboundNatRules/natRule1.3",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb1/frontendIPConfigurations/ip1"
+ },
+ "frontendPort": 3392,
+ "backendPort": 3389,
+ "enableFloatingIP": false,
+ "idleTimeoutInMinutes": 4,
+ "protocol": "Tcp",
+ "enableTcpReset": true,
+ "backendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1/virtualMachines/3/networkInterfaces/nic1/ipConfigurations/ip1"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/InboundSecurityRulePut.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/InboundSecurityRulePut.json
new file mode 100644
index 000000000000..b51274108c58
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/InboundSecurityRulePut.json
@@ -0,0 +1,56 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "ruleCollectionName": "rule1",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkVirtualApplianceName": "nva",
+ "parameters": {
+ "properties": {
+ "rules": [
+ {
+ "protocol": "TCP",
+ "sourceAddressPrefix": "50.20.121.5/32",
+ "destinationPortRange": 22
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "rule1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkVirtualAppliances/nva/InboundSecurityRules/rule1",
+ "etag": "W/\"72090554-7e3b-43f2-80ad-99a9020dcb11\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "rules": [
+ {
+ "protocol": "TCP",
+ "sourceAddressPrefix": "50.20.121.5/32",
+ "destinationPortRange": 22
+ }
+ ]
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "rule1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkVirtualAppliances/nva/InboundSecurityRules/rule1",
+ "etag": "W/\"72090554-7e3b-43f2-80ad-99a9020dcb11\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "rules": [
+ {
+ "protocol": "TCP",
+ "sourceAddressPrefix": "50.20.121.5/32",
+ "destinationPortRange": 22
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/IpAllocationCreate.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/IpAllocationCreate.json
new file mode 100644
index 000000000000..15793df576e6
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/IpAllocationCreate.json
@@ -0,0 +1,52 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "ipAllocationName": "test-ipallocation",
+ "parameters": {
+ "properties": {
+ "type": "Hypernet",
+ "prefix": "3.2.5.0/24",
+ "allocationTags": {
+ "VNetID": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/HypernetVnet1"
+ }
+ },
+ "location": "centraluseuap"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "test-ipallocation",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/IpAllocations/test-ipallocation",
+ "type": "Microsoft.Network/IpAllocations",
+ "location": "centraluseuap",
+ "properties": {
+ "type": "Hypernet",
+ "prefix": "3.2.5.0/24",
+ "ipamAllocationId": "916d3b28-663f-448b-9abc-1bea9d5fed8f",
+ "allocationTags": {
+ "VNetID": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/HypernetVnet1"
+ }
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "test-ipallocation",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/IpAllocations/test-ipallocation",
+ "type": "Microsoft.Network/IpAllocations",
+ "location": "centraluseuap",
+ "properties": {
+ "type": "Hypernet",
+ "prefix": "3.2.5.0/24",
+ "ipamAllocationId": "916d3b28-663f-448b-9abc-1bea9d5fed8f",
+ "allocationTags": {
+ "VNetID": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/HypernetVnet1"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/IpAllocationDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/IpAllocationDelete.json
new file mode 100644
index 000000000000..51c42439c2f3
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/IpAllocationDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "ipAllocationName": "test-ipallocation"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/IpAllocationGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/IpAllocationGet.json
new file mode 100644
index 000000000000..556a6f4b274c
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/IpAllocationGet.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "ipAllocationName": "test-ipallocation"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "test-ipallocation",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/IpAllocations/test-ipallocation",
+ "type": "Microsoft.Network/IpAllocations",
+ "location": "centraluseuap",
+ "properties": {
+ "type": "Hypernet",
+ "prefix": "3.2.5.0/24",
+ "ipamAllocationId": "916d3b28-663f-448b-9abc-1bea9d5fed8f",
+ "allocationTags": {
+ "VNetID": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/HypernetVnet1"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/IpAllocationList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/IpAllocationList.json
new file mode 100644
index 000000000000..56c68f863e97
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/IpAllocationList.json
@@ -0,0 +1,42 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "test-ipallocation1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/IpAllocations/test-ipallocation1",
+ "type": "Microsoft.Network/IpAllocations",
+ "location": "centraluseuap",
+ "properties": {
+ "type": "Hypernet",
+ "prefix": "3.2.5.0/24",
+ "ipamAllocationId": "916d3b28-663f-448b-9abc-1bea9d5fed8f",
+ "allocationTags": {
+ "VNetID": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/HypernetVnet1"
+ }
+ }
+ },
+ {
+ "name": "test-ipallocation2",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/IpAllocations/test-ipallocation2",
+ "type": "Microsoft.Network/IpAllocations",
+ "location": "centraluseuap",
+ "properties": {
+ "type": "Hypernet",
+ "prefix": "3.2.6.0/24",
+ "ipamAllocationId": "57dc7256-2ff7-43f2-b9c8-85a70b5c6408",
+ "allocationTags": {
+ "VNetID": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/HypernetVnet2"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/IpAllocationListByResourceGroup.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/IpAllocationListByResourceGroup.json
new file mode 100644
index 000000000000..8d4a113ef1c4
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/IpAllocationListByResourceGroup.json
@@ -0,0 +1,43 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "test-ipallocation1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/IpAllocations/test-ipallocation1",
+ "type": "Microsoft.Network/IpAllocations",
+ "location": "centraluseuap",
+ "properties": {
+ "type": "Hypernet",
+ "prefix": "3.2.5.0/24",
+ "ipamAllocationId": "916d3b28-663f-448b-9abc-1bea9d5fed8f",
+ "allocationTags": {
+ "VNetID": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/HypernetVnet1"
+ }
+ }
+ },
+ {
+ "name": "test-ipallocation2",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/IpAllocations/test-ipallocation2",
+ "type": "Microsoft.Network/IpAllocations",
+ "location": "centraluseuap",
+ "properties": {
+ "type": "Hypernet",
+ "prefix": "3.2.6.0/24",
+ "ipamAllocationId": "57dc7256-2ff7-43f2-b9c8-85a70b5c6408",
+ "allocationTags": {
+ "VNetID": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/HypernetVnet2"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/IpAllocationUpdateTags.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/IpAllocationUpdateTags.json
new file mode 100644
index 000000000000..c4710e4c525a
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/IpAllocationUpdateTags.json
@@ -0,0 +1,37 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "ipAllocationName": "test-ipallocation",
+ "location": "centraluseuap",
+ "parameters": {
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "test-ipallocation",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/IpAllocations/test-ipallocation",
+ "type": "Microsoft.Network/IpAllocations",
+ "location": "centraluseuap",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "properties": {
+ "type": "Hypernet",
+ "prefix": "3.2.5.0/24",
+ "ipamAllocationId": "916d3b28-663f-448b-9abc-1bea9d5fed8f",
+ "allocationTags": {
+ "VNetID": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/HypernetVnet1"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/IpGroupsCreate.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/IpGroupsCreate.json
new file mode 100644
index 000000000000..b2590070d05e
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/IpGroupsCreate.json
@@ -0,0 +1,69 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subId",
+ "resourceGroupName": "myResourceGroup",
+ "ipGroupsName": "ipGroups1",
+ "parameters": {
+ "tags": {
+ "key1": "value1"
+ },
+ "location": "West US",
+ "properties": {
+ "ipAddresses": [
+ "13.64.39.16/32",
+ "40.74.146.80/31",
+ "40.74.147.32/28"
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "ipGroups1",
+ "id": "/subscriptions/subId/providers/Microsoft.Network/resourceGroup/myResourceGroup/ipGroups/ipGroups1",
+ "type": "Microsoft.Network/ipGroups",
+ "location": "westcentralus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ipAddresses": [
+ "13.64.39.16/32",
+ "40.74.146.80/31",
+ "40.74.147.32/28"
+ ],
+ "firewalls": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azurefirewall"
+ }
+ ],
+ "firewallPolicies": []
+ },
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\"
+ }
+ },
+ "201": {
+ "body": {
+ "name": "ipGroups1",
+ "id": "/subscriptions/subId/providers/Microsoft.Network/resourceGroup/myResourceGroup/ipGroups/ipGroups1",
+ "type": "Microsoft.Network/ipGroups",
+ "location": "westcentralus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ipAddresses": [
+ "13.64.39.16/32",
+ "40.74.146.80/31",
+ "40.74.147.32/28"
+ ],
+ "firewalls": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azurefirewall"
+ }
+ ],
+ "firewallPolicies": []
+ },
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\"
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/IpGroupsDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/IpGroupsDelete.json
new file mode 100644
index 000000000000..def1ebce6bc6
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/IpGroupsDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subId",
+ "resourceGroupName": "myResourceGroup",
+ "ipGroupsName": "ipGroups1"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/IpGroupsGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/IpGroupsGet.json
new file mode 100644
index 000000000000..f43c7abd7e37
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/IpGroupsGet.json
@@ -0,0 +1,33 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subId",
+ "resourceGroupName": "myResourceGroup",
+ "ipGroupsName": "ipGroups1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "ipGroups1",
+ "id": "/subscriptions/subId/providers/Microsoft.Network/resourceGroup/myResourceGroup/ipGroups/ipGroups1",
+ "type": "Microsoft.Network/ipGroups",
+ "location": "westcentralus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ipAddresses": [
+ "13.64.39.16/32",
+ "40.74.146.80/31",
+ "40.74.147.32/28"
+ ],
+ "firewalls": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azurefirewall"
+ }
+ ],
+ "firewallPolicies": []
+ },
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\"
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/IpGroupsListByResourceGroup.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/IpGroupsListByResourceGroup.json
new file mode 100644
index 000000000000..2ca4053e969e
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/IpGroupsListByResourceGroup.json
@@ -0,0 +1,57 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subId",
+ "resourceGroupName": "myResourceGroup"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "ipGroups1",
+ "id": "/subscriptions/subId/providers/Microsoft.Network/resourceGroup/myResourceGroup/ipGroups",
+ "type": "Microsoft.Network/ipGroups",
+ "location": "westcentralus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ipAddresses": [
+ "13.64.39.16/32",
+ "40.74.146.80/31",
+ "40.74.147.32/28"
+ ],
+ "firewalls": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azurefirewall"
+ }
+ ],
+ "firewallPolicies": []
+ },
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\"
+ },
+ {
+ "name": "ipGroups2",
+ "id": "/subscriptions/subId/providers/Microsoft.Network/resourceGroup/myResourceGroup/ipGroups",
+ "type": "Microsoft.Network/ipGroups",
+ "location": "centralus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ipAddresses": [
+ "14.64.39.16/32",
+ "41.74.146.80/31",
+ "42.74.147.32/28"
+ ],
+ "firewalls": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azurefirewall"
+ }
+ ],
+ "firewallPolicies": []
+ },
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/IpGroupsListBySubscription.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/IpGroupsListBySubscription.json
new file mode 100644
index 000000000000..4bf8f35f56c2
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/IpGroupsListBySubscription.json
@@ -0,0 +1,56 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subId"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "iptag1",
+ "id": "/subscriptions/subId/providers/Microsoft.Network/resourceGroup/myResourceGroup1/ipGroups",
+ "type": "Microsoft.Network/ipGroups",
+ "location": "westcentralus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ipAddresses": [
+ "13.64.39.16/32",
+ "40.74.146.80/31",
+ "40.74.147.32/28"
+ ],
+ "firewalls": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azurefirewall"
+ }
+ ],
+ "firewallPolicies": []
+ },
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\"
+ },
+ {
+ "name": "iptag2",
+ "id": "/subscriptions/subId/providers/Microsoft.Network/resourceGroup/myResourceGroup2/ipGroups",
+ "type": "Microsoft.Network/ipGroups",
+ "location": "centralus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ipAddresses": [
+ "14.64.39.16/32",
+ "41.74.146.80/31",
+ "42.74.147.32/28"
+ ],
+ "firewalls": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azurefirewall"
+ }
+ ],
+ "firewallPolicies": []
+ },
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/IpGroupsUpdateTags.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/IpGroupsUpdateTags.json
new file mode 100644
index 000000000000..e36c58a5f0fa
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/IpGroupsUpdateTags.json
@@ -0,0 +1,43 @@
+{
+ "parameters": {
+ "ipGroupsName": "ipGroups1",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subId",
+ "parameters": {
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "ipGroups1",
+ "id": "/subscriptions/subId/providers/Microsoft.Network/resourceGroup/myResourceGroup/ipGroups/ipGroups1",
+ "type": "Microsoft.Network/ipGroups",
+ "location": "westcentralus",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ipAddresses": [
+ "13.64.39.16/32",
+ "40.74.146.80/31",
+ "40.74.147.32/28"
+ ],
+ "firewalls": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/azureFirewalls/azurefirewall"
+ }
+ ],
+ "firewallPolicies": []
+ },
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\"
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LBBackendAddressPoolListWithBackendAddressesPoolType.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LBBackendAddressPoolListWithBackendAddressesPoolType.json
new file mode 100644
index 000000000000..efd8009497a2
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LBBackendAddressPoolListWithBackendAddressesPoolType.json
@@ -0,0 +1,50 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "testrg",
+ "loadBalancerName": "lb",
+ "api-version": "2020-07-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "backend",
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/backend",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "type": "Microsoft.Network/loadBalancers/backendAddressPools",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "loadBalancerBackendAddresses": [
+ {
+ "name": "address1",
+ "properties": {
+ "virtualNetwork": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb"
+ },
+ "ipAddress": "10.0.0.4"
+ }
+ },
+ {
+ "name": "address2",
+ "properties": {
+ "virtualNetwork": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb"
+ },
+ "ipAddress": "10.0.0.5"
+ }
+ }
+ ],
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LBBackendAddressPoolWithBackendAddressesGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LBBackendAddressPoolWithBackendAddressesGet.json
new file mode 100644
index 000000000000..742ef3987219
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LBBackendAddressPoolWithBackendAddressesGet.json
@@ -0,0 +1,47 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "testrg",
+ "loadBalancerName": "lb",
+ "backendAddressPoolName": "backend",
+ "api-version": "2020-07-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "backend",
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/backend",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "type": "Microsoft.Network/loadBalancers/backendAddressPools",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "loadBalancerBackendAddresses": [
+ {
+ "name": "address1",
+ "properties": {
+ "virtualNetwork": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb"
+ },
+ "ipAddress": "10.0.0.4"
+ }
+ },
+ {
+ "name": "address2",
+ "properties": {
+ "virtualNetwork": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb"
+ },
+ "ipAddress": "10.0.0.5"
+ }
+ }
+ ],
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LBBackendAddressPoolWithBackendAddressesPut.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LBBackendAddressPoolWithBackendAddressesPut.json
new file mode 100644
index 000000000000..725ae2d35b37
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LBBackendAddressPoolWithBackendAddressesPut.json
@@ -0,0 +1,107 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "testrg",
+ "loadBalancerName": "lb",
+ "backendAddressPoolName": "backend",
+ "api-version": "2020-07-01",
+ "parameters": {
+ "properties": {
+ "loadBalancerBackendAddresses": [
+ {
+ "name": "address1",
+ "properties": {
+ "virtualNetwork": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb"
+ },
+ "ipAddress": "10.0.0.4"
+ }
+ },
+ {
+ "name": "address2",
+ "properties": {
+ "virtualNetwork": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb"
+ },
+ "ipAddress": "10.0.0.5"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "backend",
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/backend",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "type": "Microsoft.Network/loadBalancers/backendAddressPools",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "loadBalancerBackendAddresses": [
+ {
+ "name": "address1",
+ "properties": {
+ "virtualNetwork": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb"
+ },
+ "ipAddress": "10.0.0.4"
+ }
+ },
+ {
+ "name": "address2",
+ "properties": {
+ "virtualNetwork": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb"
+ },
+ "ipAddress": "10.0.0.5"
+ }
+ }
+ ],
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ]
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "backend",
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/backend",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "type": "Microsoft.Network/loadBalancers/backendAddressPools",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "loadBalancerBackendAddresses": [
+ {
+ "name": "address1",
+ "properties": {
+ "virtualNetwork": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb"
+ },
+ "ipAddress": "10.0.0.4"
+ }
+ },
+ {
+ "name": "address2",
+ "properties": {
+ "virtualNetwork": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb"
+ },
+ "ipAddress": "10.0.0.5"
+ }
+ }
+ ],
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerBackendAddressPoolDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerBackendAddressPoolDelete.json
new file mode 100644
index 000000000000..4410866b4a7c
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerBackendAddressPoolDelete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "testrg",
+ "loadBalancerName": "lb",
+ "backendAddressPoolName": "backend",
+ "api-version": "2020-07-01"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerBackendAddressPoolGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerBackendAddressPoolGet.json
new file mode 100644
index 000000000000..17e0e1daa723
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerBackendAddressPoolGet.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "testrg",
+ "loadBalancerName": "lb",
+ "backendAddressPoolName": "backend",
+ "api-version": "2020-07-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "backend",
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/backend",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "type": "Microsoft.Network/loadBalancers/backendAddressPools",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "backendIPConfigurations": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/networkInterfaces/nic/ipConfigurations/default-ip-config"
+ }
+ ],
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerBackendAddressPoolList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerBackendAddressPoolList.json
new file mode 100644
index 000000000000..ef0277c37994
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerBackendAddressPoolList.json
@@ -0,0 +1,35 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "testrg",
+ "loadBalancerName": "lb",
+ "api-version": "2020-07-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "backend",
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/backend",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "type": "Microsoft.Network/loadBalancers/backendAddressPools",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "backendIPConfigurations": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/networkInterfaces/nic/ipConfigurations/default-ip-config"
+ }
+ ],
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerCreate.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerCreate.json
new file mode 100644
index 000000000000..af87843d9990
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerCreate.json
@@ -0,0 +1,339 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "loadBalancerName": "lb",
+ "parameters": {
+ "location": "eastus",
+ "properties": {
+ "frontendIPConfigurations": [
+ {
+ "name": "fe-lb",
+ "properties": {
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb"
+ }
+ }
+ }
+ ],
+ "backendAddressPools": [
+ {
+ "name": "be-lb",
+ "properties": {}
+ }
+ ],
+ "loadBalancingRules": [
+ {
+ "name": "rulelb",
+ "properties": {
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"
+ },
+ "frontendPort": 80,
+ "backendPort": 80,
+ "enableFloatingIP": true,
+ "idleTimeoutInMinutes": 15,
+ "protocol": "Tcp",
+ "enableTcpReset": false,
+ "loadDistribution": "Default",
+ "backendAddressPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb"
+ },
+ "probe": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb"
+ }
+ }
+ }
+ ],
+ "probes": [
+ {
+ "name": "probe-lb",
+ "properties": {
+ "protocol": "Http",
+ "port": 80,
+ "requestPath": "healthcheck.aspx",
+ "intervalInSeconds": 15,
+ "numberOfProbes": 2
+ }
+ }
+ ],
+ "inboundNatRules": [
+ {
+ "name": "in-nat-rule",
+ "properties": {
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"
+ },
+ "frontendPort": 3389,
+ "backendPort": 3389,
+ "enableFloatingIP": true,
+ "idleTimeoutInMinutes": 15,
+ "protocol": "Tcp",
+ "enableTcpReset": false
+ }
+ }
+ ],
+ "inboundNatPools": []
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb",
+ "type": "Microsoft.Network/loadBalancers",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "location": "eastus",
+ "sku": {
+ "name": "Basic"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-00000000",
+ "frontendIPConfigurations": [
+ {
+ "name": "fe-lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb",
+ "type": "Microsoft.Network/loadBalancers/frontendIPConfigurations",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "10.0.1.4",
+ "privateIPAllocationMethod": "Dynamic",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb"
+ },
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ],
+ "inboundNatRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/inboundNatRules/in-nat-rule"
+ }
+ ]
+ }
+ }
+ ],
+ "backendAddressPools": [
+ {
+ "name": "be-lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb",
+ "type": "Microsoft.Network/loadBalancers/backendAddressPools",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ]
+ }
+ }
+ ],
+ "loadBalancingRules": [
+ {
+ "name": "rulelb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb",
+ "type": "Microsoft.Network/loadBalancers/loadBalancingRules",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"
+ },
+ "frontendPort": 80,
+ "backendPort": 80,
+ "enableFloatingIP": true,
+ "idleTimeoutInMinutes": 15,
+ "protocol": "Tcp",
+ "enableTcpReset": false,
+ "loadDistribution": "Default",
+ "backendAddressPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb"
+ },
+ "probe": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb"
+ },
+ "disableOutboundSnat": false
+ }
+ }
+ ],
+ "probes": [
+ {
+ "name": "probe-lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb",
+ "type": "Microsoft.Network/loadBalancers/probes",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "protocol": "Http",
+ "port": 80,
+ "requestPath": "healthcheck.aspx",
+ "intervalInSeconds": 15,
+ "numberOfProbes": 2,
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ]
+ }
+ }
+ ],
+ "inboundNatRules": [
+ {
+ "name": "in-nat-rule",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/inboundNatRules/in-nat-rule",
+ "type": "Microsoft.Network/loadBalancers/inboundNatRules",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"
+ },
+ "frontendPort": 3389,
+ "backendPort": 3389,
+ "enableFloatingIP": true,
+ "idleTimeoutInMinutes": 15,
+ "protocol": "Tcp",
+ "enableTcpReset": false
+ }
+ }
+ ],
+ "inboundNatPools": []
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb",
+ "type": "Microsoft.Network/loadBalancers",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "location": "eastus",
+ "sku": {
+ "name": "Basic"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-00000000",
+ "frontendIPConfigurations": [
+ {
+ "name": "fe-lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb",
+ "type": "Microsoft.Network/loadBalancers/frontendIPConfigurations",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "10.0.1.4",
+ "privateIPAllocationMethod": "Dynamic",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb"
+ },
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ],
+ "inboundNatRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/inboundNatRules/in-nat-rule"
+ }
+ ]
+ }
+ }
+ ],
+ "backendAddressPools": [
+ {
+ "name": "be-lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb",
+ "type": "Microsoft.Network/loadBalancers/backendAddressPools",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ]
+ }
+ }
+ ],
+ "loadBalancingRules": [
+ {
+ "name": "rulelb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb",
+ "type": "Microsoft.Network/loadBalancers/loadBalancingRules",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"
+ },
+ "frontendPort": 80,
+ "backendPort": 80,
+ "enableFloatingIP": true,
+ "idleTimeoutInMinutes": 15,
+ "protocol": "Tcp",
+ "enableTcpReset": false,
+ "loadDistribution": "Default",
+ "backendAddressPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb"
+ },
+ "probe": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb"
+ },
+ "disableOutboundSnat": false
+ }
+ }
+ ],
+ "probes": [
+ {
+ "name": "probe-lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb",
+ "type": "Microsoft.Network/loadBalancers/probes",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "protocol": "Http",
+ "port": 80,
+ "requestPath": "healthcheck.aspx",
+ "intervalInSeconds": 15,
+ "numberOfProbes": 2,
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ]
+ }
+ }
+ ],
+ "inboundNatRules": [
+ {
+ "name": "in-nat-rule",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/inboundNatRules/in-nat-rule",
+ "type": "Microsoft.Network/loadBalancers/inboundNatRules",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"
+ },
+ "frontendPort": 3389,
+ "backendPort": 3389,
+ "enableFloatingIP": true,
+ "idleTimeoutInMinutes": 15,
+ "protocol": "Tcp",
+ "enableTcpReset": false
+ }
+ }
+ ],
+ "inboundNatPools": []
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerCreateGlobalTier.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerCreateGlobalTier.json
new file mode 100644
index 000000000000..69705afc4efc
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerCreateGlobalTier.json
@@ -0,0 +1,314 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "loadBalancerName": "lb",
+ "parameters": {
+ "location": "eastus",
+ "sku": {
+ "name": "Standard",
+ "tier": "Global"
+ },
+ "properties": {
+ "frontendIPConfigurations": [
+ {
+ "name": "fe-lb",
+ "properties": {
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb"
+ }
+ }
+ }
+ ],
+ "backendAddressPools": [
+ {
+ "name": "be-lb",
+ "properties": {
+ "loadBalancerBackendAddresses": [
+ {
+ "name": "regional-lb1-address",
+ "properties": {
+ "loadBalancerFrontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/regional-lb-rg1/providers/Microsoft.Network/loadBalancers/regional-lb/frontendIPConfigurations/fe-rlb"
+ }
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "loadBalancingRules": [
+ {
+ "name": "rulelb",
+ "properties": {
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"
+ },
+ "frontendPort": 80,
+ "backendPort": 80,
+ "enableFloatingIP": false,
+ "idleTimeoutInMinutes": 15,
+ "protocol": "Tcp",
+ "loadDistribution": "Default",
+ "backendAddressPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb"
+ },
+ "probe": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb"
+ }
+ }
+ }
+ ],
+ "probes": [
+ {
+ "name": "probe-lb",
+ "properties": {
+ "protocol": "Http",
+ "port": 80,
+ "requestPath": "healthcheck.aspx",
+ "intervalInSeconds": 15,
+ "numberOfProbes": 2
+ }
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb",
+ "type": "Microsoft.Network/loadBalancers",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "location": "eastus",
+ "sku": {
+ "name": "Standard",
+ "tier": "Global"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-00000000",
+ "frontendIPConfigurations": [
+ {
+ "name": "fe-lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb",
+ "type": "Microsoft.Network/loadBalancers/frontendIPConfigurations",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "10.0.1.4",
+ "privateIPAllocationMethod": "Dynamic",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb"
+ },
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ],
+ "inboundNatRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/inboundNatRules/in-nat-rule"
+ }
+ ]
+ }
+ }
+ ],
+ "backendAddressPools": [
+ {
+ "name": "be-lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb",
+ "type": "Microsoft.Network/loadBalancers/backendAddressPools",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "loadBalancerBackendAddresses": [
+ {
+ "name": "regional-lb1-address",
+ "properties": {
+ "loadBalancerFrontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/regional-lb-rg1/providers/Microsoft.Network/loadBalancers/regional-lb/frontendIPConfigurations/fe-rlb"
+ }
+ }
+ }
+ ],
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ]
+ }
+ }
+ ],
+ "loadBalancingRules": [
+ {
+ "name": "rulelb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb",
+ "type": "Microsoft.Network/loadBalancers/loadBalancingRules",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"
+ },
+ "frontendPort": 80,
+ "backendPort": 80,
+ "enableFloatingIP": false,
+ "idleTimeoutInMinutes": 15,
+ "protocol": "Tcp",
+ "loadDistribution": "Default",
+ "backendAddressPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb"
+ },
+ "probe": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb"
+ },
+ "disableOutboundSnat": false
+ }
+ }
+ ],
+ "probes": [
+ {
+ "name": "probe-lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb",
+ "type": "Microsoft.Network/loadBalancers/probes",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "protocol": "Http",
+ "port": 80,
+ "requestPath": "healthcheck.aspx",
+ "intervalInSeconds": 15,
+ "numberOfProbes": 2,
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb",
+ "type": "Microsoft.Network/loadBalancers",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "location": "eastus",
+ "sku": {
+ "name": "Standard",
+ "tier": "Global"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-00000000",
+ "frontendIPConfigurations": [
+ {
+ "name": "fe-lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb",
+ "type": "Microsoft.Network/loadBalancers/frontendIPConfigurations",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "10.0.1.4",
+ "privateIPAllocationMethod": "Dynamic",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb"
+ },
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ],
+ "inboundNatRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/inboundNatRules/in-nat-rule"
+ }
+ ]
+ }
+ }
+ ],
+ "backendAddressPools": [
+ {
+ "name": "be-lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb",
+ "type": "Microsoft.Network/loadBalancers/backendAddressPools",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "loadBalancerBackendAddresses": [
+ {
+ "name": "regional-lb1-address",
+ "properties": {
+ "loadBalancerFrontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/regional-lb-rg1/providers/Microsoft.Network/loadBalancers/regional-lb/frontendIPConfigurations/fe-rlb"
+ }
+ }
+ }
+ ],
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ]
+ }
+ }
+ ],
+ "loadBalancingRules": [
+ {
+ "name": "rulelb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb",
+ "type": "Microsoft.Network/loadBalancers/loadBalancingRules",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"
+ },
+ "frontendPort": 80,
+ "backendPort": 80,
+ "enableFloatingIP": false,
+ "idleTimeoutInMinutes": 15,
+ "protocol": "Tcp",
+ "loadDistribution": "Default",
+ "backendAddressPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb"
+ },
+ "probe": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb"
+ },
+ "disableOutboundSnat": false
+ }
+ }
+ ],
+ "probes": [
+ {
+ "name": "probe-lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb",
+ "type": "Microsoft.Network/loadBalancers/probes",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "protocol": "Http",
+ "port": 80,
+ "requestPath": "healthcheck.aspx",
+ "intervalInSeconds": 15,
+ "numberOfProbes": 2,
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerCreateStandardSku.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerCreateStandardSku.json
new file mode 100644
index 000000000000..68dd390edcd4
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerCreateStandardSku.json
@@ -0,0 +1,339 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "loadBalancerName": "lb",
+ "parameters": {
+ "location": "eastus",
+ "sku": {
+ "name": "Standard"
+ },
+ "properties": {
+ "frontendIPConfigurations": [
+ {
+ "name": "fe-lb",
+ "properties": {
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb"
+ }
+ }
+ }
+ ],
+ "backendAddressPools": [
+ {
+ "name": "be-lb",
+ "properties": {}
+ }
+ ],
+ "loadBalancingRules": [
+ {
+ "name": "rulelb",
+ "properties": {
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"
+ },
+ "frontendPort": 80,
+ "backendPort": 80,
+ "enableFloatingIP": true,
+ "idleTimeoutInMinutes": 15,
+ "protocol": "Tcp",
+ "loadDistribution": "Default",
+ "backendAddressPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb"
+ },
+ "probe": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb"
+ }
+ }
+ }
+ ],
+ "probes": [
+ {
+ "name": "probe-lb",
+ "properties": {
+ "protocol": "Http",
+ "port": 80,
+ "requestPath": "healthcheck.aspx",
+ "intervalInSeconds": 15,
+ "numberOfProbes": 2
+ }
+ }
+ ],
+ "inboundNatRules": [
+ {
+ "name": "in-nat-rule",
+ "properties": {
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"
+ },
+ "frontendPort": 3389,
+ "backendPort": 3389,
+ "enableFloatingIP": true,
+ "idleTimeoutInMinutes": 15,
+ "protocol": "Tcp"
+ }
+ }
+ ],
+ "inboundNatPools": [],
+ "outboundRules": []
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb",
+ "type": "Microsoft.Network/loadBalancers",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "location": "eastus",
+ "sku": {
+ "name": "Standard"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-00000000",
+ "frontendIPConfigurations": [
+ {
+ "name": "fe-lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb",
+ "type": "Microsoft.Network/loadBalancers/frontendIPConfigurations",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "10.0.1.4",
+ "privateIPAllocationMethod": "Dynamic",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb"
+ },
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ],
+ "inboundNatRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/inboundNatRules/in-nat-rule"
+ }
+ ]
+ }
+ }
+ ],
+ "backendAddressPools": [
+ {
+ "name": "be-lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb",
+ "type": "Microsoft.Network/loadBalancers/backendAddressPools",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ]
+ }
+ }
+ ],
+ "loadBalancingRules": [
+ {
+ "name": "rulelb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb",
+ "type": "Microsoft.Network/loadBalancers/loadBalancingRules",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"
+ },
+ "frontendPort": 80,
+ "backendPort": 80,
+ "enableFloatingIP": true,
+ "idleTimeoutInMinutes": 15,
+ "protocol": "Tcp",
+ "loadDistribution": "Default",
+ "backendAddressPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb"
+ },
+ "probe": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb"
+ },
+ "disableOutboundSnat": false
+ }
+ }
+ ],
+ "probes": [
+ {
+ "name": "probe-lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb",
+ "type": "Microsoft.Network/loadBalancers/probes",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "protocol": "Http",
+ "port": 80,
+ "requestPath": "healthcheck.aspx",
+ "intervalInSeconds": 15,
+ "numberOfProbes": 2,
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ]
+ }
+ }
+ ],
+ "inboundNatRules": [
+ {
+ "name": "in-nat-rule",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/inboundNatRules/in-nat-rule",
+ "type": "Microsoft.Network/loadBalancers/inboundNatRules",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"
+ },
+ "frontendPort": 3389,
+ "backendPort": 3389,
+ "enableFloatingIP": true,
+ "idleTimeoutInMinutes": 15,
+ "protocol": "Tcp"
+ }
+ }
+ ],
+ "outboundRules": [],
+ "inboundNatPools": []
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb",
+ "type": "Microsoft.Network/loadBalancers",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "location": "eastus",
+ "sku": {
+ "name": "Standard"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-00000000",
+ "frontendIPConfigurations": [
+ {
+ "name": "fe-lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb",
+ "type": "Microsoft.Network/loadBalancers/frontendIPConfigurations",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "10.0.1.4",
+ "privateIPAllocationMethod": "Dynamic",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb"
+ },
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ],
+ "inboundNatRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/inboundNatRules/in-nat-rule"
+ }
+ ]
+ }
+ }
+ ],
+ "backendAddressPools": [
+ {
+ "name": "be-lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb",
+ "type": "Microsoft.Network/loadBalancers/backendAddressPools",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ]
+ }
+ }
+ ],
+ "loadBalancingRules": [
+ {
+ "name": "rulelb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb",
+ "type": "Microsoft.Network/loadBalancers/loadBalancingRules",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"
+ },
+ "frontendPort": 80,
+ "backendPort": 80,
+ "enableFloatingIP": true,
+ "idleTimeoutInMinutes": 15,
+ "protocol": "Tcp",
+ "loadDistribution": "Default",
+ "backendAddressPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb"
+ },
+ "probe": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb"
+ },
+ "disableOutboundSnat": false
+ }
+ }
+ ],
+ "probes": [
+ {
+ "name": "probe-lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb",
+ "type": "Microsoft.Network/loadBalancers/probes",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "protocol": "Http",
+ "port": 80,
+ "requestPath": "healthcheck.aspx",
+ "intervalInSeconds": 15,
+ "numberOfProbes": 2,
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ]
+ }
+ }
+ ],
+ "inboundNatRules": [
+ {
+ "name": "in-nat-rule",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/inboundNatRules/in-nat-rule",
+ "type": "Microsoft.Network/loadBalancers/inboundNatRules",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"
+ },
+ "frontendPort": 3389,
+ "backendPort": 3389,
+ "enableFloatingIP": true,
+ "idleTimeoutInMinutes": 15,
+ "protocol": "Tcp"
+ }
+ }
+ ],
+ "outboundRules": [],
+ "inboundNatPools": []
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerCreateWithInboundNatPool.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerCreateWithInboundNatPool.json
new file mode 100644
index 000000000000..c447e15334c7
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerCreateWithInboundNatPool.json
@@ -0,0 +1,180 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "loadBalancerName": "lb",
+ "parameters": {
+ "location": "eastus",
+ "sku": {
+ "name": "Standard"
+ },
+ "properties": {
+ "frontendIPConfigurations": [
+ {
+ "properties": {
+ "privateIPAllocationMethod": "Dynamic",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/lbvnet/subnets/lbsubnet"
+ }
+ },
+ "name": "test",
+ "zones": [],
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/test"
+ }
+ ],
+ "backendAddressPools": [],
+ "loadBalancingRules": [],
+ "probes": [],
+ "inboundNatRules": [],
+ "outboundRules": [],
+ "inboundNatPools": [
+ {
+ "properties": {
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/test"
+ },
+ "protocol": "Tcp",
+ "frontendPortRangeStart": 8080,
+ "frontendPortRangeEnd": 8085,
+ "backendPort": 8888,
+ "idleTimeoutInMinutes": 10,
+ "enableFloatingIP": true,
+ "enableTcpReset": true
+ },
+ "name": "test",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/inboundNatPools/test"
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb",
+ "type": "Microsoft.Network/loadBalancers",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "location": "eastus",
+ "sku": {
+ "name": "Standard"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-00000000",
+ "frontendIPConfigurations": [
+ {
+ "name": "test",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/test",
+ "type": "Microsoft.Network/loadBalancers/frontendIPConfigurations",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "10.0.1.4",
+ "privateIPAllocationMethod": "Dynamic",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/lbvnet/subnets/lbsubnet"
+ },
+ "inboundNatPools": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/inboundNatPools/test"
+ }
+ ]
+ }
+ }
+ ],
+ "backendAddressPools": [],
+ "loadBalancingRules": [],
+ "probes": [],
+ "inboundNatRules": [],
+ "outboundRules": [],
+ "inboundNatPools": [
+ {
+ "name": "test",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/inboundNatPools/test",
+ "type": "Microsoft.Network/loadBalancers/inboundNatPools",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "frontendPortRangeStart": 8080,
+ "frontendPortRangeEnd": 8085,
+ "backendPort": 8888,
+ "idleTimeoutInMinutes": 10,
+ "enableFloatingIP": true,
+ "protocol": "Tcp",
+ "enableTcpReset": true,
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/test"
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb",
+ "type": "Microsoft.Network/loadBalancers",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "location": "eastus",
+ "sku": {
+ "name": "Standard"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-00000000",
+ "frontendIPConfigurations": [
+ {
+ "name": "test",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/test",
+ "type": "Microsoft.Network/loadBalancers/frontendIPConfigurations",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "10.0.1.4",
+ "privateIPAllocationMethod": "Dynamic",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/lbvnet/subnets/lbsubnet"
+ },
+ "inboundNatPools": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/inboundNatPools/test"
+ }
+ ]
+ }
+ }
+ ],
+ "backendAddressPools": [],
+ "loadBalancingRules": [],
+ "probes": [],
+ "inboundNatRules": [],
+ "outboundRules": [],
+ "inboundNatPools": [
+ {
+ "name": "test",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/inboundNatPools/test",
+ "type": "Microsoft.Network/loadBalancers/inboundNatPools",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "frontendPortRangeStart": 8080,
+ "frontendPortRangeEnd": 8085,
+ "backendPort": 8888,
+ "idleTimeoutInMinutes": 10,
+ "enableFloatingIP": true,
+ "protocol": "Tcp",
+ "enableTcpReset": true,
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/test"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerCreateWithOutboundRules.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerCreateWithOutboundRules.json
new file mode 100644
index 000000000000..370f99afca76
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerCreateWithOutboundRules.json
@@ -0,0 +1,423 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "loadBalancerName": "lb",
+ "parameters": {
+ "location": "eastus",
+ "sku": {
+ "name": "Standard"
+ },
+ "properties": {
+ "frontendIPConfigurations": [
+ {
+ "name": "fe-lb",
+ "properties": {
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pip"
+ }
+ }
+ }
+ ],
+ "backendAddressPools": [
+ {
+ "name": "be-lb",
+ "properties": {}
+ }
+ ],
+ "loadBalancingRules": [
+ {
+ "name": "rulelb",
+ "properties": {
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"
+ },
+ "backendAddressPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb"
+ },
+ "probe": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb"
+ },
+ "protocol": "Tcp",
+ "loadDistribution": "Default",
+ "frontendPort": 80,
+ "backendPort": 80,
+ "idleTimeoutInMinutes": 15,
+ "enableFloatingIP": true,
+ "disableOutboundSnat": true
+ }
+ }
+ ],
+ "probes": [
+ {
+ "name": "probe-lb",
+ "properties": {
+ "protocol": "Http",
+ "port": 80,
+ "requestPath": "healthcheck.aspx",
+ "intervalInSeconds": 15,
+ "numberOfProbes": 2
+ }
+ }
+ ],
+ "inboundNatRules": [
+ {
+ "name": "in-nat-rule",
+ "properties": {
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"
+ },
+ "frontendPort": 3389,
+ "backendPort": 3389,
+ "enableFloatingIP": true,
+ "idleTimeoutInMinutes": 15,
+ "protocol": "Tcp"
+ }
+ }
+ ],
+ "inboundNatPools": [],
+ "outboundRules": [
+ {
+ "name": "rule1",
+ "properties": {
+ "backendAddressPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb"
+ },
+ "frontendIPConfigurations": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"
+ }
+ ],
+ "protocol": "All"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb",
+ "type": "Microsoft.Network/loadBalancers",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "location": "eastus",
+ "sku": {
+ "name": "Standard"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-00000000",
+ "frontendIPConfigurations": [
+ {
+ "name": "fe-lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb",
+ "type": "Microsoft.Network/loadBalancers/frontendIPConfigurations",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAllocationMethod": "Dynamic",
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pip"
+ },
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ],
+ "inboundNatRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/inboundNatRules/in-nat-rule"
+ }
+ ],
+ "outboundRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/outboundRules/rule1"
+ }
+ ],
+ "privateIPAddressVersion": "IPv4"
+ }
+ }
+ ],
+ "backendAddressPools": [
+ {
+ "name": "be-lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb",
+ "type": "Microsoft.Network/loadBalancers/backendAddressPools",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "outboundRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/outboundRules/rule1"
+ }
+ ],
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ]
+ }
+ }
+ ],
+ "loadBalancingRules": [
+ {
+ "name": "rulelb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb",
+ "type": "Microsoft.Network/loadBalancers/loadBalancingRules",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"
+ },
+ "frontendPort": 80,
+ "backendPort": 80,
+ "enableFloatingIP": true,
+ "idleTimeoutInMinutes": 15,
+ "protocol": "Tcp",
+ "enableTcpReset": false,
+ "loadDistribution": "Default",
+ "disableOutboundSnat": true,
+ "backendAddressPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb"
+ },
+ "probe": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb"
+ }
+ }
+ }
+ ],
+ "probes": [
+ {
+ "name": "probe-lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb",
+ "type": "Microsoft.Network/loadBalancers/probes",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "protocol": "Http",
+ "port": 80,
+ "requestPath": "healthcheck.aspx",
+ "intervalInSeconds": 15,
+ "numberOfProbes": 2,
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ]
+ }
+ }
+ ],
+ "inboundNatRules": [
+ {
+ "name": "in-nat-rule",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/inboundNatRules/in-nat-rule",
+ "type": "Microsoft.Network/loadBalancers/inboundNatRules",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"
+ },
+ "frontendPort": 3389,
+ "backendPort": 3389,
+ "enableFloatingIP": true,
+ "idleTimeoutInMinutes": 15,
+ "protocol": "Tcp",
+ "enableTcpReset": false
+ }
+ }
+ ],
+ "outboundRules": [
+ {
+ "name": "rule1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/outboundRules/rule1",
+ "type": "Microsoft.Network/loadBalancers/outboundRules",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "allocatedOutboundPorts": 1024,
+ "protocol": "All",
+ "enableTcpReset": false,
+ "idleTimeoutInMinutes": 4,
+ "backendAddressPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb"
+ },
+ "frontendIPConfigurations": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"
+ }
+ ]
+ }
+ }
+ ],
+ "inboundNatPools": []
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb",
+ "type": "Microsoft.Network/loadBalancers",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "location": "eastus",
+ "sku": {
+ "name": "Standard"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-00000000",
+ "frontendIPConfigurations": [
+ {
+ "name": "fe-lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb",
+ "type": "Microsoft.Network/loadBalancers/frontendIPConfigurations",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAllocationMethod": "Dynamic",
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pip"
+ },
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ],
+ "inboundNatRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/inboundNatRules/in-nat-rule"
+ }
+ ],
+ "outboundRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/outboundRules/rule1"
+ }
+ ],
+ "privateIPAddressVersion": "IPv4"
+ }
+ }
+ ],
+ "backendAddressPools": [
+ {
+ "name": "be-lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb",
+ "type": "Microsoft.Network/loadBalancers/backendAddressPools",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "outboundRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/outboundRules/rule1"
+ }
+ ],
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ]
+ }
+ }
+ ],
+ "loadBalancingRules": [
+ {
+ "name": "rulelb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb",
+ "type": "Microsoft.Network/loadBalancers/loadBalancingRules",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"
+ },
+ "frontendPort": 80,
+ "backendPort": 80,
+ "enableFloatingIP": true,
+ "idleTimeoutInMinutes": 15,
+ "protocol": "Tcp",
+ "enableTcpReset": false,
+ "loadDistribution": "Default",
+ "disableOutboundSnat": true,
+ "backendAddressPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb"
+ },
+ "probe": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb"
+ }
+ }
+ }
+ ],
+ "probes": [
+ {
+ "name": "probe-lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb",
+ "type": "Microsoft.Network/loadBalancers/probes",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "protocol": "Http",
+ "port": 80,
+ "requestPath": "healthcheck.aspx",
+ "intervalInSeconds": 15,
+ "numberOfProbes": 2,
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ]
+ }
+ }
+ ],
+ "inboundNatRules": [
+ {
+ "name": "in-nat-rule",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/inboundNatRules/in-nat-rule",
+ "type": "Microsoft.Network/loadBalancers/inboundNatRules",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"
+ },
+ "frontendPort": 3389,
+ "backendPort": 3389,
+ "enableFloatingIP": true,
+ "idleTimeoutInMinutes": 15,
+ "protocol": "Tcp",
+ "enableTcpReset": false
+ }
+ }
+ ],
+ "outboundRules": [
+ {
+ "name": "rule1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/outboundRules/rule1",
+ "type": "Microsoft.Network/loadBalancers/outboundRules",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "allocatedOutboundPorts": 1024,
+ "protocol": "All",
+ "enableTcpReset": false,
+ "idleTimeoutInMinutes": 4,
+ "backendAddressPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb"
+ },
+ "frontendIPConfigurations": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"
+ }
+ ]
+ }
+ }
+ ],
+ "inboundNatPools": []
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerCreateWithZones.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerCreateWithZones.json
new file mode 100644
index 000000000000..728378e390fc
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerCreateWithZones.json
@@ -0,0 +1,348 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "loadBalancerName": "lb",
+ "parameters": {
+ "location": "eastus",
+ "sku": {
+ "name": "Standard"
+ },
+ "properties": {
+ "frontendIPConfigurations": [
+ {
+ "name": "fe-lb",
+ "properties": {
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb"
+ }
+ },
+ "zones": [
+ "1"
+ ]
+ }
+ ],
+ "backendAddressPools": [
+ {
+ "name": "be-lb",
+ "properties": {}
+ }
+ ],
+ "loadBalancingRules": [
+ {
+ "name": "rulelb",
+ "properties": {
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"
+ },
+ "frontendPort": 80,
+ "backendPort": 80,
+ "enableFloatingIP": true,
+ "idleTimeoutInMinutes": 15,
+ "protocol": "Tcp",
+ "loadDistribution": "Default",
+ "backendAddressPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb"
+ },
+ "probe": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb"
+ }
+ }
+ }
+ ],
+ "probes": [
+ {
+ "name": "probe-lb",
+ "properties": {
+ "protocol": "Http",
+ "port": 80,
+ "requestPath": "healthcheck.aspx",
+ "intervalInSeconds": 15,
+ "numberOfProbes": 2
+ }
+ }
+ ],
+ "inboundNatRules": [
+ {
+ "name": "in-nat-rule",
+ "properties": {
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"
+ },
+ "frontendPort": 3389,
+ "backendPort": 3389,
+ "enableFloatingIP": true,
+ "idleTimeoutInMinutes": 15,
+ "protocol": "Tcp"
+ }
+ }
+ ],
+ "inboundNatPools": [],
+ "outboundRules": []
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb",
+ "type": "Microsoft.Network/loadBalancers",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "location": "eastus",
+ "sku": {
+ "name": "Standard"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-00000000",
+ "frontendIPConfigurations": [
+ {
+ "name": "fe-lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb",
+ "type": "Microsoft.Network/loadBalancers/frontendIPConfigurations",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "zones": [
+ "1"
+ ],
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "10.0.1.4",
+ "privateIPAllocationMethod": "Dynamic",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb"
+ },
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ],
+ "inboundNatRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/inboundNatRules/in-nat-rule"
+ }
+ ]
+ }
+ }
+ ],
+ "backendAddressPools": [
+ {
+ "name": "be-lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb",
+ "type": "Microsoft.Network/loadBalancers/backendAddressPools",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ]
+ }
+ }
+ ],
+ "loadBalancingRules": [
+ {
+ "name": "rulelb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb",
+ "type": "Microsoft.Network/loadBalancers/loadBalancingRules",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"
+ },
+ "frontendPort": 80,
+ "backendPort": 80,
+ "enableFloatingIP": true,
+ "idleTimeoutInMinutes": 15,
+ "protocol": "Tcp",
+ "loadDistribution": "Default",
+ "backendAddressPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb"
+ },
+ "probe": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb"
+ },
+ "disableOutboundSnat": false
+ }
+ }
+ ],
+ "probes": [
+ {
+ "name": "probe-lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb",
+ "type": "Microsoft.Network/loadBalancers/probes",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "protocol": "Http",
+ "port": 80,
+ "requestPath": "healthcheck.aspx",
+ "intervalInSeconds": 15,
+ "numberOfProbes": 2,
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ]
+ }
+ }
+ ],
+ "inboundNatRules": [
+ {
+ "name": "in-nat-rule",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/inboundNatRules/in-nat-rule",
+ "type": "Microsoft.Network/loadBalancers/inboundNatRules",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"
+ },
+ "frontendPort": 3389,
+ "backendPort": 3389,
+ "enableFloatingIP": true,
+ "idleTimeoutInMinutes": 15,
+ "protocol": "Tcp"
+ }
+ }
+ ],
+ "outboundRules": [],
+ "inboundNatPools": []
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb",
+ "type": "Microsoft.Network/loadBalancers",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "location": "eastus",
+ "sku": {
+ "name": "Standard"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-00000000",
+ "frontendIPConfigurations": [
+ {
+ "name": "fe-lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb",
+ "type": "Microsoft.Network/loadBalancers/frontendIPConfigurations",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "zones": [
+ "1"
+ ],
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "10.0.1.4",
+ "privateIPAllocationMethod": "Dynamic",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb"
+ },
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ],
+ "inboundNatRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/inboundNatRules/in-nat-rule"
+ }
+ ]
+ }
+ }
+ ],
+ "backendAddressPools": [
+ {
+ "name": "be-lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb",
+ "type": "Microsoft.Network/loadBalancers/backendAddressPools",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ]
+ }
+ }
+ ],
+ "loadBalancingRules": [
+ {
+ "name": "rulelb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb",
+ "type": "Microsoft.Network/loadBalancers/loadBalancingRules",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"
+ },
+ "frontendPort": 80,
+ "backendPort": 80,
+ "enableFloatingIP": true,
+ "idleTimeoutInMinutes": 15,
+ "protocol": "Tcp",
+ "loadDistribution": "Default",
+ "backendAddressPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb"
+ },
+ "probe": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb"
+ },
+ "disableOutboundSnat": false
+ }
+ }
+ ],
+ "probes": [
+ {
+ "name": "probe-lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb",
+ "type": "Microsoft.Network/loadBalancers/probes",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "protocol": "Http",
+ "port": 80,
+ "requestPath": "healthcheck.aspx",
+ "intervalInSeconds": 15,
+ "numberOfProbes": 2,
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ]
+ }
+ }
+ ],
+ "inboundNatRules": [
+ {
+ "name": "in-nat-rule",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/inboundNatRules/in-nat-rule",
+ "type": "Microsoft.Network/loadBalancers/inboundNatRules",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"
+ },
+ "frontendPort": 3389,
+ "backendPort": 3389,
+ "enableFloatingIP": true,
+ "idleTimeoutInMinutes": 15,
+ "protocol": "Tcp"
+ }
+ }
+ ],
+ "outboundRules": [],
+ "inboundNatPools": []
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerDelete.json
new file mode 100644
index 000000000000..d18289c85562
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "loadBalancerName": "lb"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerFrontendIPConfigurationGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerFrontendIPConfigurationGet.json
new file mode 100644
index 000000000000..9f6de90b1a7f
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerFrontendIPConfigurationGet.json
@@ -0,0 +1,38 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "testrg",
+ "loadBalancerName": "lb",
+ "frontendIPConfigurationName": "frontend",
+ "api-version": "2020-07-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "frontend",
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/frontend",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "type": "Microsoft.Network/loadBalancers/frontendIPConfigurations",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "10.0.1.4",
+ "privateIPAllocationMethod": "Dynamic",
+ "privateIPAddressVersion": "IPv4",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb"
+ },
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ],
+ "inboundNatRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb/inboundNatRules/inrlb"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerFrontendIPConfigurationList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerFrontendIPConfigurationList.json
new file mode 100644
index 000000000000..b8528bc24178
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerFrontendIPConfigurationList.json
@@ -0,0 +1,41 @@
+{
+ "parameters": {
+ "resourceGroupName": "testrg",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "loadBalancerName": "lb"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "frontend",
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/frontend",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "type": "Microsoft.Network/loadBalancers/frontendIPConfigurations",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "10.0.1.4",
+ "privateIPAllocationMethod": "Dynamic",
+ "privateIPAddressVersion": "IPv4",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb"
+ },
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ],
+ "inboundNatRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb/inboundNatRules/inrlb"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerGet.json
new file mode 100644
index 000000000000..e11e49d5bbae
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerGet.json
@@ -0,0 +1,139 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "loadBalancerName": "lb"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "type": "Microsoft.Network/loadBalancers",
+ "location": "westus",
+ "sku": {
+ "name": "Basic"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-00000000",
+ "frontendIPConfigurations": [
+ {
+ "name": "fe-lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "type": "Microsoft.Network/loadBalancers/frontendIPConfigurations",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "10.0.1.4",
+ "privateIPAllocationMethod": "Dynamic",
+ "privateIPAddressVersion": "IPv4",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb"
+ },
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ],
+ "inboundNatRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/inboundNatRules/in-nat-rule"
+ }
+ ]
+ }
+ }
+ ],
+ "backendAddressPools": [
+ {
+ "name": "be-lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "type": "Microsoft.Network/loadBalancers/backendAddressPools",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ]
+ }
+ }
+ ],
+ "loadBalancingRules": [
+ {
+ "name": "rulelb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "type": "Microsoft.Network/loadBalancers/loadBalancingRules",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"
+ },
+ "frontendPort": 80,
+ "backendPort": 80,
+ "enableFloatingIP": true,
+ "idleTimeoutInMinutes": 15,
+ "protocol": "Tcp",
+ "enableTcpReset": true,
+ "loadDistribution": "Default",
+ "backendAddressPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb"
+ },
+ "probe": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb"
+ },
+ "disableOutboundSnat": false
+ }
+ }
+ ],
+ "probes": [
+ {
+ "name": "probe-lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "type": "Microsoft.Network/loadBalancers/probes",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "protocol": "Http",
+ "port": 80,
+ "requestPath": "healthcheck.aspx",
+ "intervalInSeconds": 15,
+ "numberOfProbes": 2,
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ]
+ }
+ }
+ ],
+ "inboundNatRules": [
+ {
+ "name": "in-nat-rule",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/inboundNatRules/in-nat-rule",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "type": "Microsoft.Network/loadBalancers/inboundNatRules",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"
+ },
+ "frontendPort": 3389,
+ "backendPort": 3389,
+ "enableFloatingIP": true,
+ "idleTimeoutInMinutes": 15,
+ "protocol": "Tcp",
+ "enableTcpReset": true
+ }
+ }
+ ],
+ "inboundNatPools": []
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerList.json
new file mode 100644
index 000000000000..c51b36904cab
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerList.json
@@ -0,0 +1,161 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "type": "Microsoft.Network/loadBalancers",
+ "location": "westus",
+ "sku": {
+ "name": "Basic"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-00000000",
+ "frontendIPConfigurations": [
+ {
+ "name": "felb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/felb",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "type": "Microsoft.Network/loadBalancers/frontendIPConfigurations",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "10.0.1.4",
+ "privateIPAllocationMethod": "Dynamic",
+ "privateIPAddressVersion": "IPv4",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb"
+ },
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ],
+ "inboundNatRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/inboundNatRules/inrlb"
+ }
+ ]
+ }
+ }
+ ],
+ "backendAddressPools": [
+ {
+ "name": "belb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/belb",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "type": "Microsoft.Network/loadBalancers/backendAddressPools",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ]
+ }
+ }
+ ],
+ "loadBalancingRules": [
+ {
+ "name": "rulelb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "type": "Microsoft.Network/loadBalancers/loadBalancingRules",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/felb"
+ },
+ "frontendPort": 80,
+ "backendPort": 80,
+ "enableFloatingIP": true,
+ "idleTimeoutInMinutes": 15,
+ "protocol": "Tcp",
+ "enableTcpReset": true,
+ "loadDistribution": "Default",
+ "backendAddressPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/belb"
+ },
+ "probe": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/prlb"
+ }
+ }
+ }
+ ],
+ "probes": [
+ {
+ "name": "prlb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/prlb",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "type": "Microsoft.Network/loadBalancers/probes",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "protocol": "Http",
+ "port": 80,
+ "requestPath": "healthcheck.aspx",
+ "intervalInSeconds": 15,
+ "numberOfProbes": 2,
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ]
+ }
+ }
+ ],
+ "inboundNatRules": [
+ {
+ "name": "inrlb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/inboundNatRules/inrlb",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "type": "Microsoft.Network/loadBalancers/inboundNatRules",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/felb"
+ },
+ "frontendPort": 3389,
+ "backendPort": 3389,
+ "enableFloatingIP": true,
+ "idleTimeoutInMinutes": 15,
+ "protocol": "Tcp",
+ "enableTcpReset": true
+ }
+ }
+ ],
+ "inboundNatPools": []
+ }
+ },
+ {
+ "name": "lb2",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb2",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "type": "Microsoft.Network/loadBalancers",
+ "location": "westus",
+ "sku": {
+ "name": "Basic"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-00000000",
+ "frontendIPConfigurations": [],
+ "backendAddressPools": [],
+ "loadBalancingRules": [],
+ "probes": [],
+ "inboundNatRules": [],
+ "inboundNatPools": []
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerListAll.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerListAll.json
new file mode 100644
index 000000000000..b3a1c7e1a651
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerListAll.json
@@ -0,0 +1,160 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "type": "Microsoft.Network/loadBalancers",
+ "location": "westus",
+ "sku": {
+ "name": "Basic"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-00000000",
+ "frontendIPConfigurations": [
+ {
+ "name": "felb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/felb",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "type": "Microsoft.Network/loadBalancers/frontendIPConfigurations",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "10.0.1.4",
+ "privateIPAllocationMethod": "Dynamic",
+ "privateIPAddressVersion": "IPv4",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb"
+ },
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ],
+ "inboundNatRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/inboundNatRules/inrlb"
+ }
+ ]
+ }
+ }
+ ],
+ "backendAddressPools": [
+ {
+ "name": "belb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/belb",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "type": "Microsoft.Network/loadBalancers/backendAddressPools",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ]
+ }
+ }
+ ],
+ "loadBalancingRules": [
+ {
+ "name": "rulelb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "type": "Microsoft.Network/loadBalancers/loadBalancingRules",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/felb"
+ },
+ "frontendPort": 80,
+ "backendPort": 80,
+ "enableFloatingIP": true,
+ "idleTimeoutInMinutes": 15,
+ "protocol": "Tcp",
+ "enableTcpReset": true,
+ "loadDistribution": "Default",
+ "backendAddressPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/belb"
+ },
+ "probe": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/prlb"
+ }
+ }
+ }
+ ],
+ "probes": [
+ {
+ "name": "prlb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/prlb",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "type": "Microsoft.Network/loadBalancers/probes",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "protocol": "Http",
+ "port": 80,
+ "requestPath": "healthcheck.aspx",
+ "intervalInSeconds": 15,
+ "numberOfProbes": 2,
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ]
+ }
+ }
+ ],
+ "inboundNatRules": [
+ {
+ "name": "inrlb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/inboundNatRules/inrlb",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "type": "Microsoft.Network/loadBalancers/inboundNatRules",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/felb"
+ },
+ "frontendPort": 3389,
+ "backendPort": 3389,
+ "enableFloatingIP": true,
+ "idleTimeoutInMinutes": 15,
+ "protocol": "Tcp",
+ "enableTcpReset": true
+ }
+ }
+ ],
+ "inboundNatPools": []
+ }
+ },
+ {
+ "name": "lb3",
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/loadBalancers/lb3",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "type": "Microsoft.Network/loadBalancers",
+ "location": "westus",
+ "sku": {
+ "name": "Basic"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-00000000",
+ "frontendIPConfigurations": [],
+ "backendAddressPools": [],
+ "loadBalancingRules": [],
+ "probes": [],
+ "inboundNatRules": [],
+ "inboundNatPools": []
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerLoadBalancingRuleGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerLoadBalancingRuleGet.json
new file mode 100644
index 000000000000..870ce316b6f1
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerLoadBalancingRuleGet.json
@@ -0,0 +1,38 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "testrg",
+ "loadBalancerName": "lb1",
+ "loadBalancingRuleName": "rule1",
+ "api-version": "2020-07-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "rule1",
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb1/loadBalancingRules/rule1",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "type": "Microsoft.Network/loadBalancers/loadBalancingRules",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb1/frontendIPConfigurations/lbfrontend"
+ },
+ "frontendPort": 80,
+ "backendPort": 80,
+ "enableFloatingIP": false,
+ "idleTimeoutInMinutes": 15,
+ "protocol": "Tcp",
+ "enableTcpReset": true,
+ "loadDistribution": "Default",
+ "backendAddressPool": {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb1/backendAddressPools/bepool1"
+ },
+ "probe": {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb1/probes/probe1"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerLoadBalancingRuleList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerLoadBalancingRuleList.json
new file mode 100644
index 000000000000..aa83f0ef2f47
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerLoadBalancingRuleList.json
@@ -0,0 +1,41 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "testrg",
+ "loadBalancerName": "lb1",
+ "api-version": "2020-07-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "rule1",
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb1/loadBalancingRules/rule1",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "type": "Microsoft.Network/loadBalancers/loadBalancingRules",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb1/frontendIPConfigurations/lbfrontend"
+ },
+ "frontendPort": 80,
+ "backendPort": 80,
+ "enableFloatingIP": false,
+ "idleTimeoutInMinutes": 15,
+ "protocol": "Tcp",
+ "enableTcpReset": true,
+ "loadDistribution": "Default",
+ "backendAddressPool": {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb1/backendAddressPools/bepool1"
+ },
+ "probe": {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb1/probes/probe1"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerNetworkInterfaceListSimple.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerNetworkInterfaceListSimple.json
new file mode 100644
index 000000000000..7ca87aadb1c7
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerNetworkInterfaceListSimple.json
@@ -0,0 +1,59 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "testrg",
+ "loadBalancerName": "lb",
+ "api-version": "2020-07-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "mynic",
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/networkInterfaces/mynic",
+ "etag": "W/\\\"00000000-0000-0000-0000-000000000000\\\"",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-000000000000",
+ "ipConfigurations": [
+ {
+ "name": "ipconfig1",
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/networkInterfaces/mynic/ipConfigurations/ipconfig1",
+ "etag": "W/\\\"00000000-0000-0000-0000-000000000000\\\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "10.0.1.4",
+ "privateIPAllocationMethod": "Dynamic",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/virtualNetworks/myVirtualNetwork/subnets/frontendSubnet"
+ },
+ "privateIPAddressVersion": "IPv4",
+ "loadBalancerBackendAddressPools": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/bepool1"
+ }
+ ],
+ "loadBalancerInboundNatRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb/inboundNatRules/inbound1"
+ }
+ ]
+ }
+ }
+ ],
+ "dnsSettings": {
+ "dnsServers": [],
+ "appliedDnsServers": []
+ },
+ "enableAcceleratedNetworking": false,
+ "enableIPForwarding": false
+ },
+ "type": "Microsoft.Network/networkInterfaces"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerNetworkInterfaceListVmss.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerNetworkInterfaceListVmss.json
new file mode 100644
index 000000000000..00bf2c6302ae
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerNetworkInterfaceListVmss.json
@@ -0,0 +1,112 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "testrg",
+ "loadBalancerName": "lb",
+ "api-version": "2020-07-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "vmss1Nic",
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1/virtualMachines/0/networkInterfaces/vmss1Nic",
+ "etag": "W/\\\"00000000-0000-0000-0000-000000000000\\\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-000000000000",
+ "ipConfigurations": [
+ {
+ "name": "vmss1IpConfig",
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1/virtualMachines/0/networkInterfaces/vmss1Nic/ipConfigurations/vmss1IpConfig",
+ "etag": "W/\\\"00000000-0000-0000-0000-000000000000\\\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "10.0.0.4",
+ "privateIPAllocationMethod": "Dynamic",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/virtualNetworks/vmss1Vnet/subnets/default"
+ },
+ "primary": true,
+ "privateIPAddressVersion": "IPv4",
+ "loadBalancerBackendAddressPools": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/bepool"
+ }
+ ],
+ "loadBalancerInboundNatRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb/inboundNatRules/natpool.0"
+ }
+ ]
+ }
+ }
+ ],
+ "dnsSettings": {
+ "dnsServers": [],
+ "appliedDnsServers": [],
+ "internalDomainNameSuffix": "aaaaaaaaaaaaaaaaaaaaaaaaaa.dx.internal.cloudapp.net"
+ },
+ "macAddress": "00-00-00-00-00-00",
+ "enableAcceleratedNetworking": false,
+ "enableIPForwarding": false,
+ "primary": true,
+ "virtualMachine": {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1/virtualMachines/0"
+ }
+ }
+ },
+ {
+ "name": "vmss1Nic",
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1/virtualMachines/1/networkInterfaces/vmss1Nic",
+ "etag": "W/\\\"00000000-0000-0000-0000-000000000000\\\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-000000000000",
+ "ipConfigurations": [
+ {
+ "name": "vmss1IpConfig",
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1/virtualMachines/1/networkInterfaces/vmss1Nic/ipConfigurations/vmss1IpConfig",
+ "etag": "W/\\\"00000000-0000-0000-0000-000000000000\\\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "10.0.0.5",
+ "privateIPAllocationMethod": "Dynamic",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/virtualNetworks/vmss1Vnet/subnets/default"
+ },
+ "primary": true,
+ "privateIPAddressVersion": "IPv4",
+ "loadBalancerBackendAddressPools": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/bepool"
+ }
+ ],
+ "loadBalancerInboundNatRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb/inboundNatRules/natpool.1"
+ }
+ ]
+ }
+ }
+ ],
+ "dnsSettings": {
+ "dnsServers": [],
+ "appliedDnsServers": [],
+ "internalDomainNameSuffix": "aaaaaaaaaaaaaaaaaaaaaaaaaa.dx.internal.cloudapp.net"
+ },
+ "macAddress": "00-00-00-00-00-00",
+ "enableAcceleratedNetworking": false,
+ "enableIPForwarding": false,
+ "primary": true,
+ "virtualMachine": {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1/virtualMachines/1"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerOutboundRuleGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerOutboundRuleGet.json
new file mode 100644
index 000000000000..e74d3cd6fc5b
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerOutboundRuleGet.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "testrg",
+ "loadBalancerName": "lb1",
+ "outboundRuleName": "rule1",
+ "api-version": "2020-07-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "rule1",
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb1/outboundRules/rule1",
+ "type": "Microsoft.Network/loadBalancers/outboundRules",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "frontendIPConfigurations": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb1/frontendIPConfigurations/lbfrontend"
+ }
+ ],
+ "allocatedOutboundPorts": 64,
+ "idleTimeoutInMinutes": 15,
+ "protocol": "Tcp",
+ "enableTcpReset": true,
+ "backendAddressPool": {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb1/backendAddressPools/bepool1"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerOutboundRuleList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerOutboundRuleList.json
new file mode 100644
index 000000000000..a9f20ea0f15f
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerOutboundRuleList.json
@@ -0,0 +1,37 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "testrg",
+ "loadBalancerName": "lb1",
+ "api-version": "2020-07-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "rule1",
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb1/outboundRules/rule1",
+ "type": "Microsoft.Network/loadBalancers/outboundRules",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "frontendIPConfigurations": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb1/frontendIPConfigurations/lbfrontend"
+ }
+ ],
+ "allocatedOutboundPorts": 64,
+ "idleTimeoutInMinutes": 15,
+ "protocol": "Tcp",
+ "enableTcpReset": true,
+ "backendAddressPool": {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb1/backendAddressPools/bepool1"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerProbeGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerProbeGet.json
new file mode 100644
index 000000000000..c4ec1df35a59
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerProbeGet.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "testrg",
+ "loadBalancerName": "lb",
+ "probeName": "probe1",
+ "api-version": "2020-07-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "probe1",
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb/probes/probe1",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "type": "Microsoft.Network/loadBalancers/probes",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "protocol": "Http",
+ "port": 80,
+ "requestPath": "healthcheck.aspx",
+ "intervalInSeconds": 15,
+ "numberOfProbes": 2,
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerProbeList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerProbeList.json
new file mode 100644
index 000000000000..737bbe2f75e3
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerProbeList.json
@@ -0,0 +1,35 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "testrg",
+ "loadBalancerName": "lb",
+ "api-version": "2020-07-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "prlb",
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb/probes/prlb",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "type": "Microsoft.Network/loadBalancers/probes",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "protocol": "Http",
+ "port": 80,
+ "requestPath": "healthcheck.aspx",
+ "intervalInSeconds": 15,
+ "numberOfProbes": 2,
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerUpdateTags.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerUpdateTags.json
new file mode 100644
index 000000000000..9a61bb2138c4
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LoadBalancerUpdateTags.json
@@ -0,0 +1,132 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "loadBalancerName": "lb",
+ "parameters": {
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb",
+ "type": "Microsoft.Network/loadBalancers",
+ "location": "westus",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "frontendIPConfigurations": [
+ {
+ "name": "fe-lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "10.0.1.4",
+ "privateIPAllocationMethod": "Dynamic",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb"
+ },
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ],
+ "inboundNatRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/inboundNatRules/in-nat-rule"
+ }
+ ]
+ }
+ }
+ ],
+ "backendAddressPools": [
+ {
+ "name": "be-lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ]
+ }
+ }
+ ],
+ "loadBalancingRules": [
+ {
+ "name": "rulelb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"
+ },
+ "frontendPort": 80,
+ "backendPort": 80,
+ "enableFloatingIP": true,
+ "idleTimeoutInMinutes": 15,
+ "protocol": "Tcp",
+ "loadDistribution": "Default",
+ "backendAddressPool": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb"
+ },
+ "probe": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb"
+ },
+ "disableOutboundSnat": false
+ }
+ }
+ ],
+ "probes": [
+ {
+ "name": "probe-lb",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "protocol": "Http",
+ "port": 80,
+ "requestPath": "healthcheck.aspx",
+ "intervalInSeconds": 15,
+ "numberOfProbes": 2,
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/loadBalancingRules/rulelb"
+ }
+ ]
+ }
+ }
+ ],
+ "inboundNatRules": [
+ {
+ "name": "in-nat-rule",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/inboundNatRules/in-nat-rule",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"
+ },
+ "frontendPort": 3389,
+ "backendPort": 3389,
+ "enableFloatingIP": true,
+ "idleTimeoutInMinutes": 15,
+ "protocol": "Tcp"
+ }
+ }
+ ],
+ "outboundRules": [],
+ "inboundNatPools": []
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LocalNetworkGatewayCreate.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LocalNetworkGatewayCreate.json
new file mode 100644
index 000000000000..0818a9fbb327
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LocalNetworkGatewayCreate.json
@@ -0,0 +1,60 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "localNetworkGatewayName": "localgw",
+ "parameters": {
+ "properties": {
+ "localNetworkAddressSpace": {
+ "addressPrefixes": [
+ "10.1.0.0/16"
+ ]
+ },
+ "gatewayIpAddress": "11.12.13.14",
+ "fqdn": "site1.contoso.com"
+ },
+ "location": "Central US"
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "name": "localgw",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/localNetworkGateways/localgw",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "type": "Microsoft.Network/localNetworkGateways",
+ "location": "centralus",
+ "properties": {
+ "provisioningState": "Updating",
+ "resourceGuid": "00000000-0000-0000-0000-000000000000",
+ "localNetworkAddressSpace": {
+ "addressPrefixes": [
+ "10.1.0.0/16"
+ ]
+ },
+ "gatewayIpAddress": "11.12.13.14"
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "name": "localgw",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/localNetworkGateways/localgw",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "type": "Microsoft.Network/localNetworkGateways",
+ "location": "centralus",
+ "properties": {
+ "provisioningState": "Updating",
+ "resourceGuid": "00000000-0000-0000-0000-000000000000",
+ "localNetworkAddressSpace": {
+ "addressPrefixes": [
+ "10.1.0.0/16"
+ ]
+ },
+ "gatewayIpAddress": "11.12.13.14"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LocalNetworkGatewayDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LocalNetworkGatewayDelete.json
new file mode 100644
index 000000000000..4318f62f9513
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LocalNetworkGatewayDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "localNetworkGatewayName": "localgw"
+ },
+ "responses": {
+ "202": {},
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LocalNetworkGatewayGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LocalNetworkGatewayGet.json
new file mode 100644
index 000000000000..392eb193a6bd
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LocalNetworkGatewayGet.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "localNetworkGatewayName": "localgw"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "localgw",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/localNetworkGateways/localgw",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "type": "Microsoft.Network/localNetworkGateways",
+ "location": "centralus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-000000000000",
+ "localNetworkAddressSpace": {
+ "addressPrefixes": [
+ "10.1.0.0/16"
+ ]
+ },
+ "gatewayIpAddress": "x.x.x.x"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LocalNetworkGatewayList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LocalNetworkGatewayList.json
new file mode 100644
index 000000000000..97be115093f6
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LocalNetworkGatewayList.json
@@ -0,0 +1,49 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "localgw1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/localNetworkGateways/localgw1",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "type": "Microsoft.Network/localNetworkGateways",
+ "location": "centralus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-000000000000",
+ "localNetworkAddressSpace": {
+ "addressPrefixes": [
+ "10.1.0.0/16"
+ ]
+ },
+ "gatewayIpAddress": "x.x.x.x"
+ }
+ },
+ {
+ "name": "localgw2",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/localNetworkGateways/localgw2",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "type": "Microsoft.Network/localNetworkGateways",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-000000000000",
+ "localNetworkAddressSpace": {
+ "addressPrefixes": [
+ "10.2.0.0/16"
+ ]
+ },
+ "gatewayIpAddress": "x.x.x.x"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LocalNetworkGatewayUpdateTags.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LocalNetworkGatewayUpdateTags.json
new file mode 100644
index 000000000000..7db41c51953e
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/LocalNetworkGatewayUpdateTags.json
@@ -0,0 +1,38 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "localNetworkGatewayName": "lgw",
+ "parameters": {
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "lgw",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/localNetworkGateways/lgw",
+ "type": "Microsoft.Network/localNetworkGateways",
+ "location": "westus",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-000000000000",
+ "localNetworkAddressSpace": {
+ "addressPrefixes": [
+ "12.0.0.0/8"
+ ]
+ },
+ "gatewayIpAddress": "12.0.0.1"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NatGatewayCreateOrUpdate.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NatGatewayCreateOrUpdate.json
new file mode 100644
index 000000000000..2bc36e2e6d14
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NatGatewayCreateOrUpdate.json
@@ -0,0 +1,89 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "natGatewayName": "test-natgateway",
+ "parameters": {
+ "location": "westus",
+ "sku": {
+ "name": "Standard"
+ },
+ "properties": {
+ "publicIpAddresses": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/PublicIpAddress1"
+ }
+ ],
+ "publicIpPrefixes": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPPrefixes/PublicIpPrefix1"
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "test-natGateway",
+ "sku": {
+ "name": "Standard"
+ },
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/natGateways/test-natGateway",
+ "location": "westus",
+ "properties": {
+ "idleTimeoutInMinutes": 5,
+ "provisioningState": "Succeeded",
+ "publicIpAddresses": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/PublicIpAddress1"
+ }
+ ],
+ "publicIpPrefixes": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPPrefixes/PublicIpPrefix1"
+ }
+ ],
+ "subnets": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/subnet1"
+ }
+ ]
+ },
+ "type": "Microsoft.Network/natGateways"
+ }
+ },
+ "201": {
+ "body": {
+ "name": "test-natGateway",
+ "sku": {
+ "name": "Standard"
+ },
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/natGateways/test-natGateway",
+ "location": "westus",
+ "properties": {
+ "idleTimeoutInMinutes": 5,
+ "provisioningState": "Succeeded",
+ "publicIpAddresses": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/PublicIpAddress1"
+ }
+ ],
+ "publicIpPrefixes": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPPrefixes/PublicIpPrefix1"
+ }
+ ],
+ "subnets": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/subnet1"
+ }
+ ]
+ },
+ "type": "Microsoft.Network/natGateways"
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NatGatewayDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NatGatewayDelete.json
new file mode 100644
index 000000000000..8105d0c53fb1
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NatGatewayDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "natGatewayName": "test-natGateway"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NatGatewayGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NatGatewayGet.json
new file mode 100644
index 000000000000..decf30735853
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NatGatewayGet.json
@@ -0,0 +1,40 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "natGatewayName": "test-natGateway"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "test-natGateway",
+ "sku": {
+ "name": "Standard"
+ },
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/natGateways/test-natGateway",
+ "location": "westus",
+ "properties": {
+ "idleTimeoutInMinutes": 5,
+ "provisioningState": "Succeeded",
+ "publicIpAddresses": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/PublicIpAddress1"
+ }
+ ],
+ "publicIpPrefixes": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPPrefixes/PublicIpPrefix1"
+ }
+ ],
+ "subnets": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/subnet1"
+ }
+ ]
+ },
+ "type": "Microsoft.Network/natGateways"
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NatGatewayList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NatGatewayList.json
new file mode 100644
index 000000000000..17f5ba1811d0
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NatGatewayList.json
@@ -0,0 +1,71 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "test-natGateway",
+ "sku": {
+ "name": "Standard"
+ },
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/natGateway/test-natGateway",
+ "location": "westus",
+ "properties": {
+ "idleTimeoutInMinutes": 5,
+ "provisioningState": "Succeeded",
+ "publicIpAddresses": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/PublicIpAddress1"
+ }
+ ],
+ "publicIpPrefixes": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPPrefixes/PublicIpPrefix1"
+ }
+ ],
+ "subnets": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/subnet1"
+ }
+ ]
+ },
+ "type": "Microsoft.Network/natGateways"
+ },
+ {
+ "name": "test-natGateway2",
+ "sku": {
+ "name": "Standard"
+ },
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/natGateway/test-natGateway2",
+ "location": "westus",
+ "properties": {
+ "idleTimeoutInMinutes": 5,
+ "provisioningState": "Succeeded",
+ "publicIpAddresses": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/publicIPAddresses/PublicIpAddress1"
+ }
+ ],
+ "publicIpPrefixes": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/publicIPPrefixes/PublicIpPrefix1"
+ }
+ ],
+ "subnets": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/subnet1"
+ }
+ ]
+ },
+ "type": "Microsoft.Network/natGateways"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NatGatewayListAll.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NatGatewayListAll.json
new file mode 100644
index 000000000000..c7dcf854d447
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NatGatewayListAll.json
@@ -0,0 +1,70 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "test-natGateway",
+ "sku": {
+ "name": "Standard"
+ },
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/natGateways/test-natGateway",
+ "location": "westus",
+ "properties": {
+ "idleTimeoutInMinutes": 5,
+ "provisioningState": "Succeeded",
+ "publicIpAddresses": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/PublicIpAddress1"
+ }
+ ],
+ "publicIpPrefixes": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPPrefixes/PublicIpPrefix1"
+ }
+ ],
+ "subnets": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/subnet1"
+ }
+ ]
+ },
+ "type": "Microsoft.Network/natGateways"
+ },
+ {
+ "name": "test-natGateway2",
+ "sku": {
+ "name": "Standard"
+ },
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/natGatewayes/test-natGateway2",
+ "location": "westus",
+ "properties": {
+ "idleTimeoutInMinutes": 5,
+ "provisioningState": "Succeeded",
+ "publicIpAddresses": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/publicIPAddresses/PublicIpAddress1"
+ }
+ ],
+ "publicIpPrefixes": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/publicIPPrefixes/PublicIpPrefix1"
+ }
+ ],
+ "subnets": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/subnet1"
+ }
+ ]
+ },
+ "type": "Microsoft.Network/natGateways"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NatGatewayUpdateTags.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NatGatewayUpdateTags.json
new file mode 100644
index 000000000000..e60b34a00a6b
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NatGatewayUpdateTags.json
@@ -0,0 +1,50 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "natGatewayName": "test-natGateway",
+ "parameters": {
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "test-natGateway",
+ "sku": {
+ "name": "Standard"
+ },
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/natGateways/test-natGateway",
+ "location": "westus",
+ "properties": {
+ "idleTimeoutInMinutes": 5,
+ "provisioningState": "Succeeded",
+ "publicIpAddresses": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/PublicIpAddress1"
+ }
+ ],
+ "publicIpPrefixes": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPPrefixes/PublicIpPrefix1"
+ }
+ ],
+ "subnets": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/subnet1"
+ }
+ ]
+ },
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "type": "Microsoft.Network/natGateways"
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkInterfaceCreate.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkInterfaceCreate.json
new file mode 100644
index 000000000000..0ff1275eb4b2
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkInterfaceCreate.json
@@ -0,0 +1,101 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkInterfaceName": "test-nic",
+ "parameters": {
+ "properties": {
+ "enableAcceleratedNetworking": true,
+ "ipConfigurations": [
+ {
+ "name": "ipconfig1",
+ "properties": {
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/test-ip"
+ },
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/rg1-vnet/subnets/default"
+ }
+ }
+ }
+ ]
+ },
+ "location": "eastus"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "test-nic",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/test-nic",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ipConfigurations": [
+ {
+ "name": "ipconfig1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/test-nic/ipConfigurations/ipconfig1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "172.20.2.4",
+ "privateIPAllocationMethod": "Dynamic",
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/test-ip"
+ },
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/rg1-vnet/subnets/default"
+ },
+ "primary": true,
+ "privateIPAddressVersion": "IPv4"
+ }
+ }
+ ],
+ "dnsSettings": {
+ "dnsServers": [],
+ "appliedDnsServers": []
+ },
+ "enableAcceleratedNetworking": true,
+ "enableIPForwarding": false
+ },
+ "type": "Microsoft.Network/networkInterfaces"
+ }
+ },
+ "201": {
+ "body": {
+ "name": "test-nic",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/test-nic",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ipConfigurations": [
+ {
+ "name": "ipconfig1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/test-nic/ipConfigurations/ipconfig1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "172.20.2.4",
+ "privateIPAllocationMethod": "Dynamic",
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/test-ip"
+ },
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/rg1-vnet/subnets/default"
+ },
+ "primary": true,
+ "privateIPAddressVersion": "IPv4"
+ }
+ }
+ ],
+ "dnsSettings": {
+ "dnsServers": [],
+ "appliedDnsServers": []
+ },
+ "enableAcceleratedNetworking": true,
+ "enableIPForwarding": false
+ },
+ "type": "Microsoft.Network/networkInterfaces"
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkInterfaceDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkInterfaceDelete.json
new file mode 100644
index 000000000000..dbb902cea536
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkInterfaceDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkInterfaceName": "test-nic"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkInterfaceEffectiveNSGList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkInterfaceEffectiveNSGList.json
new file mode 100644
index 000000000000..2f9469606bec
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkInterfaceEffectiveNSGList.json
@@ -0,0 +1,71 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkInterfaceName": "nic1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "networkSecurityGroup": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/test-nsg"
+ },
+ "association": {
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/rg1-vnet/subnets/default"
+ },
+ "networkInterface": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/nic1"
+ }
+ },
+ "effectiveSecurityRules": [
+ {
+ "name": "securityRules/rule1",
+ "protocol": "Tcp",
+ "sourcePortRange": "456-456",
+ "destinationPortRange": "6579-6579",
+ "sourceAddressPrefix": "0.0.0.0/32",
+ "destinationAddressPrefix": "0.0.0.0/32",
+ "access": "Allow",
+ "priority": 234,
+ "direction": "Inbound"
+ },
+ {
+ "name": "securityRules/default-allow-rdp",
+ "protocol": "Tcp",
+ "sourcePortRange": "0-65535",
+ "destinationPortRange": "3389-3389",
+ "sourceAddressPrefix": "1.1.1.1/32",
+ "destinationAddressPrefix": "0.0.0.0/0",
+ "access": "Allow",
+ "priority": 1000,
+ "direction": "Inbound"
+ },
+ {
+ "name": "defaultSecurityRules/AllowInternetOutBound",
+ "protocol": "All",
+ "sourcePortRange": "0-65535",
+ "destinationPortRange": "0-65535",
+ "sourceAddressPrefix": "0.0.0.0/0",
+ "destinationAddressPrefix": "Internet",
+ "expandedDestinationAddressPrefix": [
+ "32.0.0.0/3",
+ "4.0.0.0/6",
+ "2.0.0.0/7",
+ "1.0.0.0/8"
+ ],
+ "access": "Allow",
+ "priority": 65001,
+ "direction": "Outbound"
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkInterfaceEffectiveRouteTableList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkInterfaceEffectiveRouteTableList.json
new file mode 100644
index 000000000000..d2690c253a34
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkInterfaceEffectiveRouteTableList.json
@@ -0,0 +1,71 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkInterfaceName": "nic1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "source": "Default",
+ "state": "Active",
+ "addressPrefix": [
+ "172.20.2.0/24"
+ ],
+ "nextHopType": "VnetLocal",
+ "nextHopIpAddress": []
+ },
+ {
+ "source": "Default",
+ "state": "Active",
+ "addressPrefix": [
+ "0.0.0.0/0"
+ ],
+ "nextHopType": "Internet",
+ "nextHopIpAddress": []
+ },
+ {
+ "source": "Default",
+ "state": "Active",
+ "addressPrefix": [
+ "10.0.0.0/8"
+ ],
+ "nextHopType": "None",
+ "nextHopIpAddress": []
+ },
+ {
+ "source": "Default",
+ "state": "Active",
+ "addressPrefix": [
+ "100.64.0.0/10"
+ ],
+ "nextHopType": "None",
+ "nextHopIpAddress": []
+ },
+ {
+ "source": "Default",
+ "state": "Active",
+ "addressPrefix": [
+ "172.16.0.0/12"
+ ],
+ "nextHopType": "None",
+ "nextHopIpAddress": []
+ },
+ {
+ "source": "Default",
+ "state": "Active",
+ "addressPrefix": [
+ "192.168.0.0/16"
+ ],
+ "nextHopType": "None",
+ "nextHopIpAddress": []
+ }
+ ]
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkInterfaceGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkInterfaceGet.json
new file mode 100644
index 000000000000..0e9c5ff19826
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkInterfaceGet.json
@@ -0,0 +1,58 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkInterfaceName": "test-nic"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "test-nic",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/test-nic",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ipConfigurations": [
+ {
+ "name": "ipconfig1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/test-nic/ipConfigurations/ipconfig1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "172.20.2.4",
+ "privateIPAllocationMethod": "Dynamic",
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/test-ip"
+ },
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/rg1-vnet/subnets/default"
+ },
+ "primary": true,
+ "privateIPAddressVersion": "IPv4"
+ }
+ }
+ ],
+ "dnsSettings": {
+ "dnsServers": [],
+ "appliedDnsServers": [],
+ "internalDomainNameSuffix": "test.bx.internal.cloudapp.net"
+ },
+ "macAddress": "00-0D-3A-1B-C7-21",
+ "enableAcceleratedNetworking": true,
+ "enableIPForwarding": false,
+ "networkSecurityGroup": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/nsg"
+ },
+ "primary": true,
+ "virtualMachine": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachines/vm1"
+ },
+ "dscpConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/dscpConfiguration/mydscpconfiguration"
+ }
+ },
+ "type": "Microsoft.Network/networkInterfaces"
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkInterfaceIPConfigurationGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkInterfaceIPConfigurationGet.json
new file mode 100644
index 000000000000..a09db9163685
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkInterfaceIPConfigurationGet.json
@@ -0,0 +1,45 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "testrg",
+ "networkInterfaceName": "mynic",
+ "ipConfigurationName": "ipconfig1",
+ "api-version": "2020-07-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "ipconfig1",
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/networkInterfaces/mynic/ipConfigurations/ipconfig1",
+ "etag": "W/\\\"00000000-0000-0000-0000-000000000000\\\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "10.0.1.4",
+ "privateIPAllocationMethod": "Dynamic",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/virtualNetworks/myVirtualNetwork/subnets/frontendSubnet"
+ },
+ "privateIPAddressVersion": "IPv4",
+ "loadBalancerBackendAddressPools": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lbname1/backendAddressPools/bepool1"
+ }
+ ],
+ "loadBalancerInboundNatRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lbname1/inboundNatRules/inbound1"
+ }
+ ],
+ "virtualNetworkTaps": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/virtualNetworkTaps/vTAP1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/virtualNetworkTaps/vTAP2"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkInterfaceIPConfigurationList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkInterfaceIPConfigurationList.json
new file mode 100644
index 000000000000..6295fbdfe37d
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkInterfaceIPConfigurationList.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "testrg",
+ "networkInterfaceName": "nic1",
+ "api-version": "2020-07-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "ipconfig1",
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/networkInterfaces/nic1/ipConfigurations/ipconfig1",
+ "etag": "W/\\\"00000000-0000-0000-0000-000000000000\\\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "10.0.0.4",
+ "privateIPAllocationMethod": "Dynamic",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/virtualNetworks/vnet12/subnets/subnet12"
+ },
+ "primary": true,
+ "privateIPAddressVersion": "IPv4"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkInterfaceList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkInterfaceList.json
new file mode 100644
index 000000000000..d7ade675a959
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkInterfaceList.json
@@ -0,0 +1,92 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "test-nic",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/test-nic",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ipConfigurations": [
+ {
+ "name": "ipconfig1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/test-nic/ipConfigurations/ipconfig1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "172.20.2.4",
+ "privateIPAllocationMethod": "Dynamic",
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/test-ip"
+ },
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/rg1-vnet/subnets/default"
+ },
+ "primary": true,
+ "privateIPAddressVersion": "IPv4"
+ }
+ }
+ ],
+ "dnsSettings": {
+ "dnsServers": [],
+ "appliedDnsServers": [],
+ "internalDomainNameSuffix": "test.bx.internal.cloudapp.net"
+ },
+ "macAddress": "00-0D-3A-1B-C7-21",
+ "enableAcceleratedNetworking": true,
+ "enableIPForwarding": false,
+ "networkSecurityGroup": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/nsg"
+ },
+ "primary": true,
+ "virtualMachine": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachines/vm1"
+ }
+ },
+ "type": "Microsoft.Network/networkInterfaces"
+ },
+ {
+ "name": "test-nic2",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/test-nic2",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ipConfigurations": [
+ {
+ "name": "ipconfig1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/test-nic2/ipConfigurations/ipconfig1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "172.20.2.4",
+ "privateIPAllocationMethod": "Dynamic",
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/test-ip2"
+ },
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/rg1-vnet2/subnets/default"
+ },
+ "primary": true,
+ "privateIPAddressVersion": "IPv4"
+ }
+ }
+ ],
+ "dnsSettings": {
+ "dnsServers": [],
+ "appliedDnsServers": []
+ },
+ "enableAcceleratedNetworking": true,
+ "enableIPForwarding": false
+ },
+ "type": "Microsoft.Network/networkInterfaces"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkInterfaceListAll.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkInterfaceListAll.json
new file mode 100644
index 000000000000..dd2fd290fb7a
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkInterfaceListAll.json
@@ -0,0 +1,91 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "test-nic",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/test-nic",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ipConfigurations": [
+ {
+ "name": "ipconfig1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/test-nic/ipConfigurations/ipconfig1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "172.20.2.4",
+ "privateIPAllocationMethod": "Dynamic",
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/test-ip"
+ },
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/rg1-vnet/subnets/default"
+ },
+ "primary": true,
+ "privateIPAddressVersion": "IPv4"
+ }
+ }
+ ],
+ "dnsSettings": {
+ "dnsServers": [],
+ "appliedDnsServers": [],
+ "internalDomainNameSuffix": "test.bx.internal.cloudapp.net"
+ },
+ "macAddress": "00-0D-3A-1B-C7-21",
+ "enableAcceleratedNetworking": true,
+ "enableIPForwarding": false,
+ "networkSecurityGroup": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/nsg"
+ },
+ "primary": true,
+ "virtualMachine": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachines/vm1"
+ }
+ },
+ "type": "Microsoft.Network/networkInterfaces"
+ },
+ {
+ "name": "test-nic2",
+ "id": "/subscriptions/subid/resourceGroups/rgnew/providers/Microsoft.Network/networkInterfaces/test-nic2",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ipConfigurations": [
+ {
+ "name": "ipconfig1",
+ "id": "/subscriptions/subid/resourceGroups/rgnew/providers/Microsoft.Network/networkInterfaces/test-nic2/ipConfigurations/ipconfig1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "172.20.2.4",
+ "privateIPAllocationMethod": "Dynamic",
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rgnew/providers/Microsoft.Network/publicIPAddresses/test-ip2"
+ },
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rgnew/providers/Microsoft.Network/virtualNetworks/rgnew-vnet2/subnets/default"
+ },
+ "primary": true,
+ "privateIPAddressVersion": "IPv4"
+ }
+ }
+ ],
+ "dnsSettings": {
+ "dnsServers": [],
+ "appliedDnsServers": []
+ },
+ "enableAcceleratedNetworking": true,
+ "enableIPForwarding": false
+ },
+ "type": "Microsoft.Network/networkInterfaces"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkInterfaceLoadBalancerList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkInterfaceLoadBalancerList.json
new file mode 100644
index 000000000000..6c7d4fbccfc6
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkInterfaceLoadBalancerList.json
@@ -0,0 +1,139 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "testrg",
+ "networkInterfaceName": "nic1",
+ "api-version": "2020-07-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "lbname1",
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lbname1",
+ "etag": "W/\\\"00000000-0000-0000-0000-000000000000\\\"",
+ "type": "Microsoft.Network/loadBalancers",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-000000000000",
+ "frontendIPConfigurations": [
+ {
+ "name": "lbfrontend",
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lbname1/frontendIPConfigurations/lbfrontend",
+ "etag": "W/\\\"00000000-0000-0000-0000-000000000000\\\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAllocationMethod": "Dynamic",
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/publicIPAddresses/myDynamicPublicIP"
+ },
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lbname1/loadBalancingRules/rule1"
+ }
+ ],
+ "inboundNatRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lbname1/inboundNatRules/inbound1"
+ }
+ ]
+ }
+ }
+ ],
+ "backendAddressPools": [
+ {
+ "name": "bepool1",
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lbname1/backendAddressPools/bepool1",
+ "etag": "W/\\\"00000000-0000-0000-0000-000000000000\\\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "backendIPConfigurations": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/networkInterfaces/nic1/ipConfigurations/ipconfig1"
+ }
+ ],
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lbname1/loadBalancingRules/rule1"
+ }
+ ]
+ }
+ }
+ ],
+ "loadBalancingRules": [
+ {
+ "name": "rule1",
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lbname1/loadBalancingRules/rule1",
+ "etag": "W/\\\"00000000-0000-0000-0000-000000000000\\\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lbname1/frontendIPConfigurations/lbfrontend"
+ },
+ "frontendPort": 80,
+ "backendPort": 80,
+ "enableFloatingIP": false,
+ "idleTimeoutInMinutes": 15,
+ "protocol": "Tcp",
+ "loadDistribution": "Default",
+ "backendAddressPool": {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lbname1/backendAddressPools/bepool1"
+ },
+ "probe": {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lbname1/probes/probe1"
+ }
+ }
+ }
+ ],
+ "probes": [
+ {
+ "name": "probe1",
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lbname1/probes/probe1",
+ "etag": "W/\\\"00000000-0000-0000-0000-000000000000\\\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "protocol": "Http",
+ "port": 80,
+ "requestPath": "healthcheck.aspx",
+ "intervalInSeconds": 15,
+ "numberOfProbes": 2,
+ "loadBalancingRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lbname1/loadBalancingRules/rule1"
+ }
+ ]
+ }
+ }
+ ],
+ "inboundNatRules": [
+ {
+ "name": "inbound1",
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lbname1/inboundNatRules/inbound1",
+ "etag": "W/\\\"00000000-0000-0000-0000-000000000000\\\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "frontendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lbname1/frontendIPConfigurations/lbfrontend"
+ },
+ "frontendPort": 3389,
+ "backendPort": 3389,
+ "enableFloatingIP": false,
+ "idleTimeoutInMinutes": 15,
+ "protocol": "Tcp",
+ "backendIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/networkInterfaces/nic1/ipConfigurations/ipconfig1"
+ }
+ }
+ }
+ ],
+ "outboundRules": [],
+ "inboundNatPools": []
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkInterfaceTapConfigurationCreate.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkInterfaceTapConfigurationCreate.json
new file mode 100644
index 000000000000..36d1b7a13cf8
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkInterfaceTapConfigurationCreate.json
@@ -0,0 +1,46 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "testrg",
+ "networkInterfaceName": "mynic",
+ "tapConfigurationName": "tapconfiguration1",
+ "api-version": "2020-07-01",
+ "tapConfigurationParameters": {
+ "properties": {
+ "virtualNetworkTap": {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/virtualNetworkTaps/testvtap"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "tapConfiguration1",
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/networkInterfaces/mynic/tapConfigurations/tapConfiguration1",
+ "etag": "etag",
+ "type": "Microsoft.Network/networkInterfaces/tapConfigurations",
+ "properties": {
+ "virtualNetworkTap": {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/virtualNetworkTaps/testvtap"
+ },
+ "provisioningState": "Succeded"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "tapConfiguration1",
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/networkInterfaces/mynic/tapConfigurations/tapConfiguration1",
+ "etag": "etag",
+ "type": "Microsoft.Network/networkInterfaces/tapConfigurations",
+ "properties": {
+ "virtualNetworkTap": {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/virtualNetworkTaps/testvtap"
+ },
+ "provisioningState": "Succeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkInterfaceTapConfigurationDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkInterfaceTapConfigurationDelete.json
new file mode 100644
index 000000000000..88274cba0da2
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkInterfaceTapConfigurationDelete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkInterfaceName": "test-networkinterface",
+ "tapConfigurationName": "test-tapconfiguration"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkInterfaceTapConfigurationGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkInterfaceTapConfigurationGet.json
new file mode 100644
index 000000000000..3dd5c885ecfd
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkInterfaceTapConfigurationGet.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "testrg",
+ "networkInterfaceName": "mynic",
+ "tapConfigurationName": "tapconfiguration1",
+ "api-version": "2020-07-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "tapConfiguration1",
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/networkInterfaces/mynic/tapConfigurations/tapConfiguration1",
+ "etag": "etag",
+ "type": "Microsoft.Network/networkInterfaces/tapConfigurations",
+ "properties": {
+ "virtualNetworkTap": {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/virtualNetworkTaps/testvtap"
+ },
+ "provisioningState": "Succeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkInterfaceTapConfigurationList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkInterfaceTapConfigurationList.json
new file mode 100644
index 000000000000..2deb4ad9f499
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkInterfaceTapConfigurationList.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkInterfaceName": "mynic"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "tapConfiguration1",
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/networkInterfaces/mynic/tapConfigurations/tapConfiguration1",
+ "etag": "etag",
+ "type": "Microsoft.Network/networkInterfaces/tapConfigurations",
+ "properties": {
+ "virtualNetworkTap": {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/virtualNetworkTaps/testvtap"
+ },
+ "provisioningState": "Succeded"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkInterfaceUpdateTags.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkInterfaceUpdateTags.json
new file mode 100644
index 000000000000..6a76c88b6e2c
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkInterfaceUpdateTags.json
@@ -0,0 +1,56 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkInterfaceName": "test-nic",
+ "parameters": {
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "test-nic",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/test-nic",
+ "location": "eastus",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ipConfigurations": [
+ {
+ "name": "ipconfig1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/test-nic/ipConfigurations/ipconfig1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "172.20.2.4",
+ "privateIPAllocationMethod": "Dynamic",
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/test-ip"
+ },
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/rg1-vnet/subnets/default"
+ },
+ "primary": true,
+ "privateIPAddressVersion": "IPv4"
+ }
+ }
+ ],
+ "dnsSettings": {
+ "dnsServers": [],
+ "appliedDnsServers": []
+ },
+ "enableAcceleratedNetworking": true,
+ "enableIPForwarding": false
+ },
+ "type": "Microsoft.Network/networkInterfaces"
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkProfileCreateConfigOnly.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkProfileCreateConfigOnly.json
new file mode 100644
index 000000000000..770f8b34e214
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkProfileCreateConfigOnly.json
@@ -0,0 +1,110 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkProfileName": "networkProfile1",
+ "parameters": {
+ "location": "westus",
+ "properties": {
+ "containerNetworkInterfaceConfigurations": [
+ {
+ "name": "eth1",
+ "properties": {
+ "ipConfigurations": [
+ {
+ "name": "ipconfig1",
+ "properties": {
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/networkProfileVnet/subnets/networkProfileSubnet1"
+ }
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "networkProfile1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile1",
+ "etag": "W/\"4d705a71-752f-4e0a-8057-c02b125b1c08\"",
+ "type": "Microsoft.Network/networkProfiles",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "1570d8b6-ab8a-4ad2-81d6-d2799b429cbf",
+ "containerNetworkInterfaceConfigurations": [
+ {
+ "name": "eth1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile1/containerNetworkInterfaceConfigurations/eth1",
+ "etag": "W/\"4d705a71-752f-4e0a-8057-c02b125b1c08\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ipConfigurations": [
+ {
+ "name": "ipconfig1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile1/containerNetworkInterfaceConfigurations/eth1/ipConfigurations/ipconfig1",
+ "etag": "W/\"4d705a71-752f-4e0a-8057-c02b125b1c08\"",
+ "type": "Microsoft.Network/networkProfiles/containerNetworkInterfaceConfigurations/ipConfigurations",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/networkProfileVnet/subnets/networkProfileSubnet1"
+ }
+ }
+ }
+ ]
+ },
+ "type": "Microsoft.Network/networkProfiles/containerNetworkInterfaceConfigurations"
+ }
+ ],
+ "containerNetworkInterfaces": []
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "networkProfile1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile1",
+ "etag": "W/\"4d705a71-752f-4e0a-8057-c02b125b1c08\"",
+ "type": "Microsoft.Network/networkProfiles",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "1570d8b6-ab8a-4ad2-81d6-d2799b429cbf",
+ "containerNetworkInterfaceConfigurations": [
+ {
+ "name": "eth1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile1/containerNetworkInterfaceConfigurations/eth1",
+ "etag": "W/\"4d705a71-752f-4e0a-8057-c02b125b1c08\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ipConfigurations": [
+ {
+ "name": "ipconfig1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile1/containerNetworkInterfaceConfigurations/eth1/ipConfigurations/ipconfig1",
+ "etag": "W/\"4d705a71-752f-4e0a-8057-c02b125b1c08\"",
+ "type": "Microsoft.Network/networkProfiles/containerNetworkInterfaceConfigurations/ipConfigurations",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/networkProfileVnet/subnets/networkProfileSubnet1"
+ }
+ }
+ }
+ ]
+ },
+ "type": "Microsoft.Network/networkProfiles/containerNetworkInterfaceConfigurations"
+ }
+ ],
+ "containerNetworkInterfaces": []
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkProfileDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkProfileDelete.json
new file mode 100644
index 000000000000..90b45f2c1b77
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkProfileDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkProfileName": "networkProfile1"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkProfileGetConfigOnly.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkProfileGetConfigOnly.json
new file mode 100644
index 000000000000..05426883194c
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkProfileGetConfigOnly.json
@@ -0,0 +1,84 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkProfileName": "networkProfile1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "networkProfile1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile1",
+ "etag": "W/\"4d705a71-752f-4e0a-8057-c02b125b1c08\"",
+ "type": "Microsoft.Network/networkProfiles",
+ "location": "centraluseuap",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "1570d8b6-ab8a-4ad2-81d6-d2799b429cbf",
+ "containerNetworkInterfaceConfigurations": [
+ {
+ "name": "eth0",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile1/containerNetworkInterfaceConfigurations/eth0",
+ "etag": "W/\"4d705a71-752f-4e0a-8057-c02b125b1c08\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ipConfigurations": [
+ {
+ "name": "ipconfigprofile1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile1/containerNetworkInterfaceConfigurations/eth0/ipConfigurations/ipconfigprofile1",
+ "etag": "W/\"4d705a71-752f-4e0a-8057-c02b125b1c08\"",
+ "type": "Microsoft.Network/networkProfiles/containerNetworkInterfaceConfigurations/ipConfigurations",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/networkProfileVnet/subnets/networkProfileSubnet1"
+ }
+ }
+ },
+ {
+ "name": "ipconfigprofile2",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile1/containerNetworkInterfaceConfigurations/eth0/ipConfigurations/ipconfigprofile2",
+ "etag": "W/\"4d705a71-752f-4e0a-8057-c02b125b1c08\"",
+ "type": "Microsoft.Network/networkProfiles/containerNetworkInterfaceConfigurations/ipConfigurations",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/networkProfileVnet/subnets/networkProfileSubnet1"
+ }
+ }
+ }
+ ]
+ },
+ "type": "Microsoft.Network/networkProfiles/containerNetworkInterfaceConfigurations"
+ },
+ {
+ "name": "eth1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile1/containerNetworkInterfaceConfigurations/eth1",
+ "etag": "W/\"4d705a71-752f-4e0a-8057-c02b125b1c08\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ipConfigurations": [
+ {
+ "name": "ipconfigprofile3",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile1/containerNetworkInterfaceConfigurations/eth1/ipConfigurations/ipconfigprofile3",
+ "etag": "W/\"4d705a71-752f-4e0a-8057-c02b125b1c08\"",
+ "type": "Microsoft.Network/networkProfiles/containerNetworkInterfaceConfigurations/ipConfigurations",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/networkProfileVnet/subnets/networkProfileSubnet1"
+ }
+ }
+ }
+ ]
+ },
+ "type": "Microsoft.Network/networkProfiles/containerNetworkInterfaceConfigurations"
+ }
+ ],
+ "containerNetworkInterfaces": []
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkProfileGetWithContainerNic.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkProfileGetWithContainerNic.json
new file mode 100644
index 000000000000..943ae5f7dcb9
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkProfileGetWithContainerNic.json
@@ -0,0 +1,203 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkProfileName": "networkProfile1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "networkProfile1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile1",
+ "etag": "W/\"de9b89d2-83b0-4da3-b488-6ea8b0557edd\"",
+ "type": "Microsoft.Network/networkProfiles",
+ "location": "centraluseuap",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "1570d8b6-ab8a-4ad2-81d6-d2799b429cbf",
+ "containerNetworkInterfaceConfigurations": [
+ {
+ "name": "eth0",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile1/containerNetworkInterfaceConfigurations/eth0",
+ "etag": "W/\"de9b89d2-83b0-4da3-b488-6ea8b0557edd\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ipConfigurations": [
+ {
+ "name": "ipconfigprofile1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile1/containerNetworkInterfaceConfigurations/eth0/ipConfigurations/ipconfigprofile1",
+ "etag": "W/\"de9b89d2-83b0-4da3-b488-6ea8b0557edd\"",
+ "type": "Microsoft.Network/networkProfiles/containerNetworkInterfaceConfigurations/ipConfigurations",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/networkProfileVnet/subnets/networkProfileSubnet1"
+ }
+ }
+ },
+ {
+ "name": "ipconfigprofile2",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile1/containerNetworkInterfaceConfigurations/eth0/ipConfigurations/ipconfigprofile2",
+ "etag": "W/\"de9b89d2-83b0-4da3-b488-6ea8b0557edd\"",
+ "type": "Microsoft.Network/networkProfiles/containerNetworkInterfaceConfigurations/ipConfigurations",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/networkProfileVnet/subnets/networkProfileSubnet1"
+ }
+ }
+ }
+ ],
+ "containerNetworkInterfaces": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile1/containerNetworkInterfaces/containerGroup1_eth0"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile1/containerNetworkInterfaces/containerGroup2_eth0"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile1/containerNetworkInterfaces/containerGroup3_eth0"
+ }
+ ]
+ },
+ "type": "Microsoft.Network/networkProfiles/containerNetworkInterfaceConfigurations"
+ },
+ {
+ "name": "eth1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile1/containerNetworkInterfaceConfigurations/eth1",
+ "etag": "W/\"de9b89d2-83b0-4da3-b488-6ea8b0557edd\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ipConfigurations": [
+ {
+ "name": "ipconfigprofile3",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile1/containerNetworkInterfaceConfigurations/eth1/ipConfigurations/ipconfigprofile3",
+ "etag": "W/\"de9b89d2-83b0-4da3-b488-6ea8b0557edd\"",
+ "type": "Microsoft.Network/networkProfiles/containerNetworkInterfaceConfigurations/ipConfigurations",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/networkProfileVnet/subnets/networkProfileSubnet1"
+ }
+ }
+ }
+ ],
+ "containerNetworkInterfaces": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile1/containerNetworkInterfaces/containerGroup1_eth1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile1/containerNetworkInterfaces/containerGroup2_eth1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile1/containerNetworkInterfaces/containerGroup3_eth1"
+ }
+ ]
+ },
+ "type": "Microsoft.Network/networkProfiles/containerNetworkInterfaceConfigurations"
+ }
+ ],
+ "containerNetworkInterfaces": [
+ {
+ "name": "containerGroup1_eth0",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile1/containerNetworkInterfaces/containerGroup1_eth0",
+ "etag": "W/\"de9b89d2-83b0-4da3-b488-6ea8b0557edd\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "containerNetworkInterfaceConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile1/containerNetworkInterfaceConfigurations/eth0"
+ },
+ "container": {
+ "id": "/subscriptions/subid/resourceGroups/networkProfilesDemo/providers/Microsoft.ContainerInstance/containerGroups/containerGroup1"
+ },
+ "ipConfigurations": []
+ },
+ "type": "Microsoft.Network/networkProfiles/containerNetworkInterfaces"
+ },
+ {
+ "name": "containerGroup1_eth1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile1/containerNetworkInterfaces/containerGroup1_eth1",
+ "etag": "W/\"de9b89d2-83b0-4da3-b488-6ea8b0557edd\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "containerNetworkInterfaceConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile1/containerNetworkInterfaceConfigurations/eth1"
+ },
+ "container": {
+ "id": "/subscriptions/subid/resourceGroups/networkProfilesDemo/providers/Microsoft.ContainerInstance/containerGroups/containerGroup1"
+ },
+ "ipConfigurations": []
+ },
+ "type": "Microsoft.Network/networkProfiles/containerNetworkInterfaces"
+ },
+ {
+ "name": "containerGroup2_eth0",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile1/containerNetworkInterfaces/containerGroup2_eth0",
+ "etag": "W/\"de9b89d2-83b0-4da3-b488-6ea8b0557edd\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "containerNetworkInterfaceConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile1/containerNetworkInterfaceConfigurations/eth0"
+ },
+ "container": {
+ "id": "/subscriptions/subid/resourceGroups/networkProfilesDemo/providers/Microsoft.ContainerInstance/containerGroups/containerGroup2"
+ },
+ "ipConfigurations": []
+ },
+ "type": "Microsoft.Network/networkProfiles/containerNetworkInterfaces"
+ },
+ {
+ "name": "containerGroup2_eth1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile1/containerNetworkInterfaces/containerGroup2_eth1",
+ "etag": "W/\"de9b89d2-83b0-4da3-b488-6ea8b0557edd\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "containerNetworkInterfaceConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile1/containerNetworkInterfaceConfigurations/eth1"
+ },
+ "container": {
+ "id": "/subscriptions/subid/resourceGroups/networkProfilesDemo/providers/Microsoft.ContainerInstance/containerGroups/containerGroup2"
+ },
+ "ipConfigurations": []
+ },
+ "type": "Microsoft.Network/networkProfiles/containerNetworkInterfaces"
+ },
+ {
+ "name": "containerGroup3_eth0",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile1/containerNetworkInterfaces/containerGroup3_eth0",
+ "etag": "W/\"de9b89d2-83b0-4da3-b488-6ea8b0557edd\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "containerNetworkInterfaceConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile1/containerNetworkInterfaceConfigurations/eth0"
+ },
+ "container": {
+ "id": "/subscriptions/subid/resourceGroups/networkProfilesDemo/providers/Microsoft.ContainerInstance/containerGroups/containerGroup3"
+ },
+ "ipConfigurations": []
+ },
+ "type": "Microsoft.Network/networkProfiles/containerNetworkInterfaces"
+ },
+ {
+ "name": "containerGroup3_eth1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile1/containerNetworkInterfaces/containerGroup3_eth1",
+ "etag": "W/\"de9b89d2-83b0-4da3-b488-6ea8b0557edd\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "containerNetworkInterfaceConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile1/containerNetworkInterfaceConfigurations/eth1"
+ },
+ "container": {
+ "id": "/subscriptions/subid/resourceGroups/networkProfilesDemo/providers/Microsoft.ContainerInstance/containerGroups/containerGroup3"
+ },
+ "ipConfigurations": []
+ },
+ "type": "Microsoft.Network/networkProfiles/containerNetworkInterfaces"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkProfileList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkProfileList.json
new file mode 100644
index 000000000000..298b175c9971
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkProfileList.json
@@ -0,0 +1,97 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile1",
+ "name": "networkProfile1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "1570d8b6-ab8a-4ad2-81d6-d2799b429cbf",
+ "containerNetworkInterfaceConfigurations": [
+ {
+ "name": "eth0",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile1/containerNetworkInterfaceConfigurations/eth0",
+ "etag": "W/\"4d705a71-752f-4e0a-8057-c02b125b1c08\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ipConfigurations": [
+ {
+ "name": "ipconfigprofile1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile1/containerNetworkInterfaceConfigurations/eth0/ipConfigurations/ipconfigprofile1",
+ "etag": "W/\"4d705a71-752f-4e0a-8057-c02b125b1c08\"",
+ "type": "Microsoft.Network/networkProfiles/containerNetworkInterfaceConfigurations/ipConfigurations",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/networkProfileVnet/subnets/networkProfileSubnet1"
+ }
+ }
+ },
+ {
+ "name": "ipconfigprofile2",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile1/containerNetworkInterfaceConfigurations/eth0/ipConfigurations/ipconfigprofile2",
+ "etag": "W/\"4d705a71-752f-4e0a-8057-c02b125b1c08\"",
+ "type": "Microsoft.Network/networkProfiles/containerNetworkInterfaceConfigurations/ipConfigurations",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/networkProfileVnet/subnets/networkProfileSubnet1"
+ }
+ }
+ }
+ ]
+ },
+ "type": "Microsoft.Network/networkProfiles/containerNetworkInterfaceConfigurations"
+ }
+ ],
+ "containerNetworkInterfaces": []
+ },
+ "type": "Microsoft.Network/networkProfiles",
+ "location": "centraluseuap"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile2",
+ "name": "networkProfile2",
+ "properties": {
+ "containerNetworkInterfaceConfigurations": [
+ {
+ "name": "eth1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile1/containerNetworkInterfaceConfigurations/eth1",
+ "etag": "W/\"4d705a71-752f-4e0a-8057-c02b125b1c08\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ipConfigurations": [
+ {
+ "name": "ipconfigprofile3",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile1/containerNetworkInterfaceConfigurations/eth1/ipConfigurations/ipconfigprofile3",
+ "etag": "W/\"4d705a71-752f-4e0a-8057-c02b125b1c08\"",
+ "type": "Microsoft.Network/networkProfiles/containerNetworkInterfaceConfigurations/ipConfigurations",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/networkProfileVnet/subnets/networkProfileSubnet1"
+ }
+ }
+ }
+ ]
+ },
+ "type": "Microsoft.Network/networkProfiles/containerNetworkInterfaceConfigurations"
+ }
+ ],
+ "containerNetworkInterfaces": []
+ },
+ "type": "Microsoft.Network/networkProfiles",
+ "location": "centraluseuap"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkProfileListAll.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkProfileListAll.json
new file mode 100644
index 000000000000..0e3aa2b51b69
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkProfileListAll.json
@@ -0,0 +1,84 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile1",
+ "name": "networkProfile1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "1570d8b6-ab8a-4ad2-81d6-d2799b429cbf",
+ "containerNetworkInterfaceConfigurations": [
+ {
+ "name": "eth0",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile1/containerNetworkInterfaceConfigurations/eth0",
+ "etag": "W/\"4d705a71-752f-4e0a-8057-c02b125b1c08\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ipConfigurations": [
+ {
+ "name": "ipconfigprofile1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile1/containerNetworkInterfaceConfigurations/eth0/ipConfigurations/ipconfigprofile1",
+ "etag": "W/\"4d705a71-752f-4e0a-8057-c02b125b1c08\"",
+ "type": "Microsoft.Network/networkProfiles/containerNetworkInterfaceConfigurations/ipConfigurations",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/networkProfileVnet/subnets/networkProfileSubnet1"
+ }
+ }
+ }
+ ]
+ },
+ "type": "Microsoft.Network/networkProfiles/containerNetworkInterfaceConfigurations"
+ }
+ ],
+ "containerNetworkInterfaces": []
+ },
+ "type": "Microsoft.Network/networkProfiles",
+ "location": "centraluseuap"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/networkProfiles/networkProfile2",
+ "name": "networkProfile2",
+ "properties": {
+ "containerNetworkInterfaceConfigurations": [
+ {
+ "name": "eth1",
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/networkProfiles/networkProfile1/containerNetworkInterfaceConfigurations/eth1",
+ "etag": "W/\"4d705a71-752f-4e0a-8057-c02b125b1c08\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ipConfigurations": [
+ {
+ "name": "ipconfigprofile3",
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/networkProfiles/networkProfile1/containerNetworkInterfaceConfigurations/eth1/ipConfigurations/ipconfigprofile3",
+ "etag": "W/\"4d705a71-752f-4e0a-8057-c02b125b1c08\"",
+ "type": "Microsoft.Network/networkProfiles/containerNetworkInterfaceConfigurations/ipConfigurations",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/virtualNetworks/networkProfileVnet/subnets/networkProfileSubnet1"
+ }
+ }
+ }
+ ]
+ },
+ "type": "Microsoft.Network/networkProfiles/containerNetworkInterfaceConfigurations"
+ }
+ ],
+ "containerNetworkInterfaces": []
+ },
+ "type": "Microsoft.Network/networkProfiles",
+ "location": "centraluseuap"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkProfileUpdateTags.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkProfileUpdateTags.json
new file mode 100644
index 000000000000..271a5b1ad61f
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkProfileUpdateTags.json
@@ -0,0 +1,58 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkProfileName": "test-np",
+ "parameters": {
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "test-np",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/test-np",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "1570d8b6-ab8a-4ad2-81d6-d2799b429cbf",
+ "containerNetworkInterfaceConfigurations": [
+ {
+ "name": "eth0",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile1/containerNetworkInterfaceConfigurations/eth0",
+ "etag": "W/\"4d705a71-752f-4e0a-8057-c02b125b1c08\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ipConfigurations": [
+ {
+ "name": "ipconfigprofile1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile1/containerNetworkInterfaceConfigurations/eth0/ipConfigurations/ipconfigprofile1",
+ "etag": "W/\"4d705a71-752f-4e0a-8057-c02b125b1c08\"",
+ "type": "Microsoft.Network/networkProfiles/containerNetworkInterfaceConfigurations/ipConfigurations",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/networkProfileVnet/subnets/networkProfileSubnet1"
+ }
+ }
+ }
+ ]
+ },
+ "type": "Microsoft.Network/networkProfiles/containerNetworkInterfaceConfigurations"
+ }
+ ],
+ "containerNetworkInterfaces": []
+ },
+ "type": "Microsoft.Network/networkProfiles",
+ "location": "centraluseuap"
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkSecurityGroupCreate.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkSecurityGroupCreate.json
new file mode 100644
index 000000000000..5af11db7af02
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkSecurityGroupCreate.json
@@ -0,0 +1,233 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkSecurityGroupName": "testnsg",
+ "parameters": {
+ "location": "eastus"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "testnsg",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg",
+ "type": "Microsoft.Network/networkSecurityGroups",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "securityRules": [],
+ "defaultSecurityRules": [
+ {
+ "name": "AllowVnetInBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg/defaultSecurityRules/AllowVnetInBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow inbound traffic from all VMs in VNET",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "VirtualNetwork",
+ "destinationAddressPrefix": "VirtualNetwork",
+ "access": "Allow",
+ "priority": 65000,
+ "direction": "Inbound"
+ }
+ },
+ {
+ "name": "AllowAzureLoadBalancerInBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg/defaultSecurityRules/AllowAzureLoadBalancerInBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow inbound traffic from azure load balancer",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "AzureLoadBalancer",
+ "destinationAddressPrefix": "*",
+ "access": "Allow",
+ "priority": 65001,
+ "direction": "Inbound"
+ }
+ },
+ {
+ "name": "DenyAllInBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg/defaultSecurityRules/DenyAllInBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Deny all inbound traffic",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "*",
+ "destinationAddressPrefix": "*",
+ "access": "Deny",
+ "priority": 65500,
+ "direction": "Inbound"
+ }
+ },
+ {
+ "name": "AllowVnetOutBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg/defaultSecurityRules/AllowVnetOutBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow outbound traffic from all VMs to all VMs in VNET",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "VirtualNetwork",
+ "destinationAddressPrefix": "VirtualNetwork",
+ "access": "Allow",
+ "priority": 65000,
+ "direction": "Outbound"
+ }
+ },
+ {
+ "name": "AllowInternetOutBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg/defaultSecurityRules/AllowInternetOutBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow outbound traffic from all VMs to Internet",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "*",
+ "destinationAddressPrefix": "Internet",
+ "access": "Allow",
+ "priority": 65001,
+ "direction": "Outbound"
+ }
+ },
+ {
+ "name": "DenyAllOutBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg/defaultSecurityRules/DenyAllOutBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Deny all outbound traffic",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "*",
+ "destinationAddressPrefix": "*",
+ "access": "Deny",
+ "priority": 65500,
+ "direction": "Outbound"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "testnsg",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg",
+ "type": "Microsoft.Network/networkSecurityGroups",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "securityRules": [],
+ "defaultSecurityRules": [
+ {
+ "name": "AllowVnetInBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg/defaultSecurityRules/AllowVnetInBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow inbound traffic from all VMs in VNET",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "VirtualNetwork",
+ "destinationAddressPrefix": "VirtualNetwork",
+ "access": "Allow",
+ "priority": 65000,
+ "direction": "Inbound"
+ }
+ },
+ {
+ "name": "AllowAzureLoadBalancerInBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg/defaultSecurityRules/AllowAzureLoadBalancerInBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow inbound traffic from azure load balancer",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "AzureLoadBalancer",
+ "destinationAddressPrefix": "*",
+ "access": "Allow",
+ "priority": 65001,
+ "direction": "Inbound"
+ }
+ },
+ {
+ "name": "DenyAllInBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg/defaultSecurityRules/DenyAllInBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Deny all inbound traffic",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "*",
+ "destinationAddressPrefix": "*",
+ "access": "Deny",
+ "priority": 65500,
+ "direction": "Inbound"
+ }
+ },
+ {
+ "name": "AllowVnetOutBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg/defaultSecurityRules/AllowVnetOutBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow outbound traffic from all VMs to all VMs in VNET",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "VirtualNetwork",
+ "destinationAddressPrefix": "VirtualNetwork",
+ "access": "Allow",
+ "priority": 65000,
+ "direction": "Outbound"
+ }
+ },
+ {
+ "name": "AllowInternetOutBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg/defaultSecurityRules/AllowInternetOutBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow outbound traffic from all VMs to Internet",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "*",
+ "destinationAddressPrefix": "Internet",
+ "access": "Allow",
+ "priority": 65001,
+ "direction": "Outbound"
+ }
+ },
+ {
+ "name": "DenyAllOutBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg/defaultSecurityRules/DenyAllOutBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Deny all outbound traffic",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "*",
+ "destinationAddressPrefix": "*",
+ "access": "Deny",
+ "priority": 65500,
+ "direction": "Outbound"
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkSecurityGroupCreateWithRule.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkSecurityGroupCreateWithRule.json
new file mode 100644
index 000000000000..71105aad6b3e
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkSecurityGroupCreateWithRule.json
@@ -0,0 +1,282 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkSecurityGroupName": "testnsg",
+ "parameters": {
+ "properties": {
+ "securityRules": [
+ {
+ "name": "rule1",
+ "properties": {
+ "protocol": "*",
+ "sourceAddressPrefix": "*",
+ "destinationAddressPrefix": "*",
+ "access": "Allow",
+ "destinationPortRange": "80",
+ "sourcePortRange": "*",
+ "priority": 130,
+ "direction": "Inbound"
+ }
+ }
+ ]
+ },
+ "location": "eastus"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "testnsg",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg",
+ "type": "Microsoft.Network/networkSecurityGroups",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "securityRules": [
+ {
+ "name": "rule1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg/securityRules/rule1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "80",
+ "sourceAddressPrefix": "*",
+ "destinationAddressPrefix": "*",
+ "access": "Allow",
+ "priority": 130,
+ "direction": "Inbound"
+ }
+ }
+ ],
+ "defaultSecurityRules": [
+ {
+ "name": "AllowVnetInBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg/defaultSecurityRules/AllowVnetInBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow inbound traffic from all VMs in VNET",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "VirtualNetwork",
+ "destinationAddressPrefix": "VirtualNetwork",
+ "access": "Allow",
+ "priority": 65000,
+ "direction": "Inbound"
+ }
+ },
+ {
+ "name": "AllowAzureLoadBalancerInBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg/defaultSecurityRules/AllowAzureLoadBalancerInBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow inbound traffic from azure load balancer",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "AzureLoadBalancer",
+ "destinationAddressPrefix": "*",
+ "access": "Allow",
+ "priority": 65001,
+ "direction": "Inbound"
+ }
+ },
+ {
+ "name": "DenyAllInBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg/defaultSecurityRules/DenyAllInBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Deny all inbound traffic",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "*",
+ "destinationAddressPrefix": "*",
+ "access": "Deny",
+ "priority": 65500,
+ "direction": "Inbound"
+ }
+ },
+ {
+ "name": "AllowVnetOutBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg/defaultSecurityRules/AllowVnetOutBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow outbound traffic from all VMs to all VMs in VNET",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "VirtualNetwork",
+ "destinationAddressPrefix": "VirtualNetwork",
+ "access": "Allow",
+ "priority": 65000,
+ "direction": "Outbound"
+ }
+ },
+ {
+ "name": "AllowInternetOutBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg/defaultSecurityRules/AllowInternetOutBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow outbound traffic from all VMs to Internet",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "*",
+ "destinationAddressPrefix": "Internet",
+ "access": "Allow",
+ "priority": 65001,
+ "direction": "Outbound"
+ }
+ },
+ {
+ "name": "DenyAllOutBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg/defaultSecurityRules/DenyAllOutBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Deny all outbound traffic",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "*",
+ "destinationAddressPrefix": "*",
+ "access": "Deny",
+ "priority": 65500,
+ "direction": "Outbound"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "testnsg",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg",
+ "type": "Microsoft.Network/networkSecurityGroups",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "securityRules": [
+ {
+ "name": "rule1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg/securityRules/rule1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "80",
+ "sourceAddressPrefix": "*",
+ "destinationAddressPrefix": "*",
+ "access": "Allow",
+ "priority": 130,
+ "direction": "Inbound"
+ }
+ }
+ ],
+ "defaultSecurityRules": [
+ {
+ "name": "AllowVnetInBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg/defaultSecurityRules/AllowVnetInBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow inbound traffic from all VMs in VNET",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "VirtualNetwork",
+ "destinationAddressPrefix": "VirtualNetwork",
+ "access": "Allow",
+ "priority": 65000,
+ "direction": "Inbound"
+ }
+ },
+ {
+ "name": "AllowAzureLoadBalancerInBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg/defaultSecurityRules/AllowAzureLoadBalancerInBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow inbound traffic from azure load balancer",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "AzureLoadBalancer",
+ "destinationAddressPrefix": "*",
+ "access": "Allow",
+ "priority": 65001,
+ "direction": "Inbound"
+ }
+ },
+ {
+ "name": "DenyAllInBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg/defaultSecurityRules/DenyAllInBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Deny all inbound traffic",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "*",
+ "destinationAddressPrefix": "*",
+ "access": "Deny",
+ "priority": 65500,
+ "direction": "Inbound"
+ }
+ },
+ {
+ "name": "AllowVnetOutBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg/defaultSecurityRules/AllowVnetOutBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow outbound traffic from all VMs to all VMs in VNET",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "VirtualNetwork",
+ "destinationAddressPrefix": "VirtualNetwork",
+ "access": "Allow",
+ "priority": 65000,
+ "direction": "Outbound"
+ }
+ },
+ {
+ "name": "AllowInternetOutBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg/defaultSecurityRules/AllowInternetOutBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow outbound traffic from all VMs to Internet",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "*",
+ "destinationAddressPrefix": "Internet",
+ "access": "Allow",
+ "priority": 65001,
+ "direction": "Outbound"
+ }
+ },
+ {
+ "name": "DenyAllOutBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg/defaultSecurityRules/DenyAllOutBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Deny all outbound traffic",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "*",
+ "destinationAddressPrefix": "*",
+ "access": "Deny",
+ "priority": 65500,
+ "direction": "Outbound"
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkSecurityGroupDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkSecurityGroupDelete.json
new file mode 100644
index 000000000000..5baea02c3f11
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkSecurityGroupDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkSecurityGroupName": "testnsg"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkSecurityGroupGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkSecurityGroupGet.json
new file mode 100644
index 000000000000..9c3e2db4b8e3
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkSecurityGroupGet.json
@@ -0,0 +1,136 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkSecurityGroupName": "testnsg"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "testnsg",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg",
+ "type": "Microsoft.Network/networkSecurityGroups",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "securityRules": [
+ {
+ "name": "rule1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg/securityRules/rule1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "80",
+ "sourceAddressPrefix": "*",
+ "destinationAddressPrefix": "*",
+ "access": "Allow",
+ "priority": 130,
+ "direction": "Inbound"
+ }
+ }
+ ],
+ "defaultSecurityRules": [
+ {
+ "name": "AllowVnetInBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg/defaultSecurityRules/AllowVnetInBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow inbound traffic from all VMs in VNET",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "VirtualNetwork",
+ "destinationAddressPrefix": "VirtualNetwork",
+ "access": "Allow",
+ "priority": 65000,
+ "direction": "Inbound"
+ }
+ },
+ {
+ "name": "AllowAzureLoadBalancerInBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg/defaultSecurityRules/AllowAzureLoadBalancerInBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow inbound traffic from azure load balancer",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "AzureLoadBalancer",
+ "destinationAddressPrefix": "*",
+ "access": "Allow",
+ "priority": 65001,
+ "direction": "Inbound"
+ }
+ },
+ {
+ "name": "DenyAllInBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg/defaultSecurityRules/DenyAllInBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Deny all inbound traffic",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "*",
+ "destinationAddressPrefix": "*",
+ "access": "Deny",
+ "priority": 65500,
+ "direction": "Inbound"
+ }
+ },
+ {
+ "name": "AllowVnetOutBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg/defaultSecurityRules/AllowVnetOutBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow outbound traffic from all VMs to all VMs in VNET",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "VirtualNetwork",
+ "destinationAddressPrefix": "VirtualNetwork",
+ "access": "Allow",
+ "priority": 65000,
+ "direction": "Outbound"
+ }
+ },
+ {
+ "name": "AllowInternetOutBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg/defaultSecurityRules/AllowInternetOutBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow outbound traffic from all VMs to Internet",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "*",
+ "destinationAddressPrefix": "Internet",
+ "access": "Allow",
+ "priority": 65001,
+ "direction": "Outbound"
+ }
+ },
+ {
+ "name": "DenyAllOutBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg/defaultSecurityRules/DenyAllOutBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Deny all outbound traffic",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "*",
+ "destinationAddressPrefix": "*",
+ "access": "Deny",
+ "priority": 65500,
+ "direction": "Outbound"
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkSecurityGroupList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkSecurityGroupList.json
new file mode 100644
index 000000000000..dfbab707f4f5
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkSecurityGroupList.json
@@ -0,0 +1,231 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "nsg1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/nsg1",
+ "type": "Microsoft.Network/networkSecurityGroups",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "securityRules": [],
+ "defaultSecurityRules": [
+ {
+ "name": "AllowVnetInBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/nsg1/defaultSecurityRules/AllowVnetInBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow inbound traffic from all VMs in VNET",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "VirtualNetwork",
+ "destinationAddressPrefix": "VirtualNetwork",
+ "access": "Allow",
+ "priority": 65000,
+ "direction": "Inbound"
+ }
+ },
+ {
+ "name": "AllowAzureLoadBalancerInBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/nsg1/defaultSecurityRules/AllowAzureLoadBalancerInBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow inbound traffic from azure load balancer",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "AzureLoadBalancer",
+ "destinationAddressPrefix": "*",
+ "access": "Allow",
+ "priority": 65001,
+ "direction": "Inbound"
+ }
+ },
+ {
+ "name": "DenyAllInBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/nsg1/defaultSecurityRules/DenyAllInBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Deny all inbound traffic",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "*",
+ "destinationAddressPrefix": "*",
+ "access": "Deny",
+ "priority": 65500,
+ "direction": "Inbound"
+ }
+ },
+ {
+ "name": "AllowVnetOutBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/nsg1/defaultSecurityRules/AllowVnetOutBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow outbound traffic from all VMs to all VMs in VNET",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "VirtualNetwork",
+ "destinationAddressPrefix": "VirtualNetwork",
+ "access": "Allow",
+ "priority": 65000,
+ "direction": "Outbound"
+ }
+ },
+ {
+ "name": "AllowInternetOutBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/nsg1/defaultSecurityRules/AllowInternetOutBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow outbound traffic from all VMs to Internet",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "*",
+ "destinationAddressPrefix": "Internet",
+ "access": "Allow",
+ "priority": 65001,
+ "direction": "Outbound"
+ }
+ },
+ {
+ "name": "DenyAllOutBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/nsg1/defaultSecurityRules/DenyAllOutBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Deny all outbound traffic",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "*",
+ "destinationAddressPrefix": "*",
+ "access": "Deny",
+ "priority": 65500,
+ "direction": "Outbound"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "name": "nsg3",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/nsg3",
+ "type": "Microsoft.Network/networkSecurityGroups",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "securityRules": [],
+ "defaultSecurityRules": [
+ {
+ "name": "AllowVnetInBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/nsg3/defaultSecurityRules/AllowVnetInBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow inbound traffic from all VMs in VNET",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "VirtualNetwork",
+ "destinationAddressPrefix": "VirtualNetwork",
+ "access": "Allow",
+ "priority": 65000,
+ "direction": "Inbound"
+ }
+ },
+ {
+ "name": "AllowAzureLoadBalancerInBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/nsg3/defaultSecurityRules/AllowAzureLoadBalancerInBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow inbound traffic from azure load balancer",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "AzureLoadBalancer",
+ "destinationAddressPrefix": "*",
+ "access": "Allow",
+ "priority": 65001,
+ "direction": "Inbound"
+ }
+ },
+ {
+ "name": "DenyAllInBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/nsg3/defaultSecurityRules/DenyAllInBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Deny all inbound traffic",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "*",
+ "destinationAddressPrefix": "*",
+ "access": "Deny",
+ "priority": 65500,
+ "direction": "Inbound"
+ }
+ },
+ {
+ "name": "AllowVnetOutBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/nsg3/defaultSecurityRules/AllowVnetOutBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow outbound traffic from all VMs to all VMs in VNET",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "VirtualNetwork",
+ "destinationAddressPrefix": "VirtualNetwork",
+ "access": "Allow",
+ "priority": 65000,
+ "direction": "Outbound"
+ }
+ },
+ {
+ "name": "AllowInternetOutBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/nsg3/defaultSecurityRules/AllowInternetOutBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow outbound traffic from all VMs to Internet",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "*",
+ "destinationAddressPrefix": "Internet",
+ "access": "Allow",
+ "priority": 65001,
+ "direction": "Outbound"
+ }
+ },
+ {
+ "name": "DenyAllOutBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/nsg3/defaultSecurityRules/DenyAllOutBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Deny all outbound traffic",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "*",
+ "destinationAddressPrefix": "*",
+ "access": "Deny",
+ "priority": 65500,
+ "direction": "Outbound"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkSecurityGroupListAll.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkSecurityGroupListAll.json
new file mode 100644
index 000000000000..830f3d0a89e0
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkSecurityGroupListAll.json
@@ -0,0 +1,230 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "nsg1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/nsg1",
+ "type": "Microsoft.Network/networkSecurityGroups",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "securityRules": [],
+ "defaultSecurityRules": [
+ {
+ "name": "AllowVnetInBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/nsg1/defaultSecurityRules/AllowVnetInBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow inbound traffic from all VMs in VNET",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "VirtualNetwork",
+ "destinationAddressPrefix": "VirtualNetwork",
+ "access": "Allow",
+ "priority": 65000,
+ "direction": "Inbound"
+ }
+ },
+ {
+ "name": "AllowAzureLoadBalancerInBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/nsg1/defaultSecurityRules/AllowAzureLoadBalancerInBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow inbound traffic from azure load balancer",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "AzureLoadBalancer",
+ "destinationAddressPrefix": "*",
+ "access": "Allow",
+ "priority": 65001,
+ "direction": "Inbound"
+ }
+ },
+ {
+ "name": "DenyAllInBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/nsg1/defaultSecurityRules/DenyAllInBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Deny all inbound traffic",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "*",
+ "destinationAddressPrefix": "*",
+ "access": "Deny",
+ "priority": 65500,
+ "direction": "Inbound"
+ }
+ },
+ {
+ "name": "AllowVnetOutBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/nsg1/defaultSecurityRules/AllowVnetOutBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow outbound traffic from all VMs to all VMs in VNET",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "VirtualNetwork",
+ "destinationAddressPrefix": "VirtualNetwork",
+ "access": "Allow",
+ "priority": 65000,
+ "direction": "Outbound"
+ }
+ },
+ {
+ "name": "AllowInternetOutBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/nsg1/defaultSecurityRules/AllowInternetOutBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow outbound traffic from all VMs to Internet",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "*",
+ "destinationAddressPrefix": "Internet",
+ "access": "Allow",
+ "priority": 65001,
+ "direction": "Outbound"
+ }
+ },
+ {
+ "name": "DenyAllOutBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/nsg1/defaultSecurityRules/DenyAllOutBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Deny all outbound traffic",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "*",
+ "destinationAddressPrefix": "*",
+ "access": "Deny",
+ "priority": 65500,
+ "direction": "Outbound"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "name": "nsg3",
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/networkSecurityGroups/nsg3",
+ "type": "Microsoft.Network/networkSecurityGroups",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "securityRules": [],
+ "defaultSecurityRules": [
+ {
+ "name": "AllowVnetInBound",
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/networkSecurityGroups/nsg3/defaultSecurityRules/AllowVnetInBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow inbound traffic from all VMs in VNET",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "VirtualNetwork",
+ "destinationAddressPrefix": "VirtualNetwork",
+ "access": "Allow",
+ "priority": 65000,
+ "direction": "Inbound"
+ }
+ },
+ {
+ "name": "AllowAzureLoadBalancerInBound",
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/networkSecurityGroups/nsg3/defaultSecurityRules/AllowAzureLoadBalancerInBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow inbound traffic from azure load balancer",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "AzureLoadBalancer",
+ "destinationAddressPrefix": "*",
+ "access": "Allow",
+ "priority": 65001,
+ "direction": "Inbound"
+ }
+ },
+ {
+ "name": "DenyAllInBound",
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/networkSecurityGroups/nsg3/defaultSecurityRules/DenyAllInBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Deny all inbound traffic",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "*",
+ "destinationAddressPrefix": "*",
+ "access": "Deny",
+ "priority": 65500,
+ "direction": "Inbound"
+ }
+ },
+ {
+ "name": "AllowVnetOutBound",
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/networkSecurityGroups/nsg3/defaultSecurityRules/AllowVnetOutBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow outbound traffic from all VMs to all VMs in VNET",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "VirtualNetwork",
+ "destinationAddressPrefix": "VirtualNetwork",
+ "access": "Allow",
+ "priority": 65000,
+ "direction": "Outbound"
+ }
+ },
+ {
+ "name": "AllowInternetOutBound",
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/networkSecurityGroups/nsg3/defaultSecurityRules/AllowInternetOutBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow outbound traffic from all VMs to Internet",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "*",
+ "destinationAddressPrefix": "Internet",
+ "access": "Allow",
+ "priority": 65001,
+ "direction": "Outbound"
+ }
+ },
+ {
+ "name": "DenyAllOutBound",
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/networkSecurityGroups/nsg3/defaultSecurityRules/DenyAllOutBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Deny all outbound traffic",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "*",
+ "destinationAddressPrefix": "*",
+ "access": "Deny",
+ "priority": 65500,
+ "direction": "Outbound"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkSecurityGroupRuleCreate.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkSecurityGroupRuleCreate.json
new file mode 100644
index 000000000000..29c32d64f887
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkSecurityGroupRuleCreate.json
@@ -0,0 +1,57 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkSecurityGroupName": "testnsg",
+ "securityRuleName": "rule1",
+ "securityRuleParameters": {
+ "properties": {
+ "protocol": "*",
+ "sourceAddressPrefix": "10.0.0.0/8",
+ "destinationAddressPrefix": "11.0.0.0/8",
+ "access": "Deny",
+ "destinationPortRange": "8080",
+ "sourcePortRange": "*",
+ "priority": 100,
+ "direction": "Outbound"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "rule1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg/securityRules/rule1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "8080",
+ "sourceAddressPrefix": "10.0.0.0/8",
+ "destinationAddressPrefix": "11.0.0.0/8",
+ "access": "Deny",
+ "priority": 100,
+ "direction": "Outbound"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "rule1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg/securityRules/rule1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "8080",
+ "sourceAddressPrefix": "10.0.0.0/8",
+ "destinationAddressPrefix": "11.0.0.0/8",
+ "access": "Deny",
+ "priority": 100,
+ "direction": "Outbound"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkSecurityGroupRuleDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkSecurityGroupRuleDelete.json
new file mode 100644
index 000000000000..cce22f97f0bb
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkSecurityGroupRuleDelete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkSecurityGroupName": "testnsg",
+ "securityRuleName": "rule1"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkSecurityGroupRuleGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkSecurityGroupRuleGet.json
new file mode 100644
index 000000000000..a08b2efdd487
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkSecurityGroupRuleGet.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkSecurityGroupName": "testnsg",
+ "securityRuleName": "rule1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "rule1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg/securityRules/rule1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "80",
+ "sourceAddressPrefix": "*",
+ "destinationAddressPrefix": "*",
+ "access": "Allow",
+ "priority": 130,
+ "direction": "Inbound"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkSecurityGroupRuleList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkSecurityGroupRuleList.json
new file mode 100644
index 000000000000..a85bc16e4ec8
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkSecurityGroupRuleList.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkSecurityGroupName": "testnsg"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "rule1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg/securityRules/rule1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "80",
+ "sourceAddressPrefix": "*",
+ "destinationAddressPrefix": "*",
+ "access": "Allow",
+ "priority": 130,
+ "direction": "Inbound"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkSecurityGroupUpdateTags.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkSecurityGroupUpdateTags.json
new file mode 100644
index 000000000000..aa9f675499fb
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkSecurityGroupUpdateTags.json
@@ -0,0 +1,130 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkSecurityGroupName": "testnsg",
+ "parameters": {
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "testnsg",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg",
+ "type": "Microsoft.Network/networkSecurityGroups",
+ "location": "westus",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "securityRules": [],
+ "defaultSecurityRules": [
+ {
+ "name": "AllowVnetInBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg/defaultSecurityRules/AllowVnetInBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow inbound traffic from all VMs in VNET",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "VirtualNetwork",
+ "destinationAddressPrefix": "VirtualNetwork",
+ "access": "Allow",
+ "priority": 65000,
+ "direction": "Inbound"
+ }
+ },
+ {
+ "name": "AllowAzureLoadBalancerInBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg/defaultSecurityRules/AllowAzureLoadBalancerInBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow inbound traffic from azure load balancer",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "AzureLoadBalancer",
+ "destinationAddressPrefix": "*",
+ "access": "Allow",
+ "priority": 65001,
+ "direction": "Inbound"
+ }
+ },
+ {
+ "name": "DenyAllInBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg/defaultSecurityRules/DenyAllInBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Deny all inbound traffic",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "*",
+ "destinationAddressPrefix": "*",
+ "access": "Deny",
+ "priority": 65500,
+ "direction": "Inbound"
+ }
+ },
+ {
+ "name": "AllowVnetOutBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg/defaultSecurityRules/AllowVnetOutBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow outbound traffic from all VMs to all VMs in VNET",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "VirtualNetwork",
+ "destinationAddressPrefix": "VirtualNetwork",
+ "access": "Allow",
+ "priority": 65000,
+ "direction": "Outbound"
+ }
+ },
+ {
+ "name": "AllowInternetOutBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg/defaultSecurityRules/AllowInternetOutBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow outbound traffic from all VMs to Internet",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "*",
+ "destinationAddressPrefix": "Internet",
+ "access": "Allow",
+ "priority": 65001,
+ "direction": "Outbound"
+ }
+ },
+ {
+ "name": "DenyAllOutBound",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg/defaultSecurityRules/DenyAllOutBound",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Deny all outbound traffic",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "*",
+ "destinationAddressPrefix": "*",
+ "access": "Deny",
+ "priority": 65500,
+ "direction": "Outbound"
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkVirtualApplianceDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkVirtualApplianceDelete.json
new file mode 100644
index 000000000000..a7389c96b6f3
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkVirtualApplianceDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkVirtualApplianceName": "nva"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkVirtualApplianceGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkVirtualApplianceGet.json
new file mode 100644
index 000000000000..27c5bcabe625
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkVirtualApplianceGet.json
@@ -0,0 +1,68 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkVirtualApplianceName": "nva"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "nva",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkVirtualAppliances/nva",
+ "type": "Microsoft.Network/networkVirtualAppliances",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "tags": {
+ "key1": "value1"
+ },
+ "identity": {
+ "type": "UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/subid/resourcegroups/rg1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity1": {}
+ }
+ },
+ "properties": {
+ "nvaSku": {
+ "vendor": "Cisco SDWAN",
+ "bundledScaleUnit": "1",
+ "marketPlaceVersion": "12.1"
+ },
+ "addressPrefix": "192.168.1.0/16",
+ "virtualHub": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub1"
+ },
+ "virtualApplianceSites": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networtkVirtualAppliances/nva/virtualApplianceSites/site1"
+ }
+ ],
+ "inboundSecurityRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkVirtualAppliances/nva/InboundSecurityRules/rule1"
+ }
+ ],
+ "provisioningState": "Succeeded",
+ "bootStrapConfigurationBlobs": [
+ "https://csrncvhdstorage1.blob.core.windows.net/csrncvhdstoragecont/csrbootstrapconfig"
+ ],
+ "cloudInitConfigurationBlobs": [
+ "https://csrncvhdstorage1.blob.core.windows.net/csrncvhdstoragecont/csrcloudinitconfig"
+ ],
+ "virtualApplianceAsn": 10000,
+ "virtualApplianceNics": [
+ {
+ "name": "managementNic",
+ "publicIpAddress": "40.30.2.2",
+ "privateIpAddress": "192.168.12.1"
+ },
+ {
+ "name": "privateNic-1",
+ "privateIpAddress": "192.168.12.2"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkVirtualApplianceListByResourceGroup.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkVirtualApplianceListByResourceGroup.json
new file mode 100644
index 000000000000..eea923157d1b
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkVirtualApplianceListByResourceGroup.json
@@ -0,0 +1,71 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "nva",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkVirtualAppliances/nva",
+ "type": "Microsoft.Network/networkVirtualAppliances",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "tags": {
+ "key1": "value1"
+ },
+ "identity": {
+ "type": "UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/subid/resourcegroups/rg1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity1": {}
+ }
+ },
+ "properties": {
+ "nvaSku": {
+ "vendor": "Cisco SDWAN",
+ "bundledScaleUnit": "1",
+ "marketPlaceVersion": "12.1"
+ },
+ "addressPrefix": "192.168.1.0/16",
+ "virtualHub": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub1"
+ },
+ "virtualApplianceSites": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networtkVirtualAppliances/nva/virtualApplianceSites/site1"
+ }
+ ],
+ "inboundSecurityRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkVirtualAppliances/nva/InboundSecurityRules/rule1"
+ }
+ ],
+ "provisioningState": "Succeeded",
+ "bootStrapConfigurationBlobs": [
+ "https://csrncvhdstorage1.blob.core.windows.net/csrncvhdstoragecont/csrbootstrapconfig"
+ ],
+ "cloudInitConfigurationBlobs": [
+ "https://csrncvhdstorage1.blob.core.windows.net/csrncvhdstoragecont/csrcloudinitconfig"
+ ],
+ "virtualApplianceAsn": 10000,
+ "virtualApplianceNics": [
+ {
+ "name": "managementNic",
+ "publicIpAddress": "40.30.2.2",
+ "privateIpAddress": "192.168.12.1"
+ },
+ {
+ "name": "privateNic-1",
+ "privateIpAddress": "192.168.12.2"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkVirtualApplianceListBySubscription.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkVirtualApplianceListBySubscription.json
new file mode 100644
index 000000000000..133edfebcf6a
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkVirtualApplianceListBySubscription.json
@@ -0,0 +1,70 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "nva",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkVirtualAppliances/nva",
+ "type": "Microsoft.Network/networkVirtualAppliances",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "tags": {
+ "key1": "value1"
+ },
+ "identity": {
+ "type": "UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/subid/resourcegroups/rg1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity1": {}
+ }
+ },
+ "properties": {
+ "nvaSku": {
+ "vendor": "Cisco SDWAN",
+ "bundledScaleUnit": "1",
+ "marketPlaceVersion": "12.1"
+ },
+ "addressPrefix": "192.168.1.0/16",
+ "virtualHub": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub1"
+ },
+ "virtualApplianceSites": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networtkVirtualAppliances/nva/virtualApplianceSites/site1"
+ }
+ ],
+ "inboundSecurityRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkVirtualAppliances/nva/InboundSecurityRules/rule1"
+ }
+ ],
+ "provisioningState": "Succeeded",
+ "bootStrapConfigurationBlobs": [
+ "https://csrncvhdstorage1.blob.core.windows.net/csrncvhdstoragecont/csrbootstrapconfig"
+ ],
+ "cloudInitConfigurationBlobs": [
+ "https://csrncvhdstorage1.blob.core.windows.net/csrncvhdstoragecont/csrcloudinitconfig"
+ ],
+ "virtualApplianceAsn": 10000,
+ "virtualApplianceNics": [
+ {
+ "name": "managementNic",
+ "publicIpAddress": "40.30.2.2",
+ "privateIpAddress": "192.168.12.1"
+ },
+ {
+ "name": "privateNic-1",
+ "privateIpAddress": "192.168.12.2"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkVirtualAppliancePut.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkVirtualAppliancePut.json
new file mode 100644
index 000000000000..47a17b7bd5ab
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkVirtualAppliancePut.json
@@ -0,0 +1,155 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkVirtualApplianceName": "nva",
+ "parameters": {
+ "tags": {
+ "key1": "value1"
+ },
+ "identity": {
+ "type": "UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/subid/resourcegroups/rg1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity1": {}
+ }
+ },
+ "location": "West US",
+ "properties": {
+ "nvaSku": {
+ "vendor": "Cisco SDWAN",
+ "bundledScaleUnit": "1",
+ "marketPlaceVersion": "12.1"
+ },
+ "virtualHub": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub1"
+ },
+ "bootStrapConfigurationBlobs": [
+ "https://csrncvhdstorage1.blob.core.windows.net/csrncvhdstoragecont/csrbootstrapconfig"
+ ],
+ "cloudInitConfigurationBlobs": [
+ "https://csrncvhdstorage1.blob.core.windows.net/csrncvhdstoragecont/csrcloudinitconfig"
+ ],
+ "virtualApplianceAsn": 10000
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "nva",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkVirtualAppliances/nva",
+ "type": "Microsoft.Network/networkVirtualAppliances",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "tags": {
+ "key1": "value1"
+ },
+ "identity": {
+ "type": "UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/subid/resourcegroups/rg1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity1": {}
+ }
+ },
+ "properties": {
+ "nvaSku": {
+ "vendor": "Cisco SDWAN",
+ "bundledScaleUnit": "1",
+ "marketPlaceVersion": "12.1"
+ },
+ "addressPrefix": "192.168.1.0/16",
+ "virtualHub": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub1"
+ },
+ "virtualApplianceSites": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networtkVirtualAppliances/nva/virtualApplianceSites/site1"
+ }
+ ],
+ "inboundSecurityRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkVirtualAppliances/nva/InboundSecurityRules/rule1"
+ }
+ ],
+ "provisioningState": "Succeeded",
+ "bootStrapConfigurationBlobs": [
+ "https://csrncvhdstorage1.blob.core.windows.net/csrncvhdstoragecont/csrbootstrapconfig"
+ ],
+ "cloudInitConfigurationBlobs": [
+ "https://csrncvhdstorage1.blob.core.windows.net/csrncvhdstoragecont/csrcloudinitconfig"
+ ],
+ "virtualApplianceAsn": 10000,
+ "virtualApplianceNics": [
+ {
+ "name": "managementNic",
+ "publicIpAddress": "40.30.2.2",
+ "privateIpAddress": "192.168.12.1"
+ },
+ {
+ "name": "privateNic-1",
+ "privateIpAddress": "192.168.12.2"
+ }
+ ]
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "nva",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkVirtualAppliances/nva",
+ "type": "Microsoft.Network/networkVirtualAppliances",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "tags": {
+ "key1": "value1"
+ },
+ "identity": {
+ "type": "UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/subid/resourcegroups/rg1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity1": {}
+ }
+ },
+ "properties": {
+ "nvaSku": {
+ "vendor": "Cisco SDWAN",
+ "bundledScaleUnit": "1",
+ "marketPlaceVersion": "12.1"
+ },
+ "addressPrefix": "192.168.1.0/16",
+ "virtualHub": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub1"
+ },
+ "virtualApplianceSites": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networtkVirtualAppliances/nva/virtualApplianceSites/site1"
+ }
+ ],
+ "inboundSecurityRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkVirtualAppliances/nva/InboundSecurityRules/rule1"
+ }
+ ],
+ "provisioningState": "Succeeded",
+ "bootStrapConfigurationBlobs": [
+ "https://csrncvhdstorage1.blob.core.windows.net/csrncvhdstoragecont/csrbootstrapconfig"
+ ],
+ "cloudInitConfigurationBlobs": [
+ "https://csrncvhdstorage1.blob.core.windows.net/csrncvhdstoragecont/csrcloudinitconfig"
+ ],
+ "virtualApplianceAsn": 10000,
+ "virtualApplianceNics": [
+ {
+ "name": "managementNic",
+ "publicIpAddress": "40.30.2.2",
+ "privateIpAddress": "192.168.12.1"
+ },
+ {
+ "name": "privateNic-1",
+ "privateIpAddress": "192.168.12.2"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkVirtualApplianceSiteDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkVirtualApplianceSiteDelete.json
new file mode 100644
index 000000000000..6b01ec83190b
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkVirtualApplianceSiteDelete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "siteName": "site1",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkVirtualApplianceName": "nva"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkVirtualApplianceSiteGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkVirtualApplianceSiteGet.json
new file mode 100644
index 000000000000..81f11e4a0fb3
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkVirtualApplianceSiteGet.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "siteName": "site1",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkVirtualApplianceName": "nva"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "site1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkVirtualAppliances/nva/virtualApplianceSites/site1",
+ "etag": "W/\"72090554-7e3b-43f2-80ad-99a9020dcb11\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "addressPrefix": "192.168.1.0/24",
+ "o365Policy": {
+ "breakOutCategories": {
+ "allow": true,
+ "optimize": true,
+ "default": true
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkVirtualApplianceSiteList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkVirtualApplianceSiteList.json
new file mode 100644
index 000000000000..b483364e5fa3
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkVirtualApplianceSiteList.json
@@ -0,0 +1,33 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "siteName": "site1",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkVirtualApplianceName": "nva"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "site1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkVirtualAppliances/nva/virtualApplianceSites/site1",
+ "etag": "W/\"72090554-7e3b-43f2-80ad-99a9020dcb11\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "addressPrefix": "192.168.1.0/24",
+ "o365Policy": {
+ "breakOutCategories": {
+ "allow": true,
+ "optimize": true,
+ "default": true
+ }
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkVirtualApplianceSitePut.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkVirtualApplianceSitePut.json
new file mode 100644
index 000000000000..3d807b9a1cbd
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkVirtualApplianceSitePut.json
@@ -0,0 +1,59 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "siteName": "site1",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkVirtualApplianceName": "nva",
+ "parameters": {
+ "properties": {
+ "addressPrefix": "192.168.1.0/24",
+ "o365Policy": {
+ "breakOutCategories": {
+ "allow": true,
+ "optimize": true,
+ "default": true
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "site1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkVirtualAppliances/nva/virtualApplianceSites/site1",
+ "etag": "W/\"72090554-7e3b-43f2-80ad-99a9020dcb11\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "addressPrefix": "192.168.1.0/24",
+ "o365Policy": {
+ "breakOutCategories": {
+ "allow": true,
+ "optimize": true,
+ "default": true
+ }
+ }
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "site1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkVirtualAppliances/nva/virtualApplianceSites/site1",
+ "etag": "W/\"72090554-7e3b-43f2-80ad-99a9020dcb11\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "addressPrefix": "192.168.1.0/24",
+ "o365Policy": {
+ "breakOutCategories": {
+ "allow": true,
+ "optimize": true,
+ "default": true
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkVirtualApplianceSkuGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkVirtualApplianceSkuGet.json
new file mode 100644
index 000000000000..536a8a59cb3f
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkVirtualApplianceSkuGet.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "skuName": "ciscoSdwan"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "ciscoSdwan",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkVirtualApplianceSkus/ciscoSdwan",
+ "type": "Microsoft.Network/networkVirtualApplianceSkus",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "vendor": "Cisco",
+ "availableVersions": [
+ "11.12"
+ ],
+ "availableScaleUnits": [
+ {
+ "scaleUnit": "1",
+ "instanceCount": 2
+ },
+ {
+ "scaleUnit": "2",
+ "instanceCount": 2
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkVirtualApplianceSkuList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkVirtualApplianceSkuList.json
new file mode 100644
index 000000000000..6afc45a78679
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkVirtualApplianceSkuList.json
@@ -0,0 +1,36 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "ciscoSdwan",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkVirtualApplianceSkus/ciscoSdwan",
+ "type": "Microsoft.Network/networkVirtualApplianceSkus",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "vendor": "Cisco",
+ "availableVersions": [
+ "11.12"
+ ],
+ "availableScaleUnits": [
+ {
+ "scaleUnit": "1",
+ "instanceCount": 2
+ },
+ {
+ "scaleUnit": "2",
+ "instanceCount": 2
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkVirtualApplianceUpdateTags.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkVirtualApplianceUpdateTags.json
new file mode 100644
index 000000000000..585b9aeadf1e
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkVirtualApplianceUpdateTags.json
@@ -0,0 +1,70 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkVirtualApplianceName": "nva",
+ "parameters": {
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "nva",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkVirtualAppliances/nva",
+ "type": "Microsoft.Network/networkVirtualAppliances",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "identity": {
+ "type": "UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/subid/resourcegroups/rg1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity1": {}
+ }
+ },
+ "properties": {
+ "nvaSku": {
+ "vendor": "Cisco SDWAN",
+ "bundledScaleUnit": "1",
+ "marketPlaceVersion": "12.1"
+ },
+ "addressPrefix": "192.168.1.0/16",
+ "virtualHub": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub1"
+ },
+ "virtualApplianceSites": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networtkVirtualAppliances/nva/virtualApplianceSites/site1"
+ }
+ ],
+ "provisioningState": "Succeeded",
+ "bootStrapConfigurationBlobs": [
+ "https://csrncvhdstorage1.blob.core.windows.net/csrncvhdstoragecont/csrbootstrapconfig"
+ ],
+ "cloudInitConfigurationBlobs": [
+ "https://csrncvhdstorage1.blob.core.windows.net/csrncvhdstoragecont/csrcloudinitconfig"
+ ],
+ "virtualApplianceAsn": 10000,
+ "virtualApplianceNics": [
+ {
+ "name": "managementNic",
+ "publicIpAddress": "40.30.2.2",
+ "privateIpAddress": "192.168.12.1"
+ },
+ {
+ "name": "privateNic-1",
+ "privateIpAddress": "192.168.12.2"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherAvailableProvidersListGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherAvailableProvidersListGet.json
new file mode 100644
index 000000000000..7a1a6ab6628b
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherAvailableProvidersListGet.json
@@ -0,0 +1,68 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkWatcherName": "nw1",
+ "parameters": {
+ "azureLocations": [
+ "West US"
+ ],
+ "country": "United States",
+ "state": "washington",
+ "city": "seattle"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "countries": [
+ {
+ "countryName": "United States",
+ "states": [
+ {
+ "stateName": "washington",
+ "cities": [
+ {
+ "cityName": "seattle",
+ "providers": [
+ "Comcast Cable Communications, Inc. - ASN 7922",
+ "Comcast Cable Communications, LLC - ASN 7922",
+ "Level 3 Communications, Inc. (GBLX) - ASN 3549",
+ "Qwest Communications Company, LLC - ASN 209"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "202": {
+ "body": {
+ "countries": [
+ {
+ "countryName": "United States",
+ "states": [
+ {
+ "stateName": "washington",
+ "cities": [
+ {
+ "cityName": "seattle",
+ "providers": [
+ "Comcast Cable Communications, Inc. - ASN 7922",
+ "Comcast Cable Communications, LLC - ASN 7922",
+ "Level 3 Communications, Inc. (GBLX) - ASN 3549",
+ "Qwest Communications Company, LLC - ASN 209"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherAzureReachabilityReportGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherAzureReachabilityReportGet.json
new file mode 100644
index 000000000000..9e52ed4fa720
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherAzureReachabilityReportGet.json
@@ -0,0 +1,82 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkWatcherName": "nw1",
+ "parameters": {
+ "providerLocation": {
+ "country": "United States",
+ "state": "washington"
+ },
+ "providers": [
+ "Frontier Communications of America, Inc. - ASN 5650"
+ ],
+ "azureLocations": [
+ "West US"
+ ],
+ "startTime": "2017-09-07T00:00:00Z",
+ "endTime": "2017-09-10T00:00:00Z"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "aggregationLevel": "State",
+ "providerLocation": {
+ "country": "United States",
+ "state": "washington"
+ },
+ "reachabilityReport": [
+ {
+ "provider": "Frontier Communications of America, Inc. - ASN 5650",
+ "azureLocation": "West US",
+ "latencies": [
+ {
+ "timeStamp": "2017-09-07T00:00:00Z",
+ "score": 94
+ },
+ {
+ "timeStamp": "2017-09-08T00:00:00Z",
+ "score": 94
+ },
+ {
+ "timeStamp": "2017-09-09T00:00:00Z",
+ "score": 94
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "202": {
+ "body": {
+ "aggregationLevel": "State",
+ "providerLocation": {
+ "country": "United States",
+ "state": "washington"
+ },
+ "reachabilityReport": [
+ {
+ "provider": "Frontier Communications of America, Inc. - ASN 5650",
+ "azureLocation": "West US",
+ "latencies": [
+ {
+ "timeStamp": "2017-09-07T00:00:00Z",
+ "score": 94
+ },
+ {
+ "timeStamp": "2017-09-08T00:00:00Z",
+ "score": 94
+ },
+ {
+ "timeStamp": "2017-09-09T00:00:00Z",
+ "score": 94
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherConnectionMonitorCreate.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherConnectionMonitorCreate.json
new file mode 100644
index 000000000000..41e4126c061c
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherConnectionMonitorCreate.json
@@ -0,0 +1,142 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkWatcherName": "nw1",
+ "connectionMonitorName": "cm1",
+ "parameters": {
+ "location": "eastus",
+ "properties": {
+ "endpoints": [
+ {
+ "name": "source",
+ "resourceId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachines/ct1"
+ },
+ {
+ "name": "destination",
+ "address": "bing.com"
+ }
+ ],
+ "testConfigurations": [
+ {
+ "name": "tcp",
+ "testFrequencySec": 60,
+ "protocol": "Tcp",
+ "tcpConfiguration": {
+ "port": 80
+ }
+ }
+ ],
+ "testGroups": [
+ {
+ "name": "tg",
+ "testConfigurations": [
+ "tcp"
+ ],
+ "sources": [
+ "source"
+ ],
+ "destinations": [
+ "destination"
+ ]
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "cm1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkWatchers/nw1/connectionMonitors/cm1",
+ "etag": "W/\"e7497f26-5f09-4559-900b-fe98f3dedb6f\"",
+ "properties": {
+ "provisioningState": "Updating",
+ "endpoints": [
+ {
+ "name": "source",
+ "resourceId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachines/ct1"
+ },
+ {
+ "name": "destination",
+ "address": "bing.com"
+ }
+ ],
+ "testConfigurations": [
+ {
+ "name": "tcp",
+ "testFrequencySec": 60,
+ "protocol": "Tcp",
+ "tcpConfiguration": {
+ "port": 80
+ }
+ }
+ ],
+ "testGroups": [
+ {
+ "name": "tg",
+ "testConfigurations": [
+ "tcp"
+ ],
+ "sources": [
+ "source"
+ ],
+ "destinations": [
+ "destination"
+ ]
+ }
+ ]
+ },
+ "location": "eastus",
+ "type": "Microsoft.Network/networkWatchers/connectionMonitors"
+ }
+ },
+ "201": {
+ "body": {
+ "name": "cm1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkWatchers/nw1/connectionMonitors/cm1",
+ "etag": "W/\"e7497f26-5f09-4559-900b-fe98f3dedb6f\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "endpoints": [
+ {
+ "name": "source",
+ "resourceId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachines/ct1"
+ },
+ {
+ "name": "destination",
+ "address": "bing.com"
+ }
+ ],
+ "testConfigurations": [
+ {
+ "name": "tcp",
+ "testFrequencySec": 60,
+ "protocol": "Tcp",
+ "tcpConfiguration": {
+ "port": 80
+ }
+ }
+ ],
+ "testGroups": [
+ {
+ "name": "tg",
+ "testConfigurations": [
+ "tcp"
+ ],
+ "sources": [
+ "source"
+ ],
+ "destinations": [
+ "destination"
+ ]
+ }
+ ]
+ },
+ "location": "eastus",
+ "type": "Microsoft.Network/networkWatchers/connectionMonitors"
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherConnectionMonitorDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherConnectionMonitorDelete.json
new file mode 100644
index 000000000000..aabb7863d864
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherConnectionMonitorDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkWatcherName": "nw1",
+ "connectionMonitorName": "cm1"
+ },
+ "responses": {
+ "204": {},
+ "202": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherConnectionMonitorGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherConnectionMonitorGet.json
new file mode 100644
index 000000000000..06c3cedb4159
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherConnectionMonitorGet.json
@@ -0,0 +1,57 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkWatcherName": "nw1",
+ "connectionMonitorName": "cm1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "cm1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkWatchers/nw1/connectionMonitors/cm1",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "endpoints": [
+ {
+ "name": "source",
+ "resourceId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachines/ct1"
+ },
+ {
+ "name": "destination",
+ "address": "bing.com"
+ }
+ ],
+ "testConfigurations": [
+ {
+ "name": "tcp",
+ "testFrequencySec": 60,
+ "protocol": "Tcp",
+ "tcpConfiguration": {
+ "port": 80
+ }
+ }
+ ],
+ "testGroups": [
+ {
+ "name": "tg",
+ "testConfigurations": [
+ "tcp"
+ ],
+ "sources": [
+ "source"
+ ],
+ "destinations": [
+ "destination"
+ ]
+ }
+ ]
+ },
+ "location": "eastus",
+ "type": "Microsoft.Network/networkWatchers/connectionMonitors"
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherConnectionMonitorList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherConnectionMonitorList.json
new file mode 100644
index 000000000000..569590e66a36
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherConnectionMonitorList.json
@@ -0,0 +1,104 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkWatcherName": "nw1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "cm1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkWatchers/nw1/connectionMonitors/cm1",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "endpoints": [
+ {
+ "name": "source",
+ "resourceId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachines/ct1"
+ },
+ {
+ "name": "destination",
+ "address": "bing.com"
+ }
+ ],
+ "testConfigurations": [
+ {
+ "name": "tcp",
+ "testFrequencySec": 60,
+ "protocol": "Tcp",
+ "tcpConfiguration": {
+ "port": 80
+ }
+ }
+ ],
+ "testGroups": [
+ {
+ "name": "tg",
+ "testConfigurations": [
+ "tcp"
+ ],
+ "sources": [
+ "source"
+ ],
+ "destinations": [
+ "destination"
+ ]
+ }
+ ]
+ },
+ "location": "eastus",
+ "type": "Microsoft.Network/networkWatchers/connectionMonitors"
+ },
+ {
+ "name": "cm2",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkWatchers/nw1/connectionMonitors/cm2",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "endpoints": [
+ {
+ "name": "source",
+ "resourceId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachines/ct2"
+ },
+ {
+ "name": "destination",
+ "address": "google.com"
+ }
+ ],
+ "testConfigurations": [
+ {
+ "name": "tcp",
+ "testFrequencySec": 60,
+ "protocol": "Tcp",
+ "tcpConfiguration": {
+ "port": 80
+ }
+ }
+ ],
+ "testGroups": [
+ {
+ "name": "tg",
+ "testConfigurations": [
+ "tcp"
+ ],
+ "sources": [
+ "source"
+ ],
+ "destinations": [
+ "destination"
+ ]
+ }
+ ]
+ },
+ "location": "eastus",
+ "type": "Microsoft.Network/networkWatchers/connectionMonitors"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherConnectionMonitorQuery.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherConnectionMonitorQuery.json
new file mode 100644
index 000000000000..9507b5f3c48c
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherConnectionMonitorQuery.json
@@ -0,0 +1,77 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkWatcherName": "nw1",
+ "connectionMonitorName": "cm1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "sourceStatus": "Active",
+ "states": [
+ {
+ "connectionState": "Reachable",
+ "startTime": "2018-01-08T03:42:33.3387305Z",
+ "endTime": "2018-01-08T05:12:41.5265438Z",
+ "evaluationState": "Completed",
+ "hops": [
+ {
+ "type": "Source",
+ "id": "7dbbe7aa-60ba-4650-831e-63d775d38e9e",
+ "address": "10.1.1.4",
+ "resourceId": "subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/nic0/ipConfigurations/ipconfig1",
+ "nextHopIds": [
+ "75c8d819-b208-4584-a311-1aa45ce753f9"
+ ],
+ "issues": []
+ },
+ {
+ "type": "VirtualNetwork",
+ "id": "75c8d819-b208-4584-a311-1aa45ce753f9",
+ "address": "192.168.100.4",
+ "resourceId": "subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/nic1/ipConfigurations/ipconfig1",
+ "nextHopIds": [],
+ "issues": []
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "202": {
+ "body": {
+ "sourceStatus": "Active",
+ "states": [
+ {
+ "connectionState": "Reachable",
+ "startTime": "2018-01-08T03:42:33.3387305Z",
+ "endTime": "2018-01-08T05:12:41.5265438Z",
+ "evaluationState": "Completed",
+ "hops": [
+ {
+ "type": "Source",
+ "id": "7dbbe7aa-60ba-4650-831e-63d775d38e9e",
+ "address": "10.1.1.4",
+ "resourceId": "subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/nic0/ipConfigurations/ipconfig1",
+ "nextHopIds": [
+ "75c8d819-b208-4584-a311-1aa45ce753f9"
+ ],
+ "issues": []
+ },
+ {
+ "type": "VirtualNetwork",
+ "id": "75c8d819-b208-4584-a311-1aa45ce753f9",
+ "address": "192.168.100.4",
+ "resourceId": "subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/nic1/ipConfigurations/ipconfig1",
+ "nextHopIds": [],
+ "issues": []
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherConnectionMonitorStart.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherConnectionMonitorStart.json
new file mode 100644
index 000000000000..52d8fcabdb66
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherConnectionMonitorStart.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkWatcherName": "nw1",
+ "connectionMonitorName": "cm1"
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherConnectionMonitorStop.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherConnectionMonitorStop.json
new file mode 100644
index 000000000000..52d8fcabdb66
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherConnectionMonitorStop.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkWatcherName": "nw1",
+ "connectionMonitorName": "cm1"
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherConnectionMonitorUpdateTags.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherConnectionMonitorUpdateTags.json
new file mode 100644
index 000000000000..4eb8f2cce1b4
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherConnectionMonitorUpdateTags.json
@@ -0,0 +1,45 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkWatcherName": "nw1",
+ "connectionMonitorName": "cm1",
+ "parameters": {
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "cm1",
+ "id": "/subscriptions/subid/`/rg1/providers/Microsoft.Network/networkWatchers/nw1/connectionMonitors/cm1",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "source": {
+ "resourceId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachines/vm1",
+ "port": 0
+ },
+ "destination": {
+ "address": "bing.com",
+ "port": 80
+ },
+ "monitoringIntervalInSeconds": 60,
+ "autoStart": true,
+ "startTime": "2019-09-04T02:48:10.6797393Z",
+ "monitoringStatus": "Running"
+ },
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "type": "Microsoft.Network/networkWatchers/connectionMonitors",
+ "location": "westcentralus"
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherConnectionMonitorV2Create.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherConnectionMonitorV2Create.json
new file mode 100644
index 000000000000..89acd0652617
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherConnectionMonitorV2Create.json
@@ -0,0 +1,206 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkWatcherName": "nw1",
+ "connectionMonitorName": "cm1",
+ "location": "centraluseuap",
+ "parameters": {
+ "properties": {
+ "endpoints": [
+ {
+ "name": "vm1",
+ "resourceId": "/subscriptions/96e68903-0a56-4819-9987-8d08ad6a1f99/resourceGroups/NwRgIrinaCentralUSEUAP/providers/Microsoft.Compute/virtualMachines/vm1"
+ },
+ {
+ "name": "CanaryWorkspaceVamshi",
+ "resourceId": "/subscriptions/96e68903-0a56-4819-9987-8d08ad6a1f99/resourceGroups/vasamudrRG/providers/Microsoft.OperationalInsights/workspaces/vasamudrWorkspace",
+ "filter": {
+ "type": "Include",
+ "items": [
+ {
+ "type": "AgentAddress",
+ "address": "npmuser"
+ }
+ ]
+ }
+ },
+ {
+ "name": "bing",
+ "address": "bing.com"
+ },
+ {
+ "name": "google",
+ "address": "google.com"
+ }
+ ],
+ "testConfigurations": [
+ {
+ "name": "testConfig1",
+ "testFrequencySec": 60,
+ "protocol": "Tcp",
+ "tcpConfiguration": {
+ "port": 80,
+ "disableTraceRoute": false
+ }
+ }
+ ],
+ "testGroups": [
+ {
+ "name": "test1",
+ "disable": false,
+ "testConfigurations": [
+ "testConfig1"
+ ],
+ "sources": [
+ "vm1",
+ "CanaryWorkspaceVamshi"
+ ],
+ "destinations": [
+ "bing",
+ "google"
+ ]
+ }
+ ],
+ "outputs": []
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "cm1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkWatchers/nw1/connectionMonitors/cm1",
+ "etag": "W/\"e7497f26-5f09-4559-900b-fe98f3dedb6f\"",
+ "properties": {
+ "endpoints": [
+ {
+ "name": "vm1",
+ "resourceId": "/subscriptions/96e68903-0a56-4819-9987-8d08ad6a1f99/resourceGroups/NwRgIrinaCentralUSEUAP/providers/Microsoft.Compute/virtualMachines/vm1"
+ },
+ {
+ "name": "CanaryWorkspaceVamshi",
+ "resourceId": "/subscriptions/96e68903-0a56-4819-9987-8d08ad6a1f99/resourceGroups/vasamudrRG/providers/Microsoft.OperationalInsights/workspaces/vasamudrWorkspace",
+ "filter": {
+ "type": "Include",
+ "items": [
+ {
+ "type": "AgentAddress",
+ "address": "npmuser"
+ }
+ ]
+ }
+ },
+ {
+ "name": "bing",
+ "address": "bing.com"
+ },
+ {
+ "name": "google",
+ "address": "google.com"
+ }
+ ],
+ "testConfigurations": [
+ {
+ "name": "testConfig1",
+ "testFrequencySec": 60,
+ "protocol": "Tcp",
+ "tcpConfiguration": {
+ "port": 80,
+ "disableTraceRoute": false
+ }
+ }
+ ],
+ "testGroups": [
+ {
+ "name": "test1",
+ "disable": false,
+ "testConfigurations": [
+ "testConfig1"
+ ],
+ "sources": [
+ "vm1",
+ "CanaryWorkspaceVamshi"
+ ],
+ "destinations": [
+ "bing",
+ "google"
+ ]
+ }
+ ],
+ "outputs": []
+ },
+ "location": "centraluseuap",
+ "type": "Microsoft.Network/networkWatchers/connectionMonitors"
+ }
+ },
+ "201": {
+ "body": {
+ "name": "cm1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkWatchers/nw1/connectionMonitors/cm1",
+ "etag": "W/\"e7497f26-5f09-4559-900b-fe98f3dedb6f\"",
+ "properties": {
+ "endpoints": [
+ {
+ "name": "vm1",
+ "resourceId": "/subscriptions/96e68903-0a56-4819-9987-8d08ad6a1f99/resourceGroups/NwRgIrinaCentralUSEUAP/providers/Microsoft.Compute/virtualMachines/vm1"
+ },
+ {
+ "name": "CanaryWorkspaceVamshi",
+ "resourceId": "/subscriptions/96e68903-0a56-4819-9987-8d08ad6a1f99/resourceGroups/vasamudrRG/providers/Microsoft.OperationalInsights/workspaces/vasamudrWorkspace",
+ "filter": {
+ "type": "Include",
+ "items": [
+ {
+ "type": "AgentAddress",
+ "address": "npmuser"
+ }
+ ]
+ }
+ },
+ {
+ "name": "bing",
+ "address": "bing.com"
+ },
+ {
+ "name": "google",
+ "address": "google.com"
+ }
+ ],
+ "testConfigurations": [
+ {
+ "name": "testConfig1",
+ "testFrequencySec": 60,
+ "protocol": "Tcp",
+ "tcpConfiguration": {
+ "port": 80,
+ "disableTraceRoute": false
+ }
+ }
+ ],
+ "testGroups": [
+ {
+ "name": "test1",
+ "disable": false,
+ "testConfigurations": [
+ "testConfig1"
+ ],
+ "sources": [
+ "vm1",
+ "CanaryWorkspaceVamshi"
+ ],
+ "destinations": [
+ "bing",
+ "google"
+ ]
+ }
+ ],
+ "outputs": []
+ },
+ "location": "centraluseuap",
+ "type": "Microsoft.Network/networkWatchers/connectionMonitors"
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherConnectivityCheck.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherConnectivityCheck.json
new file mode 100644
index 000000000000..8c5052bb6378
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherConnectivityCheck.json
@@ -0,0 +1,80 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkWatcherName": "nw1",
+ "parameters": {
+ "source": {
+ "resourceId": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Compute/virtualMachines/vm1"
+ },
+ "destination": {
+ "address": "192.168.100.4",
+ "port": 3389
+ },
+ "preferredIPVersion": "IPv4"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "hops": [
+ {
+ "type": "Source",
+ "id": "7dbbe7aa-60ba-4650-831e-63d775d38e9e",
+ "address": "10.1.1.4",
+ "resourceId": "subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/networkInterfaces/nic0/ipConfigurations/ipconfig1",
+ "nextHopIds": [
+ "75c8d819-b208-4584-a311-1aa45ce753f9"
+ ],
+ "issues": []
+ },
+ {
+ "type": "VirtualNetwork",
+ "id": "75c8d819-b208-4584-a311-1aa45ce753f9",
+ "address": "192.168.100.4",
+ "resourceId": "subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/networkInterfaces/nic1/ipConfigurations/ipconfig1",
+ "nextHopIds": [],
+ "issues": []
+ }
+ ],
+ "connectionStatus": "Connected",
+ "avgLatencyInMs": 1,
+ "minLatencyInMs": 1,
+ "maxLatencyInMs": 4,
+ "probesSent": 100,
+ "probesFailed": 0
+ }
+ },
+ "202": {
+ "body": {
+ "hops": [
+ {
+ "type": "Source",
+ "id": "7dbbe7aa-60ba-4650-831e-63d775d38e9e",
+ "address": "10.1.1.4",
+ "resourceId": "subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/networkInterfaces/nic0/ipConfigurations/ipconfig1",
+ "nextHopIds": [
+ "75c8d819-b208-4584-a311-1aa45ce753f9"
+ ],
+ "issues": []
+ },
+ {
+ "type": "VirtualNetwork",
+ "id": "75c8d819-b208-4584-a311-1aa45ce753f9",
+ "address": "192.168.100.4",
+ "resourceId": "subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/networkInterfaces/nic1/ipConfigurations/ipconfig1",
+ "nextHopIds": [],
+ "issues": []
+ }
+ ],
+ "connectionStatus": "Connected",
+ "avgLatencyInMs": 1,
+ "minLatencyInMs": 1,
+ "maxLatencyInMs": 4,
+ "probesSent": 100,
+ "probesFailed": 0
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherCreate.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherCreate.json
new file mode 100644
index 000000000000..ebc60b39fd91
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherCreate.json
@@ -0,0 +1,40 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkWatcherName": "nw1",
+ "parameters": {
+ "location": "eastus",
+ "properties": {}
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "nw1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkWatchers/nw1",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "type": "Microsoft.Network/networkWatchers",
+ "location": "eastus",
+ "tags": {},
+ "properties": {
+ "provisioningState": "Succeeded"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "nw1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkWatchers/nw1",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "type": "Microsoft.Network/networkWatchers",
+ "location": "eastus",
+ "tags": {},
+ "properties": {
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherDelete.json
new file mode 100644
index 000000000000..15bba1318f13
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherDelete.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkWatcherName": "nw1"
+ },
+ "responses": {
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherFlowLogConfigure.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherFlowLogConfigure.json
new file mode 100644
index 000000000000..4dd320e2cf35
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherFlowLogConfigure.json
@@ -0,0 +1,35 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkWatcherName": "nw1",
+ "parameters": {
+ "targetResourceId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/nsg1",
+ "properties": {
+ "storageId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Storage/storageAccounts/st1",
+ "enabled": true
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "targetResourceId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/nsg1",
+ "properties": {
+ "storageId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Storage/storageAccounts/st1",
+ "enabled": true
+ }
+ }
+ },
+ "202": {
+ "body": {
+ "targetResourceId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/nsg1",
+ "properties": {
+ "storageId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Storage/storageAccounts/st1",
+ "enabled": true
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherFlowLogCreate.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherFlowLogCreate.json
new file mode 100644
index 000000000000..718a1699dc44
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherFlowLogCreate.json
@@ -0,0 +1,73 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkWatcherName": "nw1",
+ "flowLogName": "fl",
+ "parameters": {
+ "location": "centraluseuap",
+ "properties": {
+ "targetResourceId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/desmondcentral-nsg",
+ "storageId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Storage/storageAccounts/nwtest1mgvbfmqsigdxe",
+ "enabled": true,
+ "format": {
+ "type": "JSON",
+ "version": 1
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "Microsoft.Networkdesmond-rgdesmondcentral-nsg",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkWatchers/nw/FlowLogs/fl",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "properties": {
+ "provisioningState": "Updating",
+ "targetResourceId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/desmondcentral-nsg",
+ "targetResourceGuid": "00000000-0000-0000-0000-000000000000",
+ "storageId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Storage/storageAccounts/nwtest1mgvbfmqsigdxe",
+ "enabled": true,
+ "flowAnalyticsConfiguration": {},
+ "retentionPolicy": {
+ "days": 0,
+ "enabled": false
+ },
+ "format": {
+ "type": "JSON",
+ "version": 1
+ }
+ },
+ "type": "Microsoft.Network/networkWatchers/FlowLogs",
+ "location": "centraluseuap"
+ }
+ },
+ "201": {
+ "body": {
+ "name": "Microsoft.Networkdesmond-rgdesmondcentral-nsg",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkWatchers/nw/FlowLogs/fl",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "targetResourceId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/desmondcentral-nsg",
+ "targetResourceGuid": "00000000-0000-0000-0000-000000000000",
+ "storageId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Storage/storageAccounts/nwtest1mgvbfmqsigdxe",
+ "enabled": true,
+ "flowAnalyticsConfiguration": {},
+ "retentionPolicy": {
+ "days": 0,
+ "enabled": false
+ },
+ "format": {
+ "type": "JSON",
+ "version": 1
+ }
+ },
+ "type": "Microsoft.Network/networkWatchers/FlowLogs",
+ "location": "centraluseuap"
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherFlowLogDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherFlowLogDelete.json
new file mode 100644
index 000000000000..42d3a5b91ef8
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherFlowLogDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkWatcherName": "nw1",
+ "flowLogName": "fl"
+ },
+ "responses": {
+ "204": {},
+ "202": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherFlowLogGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherFlowLogGet.json
new file mode 100644
index 000000000000..ec11a6f7050b
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherFlowLogGet.json
@@ -0,0 +1,43 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkWatcherName": "nw1",
+ "flowLogName": "flowLog1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "flowLog1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkWatchers/тц1/FlowLogs/flowLog1",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "targetResourceId": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Network/networkSecurityGroups/vm5-nsg",
+ "targetResourceGuid": "00000000-0000-0000-0000-000000000000",
+ "storageId": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Storage/storageAccounts/wzstorage002",
+ "enabled": true,
+ "flowAnalyticsConfiguration": {
+ "networkWatcherFlowAnalyticsConfiguration": {
+ "enabled": false,
+ "workspaceId": "-",
+ "workspaceRegion": "-",
+ "trafficAnalyticsInterval": 60
+ }
+ },
+ "retentionPolicy": {
+ "days": 0,
+ "enabled": false
+ },
+ "format": {
+ "type": "JSON",
+ "version": 2
+ }
+ },
+ "location": "centraluseuap",
+ "type": "Microsoft.Network/networkWatchers/FlowLogs"
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherFlowLogList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherFlowLogList.json
new file mode 100644
index 000000000000..97dc148623f7
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherFlowLogList.json
@@ -0,0 +1,69 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkWatcherName": "nw1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "flowLog1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkWatchers/тц1/FlowLogs/flowLog1",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "targetResourceId": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Network/networkSecurityGroups/vm5-nsg",
+ "targetResourceGuid": "00000000-0000-0000-0000-000000000000",
+ "storageId": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Storage/storageAccounts/wzstorage002",
+ "enabled": true,
+ "flowAnalyticsConfiguration": {
+ "networkWatcherFlowAnalyticsConfiguration": {
+ "enabled": false,
+ "workspaceId": "-",
+ "workspaceRegion": "-",
+ "trafficAnalyticsInterval": 60
+ }
+ },
+ "retentionPolicy": {
+ "days": 0,
+ "enabled": false
+ },
+ "format": {
+ "type": "JSON",
+ "version": 2
+ }
+ },
+ "location": "centraluseuap",
+ "type": "Microsoft.Network/networkWatchers/FlowLogs"
+ },
+ {
+ "name": "flowLog2",
+ "id": "/subscriptions/96e68903-0a56-4819-9987-8d08ad6a1f99/resourceGroups/NetworkWatcherRG/providers/Microsoft.Network/networkWatchers/NetworkWatcher_centraluseuap/FlowLogs/flowLog2",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "targetResourceId": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Network/networkSecurityGroups/DSCP-test-vm1-nsg",
+ "targetResourceGuid": "00000000-0000-0000-0000-000000000000",
+ "storageId": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Storage/storageAccounts/iraflowlogtest2diag",
+ "enabled": true,
+ "flowAnalyticsConfiguration": {},
+ "retentionPolicy": {
+ "days": 0,
+ "enabled": false
+ },
+ "format": {
+ "type": "JSON",
+ "version": 2
+ }
+ },
+ "type": "Microsoft.Network/networkWatchers/FlowLogs",
+ "location": "centraluseuap"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherFlowLogStatusQuery.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherFlowLogStatusQuery.json
new file mode 100644
index 000000000000..75458efc1ec4
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherFlowLogStatusQuery.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkWatcherName": "nw1",
+ "parameters": {
+ "targetResourceId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/nsg1"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "targetResourceId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/nsg1",
+ "properties": {
+ "storageId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Storage/storageAccounts/st1",
+ "enabled": true
+ }
+ }
+ },
+ "202": {
+ "body": {
+ "targetResourceId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/nsg1",
+ "properties": {
+ "storageId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Storage/storageAccounts/st1",
+ "enabled": true
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherFlowLogUpdateTags.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherFlowLogUpdateTags.json
new file mode 100644
index 000000000000..96fe383c046f
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherFlowLogUpdateTags.json
@@ -0,0 +1,46 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkWatcherName": "nw",
+ "flowLogName": "fl",
+ "parameters": {
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "Microsoft.Networkdesmond-rgdesmondcentral-nsg",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkWatchers/nw/FlowLogs/fl",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "targetResourceId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/desmondcentral-nsg",
+ "targetResourceGuid": "00000000-0000-0000-0000-000000000000",
+ "storageId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Storage/storageAccounts/nwtest1mgvbfmqsigdxe",
+ "enabled": true,
+ "flowAnalyticsConfiguration": {},
+ "retentionPolicy": {
+ "days": 0,
+ "enabled": false
+ },
+ "format": {
+ "type": "JSON",
+ "version": 1
+ }
+ },
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "type": "Microsoft.Network/networkWatchers/FlowLogs",
+ "location": "centralus"
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherGet.json
new file mode 100644
index 000000000000..71dfcac687cd
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherGet.json
@@ -0,0 +1,23 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkWatcherName": "nw1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "nw1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkWatchers/nw1",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "type": "Microsoft.Network/networkWatchers",
+ "location": "eastus",
+ "tags": {},
+ "properties": {
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherIpFlowVerify.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherIpFlowVerify.json
new file mode 100644
index 000000000000..375d7a75e4b6
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherIpFlowVerify.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkWatcherName": "nw1",
+ "parameters": {
+ "targetResourceId": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Compute/virtualMachines/vm1",
+ "direction": "Outbound",
+ "protocol": "TCP",
+ "localPort": "80",
+ "remotePort": "80",
+ "localIPAddress": "10.2.0.4",
+ "remoteIPAddress": "121.10.1.1"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "access": "Allow",
+ "ruleName": "Rule1"
+ }
+ },
+ "202": {
+ "body": {
+ "access": "Allow",
+ "ruleName": "Rule1"
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherList.json
new file mode 100644
index 000000000000..7f9e9ad60ab7
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherList.json
@@ -0,0 +1,37 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "nw1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkWatchers/nw1",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "type": "Microsoft.Network/networkWatchers",
+ "location": "eastus",
+ "tags": {},
+ "properties": {
+ "provisioningState": "Succeeded"
+ }
+ },
+ {
+ "name": "nw2",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkWatchers/nw2",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "type": "Microsoft.Network/networkWatchers",
+ "location": "eastus",
+ "tags": {},
+ "properties": {
+ "provisioningState": "Succeeded"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherListAll.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherListAll.json
new file mode 100644
index 000000000000..020a679f881b
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherListAll.json
@@ -0,0 +1,36 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "nw1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkWatchers/nw1",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "type": "Microsoft.Network/networkWatchers",
+ "location": "eastus",
+ "tags": {},
+ "properties": {
+ "provisioningState": "Succeeded"
+ }
+ },
+ {
+ "name": "nw2",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkWatchers/nw2",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "type": "Microsoft.Network/networkWatchers",
+ "location": "westus",
+ "tags": {},
+ "properties": {
+ "provisioningState": "Succeeded"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherNetworkConfigurationDiagnostic.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherNetworkConfigurationDiagnostic.json
new file mode 100644
index 000000000000..1f5ebbe62541
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherNetworkConfigurationDiagnostic.json
@@ -0,0 +1,198 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkWatcherName": "nw1",
+ "parameters": {
+ "targetResourceId": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Compute/virtualMachines/vm1",
+ "profiles": [
+ {
+ "direction": "Inbound",
+ "protocol": "TCP",
+ "source": "10.1.0.4",
+ "destination": "12.11.12.14",
+ "destinationPort": "12100"
+ }
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "results": [
+ {
+ "profile": {
+ "direction": "Inbound",
+ "protocol": "TCP",
+ "source": "10.1.0.4",
+ "destination": "12.11.12.14",
+ "destinationPort": "12100"
+ },
+ "networkSecurityGroupResult": {
+ "securityRuleAccessResult": "Allow",
+ "evaluatedNetworkSecurityGroups": [
+ {
+ "networkSecurityGroupId": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/networkSecurityGroups/nsg1",
+ "appliedTo": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/virtualNetworks/vnet/subnets/AppSubnet",
+ "matchedRule": {
+ "ruleName": "UserRule_fe_rule",
+ "action": "Allow"
+ },
+ "rulesEvaluationResult": [
+ {
+ "name": "UserRule_Cleanuptool-Allow-100",
+ "protocolMatched": true,
+ "sourceMatched": false,
+ "sourcePortMatched": true,
+ "destinationMatched": true,
+ "destinationPortMatched": false
+ },
+ {
+ "name": "UserRule_Cleanuptool-Allow-101",
+ "protocolMatched": true,
+ "sourceMatched": true,
+ "sourcePortMatched": true,
+ "destinationMatched": true,
+ "destinationPortMatched": false
+ },
+ {
+ "name": "UserRule_Cleanuptool-Allow-102",
+ "protocolMatched": true,
+ "sourceMatched": false,
+ "sourcePortMatched": true,
+ "destinationMatched": true,
+ "destinationPortMatched": false
+ },
+ {
+ "name": "UserRule_Cleanuptool-Deny-103",
+ "protocolMatched": true,
+ "sourceMatched": true,
+ "sourcePortMatched": true,
+ "destinationMatched": true,
+ "destinationPortMatched": false
+ },
+ {
+ "name": "UserRule_fe_rule",
+ "protocolMatched": true,
+ "sourceMatched": true,
+ "sourcePortMatched": true,
+ "destinationMatched": true,
+ "destinationPortMatched": true
+ }
+ ]
+ },
+ {
+ "networkSecurityGroupId": "/subscriptions/61cc8a98-a8be-4bfe-a04e-0b461f93fe35/resourceGroups/NwRgCentralUSEUAP_copy/providers/Microsoft.Network/networkSecurityGroups/AppNSG",
+ "appliedTo": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/virtualNetworks/vnet/networkInterfaces/nic",
+ "matchedRule": {
+ "ruleName": "UserRule_fe_rule",
+ "action": "Allow"
+ },
+ "rulesEvaluationResult": [
+ {
+ "name": "UserRule_fe_rule",
+ "protocolMatched": true,
+ "sourceMatched": true,
+ "sourcePortMatched": true,
+ "destinationMatched": true,
+ "destinationPortMatched": true
+ }
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ }
+ },
+ "202": {
+ "body": {
+ "results": [
+ {
+ "profile": {
+ "direction": "Inbound",
+ "protocol": "TCP",
+ "source": "10.1.0.4",
+ "destination": "12.11.12.14",
+ "destinationPort": "12100"
+ },
+ "networkSecurityGroupResult": {
+ "securityRuleAccessResult": "Allow",
+ "evaluatedNetworkSecurityGroups": [
+ {
+ "networkSecurityGroupId": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/networkSecurityGroups/nsg1",
+ "appliedTo": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/virtualNetworks/vnet/subnets/AppSubnet",
+ "matchedRule": {
+ "ruleName": "UserRule_fe_rule",
+ "action": "Allow"
+ },
+ "rulesEvaluationResult": [
+ {
+ "name": "UserRule_Cleanuptool-Allow-100",
+ "protocolMatched": true,
+ "sourceMatched": false,
+ "sourcePortMatched": true,
+ "destinationMatched": true,
+ "destinationPortMatched": false
+ },
+ {
+ "name": "UserRule_Cleanuptool-Allow-101",
+ "protocolMatched": true,
+ "sourceMatched": true,
+ "sourcePortMatched": true,
+ "destinationMatched": true,
+ "destinationPortMatched": false
+ },
+ {
+ "name": "UserRule_Cleanuptool-Allow-102",
+ "protocolMatched": true,
+ "sourceMatched": false,
+ "sourcePortMatched": true,
+ "destinationMatched": true,
+ "destinationPortMatched": false
+ },
+ {
+ "name": "UserRule_Cleanuptool-Deny-103",
+ "protocolMatched": true,
+ "sourceMatched": true,
+ "sourcePortMatched": true,
+ "destinationMatched": true,
+ "destinationPortMatched": false
+ },
+ {
+ "name": "UserRule_fe_rule",
+ "protocolMatched": true,
+ "sourceMatched": true,
+ "sourcePortMatched": true,
+ "destinationMatched": true,
+ "destinationPortMatched": true
+ }
+ ]
+ },
+ {
+ "networkSecurityGroupId": "/subscriptions/61cc8a98-a8be-4bfe-a04e-0b461f93fe35/resourceGroups/NwRgCentralUSEUAP_copy/providers/Microsoft.Network/networkSecurityGroups/AppNSG",
+ "appliedTo": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/virtualNetworks/vnet/networkInterfaces/nic",
+ "matchedRule": {
+ "ruleName": "UserRule_fe_rule",
+ "action": "Allow"
+ },
+ "rulesEvaluationResult": [
+ {
+ "name": "UserRule_fe_rule",
+ "protocolMatched": true,
+ "sourceMatched": true,
+ "sourcePortMatched": true,
+ "destinationMatched": true,
+ "destinationPortMatched": true
+ }
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherNextHopGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherNextHopGet.json
new file mode 100644
index 000000000000..94993a0e5961
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherNextHopGet.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkWatcherName": "nw1",
+ "parameters": {
+ "targetResourceId": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Compute/virtualMachines/vm1",
+ "sourceIPAddress": "10.0.0.5",
+ "destinationIPAddress": "10.0.0.10",
+ "targetNicResourceId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/nic1"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "nextHopType": "VnetLocal",
+ "nextHopIpAddress": "10.0.0.1",
+ "routeTableId": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/routeTables/rt1"
+ }
+ },
+ "202": {
+ "body": {
+ "nextHopType": "VnetLocal",
+ "nextHopIpAddress": "10.0.0.1",
+ "routeTableId": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/routeTables/rt1"
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherPacketCaptureCreate.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherPacketCaptureCreate.json
new file mode 100644
index 000000000000..d8999f4e79a0
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherPacketCaptureCreate.json
@@ -0,0 +1,56 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkWatcherName": "nw1",
+ "packetCaptureName": "pc1",
+ "parameters": {
+ "properties": {
+ "target": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Compute/virtualMachines/vm1",
+ "bytesToCapturePerPacket": 10000,
+ "totalBytesPerSession": 100000,
+ "timeLimitInSeconds": 100,
+ "storageLocation": {
+ "storageId": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Storage/storageAccounts/pcstore",
+ "storagePath": "https://mytestaccountname.blob.core.windows.net/capture/pc1.cap",
+ "filePath": "D:\\capture\\pc1.cap"
+ },
+ "filters": [
+ {
+ "protocol": "TCP",
+ "localIPAddress": "10.0.0.4",
+ "localPort": "80"
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "name": "pc1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkWatchers/nw1/packetCaptures/pc1",
+ "properties": {
+ "provisioningState": "Updating",
+ "target": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Compute/virtualMachines/vm1",
+ "bytesToCapturePerPacket": 10000,
+ "totalBytesPerSession": 100000,
+ "timeLimitInSeconds": 100,
+ "storageLocation": {
+ "storageId": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Storage/storageAccounts/pcstore",
+ "storagePath": "https://mytestaccountname.blob.core.windows.net/capture/pc1.cap",
+ "filePath": "D:\\capture\\pc1.cap"
+ },
+ "filters": [
+ {
+ "protocol": "TCP",
+ "localIPAddress": "10.0.0.4",
+ "localPort": "80"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherPacketCaptureDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherPacketCaptureDelete.json
new file mode 100644
index 000000000000..3960943f831d
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherPacketCaptureDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkWatcherName": "nw1",
+ "packetCaptureName": "pc1"
+ },
+ "responses": {
+ "204": {},
+ "202": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherPacketCaptureGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherPacketCaptureGet.json
new file mode 100644
index 000000000000..769c8127b7c7
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherPacketCaptureGet.json
@@ -0,0 +1,37 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkWatcherName": "nw1",
+ "packetCaptureName": "pc1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "pc1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkWatchers/nw1/packetCaptures/pc1",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "properties": {
+ "provisioningState": "Updating",
+ "target": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Compute/virtualMachines/vm1",
+ "bytesToCapturePerPacket": 10000,
+ "totalBytesPerSession": 100000,
+ "timeLimitInSeconds": 100,
+ "storageLocation": {
+ "storageId": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Storage/storageAccounts/pcstore",
+ "storagePath": "https://mytestaccountname.blob.core.windows.net/capture/pc1.cap",
+ "filePath": "D:\\capture\\pc1.cap"
+ },
+ "filters": [
+ {
+ "protocol": "TCP",
+ "localIPAddress": "10.0.0.4",
+ "localPort": "80"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherPacketCaptureQueryStatus.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherPacketCaptureQueryStatus.json
new file mode 100644
index 000000000000..032ad2eac5de
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherPacketCaptureQueryStatus.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkWatcherName": "nw1",
+ "packetCaptureName": "pc1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "pc1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkWatchers/nw1/packetCaptures/pc1",
+ "captureStartTime": "2016-09-07T12:35:24Z",
+ "packetCaptureStatus": "Stopped",
+ "stopReason": "TimeExceeded",
+ "packetCaptureError": []
+ }
+ },
+ "202": {
+ "body": {
+ "name": "pc1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkWatchers/nw1/packetCaptures/pc1",
+ "captureStartTime": "2016-09-07T12:35:24Z",
+ "packetCaptureStatus": "Stopped",
+ "stopReason": "TimeExceeded",
+ "packetCaptureError": []
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherPacketCaptureStop.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherPacketCaptureStop.json
new file mode 100644
index 000000000000..1bf5edb0758c
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherPacketCaptureStop.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkWatcherName": "nw1",
+ "packetCaptureName": "pc1"
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherPacketCapturesList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherPacketCapturesList.json
new file mode 100644
index 000000000000..4a4a8b7e66d6
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherPacketCapturesList.json
@@ -0,0 +1,58 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkWatcherName": "nw1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "pc1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkWatchers/nw1/packetCaptures/pc1",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "properties": {
+ "provisioningState": "Updating",
+ "target": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Compute/virtualMachines/vm1",
+ "bytesToCapturePerPacket": 10000,
+ "totalBytesPerSession": 100000,
+ "timeLimitInSeconds": 100,
+ "storageLocation": {
+ "storageId": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Storage/storageAccounts/pcstore",
+ "storagePath": "https://mytestaccountname.blob.core.windows.net/capture/pc1.cap",
+ "filePath": "D:\\capture\\pc1.cap"
+ },
+ "filters": [
+ {
+ "protocol": "TCP",
+ "localIPAddress": "10.0.0.4",
+ "localPort": "80"
+ }
+ ]
+ }
+ },
+ {
+ "name": "pc2",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkWatchers/nw1/packetCaptures/pc2",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "target": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Compute/virtualMachines/vm1",
+ "bytesToCapturePerPacket": 10000,
+ "totalBytesPerSession": 100000,
+ "timeLimitInSeconds": 100,
+ "storageLocation": {
+ "storageId": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Storage/storageAccounts/pcstore",
+ "storagePath": "https://mytestaccountname.blob.core.windows.net/capture/pc2.cap",
+ "filePath": "D:\\capture\\pc2.cap"
+ },
+ "filters": []
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherSecurityGroupViewGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherSecurityGroupViewGet.json
new file mode 100644
index 000000000000..ff57477b4211
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherSecurityGroupViewGet.json
@@ -0,0 +1,141 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkWatcherName": "nw1",
+ "parameters": {
+ "targetResourceId": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Compute/virtualMachines/vm1"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "networkInterfaces": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/networkInterfaces/nic1",
+ "securityRuleAssociations": {
+ "subnetAssociation": {
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1",
+ "securityRules": [
+ {
+ "name": "fe_rule",
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/networkSecurityGroups/AppNSG/securityRules/fe_rule",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow Frontend",
+ "protocol": "Tcp",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "10.1.0.0/24",
+ "destinationAddressPrefix": "*",
+ "access": "Allow",
+ "priority": 100,
+ "direction": "Inbound"
+ }
+ }
+ ]
+ },
+ "defaultSecurityRules": [
+ {
+ "name": "AllowVnetInBound",
+ "id": "/subscriptions//resourceGroups//providers/Microsoft.Network/networkSecurityGroups//defaultSecurityRules/",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow inbound traffic from all VMs in VNET",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "VirtualNetwork",
+ "destinationAddressPrefix": "VirtualNetwork",
+ "access": "Allow",
+ "priority": 65000,
+ "direction": "Inbound"
+ }
+ }
+ ],
+ "effectiveSecurityRules": [
+ {
+ "name": "DefaultOutboundDenyAll",
+ "protocol": "All",
+ "sourcePortRange": "0-65535",
+ "destinationPortRange": "0-65535",
+ "sourceAddressPrefix": "*",
+ "destinationAddressPrefix": "*",
+ "access": "Deny",
+ "priority": 65500,
+ "direction": "Outbound"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ },
+ "202": {
+ "body": {
+ "networkInterfaces": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/networkInterfaces/nic1",
+ "securityRuleAssociations": {
+ "subnetAssociation": {
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1",
+ "securityRules": [
+ {
+ "name": "fe_rule",
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/networkSecurityGroups/AppNSG/securityRules/fe_rule",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow Frontend",
+ "protocol": "Tcp",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "10.1.0.0/24",
+ "destinationAddressPrefix": "*",
+ "access": "Allow",
+ "priority": 100,
+ "direction": "Inbound"
+ }
+ }
+ ]
+ },
+ "defaultSecurityRules": [
+ {
+ "name": "AllowVnetInBound",
+ "id": "/subscriptions//resourceGroups//providers/Microsoft.Network/networkSecurityGroups//defaultSecurityRules/",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "description": "Allow inbound traffic from all VMs in VNET",
+ "protocol": "*",
+ "sourcePortRange": "*",
+ "destinationPortRange": "*",
+ "sourceAddressPrefix": "VirtualNetwork",
+ "destinationAddressPrefix": "VirtualNetwork",
+ "access": "Allow",
+ "priority": 65000,
+ "direction": "Inbound"
+ }
+ }
+ ],
+ "effectiveSecurityRules": [
+ {
+ "name": "DefaultOutboundDenyAll",
+ "protocol": "All",
+ "sourcePortRange": "0-65535",
+ "destinationPortRange": "0-65535",
+ "sourceAddressPrefix": "*",
+ "destinationAddressPrefix": "*",
+ "access": "Deny",
+ "priority": 65500,
+ "direction": "Outbound"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherTopologyGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherTopologyGet.json
new file mode 100644
index 000000000000..78391d3a00ba
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherTopologyGet.json
@@ -0,0 +1,39 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkWatcherName": "nw1",
+ "parameters": {
+ "targetResourceGroupName": "rg2"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "ce592f46-8164-4bf2-ad36-b8e4acf6fb68",
+ "createdDateTime": "2017-08-02T19:31:55.9461781Z",
+ "lastModified": "2017-05-27T00:00:13.2005337Z",
+ "resources": [
+ {
+ "name": "MultiTierApp0",
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Compute/virtualMachines/MultiTierApp0",
+ "location": "westus",
+ "associations": [
+ {
+ "name": "appNic0",
+ "resourceId": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/networkInterfaces/appNic0",
+ "associationType": "Contains"
+ },
+ {
+ "name": "appNic10",
+ "resourceId": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/networkInterfaces/appNic10",
+ "associationType": "Contains"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherTroubleshootGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherTroubleshootGet.json
new file mode 100644
index 000000000000..12efbe25dffd
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherTroubleshootGet.json
@@ -0,0 +1,71 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkWatcherName": "nw1",
+ "parameters": {
+ "targetResourceId": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Compute/virtualMachines/vm1",
+ "properties": {
+ "storageId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Storage/storageAccounts/st1",
+ "storagePath": "https://st1.blob.core.windows.net/cn1"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "startTime": "2017-01-12T00:19:47.0442834Z",
+ "endTime": "2017-01-12T00:20:09.914Z",
+ "code": "UnHealthy",
+ "results": [
+ {
+ "id": "000000",
+ "reasonType": "VipUnResponsive",
+ "summary": "We are sorry, your VPN gateway is unreachable from the Internet",
+ "detail": "During this time S2S VPN tunnels to on premises sites or other Azure virtual networks will be disconnected",
+ "recommendedActions": [
+ {
+ "actionText": "Verify if there is a network security group (NSG) applied to the GatewaySubnet",
+ "actionUri": "https://docs.microsoft.com/en-us/azure/virtual-network/virtual-networks-create-nsg-arm-pportal",
+ "actionUriText": "Verify"
+ },
+ {
+ "actionText": "If your VPN gateway isn't up and running by the expected resolution time, contact support",
+ "actionUri": "http://azure.microsoft.com/support",
+ "actionUriText": "contact support"
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "202": {
+ "body": {
+ "startTime": "2017-01-12T00:19:47.0442834Z",
+ "endTime": "2017-01-12T00:20:09.914Z",
+ "code": "UnHealthy",
+ "results": [
+ {
+ "id": "000000",
+ "reasonType": "VipUnResponsive",
+ "summary": "We are sorry, your VPN gateway is unreachable from the Internet",
+ "detail": "During this time S2S VPN tunnels to on premises sites or other Azure virtual networks will be disconnected",
+ "recommendedActions": [
+ {
+ "actionText": "Verify if there is a network security group (NSG) applied to the GatewaySubnet",
+ "actionUri": "https://docs.microsoft.com/en-us/azure/virtual-network/virtual-networks-create-nsg-arm-pportal",
+ "actionUriText": "Verify"
+ },
+ {
+ "actionText": "If your VPN gateway isn't up and running by the expected resolution time, contact support",
+ "actionUri": "http://azure.microsoft.com/support",
+ "actionUriText": "contact support"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherTroubleshootResultQuery.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherTroubleshootResultQuery.json
new file mode 100644
index 000000000000..50b4421308d4
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherTroubleshootResultQuery.json
@@ -0,0 +1,67 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkWatcherName": "nw1",
+ "parameters": {
+ "targetResourceId": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Compute/virtualMachines/vm1"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "startTime": "2017-01-12T00:19:47.0442834Z",
+ "endTime": "2017-01-12T00:20:09.914Z",
+ "code": "UnHealthy",
+ "results": [
+ {
+ "id": "000000",
+ "reasonType": "VipUnResponsive",
+ "summary": "We are sorry, your VPN gateway is unreachable from the Internet",
+ "detail": "During this time S2S VPN tunnels to on premises sites or other Azure virtual networks will be disconnected",
+ "recommendedActions": [
+ {
+ "actionText": "Verify if there is a network security group (NSG) applied to the GatewaySubnet",
+ "actionUri": "https://docs.microsoft.com/en-us/azure/virtual-network/virtual-networks-create-nsg-arm-pportal",
+ "actionUriText": "Verify"
+ },
+ {
+ "actionText": "If your VPN gateway isn't up and running by the expected resolution time, contact support",
+ "actionUri": "http://azure.microsoft.com/support",
+ "actionUriText": "contact support"
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "202": {
+ "body": {
+ "startTime": "2017-01-12T00:19:47.0442834Z",
+ "endTime": "2017-01-12T00:20:09.914Z",
+ "code": "UnHealthy",
+ "results": [
+ {
+ "id": "000000",
+ "reasonType": "VipUnResponsive",
+ "summary": "We are sorry, your VPN gateway is unreachable from the Internet",
+ "detail": "During this time S2S VPN tunnels to on premises sites or other Azure virtual networks will be disconnected",
+ "recommendedActions": [
+ {
+ "actionText": "Verify if there is a network security group (NSG) applied to the GatewaySubnet",
+ "actionUri": "https://docs.microsoft.com/en-us/azure/virtual-network/virtual-networks-create-nsg-arm-pportal",
+ "actionUriText": "Verify"
+ },
+ {
+ "actionText": "If your VPN gateway isn't up and running by the expected resolution time, contact support",
+ "actionUri": "http://azure.microsoft.com/support",
+ "actionUriText": "contact support"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherUpdateTags.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherUpdateTags.json
new file mode 100644
index 000000000000..793bfb914c4b
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/NetworkWatcherUpdateTags.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkWatcherName": "nw1",
+ "parameters": {
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "nw1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkWatchers/nw1",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "type": "Microsoft.Network/networkWatchers",
+ "location": "eastus",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "properties": {
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/OperationList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/OperationList.json
new file mode 100644
index 000000000000..eb3fa39dc63e
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/OperationList.json
@@ -0,0 +1,137 @@
+{
+ "parameters": {
+ "location": "westus",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "Microsoft.Network/localnetworkgateways/read",
+ "display": {
+ "provider": "Microsoft Network",
+ "resource": "LocalNetworkGateway",
+ "operation": "Get LocalNetworkGateway",
+ "description": "Gets LocalNetworkGateway"
+ }
+ },
+ {
+ "name": "Microsoft.Network/localnetworkgateways/write",
+ "display": {
+ "provider": "Microsoft Network",
+ "resource": "LocalNetworkGateway",
+ "operation": "Create or update LocalNetworkGateway",
+ "description": "Creates or updates an existing LocalNetworkGateway"
+ }
+ },
+ {
+ "name": "Microsoft.Network/localnetworkgateways/delete",
+ "display": {
+ "provider": "Microsoft Network",
+ "resource": "LocalNetworkGateway",
+ "operation": "Delete LocalNetworkGateway",
+ "description": "Deletes LocalNetworkGateway"
+ }
+ },
+ {
+ "name": "Microsoft.Network/networkInterfaces/providers/Microsoft.Insights/metricDefinitions/read",
+ "display": {
+ "provider": "Microsoft Network",
+ "resource": "Network Interface metric definition",
+ "operation": "Read Network Interface metric definitions",
+ "description": "Gets available metrics for the Network Interface"
+ },
+ "origin": "system",
+ "properties": {
+ "serviceSpecification": {
+ "metricSpecifications": [
+ {
+ "name": "BytesSentRate",
+ "displayName": "Bytes Sent",
+ "displayDescription": "Number of bytes the Network Interface sent",
+ "unit": "Count",
+ "aggregationType": "Total",
+ "availabilities": [
+ {
+ "timeGrain": "00:01:00",
+ "retention": "00:00:00",
+ "blobDuration": "01:00:00"
+ },
+ {
+ "timeGrain": "01:00:00",
+ "retention": "00:00:00",
+ "blobDuration": "1.00:00:00"
+ }
+ ],
+ "enableRegionalMdmAccount": false,
+ "metricFilterPattern": "^__Ready__$",
+ "fillGapWithZero": false,
+ "dimensions": [],
+ "isInternal": false
+ },
+ {
+ "name": "BytesReceivedRate",
+ "displayName": "Bytes Received",
+ "displayDescription": "Number of bytes the Network Interface received",
+ "unit": "Count",
+ "aggregationType": "Total",
+ "availabilities": [
+ {
+ "timeGrain": "00:01:00",
+ "retention": "00:00:00",
+ "blobDuration": "01:00:00"
+ },
+ {
+ "timeGrain": "01:00:00",
+ "retention": "00:00:00",
+ "blobDuration": "1.00:00:00"
+ }
+ ],
+ "enableRegionalMdmAccount": false,
+ "metricFilterPattern": "^__Ready__$",
+ "fillGapWithZero": false,
+ "dimensions": [],
+ "isInternal": false
+ }
+ ]
+ }
+ }
+ },
+ {
+ "name": "Microsoft.Network/networksecuritygroups/providers/Microsoft.Insights/logDefinitions/read",
+ "display": {
+ "provider": "Microsoft Network",
+ "resource": "Network Security Groups Log Definitions",
+ "operation": "Get Network Security Group Event Log Definitions",
+ "description": "Gets the events for network security group"
+ },
+ "origin": "system",
+ "properties": {
+ "serviceSpecification": {
+ "logSpecifications": [
+ {
+ "name": "NetworkSecurityGroupEvent",
+ "displayName": "Network Security Group Event",
+ "blobDuration": "PT1H"
+ },
+ {
+ "name": "NetworkSecurityGroupRuleCounter",
+ "displayName": "Network Security Group Rule Counter",
+ "blobDuration": "PT1H"
+ },
+ {
+ "name": "NetworkSecurityGroupFlowEvent",
+ "displayName": "Network Security Group Rule Flow Event",
+ "blobDuration": "PT1H"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/P2SVpnGatewayDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/P2SVpnGatewayDelete.json
new file mode 100644
index 000000000000..56ed8719bf51
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/P2SVpnGatewayDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "gatewayName": "p2sVpnGateway1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/P2SVpnGatewayGenerateVpnProfile.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/P2SVpnGatewayGenerateVpnProfile.json
new file mode 100644
index 000000000000..2850b76321d0
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/P2SVpnGatewayGenerateVpnProfile.json
@@ -0,0 +1,17 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "gatewayName": "p2sVpnGateway1",
+ "parameters": {
+ "authenticationMethod": "EAPTLS"
+ }
+ },
+ "responses": {
+ "202": {},
+ "200": {
+ "body": ""
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/P2SVpnGatewayGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/P2SVpnGatewayGet.json
new file mode 100644
index 000000000000..db9a1608ae00
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/P2SVpnGatewayGet.json
@@ -0,0 +1,83 @@
+{
+ "parameters": {
+ "gatewayName": "p2sVpnGateway1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "p2sVpnGateway1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/P2SvpnGateways/p2sVpnGateway1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "type": "Microsoft.Network/p2sVpnGateways",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "virtualHub": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1"
+ },
+ "vpnServerConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnServerConfigurations/vpnServerConfiguration1"
+ },
+ "p2SConnectionConfigurations": [
+ {
+ "name": "P2SConnectionConfig1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/p2sVpnGateways/p2sVpnGateway1/p2sConnectionConfigurations/P2SConnectionConfig1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "vpnClientAddressPool": {
+ "addressPrefixes": [
+ "101.3.0.0/16"
+ ]
+ },
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
+ },
+ "enableInternetSecurity": false
+ }
+ }
+ ],
+ "vpnGatewayScaleUnit": 1,
+ "customDnsServers": [
+ "3.3.3.3"
+ ],
+ "vpnClientConnectionHealth": {
+ "vpnClientConnectionsCount": 2,
+ "allocatedIpAddresses": [
+ "1.1.1.1",
+ "2.2.2.2"
+ ],
+ "totalIngressBytesTransferred": 2000,
+ "totalEgressBytesTransferred": 3000
+ },
+ "isRoutingPreferenceInternet": false
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/P2SVpnGatewayGetConnectionHealth.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/P2SVpnGatewayGetConnectionHealth.json
new file mode 100644
index 000000000000..7ff89bb0c5bf
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/P2SVpnGatewayGetConnectionHealth.json
@@ -0,0 +1,59 @@
+{
+ "parameters": {
+ "gatewayName": "p2sVpnGateway1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "p2sVpnGateway1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/P2SvpnGateways/p2sVpnGateway1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "type": "Microsoft.Network/p2sVpnGateways",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "virtualHub": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1"
+ },
+ "vpnServerConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnServerConfigurations/vpnServerConfiguration1"
+ },
+ "p2SConnectionConfigurations": [
+ {
+ "name": "P2SConnectionConfig1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/p2sVpnGateways/p2sVpnGateway1/p2sConnectionConfigurations/P2SConnectionConfig1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "vpnClientAddressPool": {
+ "addressPrefixes": [
+ "101.3.0.0/16"
+ ]
+ },
+ "enableInternetSecurity": false
+ }
+ }
+ ],
+ "vpnGatewayScaleUnit": 1,
+ "customDnsServers": [
+ "3.3.3.3"
+ ],
+ "vpnClientConnectionHealth": {
+ "vpnClientConnectionsCount": 2,
+ "allocatedIpAddresses": [
+ "1.1.1.1",
+ "2.2.2.2"
+ ],
+ "totalIngressBytesTransferred": 2000,
+ "totalEgressBytesTransferred": 3000
+ },
+ "isRoutingPreferenceInternet": false
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/P2SVpnGatewayGetConnectionHealthDetailed.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/P2SVpnGatewayGetConnectionHealthDetailed.json
new file mode 100644
index 000000000000..726279220b28
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/P2SVpnGatewayGetConnectionHealthDetailed.json
@@ -0,0 +1,21 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "p2s-vpn-gateway-test",
+ "gatewayName": "p2svpngateway",
+ "api-version": "2020-07-01",
+ "request": {
+ "vpnUserNamesFilter": [
+ "vpnUser1",
+ "vpnUser2"
+ ],
+ "outputBlobSasUrl": "https://blobcortextesturl.blob.core.windows.net/folderforconfig/p2sconnectionhealths?sp=rw&se=2018-01-10T03%3A42%3A04Z&sv=2017-04-17&sig=WvXrT5bDmDFfgHs%2Brz%2BjAu123eRCNE9BO0eQYcPDT7pY%3D&sr=b"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": ""
+ },
+ "202": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/P2SVpnGatewayList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/P2SVpnGatewayList.json
new file mode 100644
index 000000000000..6de979a44675
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/P2SVpnGatewayList.json
@@ -0,0 +1,157 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "resourceGroupName": "rg1",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "p2sVpnGateway1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/P2SvpnGateways/p2sVpnGateway1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "type": "Microsoft.Network/p2sVpnGateways",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "virtualHub": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1"
+ },
+ "vpnServerConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnServerConfigurations/vpnServerConfiguration1"
+ },
+ "p2SConnectionConfigurations": [
+ {
+ "name": "P2SConnectionConfig1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/p2sVpnGateways/p2sVpnGateway1/p2sConnectionConfigurations/P2SConnectionConfig1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "vpnClientAddressPool": {
+ "addressPrefixes": [
+ "101.3.0.0/16"
+ ]
+ },
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
+ },
+ "enableInternetSecurity": true
+ }
+ }
+ ],
+ "vpnGatewayScaleUnit": 1,
+ "customDnsServers": [
+ "3.3.3.3"
+ ],
+ "vpnClientConnectionHealth": {
+ "vpnClientConnectionsCount": 2,
+ "allocatedIpAddresses": [
+ "1.1.1.1",
+ "2.2.2.2"
+ ],
+ "totalIngressBytesTransferred": 2000,
+ "totalEgressBytesTransferred": 3000
+ },
+ "isRoutingPreferenceInternet": false
+ }
+ },
+ {
+ "name": "p2sVpnGateway2",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/P2SvpnGateways/p2sVpnGateway2",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "type": "Microsoft.Network/p2sVpnGateways",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "virtualHub": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub2"
+ },
+ "vpnServerConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnServerConfigurations/vpnServerConfiguration1"
+ },
+ "p2SConnectionConfigurations": [
+ {
+ "name": "P2SConnectionConfig1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/p2sVpnGateways/p2sVpnGateway1/p2sConnectionConfigurations/P2SConnectionConfig1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "vpnClientAddressPool": {
+ "addressPrefixes": [
+ "101.4.0.0/16"
+ ]
+ },
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub2/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub2/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub2/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub2/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
+ },
+ "enableInternetSecurity": true
+ }
+ }
+ ],
+ "vpnGatewayScaleUnit": 1,
+ "customDnsServers": [
+ "4.4.4.4"
+ ],
+ "vpnClientConnectionHealth": {
+ "vpnClientConnectionsCount": 2,
+ "allocatedIpAddresses": [
+ "1.1.1.1",
+ "2.2.2.2"
+ ],
+ "totalIngressBytesTransferred": 2000,
+ "totalEgressBytesTransferred": 3000
+ },
+ "isRoutingPreferenceInternet": false
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/P2SVpnGatewayListByResourceGroup.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/P2SVpnGatewayListByResourceGroup.json
new file mode 100644
index 000000000000..e349fbb1b115
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/P2SVpnGatewayListByResourceGroup.json
@@ -0,0 +1,153 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "resourceGroupName": "rg1",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "p2sVpnGateway1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/P2SvpnGateways/p2sVpnGateway1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "type": "Microsoft.Network/p2sVpnGateways",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "virtualHub": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1"
+ },
+ "vpnServerConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnServerConfigurations/vpnServerConfiguration1"
+ },
+ "p2SConnectionConfigurations": [
+ {
+ "name": "P2SConnectionConfig1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/p2sVpnGateways/p2sVpnGateway1/p2sConnectionConfigurations/P2SConnectionConfig1",
+ "properties": {
+ "vpnClientAddressPool": {
+ "addressPrefixes": [
+ "101.3.0.0/16"
+ ]
+ },
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
+ },
+ "enableInternetSecurity": false
+ }
+ }
+ ],
+ "vpnGatewayScaleUnit": 1,
+ "customDnsServers": [
+ "3.3.3.3"
+ ],
+ "vpnClientConnectionHealth": {
+ "vpnClientConnectionsCount": 2,
+ "allocatedIpAddresses": [
+ "1.1.1.1",
+ "2.2.2.2"
+ ],
+ "totalIngressBytesTransferred": 2000,
+ "totalEgressBytesTransferred": 3000
+ },
+ "isRoutingPreferenceInternet": false
+ }
+ },
+ {
+ "name": "p2sVpnGateway2",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/P2SvpnGateways/p2sVpnGateway2",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "type": "Microsoft.Network/p2sVpnGateways",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "virtualHub": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub2"
+ },
+ "vpnServerConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnServerConfigurations/vpnServerConfiguration1"
+ },
+ "p2SConnectionConfigurations": [
+ {
+ "name": "P2SConnectionConfig1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/p2sVpnGateways/p2sVpnGateway1/p2sConnectionConfigurations/P2SConnectionConfig1",
+ "properties": {
+ "vpnClientAddressPool": {
+ "addressPrefixes": [
+ "101.3.0.0/16"
+ ]
+ },
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub2/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub2/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub2/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub2/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
+ },
+ "enableInternetSecurity": false
+ }
+ }
+ ],
+ "vpnGatewayScaleUnit": 1,
+ "customDnsServers": [
+ "4.4.4.4"
+ ],
+ "vpnClientConnectionHealth": {
+ "vpnClientConnectionsCount": 2,
+ "allocatedIpAddresses": [
+ "1.1.1.1",
+ "2.2.2.2"
+ ],
+ "totalIngressBytesTransferred": 2000,
+ "totalEgressBytesTransferred": 3000
+ },
+ "isRoutingPreferenceInternet": false
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/P2SVpnGatewayPut.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/P2SVpnGatewayPut.json
new file mode 100644
index 000000000000..37ba05eed8f7
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/P2SVpnGatewayPut.json
@@ -0,0 +1,210 @@
+{
+ "parameters": {
+ "gatewayName": "p2sVpnGateway1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "p2SVpnGatewayParameters": {
+ "location": "West US",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "virtualHub": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1"
+ },
+ "vpnServerConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnServerConfigurations/vpnServerConfiguration1"
+ },
+ "p2SConnectionConfigurations": [
+ {
+ "name": "P2SConnectionConfig1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/p2sVpnGateways/p2sVpnGateway1/p2sConnectionConfigurations/P2SConnectionConfig1",
+ "properties": {
+ "vpnClientAddressPool": {
+ "addressPrefixes": [
+ "101.3.0.0/16"
+ ]
+ },
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
+ }
+ }
+ }
+ ],
+ "vpnGatewayScaleUnit": 1,
+ "customDnsServers": [
+ "1.1.1.1",
+ "2.2.2.2"
+ ],
+ "isRoutingPreferenceInternet": false
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "p2sVpnGateway1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/P2SvpnGateways/p2sVpnGateway1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "type": "Microsoft.Network/p2sVpnGateways",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "virtualHub": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1"
+ },
+ "vpnServerConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnServerConfigurations/vpnServerConfiguration1"
+ },
+ "p2SConnectionConfigurations": [
+ {
+ "name": "P2SConnectionConfig1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/p2sVpnGateways/p2sVpnGateway1/p2sConnectionConfigurations/P2SConnectionConfig1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "vpnClientAddressPool": {
+ "addressPrefixes": [
+ "101.3.0.0/16"
+ ]
+ },
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
+ },
+ "enableInternetSecurity": false
+ }
+ }
+ ],
+ "vpnGatewayScaleUnit": 1,
+ "customDnsServers": [
+ "1.1.1.1",
+ "2.2.2.2"
+ ],
+ "vpnClientConnectionHealth": {
+ "vpnClientConnectionsCount": 0,
+ "allocatedIpAddresses": [],
+ "totalIngressBytesTransferred": 0,
+ "totalEgressBytesTransferred": 0
+ },
+ "isRoutingPreferenceInternet": false
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "p2sVpnGateway1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/P2SvpnGateways/p2sVpnGateway1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "type": "Microsoft.Network/p2sVpnGateways",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "virtualHub": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1"
+ },
+ "vpnServerConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnServerConfigurations/vpnServerConfiguration1"
+ },
+ "p2SConnectionConfigurations": [
+ {
+ "name": "P2SConnectionConfig1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/p2sVpnGateways/p2sVpnGateway1/p2sConnectionConfigurations/P2SConnectionConfig1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "vpnClientAddressPool": {
+ "addressPrefixes": [
+ "101.3.0.0/16"
+ ]
+ },
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
+ },
+ "enableInternetSecurity": false
+ }
+ }
+ ],
+ "vpnGatewayScaleUnit": 1,
+ "customDnsServers": [
+ "1.1.1.1",
+ "2.2.2.2"
+ ],
+ "vpnClientConnectionHealth": {
+ "vpnClientConnectionsCount": 0,
+ "allocatedIpAddresses": [],
+ "totalIngressBytesTransferred": 0,
+ "totalEgressBytesTransferred": 0
+ },
+ "isRoutingPreferenceInternet": false
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/P2SVpnGatewayReset.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/P2SVpnGatewayReset.json
new file mode 100644
index 000000000000..bf516d9b343d
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/P2SVpnGatewayReset.json
@@ -0,0 +1,59 @@
+{
+ "parameters": {
+ "gatewayName": "p2sVpnGateway1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "202": {},
+ "200": {
+ "body": {
+ "name": "p2sVpnGateway1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/P2SvpnGateways/p2sVpnGateway1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "type": "Microsoft.Network/p2sVpnGateways",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "virtualHub": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1"
+ },
+ "vpnServerConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnServerConfigurations/vpnServerConfiguration1"
+ },
+ "p2SConnectionConfigurations": [
+ {
+ "name": "P2SConnectionConfig1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/p2sVpnGateways/p2sVpnGateway1/p2sConnectionConfigurations/P2SConnectionConfig1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "vpnClientAddressPool": {
+ "addressPrefixes": [
+ "101.3.0.0/16"
+ ]
+ },
+ "enableInternetSecurity": false
+ }
+ }
+ ],
+ "vpnGatewayScaleUnit": 1,
+ "customDnsServers": [
+ "3.3.3.3"
+ ],
+ "vpnClientConnectionHealth": {
+ "vpnClientConnectionsCount": 2,
+ "allocatedIpAddresses": [
+ "1.1.1.1",
+ "2.2.2.2"
+ ],
+ "totalIngressBytesTransferred": 2000,
+ "totalEgressBytesTransferred": 3000
+ },
+ "isRoutingPreferenceInternet": false
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/P2SVpnGatewayUpdateTags.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/P2SVpnGatewayUpdateTags.json
new file mode 100644
index 000000000000..8fa64f0ccb73
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/P2SVpnGatewayUpdateTags.json
@@ -0,0 +1,92 @@
+{
+ "parameters": {
+ "gatewayName": "p2sVpnGateway1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "p2SVpnGatewayParameters": {
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ }
+ }
+ },
+ "responses": {
+ "202": {},
+ "200": {
+ "body": {
+ "name": "p2sVpnGateway1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/P2SvpnGateways/p2sVpnGateway1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "type": "Microsoft.Network/p2sVpnGateways",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "virtualHub": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1"
+ },
+ "vpnServerConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnServerConfigurations/vpnServerConfiguration1"
+ },
+ "p2SConnectionConfigurations": [
+ {
+ "name": "P2SConnectionConfig1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/p2sVpnGateways/p2sVpnGateway1/p2sConnectionConfigurations/P2SConnectionConfig1",
+ "properties": {
+ "vpnClientAddressPool": {
+ "addressPrefixes": [
+ "101.3.0.0/16"
+ ]
+ },
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
+ },
+ "enableInternetSecurity": false
+ }
+ }
+ ],
+ "vpnGatewayScaleUnit": 1,
+ "customDnsServers": [
+ "3.3.3.3"
+ ],
+ "vpnClientConnectionHealth": {
+ "vpnClientConnectionsCount": 2,
+ "allocatedIpAddresses": [
+ "1.1.1.1",
+ "2.2.2.2"
+ ],
+ "totalIngressBytesTransferred": 2000,
+ "totalEgressBytesTransferred": 3000
+ },
+ "isRoutingPreferenceInternet": false
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/P2sVpnGatewaysDisconnectP2sVpnConnections.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/P2sVpnGatewaysDisconnectP2sVpnConnections.json
new file mode 100644
index 000000000000..2d48a9155d16
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/P2sVpnGatewaysDisconnectP2sVpnConnections.json
@@ -0,0 +1,18 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "p2s-vpn-gateway-test",
+ "p2sVpnGatewayName": "p2svpngateway",
+ "api-version": "2020-07-01",
+ "request": {
+ "vpnConnectionIds": [
+ "vpnconnId1",
+ "vpnconnId2"
+ ]
+ }
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PeerExpressRouteCircuitConnectionGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PeerExpressRouteCircuitConnectionGet.json
new file mode 100644
index 000000000000..032cc598843b
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PeerExpressRouteCircuitConnectionGet.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "connectionName": "60aee347-e889-4a42-8c1b-0aae8b1e4013",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-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/2020-07-01/examples/PeerExpressRouteCircuitConnectionList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PeerExpressRouteCircuitConnectionList.json
new file mode 100644
index 000000000000..5ebd43c0ea76
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PeerExpressRouteCircuitConnectionList.json
@@ -0,0 +1,53 @@
+{
+ "parameters": {
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-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"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateEndpointCreate.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateEndpointCreate.json
new file mode 100644
index 000000000000..37ebaf88aa16
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateEndpointCreate.json
@@ -0,0 +1,126 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subId",
+ "resourceGroupName": "rg1",
+ "privateEndpointName": "testPe",
+ "parameters": {
+ "location": "eastus2euap",
+ "properties": {
+ "privateLinkServiceConnections": [
+ {
+ "properties": {
+ "privateLinkServiceId": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateLinkServices/testPls",
+ "groupIds": [
+ "groupIdFromResource"
+ ],
+ "requestMessage": "Please approve my connection."
+ }
+ }
+ ],
+ "subnet": {
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "testPe",
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateEndpoints/testPe",
+ "location": "eastus2euap",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateLinkServiceConnections": [
+ {
+ "properties": {
+ "privateLinkServiceId": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateLinkServices/testPls",
+ "groupIds": [
+ "groupIdFromResource"
+ ],
+ "requestMessage": "Please approve my connection.",
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Auto-approved",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ ],
+ "manualPrivateLinkServiceConnections": [],
+ "subnet": {
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet"
+ },
+ "networkInterfaces": [
+ {
+ "id": "/subscriptions/subId/resourceGroups/rg1/provders/Microsoft.Network/networkInterfaces/testPe.nic.abcd1234"
+ }
+ ],
+ "customDnsConfigs": [
+ {
+ "fqdn": "abc.cosmos.com",
+ "ipAddresses": [
+ "192.168.0.4"
+ ]
+ },
+ {
+ "fqdn": "abc2.cosmos.com",
+ "ipAddresses": [
+ "192.168.0.5"
+ ]
+ }
+ ]
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "testPe",
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateEndpoints/testPe",
+ "location": "eastus2euap",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateLinkServiceConnections": [
+ {
+ "properties": {
+ "privateLinkServiceId": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateLinkServices/testPls",
+ "groupIds": [
+ "groupIdFromResource"
+ ],
+ "requestMessage": "Please approve my connection.",
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Auto-approved",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ ],
+ "subnet": {
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet"
+ },
+ "networkInterfaces": [
+ {
+ "id": "/subscriptions/subId/resourceGroups/rg1/provders/Microsoft.Network/networkInterfaces/testPe.nic.abcd1234"
+ }
+ ],
+ "customDnsConfigs": [
+ {
+ "fqdn": "abc.cosmos.com",
+ "ipAddresses": [
+ "192.168.0.4"
+ ]
+ },
+ {
+ "fqdn": "abc2.cosmos.com",
+ "ipAddresses": [
+ "192.168.0.5"
+ ]
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateEndpointCreateForManualApproval.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateEndpointCreateForManualApproval.json
new file mode 100644
index 000000000000..228d073fe637
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateEndpointCreateForManualApproval.json
@@ -0,0 +1,126 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subId",
+ "resourceGroupName": "rg1",
+ "privateEndpointName": "testPe",
+ "parameters": {
+ "location": "eastus",
+ "properties": {
+ "manualPrivateLinkServiceConnections": [
+ {
+ "properties": {
+ "privateLinkServiceId": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateLinkServices/testPls",
+ "groupIds": [
+ "groupIdFromResource"
+ ],
+ "requestMessage": "Please manually approve my connection."
+ }
+ }
+ ],
+ "subnet": {
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "testPe",
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateEndpoints/testPe",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateLinkServiceConnections": [],
+ "manualPrivateLinkServiceConnections": [
+ {
+ "properties": {
+ "privateLinkServiceId": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateLinkServices/testPls",
+ "groupIds": [
+ "groupIdFromResource"
+ ],
+ "requestMessage": "Please manually approve my connection.",
+ "privateLinkServiceConnectionState": {
+ "status": "Pending",
+ "description": "Awaiting approval",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ ],
+ "subnet": {
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet"
+ },
+ "networkInterfaces": [
+ {
+ "id": "/subscriptions/subId/resourceGroups/rg1/provders/Microsoft.Network/networkInterfaces/testPe.nic.abcd1234"
+ }
+ ],
+ "customDnsConfigs": [
+ {
+ "fqdn": "abc.cosmos.com",
+ "ipAddresses": [
+ "192.168.0.4"
+ ]
+ },
+ {
+ "fqdn": "abc2.cosmos.com",
+ "ipAddresses": [
+ "192.168.0.5"
+ ]
+ }
+ ]
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "testPe",
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateEndpoints/testPe",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateLinkServiceConnections": [
+ {
+ "properties": {
+ "privateLinkServiceId": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateLinkServices/testPls",
+ "groupIds": [
+ "groupIdFromResource"
+ ],
+ "requestMessage": "Please approve my connection.",
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Auto-approved",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ ],
+ "subnet": {
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet"
+ },
+ "networkInterfaces": [
+ {
+ "id": "/subscriptions/subId/resourceGroups/rg1/provders/Microsoft.Network/networkInterfaces/testPe.nic.abcd1234"
+ }
+ ],
+ "customDnsConfigs": [
+ {
+ "fqdn": "abc.cosmos.com",
+ "ipAddresses": [
+ "192.168.0.4"
+ ]
+ },
+ {
+ "fqdn": "abc2.cosmos.com",
+ "ipAddresses": [
+ "192.168.0.5"
+ ]
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateEndpointDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateEndpointDelete.json
new file mode 100644
index 000000000000..7107623b7dd9
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateEndpointDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subId",
+ "resourceGroupName": "rg1",
+ "privateEndpointName": "testPe"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateEndpointDnsZoneGroupCreate.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateEndpointDnsZoneGroupCreate.json
new file mode 100644
index 000000000000..ddc0e55ee93b
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateEndpointDnsZoneGroupCreate.json
@@ -0,0 +1,90 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subId",
+ "resourceGroupName": "rg1",
+ "privateEndpointName": "testPe",
+ "privateDnsZoneGroupName": "testPdnsgroup",
+ "parameters": {
+ "properties": {
+ "privateDnsZoneConfigs": [
+ {
+ "properties": {
+ "privateDnsZoneId": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateDnsZones/zone1.com"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "testPdnsgroup",
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateLinkServices/testPe/privateDnsZoneGroups/testPdnsgroup",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateDnsZoneConfigs": [
+ {
+ "properties": {
+ "privateDnsZoneId": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateDnsZones/zone1.com",
+ "recordSets": [
+ {
+ "recordType": "A",
+ "recordSetName": "abc",
+ "fqdn": "abc.zone1.com",
+ "ipAddresses": [
+ "10.0.0.4"
+ ]
+ },
+ {
+ "recordType": "A",
+ "recordSetName": "abc2",
+ "fqdn": "abc2.zone1.com",
+ "ipAddresses": [
+ "10.0.0.5"
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "testPdnsgroup",
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateLinkServices/testPe/privateDnsZoneGroups/testPdnsgroup",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateDnsZoneConfigs": [
+ {
+ "properties": {
+ "privateDnsZoneId": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateDnsZones/zone1.com",
+ "recordSets": [
+ {
+ "recordType": "A",
+ "recordSetName": "abc",
+ "fqdn": "abc.zone1.com",
+ "ipAddresses": [
+ "10.0.0.4"
+ ]
+ },
+ {
+ "recordType": "A",
+ "recordSetName": "abc2",
+ "fqdn": "abc2.zone1.com",
+ "ipAddresses": [
+ "10.0.0.5"
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateEndpointDnsZoneGroupDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateEndpointDnsZoneGroupDelete.json
new file mode 100644
index 000000000000..b31638b0cbfd
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateEndpointDnsZoneGroupDelete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subId",
+ "resourceGroupName": "rg1",
+ "privateEndpointName": "testPe",
+ "privateDnsZoneGroupName": "testPdnsgroup"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateEndpointDnsZoneGroupGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateEndpointDnsZoneGroupGet.json
new file mode 100644
index 000000000000..f7432b816de8
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateEndpointDnsZoneGroupGet.json
@@ -0,0 +1,68 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subId",
+ "resourceGroupName": "rg1",
+ "privateEndpointName": "testPe",
+ "privateDnsZoneGroupName": "testPdnsgroup"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "testPdnsgroup",
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateLinkServices/testPe/privateDnsZoneGroups/testPdnsgroup",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateDnsZoneConfigs": [
+ {
+ "properties": {
+ "privateDnsZoneId": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateDnsZones/zone1.com",
+ "recordSets": [
+ {
+ "recordType": "A",
+ "recordSetName": "abc",
+ "fqdn": "abc.zone1.com",
+ "ipAddresses": [
+ "10.0.0.4"
+ ]
+ },
+ {
+ "recordType": "A",
+ "recordSetName": "abc2",
+ "fqdn": "abc2.zone1.com",
+ "ipAddresses": [
+ "10.0.0.5"
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "properties": {
+ "privateDnsZoneId": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateDnsZones/zone2.com",
+ "recordSets": [
+ {
+ "recordType": "A",
+ "recordSetName": "abc",
+ "fqdn": "abc.zone2.com",
+ "ipAddresses": [
+ "10.0.0.6"
+ ]
+ },
+ {
+ "recordType": "A",
+ "recordSetName": "abc2",
+ "fqdn": "abc2.zone2.com",
+ "ipAddresses": [
+ "10.0.0.7"
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateEndpointDnsZoneGroupList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateEndpointDnsZoneGroupList.json
new file mode 100644
index 000000000000..b632fbadabeb
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateEndpointDnsZoneGroupList.json
@@ -0,0 +1,80 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subId",
+ "resourceGroupName": "rg1",
+ "privateEndpointName": "testPe"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "testPdnsgroup1",
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateLinkServices/testPe/privateDnsZoneGroups/testPdnsgroup1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateDnsZoneConfigs": [
+ {
+ "properties": {
+ "privateDnsZoneId": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateDnsZones/zone1.com",
+ "recordSets": [
+ {
+ "recordType": "A",
+ "recordSetName": "abc",
+ "fqdn": "abc.zone1.com",
+ "ipAddresses": [
+ "10.0.0.4"
+ ]
+ },
+ {
+ "recordType": "A",
+ "recordSetName": "abc2",
+ "fqdn": "abc2.zone1.com",
+ "ipAddresses": [
+ "10.0.0.5"
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ }
+ },
+ {
+ "name": "testPdnsgroup2",
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateLinkServices/testPe/privateDnsZoneGroups/testPdnsgroup2",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateDnsZoneConfigs": [
+ {
+ "properties": {
+ "privateDnsZoneId": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateDnsZones/zone2.com",
+ "recordSets": [
+ {
+ "recordType": "A",
+ "recordSetName": "abc3",
+ "fqdn": "abc3.zone2.com",
+ "ipAddresses": [
+ "10.0.0.6"
+ ]
+ },
+ {
+ "recordType": "A",
+ "recordSetName": "abc4",
+ "fqdn": "abc4.zone2.com",
+ "ipAddresses": [
+ "10.0.0.7"
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateEndpointGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateEndpointGet.json
new file mode 100644
index 000000000000..724e6b3209ae
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateEndpointGet.json
@@ -0,0 +1,60 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subId",
+ "resourceGroupName": "rg1",
+ "privateEndpointName": "testPe"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "testPe",
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateEndpoints/testPe",
+ "type": "Microsoft.Network/privateEndpoints",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateLinkServiceConnections": [
+ {
+ "properties": {
+ "privateLinkServiceId": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateLinkServices/testPls",
+ "groupIds": [
+ "groupIdFromResource"
+ ],
+ "requestMessage": "Please approve my connection.",
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Auto-approved",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ ],
+ "manualPrivateLinkServiceConnections": [],
+ "subnet": {
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet"
+ },
+ "networkInterfaces": [
+ {
+ "id": "/subscriptions/subId/resourceGroups/rg1/provders/Microsoft.Network/networkInterfaces/testPe.nic.abcd1234"
+ }
+ ],
+ "customDnsConfigs": [
+ {
+ "fqdn": "abc.cosmos.com",
+ "ipAddresses": [
+ "192.168.0.4"
+ ]
+ },
+ {
+ "fqdn": "abc2.cosmos.com",
+ "ipAddresses": [
+ "192.168.0.5"
+ ]
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateEndpointGetForManualApproval.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateEndpointGetForManualApproval.json
new file mode 100644
index 000000000000..6e597814269a
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateEndpointGetForManualApproval.json
@@ -0,0 +1,60 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subId",
+ "resourceGroupName": "rg1",
+ "privateEndpointName": "testPe"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "testPe",
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateEndpoints/testPe",
+ "type": "Microsoft.Network/privateEndpoints",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateLinkServiceConnections": [],
+ "manualPrivateLinkServiceConnections": [
+ {
+ "properties": {
+ "privateLinkServiceId": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateLinkServices/testPls",
+ "groupIds": [
+ "groupIdFromResource"
+ ],
+ "requestMessage": "Please manually approve my connection.",
+ "privateLinkServiceConnectionState": {
+ "status": "Pending",
+ "description": "Awaiting approval",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ ],
+ "subnet": {
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet"
+ },
+ "networkInterfaces": [
+ {
+ "id": "/subscriptions/subId/resourceGroups/rg1/provders/Microsoft.Network/networkInterfaces/testPe.nic.abcd1234"
+ }
+ ],
+ "customDnsConfigs": [
+ {
+ "fqdn": "abc.cosmos.com",
+ "ipAddresses": [
+ "192.168.0.4"
+ ]
+ },
+ {
+ "fqdn": "abc2.cosmos.com",
+ "ipAddresses": [
+ "192.168.0.5"
+ ]
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateEndpointList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateEndpointList.json
new file mode 100644
index 000000000000..c03326640f2b
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateEndpointList.json
@@ -0,0 +1,111 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subId",
+ "resourceGroupName": "rg1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateEndpoints/pe1",
+ "name": "pe1",
+ "type": "Microsoft.Network/privateEndpoints",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateLinkServiceConnections": [
+ {
+ "properties": {
+ "privateLinkServiceId": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateLinkServices/testPls1",
+ "groupIds": [
+ "groupIdFromResource"
+ ],
+ "requestMessage": "Please approve my connection for pe1.",
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Auto-approved",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ ],
+ "manualPrivateLinkServiceConnections": [],
+ "subnet": {
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet"
+ },
+ "networkInterfaces": [
+ {
+ "id": "/subscriptions/subId/resourceGroups/rg1/provders/Microsoft.Network/networkInterfaces/pe1.nic.abcd1234"
+ }
+ ],
+ "customDnsConfigs": [
+ {
+ "fqdn": "abc.cosmos.com",
+ "ipAddresses": [
+ "192.168.0.4"
+ ]
+ },
+ {
+ "fqdn": "abc2.cosmos.com",
+ "ipAddresses": [
+ "192.168.0.5"
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateEndpoints/pe2",
+ "name": "pe2",
+ "type": "Microsoft.Network/privateEndpoints",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateLinkServiceConnections": [],
+ "manualPrivateLinkServiceConnections": [
+ {
+ "properties": {
+ "privateLinkServiceId": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateLinkServices/testPls2",
+ "groupIds": [
+ "groupIdFromResource"
+ ],
+ "requestMessage": "Please manually approve my connection for pe2.",
+ "privateLinkServiceConnectionState": {
+ "status": "Pending",
+ "description": "Awaiting approval",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ ],
+ "subnet": {
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet2"
+ },
+ "networkInterfaces": [
+ {
+ "id": "/subscriptions/subId/resourceGroups/rg1/provders/Microsoft.Network/networkInterfaces/pe2.nic.zyxw9876"
+ }
+ ],
+ "customDnsConfigs": [
+ {
+ "fqdn": "abc3.cosmos1.com",
+ "ipAddresses": [
+ "192.168.0.6"
+ ]
+ },
+ {
+ "fqdn": "abc4.cosmos1.com",
+ "ipAddresses": [
+ "192.168.0.7"
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateEndpointListAll.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateEndpointListAll.json
new file mode 100644
index 000000000000..a7bd0482b7a8
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateEndpointListAll.json
@@ -0,0 +1,156 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subId"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateEndpoints/pe1",
+ "name": "pe1",
+ "type": "Microsoft.Network/privateEndpoints",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateLinkServiceConnections": [
+ {
+ "properties": {
+ "privateLinkServiceId": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateLinkServices/testPls1",
+ "groupIds": [
+ "groupIdFromResource"
+ ],
+ "requestMessage": "Please approve my connection for pe1.",
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Auto-approved",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ ],
+ "subnet": {
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet"
+ },
+ "networkInterfaces": [
+ {
+ "id": "/subscriptions/subId/resourceGroups/rg1/provders/Microsoft.Network/networkInterfaces/pe1.nic.abcd1234"
+ }
+ ],
+ "customDnsConfigs": [
+ {
+ "fqdn": "abc.cosmos.com",
+ "ipAddresses": [
+ "192.168.0.4"
+ ]
+ },
+ {
+ "fqdn": "abc2.cosmos.com",
+ "ipAddresses": [
+ "192.168.0.5"
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "id": "/subscriptions/subId/resourceGroups/rg2/providers/Microsoft.Network/privateEndpoints/pe2",
+ "name": "pe2",
+ "type": "Microsoft.Network/privateEndpoints",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateLinkServiceConnections": [],
+ "manualPrivateLinkServiceConnections": [
+ {
+ "properties": {
+ "privateLinkServiceId": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateLinkServices/testPls2",
+ "groupIds": [
+ "groupIdFromResource"
+ ],
+ "requestMessage": "Please manually approve my connection for pe2.",
+ "privateLinkServiceConnectionState": {
+ "status": "Pending",
+ "description": "Awaiting approval",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ ],
+ "subnet": {
+ "id": "/subscriptions/subId/resourceGroups/rg2/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet2"
+ },
+ "networkInterfaces": [
+ {
+ "id": "/subscriptions/subId/resourceGroups/rg2/provders/Microsoft.Network/networkInterfaces/pe2.nic.zyxw9876"
+ }
+ ],
+ "customDnsConfigs": [
+ {
+ "fqdn": "abc3.cosmos1.com",
+ "ipAddresses": [
+ "192.168.0.5"
+ ]
+ },
+ {
+ "fqdn": "abc4.cosmos1.com",
+ "ipAddresses": [
+ "192.168.0.6"
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "id": "/subscriptions/subId/resourceGroups/rg3/providers/Microsoft.Network/privateEndpoints/pe3",
+ "name": "pe3",
+ "type": "Microsoft.Network/privateEndpoints",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateLinkServiceConnections": [
+ {
+ "properties": {
+ "privateLinkServiceId": "/subscriptions/subId/resourceGroups/rg3/providers/Microsoft.Network/privateLinkServices/testPls3",
+ "groupIds": [
+ "groupIdFromResource"
+ ],
+ "requestMessage": "Please approve my connection for pe3.",
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Auto-approved",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ ],
+ "subnet": {
+ "id": "/subscriptions/subId/resourceGroups/rg3/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet3"
+ },
+ "networkInterfaces": [
+ {
+ "id": "/subscriptions/subId/resourceGroups/rg3/provders/Microsoft.Network/networkInterfaces/pe3.nic.efgh5463"
+ }
+ ],
+ "customDnsConfigs": [
+ {
+ "fqdn": "abc5.cosmos2.com",
+ "ipAddresses": [
+ "192.168.0.7"
+ ]
+ },
+ {
+ "fqdn": "abc6.cosmos2.com",
+ "ipAddresses": [
+ "192.168.0.8"
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateLinkServiceCreate.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateLinkServiceCreate.json
new file mode 100644
index 000000000000..9dac1669f796
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateLinkServiceCreate.json
@@ -0,0 +1,155 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subId",
+ "resourceGroupName": "rg1",
+ "serviceName": "testPls",
+ "parameters": {
+ "location": "eastus",
+ "properties": {
+ "visibility": {
+ "subscriptions": [
+ "subscription1",
+ "subscription2",
+ "subscription3"
+ ]
+ },
+ "autoApproval": {
+ "subscriptions": [
+ "subscription1",
+ "subscription2"
+ ]
+ },
+ "fqdns": [
+ "fqdn1",
+ "fqdn2",
+ "fqdn3"
+ ],
+ "loadBalancerFrontendIpConfigurations": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"
+ }
+ ],
+ "ipConfigurations": [
+ {
+ "name": "fe-lb",
+ "properties": {
+ "privateIPAddress": "10.0.1.4",
+ "privateIPAllocationMethod": "Static",
+ "privateIPAddressVersion": "IPv4",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb"
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "testPls",
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateLinkServices/testPls",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "visibility": {
+ "subscriptions": [
+ "subscription1",
+ "subscription2",
+ "subscription3"
+ ]
+ },
+ "autoApproval": {
+ "subscriptions": [
+ "subscription1",
+ "subscription2"
+ ]
+ },
+ "fqdns": [
+ "fqdn1",
+ "fqdn2",
+ "fqdn3"
+ ],
+ "alias": "ContosoService.{guid}.azure.privatelinkservice",
+ "loadBalancerFrontendIpConfigurations": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"
+ }
+ ],
+ "ipConfigurations": [
+ {
+ "name": "fe-lb",
+ "properties": {
+ "privateIPAddress": "10.0.1.4",
+ "privateIPAllocationMethod": "Static",
+ "privateIPAddressVersion": "IPv4",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb"
+ }
+ }
+ }
+ ],
+ "networkInterfaces": [
+ {
+ "id": "/subscriptions/subId/resourceGroups/rg1/provders/Microsoft.Network/networkInterfaces/testPls.nic.abcd1234"
+ }
+ ]
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "testPls",
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateLinkServices/testPls",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "visibility": {
+ "subscriptions": [
+ "subscription1",
+ "subscription2",
+ "subscription3"
+ ]
+ },
+ "autoApproval": {
+ "subscriptions": [
+ "subscription1",
+ "subscription2"
+ ]
+ },
+ "fqdns": [
+ "fqdn1",
+ "fqdn2",
+ "fqdn3"
+ ],
+ "alias": "ContosoService.{guid}.azure.privatelinkservice",
+ "loadBalancerFrontendIpConfigurations": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"
+ }
+ ],
+ "ipConfigurations": [
+ {
+ "name": "fe-lb",
+ "properties": {
+ "privateIPAddress": "10.0.1.4",
+ "privateIPAllocationMethod": "Static",
+ "privateIPAddressVersion": "IPv4",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb"
+ }
+ }
+ }
+ ],
+ "networkInterfaces": [
+ {
+ "id": "/subscriptions/subId/resourceGroups/rg1/provders/Microsoft.Network/networkInterfaces/testPls.nic.abcd1234"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateLinkServiceDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateLinkServiceDelete.json
new file mode 100644
index 000000000000..1b9ea369f73b
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateLinkServiceDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subId",
+ "resourceGroupName": "rg1",
+ "serviceName": "testPls"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateLinkServiceDeletePrivateEndpointConnection.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateLinkServiceDeletePrivateEndpointConnection.json
new file mode 100644
index 000000000000..68c9ce83df13
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateLinkServiceDeletePrivateEndpointConnection.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subId",
+ "resourceGroupName": "rg1",
+ "serviceName": "testPls",
+ "peConnectionName": "testPlePeConnection"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateLinkServiceGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateLinkServiceGet.json
new file mode 100644
index 000000000000..215119c8a051
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateLinkServiceGet.json
@@ -0,0 +1,77 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subId",
+ "resourceGroupName": "rg1",
+ "serviceName": "testPls"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "testPls",
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateLinkServices/testPls",
+ "type": "Microsoft.Network/privateLinkServices",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "visibility": {
+ "subscriptions": [
+ "subscription1",
+ "subscription2",
+ "subscription3"
+ ]
+ },
+ "autoApproval": {
+ "subscriptions": [
+ "subscription1",
+ "subscription2"
+ ]
+ },
+ "fqdns": [
+ "fqdn1",
+ "fqdn2",
+ "fqdn3"
+ ],
+ "alias": "ContosoService.{guid}.azure.privatelinkservice",
+ "loadBalancerFrontendIpConfigurations": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"
+ }
+ ],
+ "ipConfigurations": [
+ {
+ "name": "fe-lb",
+ "properties": {
+ "privateIPAddress": "10.0.1.4",
+ "privateIPAllocationMethod": "Static",
+ "privateIPAddressVersion": "IPv4",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb"
+ }
+ }
+ }
+ ],
+ "privateEndpointConnections": [
+ {
+ "name": "privateEndpointConnection",
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateEndpoints/testPe"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "approved it for some reason."
+ }
+ }
+ }
+ ],
+ "networkInterfaces": [
+ {
+ "id": "/subscriptions/subId/resourceGroups/rg1/provders/Microsoft.Network/networkInterfaces/testPls.nic.abcd1234"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateLinkServiceGetPrivateEndpointConnection.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateLinkServiceGetPrivateEndpointConnection.json
new file mode 100644
index 000000000000..eaacbdb67314
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateLinkServiceGetPrivateEndpointConnection.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subId",
+ "resourceGroupName": "rg1",
+ "serviceName": "testPls",
+ "peConnectionName": "testPlePeConnection"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "testPlePeConnection",
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateEndpoints/testPe"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "approved it for some reason."
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateLinkServiceList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateLinkServiceList.json
new file mode 100644
index 000000000000..92fdbd6e363b
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateLinkServiceList.json
@@ -0,0 +1,141 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subId",
+ "resourceGroupName": "rg1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "testPls1",
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateLinkServices/testPls1",
+ "type": "Microsoft.Network/privateLinkServices",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "visibility": {
+ "subscriptions": [
+ "subscription1"
+ ]
+ },
+ "autoApproval": {
+ "subscriptions": [
+ "subscription1"
+ ]
+ },
+ "fqdns": [
+ "fqdn1",
+ "fqdn2"
+ ],
+ "alias": "ContosoService.{guid}.azure.privatelinkservice",
+ "loadBalancerFrontendIpConfigurations": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb1"
+ }
+ ],
+ "ipConfigurations": [
+ {
+ "name": "fe-lb1",
+ "properties": {
+ "privateIPAddress": "10.0.1.4",
+ "privateIPAllocationMethod": "Static",
+ "privateIPAddressVersion": "IPv4",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb1"
+ }
+ }
+ }
+ ],
+ "privateEndpointConnections": [
+ {
+ "name": "pec1",
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateEndpoints/testPe1"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "approved it for some reason."
+ }
+ }
+ }
+ ],
+ "networkInterfaces": [
+ {
+ "id": "/subscriptions/subId/resourceGroups/rg1/provders/Microsoft.Network/networkInterfaces/testPls1.nic.abcd1234"
+ }
+ ]
+ }
+ },
+ {
+ "name": "testPls2",
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateLinkServices/testPls2",
+ "type": "Microsoft.Network/privateLinkServices",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "visibility": {
+ "subscriptions": [
+ "subscription1",
+ "subscription2",
+ "subscription3"
+ ]
+ },
+ "autoApproval": {
+ "subscriptions": [
+ "subscription1",
+ "subscription2"
+ ]
+ },
+ "fqdns": [
+ "fqdn1",
+ "fqdn2",
+ "fqdn3"
+ ],
+ "alias": "ContosoService.{guid}.azure.privatelinkservice",
+ "loadBalancerFrontendIpConfigurations": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb2"
+ }
+ ],
+ "ipConfigurations": [
+ {
+ "name": "fe-lb2",
+ "properties": {
+ "privateIPAddress": "10.0.1.5",
+ "privateIPAllocationMethod": "Static",
+ "privateIPAddressVersion": "IPv4",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb2"
+ }
+ }
+ }
+ ],
+ "privateEndpointConnections": [
+ {
+ "name": "pec2",
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateEndpoints/testPe2"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "approved it for some reason."
+ }
+ }
+ }
+ ],
+ "networkInterfaces": [
+ {
+ "id": "/subscriptions/subId/resourceGroups/rg1/provders/Microsoft.Network/networkInterfaces/testPls2.nic.efgh5678"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateLinkServiceListAll.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateLinkServiceListAll.json
new file mode 100644
index 000000000000..cb9c3102b097
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateLinkServiceListAll.json
@@ -0,0 +1,142 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subId"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "testPls1",
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateLinkServices/testPls1",
+ "type": "Microsoft.Network/privateLinkServices",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "visibility": {
+ "subscriptions": [
+ "subscription1",
+ "subscription2",
+ "subscription3"
+ ]
+ },
+ "autoApproval": {
+ "subscriptions": [
+ "subscription1",
+ "subscription2"
+ ]
+ },
+ "fqdns": [
+ "fqdn1",
+ "fqdn2",
+ "fqdn3"
+ ],
+ "alias": "ContosoService.{guid}.azure.privatelinkservice",
+ "loadBalancerFrontendIpConfigurations": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb1"
+ }
+ ],
+ "ipConfigurations": [
+ {
+ "name": "fe-lb1",
+ "properties": {
+ "privateIPAddress": "10.0.1.4",
+ "privateIPAllocationMethod": "Static",
+ "privateIPAddressVersion": "IPv4",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb1"
+ }
+ }
+ }
+ ],
+ "privateEndpointConnections": [
+ {
+ "name": "pec1",
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateEndpoints/testPe1"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "approved it for some reason."
+ }
+ }
+ }
+ ],
+ "networkInterfaces": [
+ {
+ "id": "/subscriptions/subId/resourceGroups/rg1/provders/Microsoft.Network/networkInterfaces/testPls1.nic.abcd1234"
+ }
+ ]
+ }
+ },
+ {
+ "name": "testPls2",
+ "id": "/subscriptions/subId/resourceGroups/rg2/providers/Microsoft.Network/privateLinkServices/testPls2",
+ "type": "Microsoft.Network/privateLinkServices",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "visibility": {
+ "subscriptions": [
+ "subscription1",
+ "subscription2"
+ ]
+ },
+ "autoApproval": {
+ "subscriptions": [
+ "subscription1",
+ "subscription2"
+ ]
+ },
+ "fqdns": [
+ "fqdn1",
+ "fqdn2"
+ ],
+ "alias": "ContosoService.{guid}.azure.privatelinkservice",
+ "loadBalancerFrontendIpConfigurations": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb2"
+ }
+ ],
+ "ipConfigurations": [
+ {
+ "name": "fe-lb2",
+ "properties": {
+ "privateIPAddress": "10.0.1.5",
+ "privateIPAllocationMethod": "Static",
+ "privateIPAddressVersion": "IPv4",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb2"
+ }
+ }
+ }
+ ],
+ "privateEndpointConnections": [
+ {
+ "name": "pec1",
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/subId/resourceGroups/rg2/providers/Microsoft.Network/privateEndpoints/testPe2"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "approved it for some reason."
+ }
+ }
+ }
+ ],
+ "networkInterfaces": [
+ {
+ "id": "/subscriptions/subId/resourceGroups/rg2/provders/Microsoft.Network/networkInterfaces/testPls2.nic.efgh5678"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateLinkServiceListPrivateEndpointConnection.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateLinkServiceListPrivateEndpointConnection.json
new file mode 100644
index 000000000000..017414d2acc1
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateLinkServiceListPrivateEndpointConnection.json
@@ -0,0 +1,40 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subId",
+ "resourceGroupName": "rg1",
+ "serviceName": "testPls"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "testPlePeConnection1",
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateEndpoints/testPe1"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "approved it for some reason."
+ }
+ }
+ },
+ {
+ "name": "testPlePeConnection2",
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateEndpoints/testPe2"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Rejected",
+ "description": "rejected by some reason."
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateLinkServiceUpdatePrivateEndpointConnection.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateLinkServiceUpdatePrivateEndpointConnection.json
new file mode 100644
index 000000000000..490401755a14
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PrivateLinkServiceUpdatePrivateEndpointConnection.json
@@ -0,0 +1,37 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subId",
+ "resourceGroupName": "rg1",
+ "serviceName": "testPls",
+ "peConnectionName": "testPlePeConnection",
+ "parameters": {
+ "name": "testPlePeConnection",
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateEndpoints/testPe"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "approved it for some reason."
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "testPlePeConnection",
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/privateEndpoints/testPe"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "approved it for some reason."
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PublicIpAddressCreateCustomizedValues.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PublicIpAddressCreateCustomizedValues.json
new file mode 100644
index 000000000000..d623bcc83e04
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PublicIpAddressCreateCustomizedValues.json
@@ -0,0 +1,73 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "publicIpAddressName": "test-ip",
+ "zones": [
+ "1"
+ ],
+ "parameters": {
+ "properties": {
+ "publicIPAllocationMethod": "Static",
+ "idleTimeoutInMinutes": 10,
+ "publicIPAddressVersion": "IPv4"
+ },
+ "sku": {
+ "name": "Standard",
+ "tier": "Global"
+ },
+ "location": "eastus"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "testDNS-ip",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/test-ip",
+ "location": "eastus",
+ "zones": [
+ "1"
+ ],
+ "properties": {
+ "provisioningState": "Succeeded",
+ "publicIPAddressVersion": "IPv4",
+ "publicIPAllocationMethod": "Static",
+ "idleTimeoutInMinutes": 10,
+ "ipConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/testDNS649/ipConfigurations/ipconfig1"
+ }
+ },
+ "sku": {
+ "name": "Standard",
+ "tier": "Global"
+ },
+ "type": "Microsoft.Network/publicIPAddresses"
+ }
+ },
+ "201": {
+ "body": {
+ "name": "testDNS-ip",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/test-ip",
+ "location": "eastus",
+ "zones": [
+ "1"
+ ],
+ "properties": {
+ "provisioningState": "Succeeded",
+ "publicIPAddressVersion": "IPv4",
+ "publicIPAllocationMethod": "Static",
+ "idleTimeoutInMinutes": 10,
+ "ipConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/testDNS649/ipConfigurations/ipconfig1"
+ }
+ },
+ "sku": {
+ "name": "Standard",
+ "tier": "Global"
+ },
+ "type": "Microsoft.Network/publicIPAddresses"
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PublicIpAddressCreateDefaults.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PublicIpAddressCreateDefaults.json
new file mode 100644
index 000000000000..a79a3f83fb00
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PublicIpAddressCreateDefaults.json
@@ -0,0 +1,53 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "publicIpAddressName": "test-ip",
+ "parameters": {
+ "location": "eastus"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "testDNS-ip",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/test-ip",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "publicIPAddressVersion": "IPv4",
+ "publicIPAllocationMethod": "Dynamic",
+ "idleTimeoutInMinutes": 4,
+ "ipConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/testDNS649/ipConfigurations/ipconfig1"
+ }
+ },
+ "sku": {
+ "name": "Basic"
+ },
+ "type": "Microsoft.Network/publicIPAddresses"
+ }
+ },
+ "201": {
+ "body": {
+ "name": "testDNS-ip",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/test-ip",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "publicIPAddressVersion": "IPv4",
+ "publicIPAllocationMethod": "Dynamic",
+ "idleTimeoutInMinutes": 4,
+ "ipConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/testDNS649/ipConfigurations/ipconfig1"
+ }
+ },
+ "sku": {
+ "name": "Basic"
+ },
+ "type": "Microsoft.Network/publicIPAddresses"
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PublicIpAddressCreateDns.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PublicIpAddressCreateDns.json
new file mode 100644
index 000000000000..5a90909a320d
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PublicIpAddressCreateDns.json
@@ -0,0 +1,60 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "publicIpAddressName": "test-ip",
+ "parameters": {
+ "properties": {
+ "dnsSettings": {
+ "domainNameLabel": "dnslbl"
+ }
+ },
+ "location": "eastus"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "testDNS-ip",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/test-ip",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "publicIPAddressVersion": "IPv4",
+ "publicIPAllocationMethod": "Dynamic",
+ "idleTimeoutInMinutes": 4,
+ "dnsSettings": {
+ "domainNameLabel": "dnslbl",
+ "fqdn": "dnslbl.westus.cloudapp.azure.com"
+ },
+ "ipConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/testDNS649/ipConfigurations/ipconfig1"
+ }
+ },
+ "type": "Microsoft.Network/publicIPAddresses"
+ }
+ },
+ "201": {
+ "body": {
+ "name": "testDNS-ip",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/test-ip",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "publicIPAddressVersion": "IPv4",
+ "publicIPAllocationMethod": "Dynamic",
+ "idleTimeoutInMinutes": 4,
+ "dnsSettings": {
+ "domainNameLabel": "dnslbl",
+ "fqdn": "dnslbl.westus.cloudapp.azure.com"
+ },
+ "ipConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/testDNS649/ipConfigurations/ipconfig1"
+ }
+ },
+ "type": "Microsoft.Network/publicIPAddresses"
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PublicIpAddressDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PublicIpAddressDelete.json
new file mode 100644
index 000000000000..ac2add5ad6d7
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PublicIpAddressDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "publicIpAddressName": "test-ip"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PublicIpAddressGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PublicIpAddressGet.json
new file mode 100644
index 000000000000..c1784bb126c4
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PublicIpAddressGet.json
@@ -0,0 +1,37 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "publicIpAddressName": "testDNS-ip"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "testDNS-ip",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/testDNS-ip",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "publicIPAddressVersion": "IPv4",
+ "publicIPAllocationMethod": "Dynamic",
+ "idleTimeoutInMinutes": 4,
+ "ipConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/testDNS649/ipConfigurations/ipconfig1"
+ },
+ "ipTags": [
+ {
+ "ipTagType": "FirstPartyUsage",
+ "tag": "SQL"
+ },
+ {
+ "ipTagType": "FirstPartyUsage",
+ "tag": "Storage"
+ }
+ ]
+ },
+ "type": "Microsoft.Network/publicIPAddresses"
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PublicIpAddressList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PublicIpAddressList.json
new file mode 100644
index 000000000000..126485f0713c
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PublicIpAddressList.json
@@ -0,0 +1,60 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "testDNS-ip",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/testDNS-ip",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "publicIPAddressVersion": "IPv4",
+ "publicIPAllocationMethod": "Dynamic",
+ "idleTimeoutInMinutes": 4,
+ "ipConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/testDNS649/ipConfigurations/ipconfig1"
+ },
+ "ipTags": [
+ {
+ "ipTagType": "FirstPartyUsage",
+ "tag": "SQL"
+ },
+ {
+ "ipTagType": "FirstPartyUsage",
+ "tag": "Storage"
+ }
+ ]
+ },
+ "type": "Microsoft.Network/publicIPAddresses"
+ },
+ {
+ "name": "ip03",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/ip03",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ipAddress": "40.85.154.247",
+ "publicIPAddressVersion": "IPv4",
+ "publicIPAllocationMethod": "Dynamic",
+ "idleTimeoutInMinutes": 4,
+ "dnsSettings": {
+ "domainNameLabel": "testlbl",
+ "fqdn": "testlbl.westus.cloudapp.azure.com"
+ },
+ "ipConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/testLb/frontendIPConfigurations/LoadBalancerFrontEnd"
+ }
+ },
+ "type": "Microsoft.Network/publicIPAddresses"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PublicIpAddressListAll.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PublicIpAddressListAll.json
new file mode 100644
index 000000000000..f8ca96e9842d
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PublicIpAddressListAll.json
@@ -0,0 +1,49 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "testDNS-ip",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/testDNS-ip",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "publicIPAddressVersion": "IPv4",
+ "publicIPAllocationMethod": "Dynamic",
+ "idleTimeoutInMinutes": 4,
+ "ipConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/testDNS649/ipConfigurations/ipconfig1"
+ }
+ },
+ "type": "Microsoft.Network/publicIPAddresses"
+ },
+ {
+ "name": "ip01",
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/publicIPAddresses/ip01",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ipAddress": "40.85.154.247",
+ "publicIPAddressVersion": "IPv4",
+ "publicIPAllocationMethod": "Dynamic",
+ "idleTimeoutInMinutes": 4,
+ "dnsSettings": {
+ "domainNameLabel": "testlbl",
+ "fqdn": "testlbl.westus.cloudapp.azure.com"
+ },
+ "ipConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/loadBalancers/testLb/frontendIPConfigurations/LoadBalancerFrontEnd"
+ }
+ },
+ "type": "Microsoft.Network/publicIPAddresses"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PublicIpAddressUpdateTags.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PublicIpAddressUpdateTags.json
new file mode 100644
index 000000000000..257696ebadd4
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PublicIpAddressUpdateTags.json
@@ -0,0 +1,37 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "publicIpAddressName": "test-ip",
+ "parameters": {
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "testDNS-ip",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/test-ip",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "publicIPAddressVersion": "IPv4",
+ "publicIPAllocationMethod": "Static",
+ "idleTimeoutInMinutes": 10,
+ "ipConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/testDNS649/ipConfigurations/ipconfig1"
+ }
+ },
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "type": "Microsoft.Network/publicIPAddresses"
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PublicIpPrefixCreateCustomizedValues.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PublicIpPrefixCreateCustomizedValues.json
new file mode 100644
index 000000000000..db4cf3b92ec7
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PublicIpPrefixCreateCustomizedValues.json
@@ -0,0 +1,72 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "publicIpPrefixName": "test-ipprefix",
+ "zones": [
+ "1"
+ ],
+ "parameters": {
+ "location": "westus",
+ "properties": {
+ "publicIPAddressVersion": "IPv4",
+ "prefixLength": 30
+ },
+ "sku": {
+ "name": "Standard",
+ "tier": "Regional"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "test-ipprefix",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPPrefixes/test-ipprefix",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "location": "westus",
+ "zones": [
+ "1"
+ ],
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-00000000",
+ "publicIPAddressVersion": "IPv4",
+ "prefixLength": 30,
+ "ipPrefix": "192.168.254.2/30",
+ "ipTags": []
+ },
+ "sku": {
+ "name": "Standard",
+ "tier": "Regional"
+ },
+ "type": "Microsoft.Network/publicIPPrefixes"
+ }
+ },
+ "201": {
+ "body": {
+ "name": "test-ipprefix",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/test-ipprefix",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "location": "westus",
+ "zones": [
+ "1"
+ ],
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-00000000",
+ "publicIPAddressVersion": "IPv4",
+ "prefixLength": 30,
+ "ipPrefix": "192.168.254.2/30",
+ "ipTags": []
+ },
+ "sku": {
+ "name": "Standard",
+ "tier": "Regional"
+ },
+ "type": "Microsoft.Network/publicIPPrefixes"
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PublicIpPrefixCreateDefaults.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PublicIpPrefixCreateDefaults.json
new file mode 100644
index 000000000000..ccbe0425d0d3
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PublicIpPrefixCreateDefaults.json
@@ -0,0 +1,59 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "publicIpPrefixName": "test-ipprefix",
+ "parameters": {
+ "location": "westus",
+ "properties": {
+ "prefixLength": 30
+ },
+ "sku": {
+ "name": "Standard"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "test-ipprefix",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPPrefixes/test-ipprefix",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-00000000",
+ "publicIPAddressVersion": "IPv4",
+ "prefixLength": 30,
+ "ipPrefix": "192.168.254.2/30",
+ "ipTags": []
+ },
+ "sku": {
+ "name": "Standard"
+ },
+ "type": "Microsoft.Network/publicIPPrefixes"
+ }
+ },
+ "201": {
+ "body": {
+ "name": "test-ipprefix",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPPrefixes/test-ipprefix",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-00000000",
+ "publicIPAddressVersion": "IPv4",
+ "prefixLength": 30,
+ "ipPrefix": "192.168.254.2/30",
+ "ipTags": []
+ },
+ "sku": {
+ "name": "Standard"
+ },
+ "type": "Microsoft.Network/publicIPPrefixes"
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PublicIpPrefixDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PublicIpPrefixDelete.json
new file mode 100644
index 000000000000..89ea87cbb1eb
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PublicIpPrefixDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "publicIpPrefixName": "test-ipprefix"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PublicIpPrefixGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PublicIpPrefixGet.json
new file mode 100644
index 000000000000..cca94954dc4f
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PublicIpPrefixGet.json
@@ -0,0 +1,35 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "publicIpPrefixName": "test-ipprefix"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "test-ipprefix",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPPrefixes/test-ipprefix",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-00000000",
+ "publicIPAddressVersion": "IPv4",
+ "prefixLength": 30,
+ "ipPrefix": "192.168.254.2/30",
+ "ipTags": [],
+ "publicIPAddresses": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/PublicIpAddress1"
+ }
+ ]
+ },
+ "sku": {
+ "name": "Standard"
+ },
+ "type": "Microsoft.Network/publicIPPrefixes"
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PublicIpPrefixList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PublicIpPrefixList.json
new file mode 100644
index 000000000000..cdeda547a070
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PublicIpPrefixList.json
@@ -0,0 +1,56 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "test-ipprefix",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPPrefixes/test-ipprefix",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-00000000",
+ "publicIPAddressVersion": "IPv4",
+ "prefixLength": 30,
+ "ipPrefix": "40.85.154.2/30",
+ "ipTags": [
+ {
+ "ipTagType": "FirstPartyUsage",
+ "tag": "SQL"
+ }
+ ]
+ },
+ "sku": {
+ "name": "Standard"
+ },
+ "type": "Microsoft.Network/publicIPPrefixes"
+ },
+ {
+ "name": "ipprefix03",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPPrefixes/ipprefix03",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-00000000",
+ "publicIPAddressVersion": "IPv4",
+ "prefixLength": 31,
+ "ipPrefix": "40.85.153.2/31",
+ "ipTags": []
+ },
+ "sku": {
+ "name": "Standard"
+ },
+ "type": "Microsoft.Network/publicIPPrefixes"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PublicIpPrefixListAll.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PublicIpPrefixListAll.json
new file mode 100644
index 000000000000..5c991aea045e
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PublicIpPrefixListAll.json
@@ -0,0 +1,76 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "test-ipprefix",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPPrefixes/test-ipprefix",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-00000000",
+ "publicIPAddressVersion": "IPv4",
+ "prefixLength": 30,
+ "ipPrefix": "41.85.154.247/30",
+ "ipTags": [],
+ "publicIPAddresses": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/PublicIpAddress1"
+ }
+ ]
+ },
+ "sku": {
+ "name": "Standard"
+ },
+ "type": "Microsoft.Network/publicIPPrefixes"
+ },
+ {
+ "name": "ipprefix01",
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/publicIPPrefixes/ipprefix01",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-00000000",
+ "ipPrefix": "40.85.154.247/30",
+ "publicIPAddressVersion": "IPv4",
+ "prefixLength": 30,
+ "ipTags": []
+ },
+ "sku": {
+ "name": "Standard"
+ },
+ "type": "Microsoft.Network/publicIPPrefixes"
+ },
+ {
+ "name": "pfx",
+ "id": "/subscriptions/subid/resourceGroups/rg3/providers/Microsoft.Network/publicIPPrefixes/pfx",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "type": "Microsoft.Network/publicIPPrefixes",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-00000000",
+ "ipPrefix": "25.101.84.16/30",
+ "publicIPAddressVersion": "IPv4",
+ "prefixLength": 30,
+ "ipTags": [],
+ "loadBalancerFrontendIpConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg3/providers/Microsoft.Network/loadBalancers/lb-pfx/frontendIPConfigurations/ipconfig1"
+ }
+ },
+ "sku": {
+ "name": "Standard"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PublicIpPrefixUpdateTags.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PublicIpPrefixUpdateTags.json
new file mode 100644
index 000000000000..fcaff4f53d71
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/PublicIpPrefixUpdateTags.json
@@ -0,0 +1,40 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "publicIpPrefixName": "test-ipprefix",
+ "parameters": {
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "test-ipprefix",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPPrefixes/test-ipprefix",
+ "etag": "W/\"00000000-0000-0000-0000-00000000\"",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-00000000",
+ "publicIPAddressVersion": "IPv4",
+ "ipPrefix": "40.85.154.247/30",
+ "prefixLength": 30,
+ "ipTags": []
+ },
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "sku": {
+ "name": "Standard"
+ },
+ "type": "Microsoft.Network/publicIPPrefixes"
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteFilterCreate.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteFilterCreate.json
new file mode 100644
index 000000000000..2e2de42cbd15
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteFilterCreate.json
@@ -0,0 +1,95 @@
+{
+ "parameters": {
+ "routeFilterName": "filterName",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "routeFilterParameters": {
+ "location": "West US",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "rules": [
+ {
+ "name": "ruleName",
+ "properties": {
+ "access": "Allow",
+ "routeFilterRuleType": "Community",
+ "communities": [
+ "12076:5030",
+ "12076:5040"
+ ]
+ }
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/routeFilters/filterName",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "name": "filterName",
+ "type": "Microsoft.Network/routeFilters",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "rules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/routeFilters/filterName/routeFilterRules/ruleName",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "name": "ruleName",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "access": "Allow",
+ "routeFilterRuleType": "Community",
+ "communities": [
+ "12076:5030",
+ "12076:5040"
+ ]
+ }
+ }
+ ],
+ "peerings": []
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/routeFilters/filterName",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "name": "filterName",
+ "type": "Microsoft.Network/routeFilters",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "rules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/routeFilters/filterName/routeFilterRules/ruleName",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "name": "ruleName",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "access": "Allow",
+ "routeFilterRuleType": "Community",
+ "communities": [
+ "12076:5030",
+ "12076:5040"
+ ]
+ }
+ }
+ ],
+ "peerings": []
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteFilterDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteFilterDelete.json
new file mode 100644
index 000000000000..9f4cce5affa9
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteFilterDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "routeFilterName": "filterName",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteFilterGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteFilterGet.json
new file mode 100644
index 000000000000..228f891005b8
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteFilterGet.json
@@ -0,0 +1,42 @@
+{
+ "parameters": {
+ "routeFilterName": "filterName",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/routeFilters/filterName",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "name": "filterName",
+ "type": "Microsoft.Network/routeFilters",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "rules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/routeFilters/filterName/routeFilterRules/ruleName",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "name": "ruleName",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "access": "Allow",
+ "routeFilterRuleType": "Community",
+ "communities": [
+ "12076:5030",
+ "12076:5040"
+ ]
+ }
+ }
+ ],
+ "peerings": []
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteFilterList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteFilterList.json
new file mode 100644
index 000000000000..f95574ce3005
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteFilterList.json
@@ -0,0 +1,44 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/routeFilters/filterName",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "name": "filterName",
+ "type": "Microsoft.Network/routeFilters",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "rules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/routeFilters/filterName/routeFilterRules/ruleName",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "name": "ruleName",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "access": "Allow",
+ "routeFilterRuleType": "Community",
+ "communities": [
+ "12076:5030",
+ "12076:5040"
+ ]
+ }
+ }
+ ],
+ "peerings": []
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteFilterListByResourceGroup.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteFilterListByResourceGroup.json
new file mode 100644
index 000000000000..9faa5ea15744
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteFilterListByResourceGroup.json
@@ -0,0 +1,45 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "resourceGroupName": "rg1",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/routeFilters/filterName",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "name": "filterName",
+ "type": "Microsoft.Network/routeFilters",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "rules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/routeFilters/filterName/routeFilterRules/ruleName",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "name": "ruleName",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "access": "Allow",
+ "routeFilterRuleType": "Community",
+ "communities": [
+ "12076:5030",
+ "12076:5040"
+ ]
+ }
+ }
+ ],
+ "peerings": []
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteFilterRuleCreate.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteFilterRuleCreate.json
new file mode 100644
index 000000000000..5fd9f55eb56e
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteFilterRuleCreate.json
@@ -0,0 +1,53 @@
+{
+ "parameters": {
+ "routeFilterName": "filterName",
+ "ruleName": "ruleName",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "routeFilterRuleParameters": {
+ "properties": {
+ "access": "Allow",
+ "routeFilterRuleType": "Community",
+ "communities": [
+ "12076:5030",
+ "12076:5040"
+ ]
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/routeFilters/filterName/routeFilterRules/ruleName",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "name": "ruleName",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "access": "Allow",
+ "routeFilterRuleType": "Community",
+ "communities": [
+ "12076:5030",
+ "12076:5040"
+ ]
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/routeFilters/filterName/routeFilterRules/ruleName",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "name": "ruleName",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "access": "Allow",
+ "routeFilterRuleType": "Community",
+ "communities": [
+ "12076:5030",
+ "12076:5040"
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteFilterRuleDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteFilterRuleDelete.json
new file mode 100644
index 000000000000..add183794a63
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteFilterRuleDelete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "routeFilterName": "filterName",
+ "ruleName": "ruleName",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteFilterRuleGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteFilterRuleGet.json
new file mode 100644
index 000000000000..8606087c0e77
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteFilterRuleGet.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "ruleName": "filterName",
+ "routeFilterName": "filterName",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/routeFilters/filterName/routeFilterRules/ruleName",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "name": "ruleName",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "access": "Allow",
+ "routeFilterRuleType": "Community",
+ "communities": [
+ "12076:5030",
+ "12076:5040"
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteFilterRuleListByRouteFilter.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteFilterRuleListByRouteFilter.json
new file mode 100644
index 000000000000..2299e8503fc4
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteFilterRuleListByRouteFilter.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "resourceGroupName": "rg1",
+ "subscriptionId": "subid",
+ "routeFilterName": "filterName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/routeFilters/filterName/routeFilterRules/ruleName",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "name": "ruleName",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "access": "Allow",
+ "routeFilterRuleType": "Community",
+ "communities": [
+ "12076:5030",
+ "12076:5040"
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteFilterUpdateTags.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteFilterUpdateTags.json
new file mode 100644
index 000000000000..76682b1038fd
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteFilterUpdateTags.json
@@ -0,0 +1,46 @@
+{
+ "parameters": {
+ "routeFilterName": "filterName",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "parameters": {
+ "tags": {
+ "key1": "value1"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/routeFilters/filterName",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "name": "filterName",
+ "type": "Microsoft.Network/routeFilters",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "rules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/routeFilters/filterName/routeFilterRules/ruleName",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "name": "ruleName",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "access": "Allow",
+ "routeFilterRuleType": "Community",
+ "communities": [
+ "12076:5030"
+ ]
+ }
+ }
+ ],
+ "peerings": []
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteTableCreate.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteTableCreate.json
new file mode 100644
index 000000000000..cb9c523c2f2f
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteTableCreate.json
@@ -0,0 +1,39 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "routeTableName": "testrt",
+ "parameters": {
+ "location": "westus"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "testrt",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/routeTables/testrt",
+ "type": "Microsoft.Network/routeTables",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "routes": [],
+ "disableBgpRoutePropagation": true
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "testrt",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/routeTables/testrt",
+ "type": "Microsoft.Network/routeTables",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "disableBgpRoutePropagation": true,
+ "routes": []
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteTableCreateWithRoute.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteTableCreateWithRoute.json
new file mode 100644
index 000000000000..fbf343d0ad25
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteTableCreateWithRoute.json
@@ -0,0 +1,70 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "routeTableName": "testrt",
+ "parameters": {
+ "properties": {
+ "disableBgpRoutePropagation": true,
+ "routes": [
+ {
+ "name": "route1",
+ "properties": {
+ "addressPrefix": "10.0.3.0/24",
+ "nextHopType": "VirtualNetworkGateway"
+ }
+ }
+ ]
+ },
+ "location": "westus"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "testrt",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/routeTables/testrt",
+ "type": "Microsoft.Network/routeTables",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "disableBgpRoutePropagation": true,
+ "routes": [
+ {
+ "name": "route1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/routeTables/testrt/routes/route1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "addressPrefix": "10.0.3.0/24",
+ "nextHopType": "VirtualNetworkGateway"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "testrt",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/routeTables/testrt",
+ "type": "Microsoft.Network/routeTables",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "routes": [
+ {
+ "name": "route1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/routeTables/testrt/routes/route1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "addressPrefix": "10.0.3.0/24",
+ "nextHopType": "VirtualNetworkGateway"
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteTableDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteTableDelete.json
new file mode 100644
index 000000000000..863ddf609a00
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteTableDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "routeTableName": "testrt"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteTableGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteTableGet.json
new file mode 100644
index 000000000000..92444cab3aa0
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteTableGet.json
@@ -0,0 +1,33 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "routeTableName": "testrt"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "testrt",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/routeTables/testrt",
+ "type": "Microsoft.Network/routeTables",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "disableBgpRoutePropagation": false,
+ "routes": [
+ {
+ "name": "route1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/routeTables/testrt/routes/route1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "addressPrefix": "10.0.3.0/24",
+ "nextHopType": "VirtualNetworkGateway"
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteTableList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteTableList.json
new file mode 100644
index 000000000000..b0ba20a59171
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteTableList.json
@@ -0,0 +1,47 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "testrt",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/routeTables/testrt",
+ "type": "Microsoft.Network/routeTables",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "disableBgpRoutePropagation": true,
+ "routes": [
+ {
+ "name": "route1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/routeTables/testrt/routes/route1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "addressPrefix": "10.0.3.0/24",
+ "nextHopType": "VirtualNetworkGateway"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "name": "testrt2",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/routeTables/testrt2",
+ "type": "Microsoft.Network/routeTables",
+ "location": "westus",
+ "properties": {
+ "disableBgpRoutePropagation": true,
+ "provisioningState": "Succeeded",
+ "routes": []
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteTableListAll.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteTableListAll.json
new file mode 100644
index 000000000000..65f75fd3f745
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteTableListAll.json
@@ -0,0 +1,44 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "testrt",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/routeTables/testrt",
+ "type": "Microsoft.Network/routeTables",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "routes": [
+ {
+ "name": "route1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/routeTables/testrt/routes/route1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "addressPrefix": "10.0.3.0/24",
+ "nextHopType": "VirtualNetworkGateway"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "name": "testrt3",
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/routeTables/testrt3",
+ "type": "Microsoft.Network/routeTables",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "routes": []
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteTableRouteCreate.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteTableRouteCreate.json
new file mode 100644
index 000000000000..e6799d877d96
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteTableRouteCreate.json
@@ -0,0 +1,39 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "routeTableName": "testrt",
+ "routeName": "route1",
+ "routeParameters": {
+ "properties": {
+ "addressPrefix": "10.0.3.0/24",
+ "nextHopType": "VirtualNetworkGateway"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "route1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/routeTables/testrt/routes/route1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "addressPrefix": "10.0.3.0/24",
+ "nextHopType": "VirtualNetworkGateway"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "route1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/routeTables/testrt/routes/route1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "addressPrefix": "10.0.3.0/24",
+ "nextHopType": "VirtualNetworkGateway"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteTableRouteDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteTableRouteDelete.json
new file mode 100644
index 000000000000..17ae70600a8a
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteTableRouteDelete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "routeTableName": "testrt",
+ "routeName": "route1"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteTableRouteGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteTableRouteGet.json
new file mode 100644
index 000000000000..7680c60970f5
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteTableRouteGet.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "routeTableName": "testrt",
+ "routeName": "route1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "route1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/routeTables/testrt/routes/route1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "addressPrefix": "10.0.3.0/24",
+ "nextHopType": "Internet"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteTableRouteList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteTableRouteList.json
new file mode 100644
index 000000000000..26f8500915c8
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteTableRouteList.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "routeTableName": "testrt"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "route1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/routeTables/testrt/routes/route1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "addressPrefix": "10.0.3.0/24",
+ "nextHopType": "Internet"
+ }
+ },
+ {
+ "name": "route2",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/routeTables/testrt/routes/route2",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "addressPrefix": "10.0.2.0/24",
+ "nextHopType": "VirtualNetworkGateway"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteTableUpdateTags.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteTableUpdateTags.json
new file mode 100644
index 000000000000..05876c567fb3
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/RouteTableUpdateTags.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "routeTableName": "testrt",
+ "parameters": {
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "testrt",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/routeTables/testrt",
+ "type": "Microsoft.Network/routeTables",
+ "location": "westus",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "routes": []
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/SecurityPartnerProviderDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/SecurityPartnerProviderDelete.json
new file mode 100644
index 000000000000..dc526e2de4ac
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/SecurityPartnerProviderDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "securityPartnerProviderName": "securityPartnerProvider"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/SecurityPartnerProviderGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/SecurityPartnerProviderGet.json
new file mode 100644
index 000000000000..03b82b09c098
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/SecurityPartnerProviderGet.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "securityPartnerProviderName": "securityPartnerProvider"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "securityPartnerProvider",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/securityPartnerProviders/securityPartnerProvider",
+ "type": "Microsoft.Network/securityPartnerProviders",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "securityProviderName": "ZScaler",
+ "connectionStatus": "Unknown",
+ "virtualHub": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub1"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/SecurityPartnerProviderListByResourceGroup.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/SecurityPartnerProviderListByResourceGroup.json
new file mode 100644
index 000000000000..85c6ad6d10f2
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/SecurityPartnerProviderListByResourceGroup.json
@@ -0,0 +1,33 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "securityPartnerProvider",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/securityPartnerProviders/securityPartnerProvider",
+ "type": "Microsoft.Network/securityPartnerProviders",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "securityProviderName": "ZScaler",
+ "connectionStatus": "Unknown",
+ "virtualHub": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub1"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/SecurityPartnerProviderListBySubscription.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/SecurityPartnerProviderListBySubscription.json
new file mode 100644
index 000000000000..d39ecef77cfe
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/SecurityPartnerProviderListBySubscription.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "securityPartnerProvider",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/securityPartnerProviders/securityPartnerProvider",
+ "type": "Microsoft.Network/securityPartnerProviders",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "securityProviderName": "ZScaler",
+ "connectionStatus": "Unknown",
+ "virtualHub": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub1"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/SecurityPartnerProviderPut.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/SecurityPartnerProviderPut.json
new file mode 100644
index 000000000000..f8e283f93d57
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/SecurityPartnerProviderPut.json
@@ -0,0 +1,60 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "securityPartnerProviderName": "securityPartnerProvider",
+ "parameters": {
+ "tags": {
+ "key1": "value1"
+ },
+ "location": "West US",
+ "properties": {
+ "securityProviderName": "ZScaler",
+ "virtualHub": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub1"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "securityPartnerProvider",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/securityPartnerProviders/securityPartnerProvider",
+ "type": "Microsoft.Network/securityPartnerProviders",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "securityProviderName": "ZScaler",
+ "virtualHub": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub1"
+ }
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "securityPartnerProvider",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/securityPartnerProviders/securityPartnerProvider",
+ "type": "Microsoft.Network/securityPartnerProviders",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "securityProviderName": "ZScaler",
+ "virtualHub": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub1"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/SecurityPartnerProviderUpdateTags.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/SecurityPartnerProviderUpdateTags.json
new file mode 100644
index 000000000000..c0faa5d2a82b
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/SecurityPartnerProviderUpdateTags.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "securityPartnerProviderName": "securityPartnerProvider",
+ "parameters": {
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "fw1",
+ "id": "/subscriptions/subid/resourceGroups/azfwtest/providers/Microsoft.Network/securityPartnerProviders/securityPartnerProvider",
+ "type": "Microsoft.Network/securityPartnerProviders",
+ "location": "brazilsouth",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "securityProviderName": "ZScaler"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ServiceCommunityList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ServiceCommunityList.json
new file mode 100644
index 000000000000..052ee523470d
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ServiceCommunityList.json
@@ -0,0 +1,56 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/providers/Microsoft.Network/bgpServiceCommunities/skype",
+ "name": "skype",
+ "type": "Microsoft.Network/bgpServiceCommunities",
+ "properties": {
+ "serviceName": "skype",
+ "bgpCommunities": [
+ {
+ "serviceSupportedRegion": "Global",
+ "communityName": "Skype For Business Online",
+ "communityValue": "12076:5030",
+ "communityPrefixes": [
+ "13.67.56.225/32",
+ "13.67.186.105/32"
+ ],
+ "isAuthorizedToUse": true,
+ "serviceGroup": "O365"
+ }
+ ]
+ }
+ },
+ {
+ "id": "/subscriptions/subid/providers/Microsoft.Network/bgpServiceCommunities/exchange",
+ "name": "exchange",
+ "type": "Microsoft.Network/bgpServiceCommunities",
+ "properties": {
+ "serviceName": "exchange",
+ "bgpCommunities": [
+ {
+ "serviceSupportedRegion": "Global",
+ "communityName": "Exchange Online",
+ "communityValue": "12076:5040",
+ "communityPrefixes": [
+ "13.67.56.225/32",
+ "13.67.186.105/32"
+ ],
+ "isAuthorizedToUse": true,
+ "serviceGroup": "O365"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ServiceEndpointPolicyCreate.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ServiceEndpointPolicyCreate.json
new file mode 100644
index 000000000000..3ecbfdb6da56
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ServiceEndpointPolicyCreate.json
@@ -0,0 +1,41 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "serviceEndpointPolicyName": "testPolicy",
+ "parameters": {
+ "location": "westus"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "testnsg",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/ServiceEndpointPolicies/testpolicy",
+ "type": "Microsoft.Network/ServiceEndpointPolicies",
+ "location": "westus",
+ "properties": {
+ "serviceEndpointPolicyDefinitions": [],
+ "subnets": [],
+ "provisioningState": "Succeeded",
+ "resourceGuid": "6A7C139D-8B8D-499B-B7CB-4F3F02A8A44F"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "testnsg",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testpolicy",
+ "type": "Microsoft.Network/ServiceEndpointPolicies",
+ "location": "westus",
+ "properties": {
+ "serviceEndpointPolicyDefinitions": [],
+ "subnets": [],
+ "provisioningState": "Succeeded",
+ "resourceGuid": "6A7C139D-8B8D-499B-B7CB-4F3F02A8A44F"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ServiceEndpointPolicyCreateWithDefinition.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ServiceEndpointPolicyCreateWithDefinition.json
new file mode 100644
index 000000000000..0a2133cccc8c
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ServiceEndpointPolicyCreateWithDefinition.json
@@ -0,0 +1,83 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "serviceEndpointPolicyName": "testPolicy",
+ "parameters": {
+ "location": "westus",
+ "properties": {
+ "serviceEndpointPolicyDefinitions": [
+ {
+ "name": "StorageServiceEndpointPolicyDefinition",
+ "properties": {
+ "description": "Storage Service EndpointPolicy Definition",
+ "service": "Microsoft.Storage",
+ "serviceResources": [
+ "/subscriptions/subid1",
+ "/subscriptions/subid1/resourceGroups/storageRg",
+ "/subscriptions/subid1/resourceGroups/storageRg/providers/Microsoft.Storage/storageAccounts/stAccount"
+ ]
+ }
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "testnsg",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/ServiceEndpointPolicies/testpolicy",
+ "type": "Microsoft.Network/ServiceEndpointPolicies",
+ "location": "westus",
+ "properties": {
+ "serviceEndpointPolicyDefinitions": [
+ {
+ "name": "StorageServiceEndpointPolicyDefinition",
+ "properties": {
+ "description": "Storage Service EndpointPolicy Definition",
+ "service": "Microsoft.Storage",
+ "serviceResources": [
+ "/subscriptions/subid1",
+ "/subscriptions/subid1/resourceGroups/storageRg",
+ "/subscriptions/subid1/resourceGroups/storageRg/providers/Microsoft.Storage/storageAccounts/stAccount"
+ ]
+ }
+ }
+ ],
+ "subnets": [],
+ "provisioningState": "Succeeded",
+ "resourceGuid": "6A7C139D-8B8D-499B-B7CB-4F3F02A8A44F"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "testnsg",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/ServiceEndpointPolicies/testpolicy",
+ "type": "Microsoft.Network/ServiceEndpointPolicies",
+ "location": "westus",
+ "properties": {
+ "serviceEndpointPolicyDefinitions": [
+ {
+ "name": "StorageServiceEndpointPolicyDefinition",
+ "properties": {
+ "description": "Storage Service EndpointPolicy Definition",
+ "service": "Microsoft.Storage",
+ "serviceResources": [
+ "/subscriptions/subid1",
+ "/subscriptions/subid1/resourceGroups/storageRg",
+ "/subscriptions/subid1/resourceGroups/storageRg/providers/Microsoft.Storage/storageAccounts/stAccount"
+ ]
+ }
+ }
+ ],
+ "subnets": [],
+ "provisioningState": "Succeeded",
+ "resourceGuid": "6A7C139D-8B8D-499B-B7CB-4F3F02A8A44F"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ServiceEndpointPolicyDefinitionCreate.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ServiceEndpointPolicyDefinitionCreate.json
new file mode 100644
index 000000000000..b2ed7fb7037c
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ServiceEndpointPolicyDefinitionCreate.json
@@ -0,0 +1,52 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "serviceEndpointPolicyName": "testPolicy",
+ "serviceEndpointPolicyDefinitionName": "testDefinition",
+ "ServiceEndpointPolicyDefinitions": {
+ "properties": {
+ "description": "Storage Service EndpointPolicy Definition",
+ "service": "Microsoft.Storage",
+ "serviceResources": [
+ "/subscriptions/subid1",
+ "/subscriptions/subid1/resourceGroups/storageRg",
+ "/subscriptions/subid1/resourceGroups/storageRg/providers/Microsoft.Storage/storageAccounts/stAccount"
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "testDefinition",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/serviceEndpointPolicies/testPolicy/serviceEndpointPolicyDefinitions/testDefinition",
+ "properties": {
+ "description": "Storage Service EndpointPolicy Definition",
+ "service": "Microsoft.Storage",
+ "serviceResources": [
+ "/subscriptions/subid1",
+ "/subscriptions/subid1/resourceGroups/storageRg",
+ "/subscriptions/subid1/resourceGroups/storageRg/providers/Microsoft.Storage/storageAccounts/stAccount"
+ ]
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "rule1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/testnsg/securityRules/rule1",
+ "properties": {
+ "description": "Storage Service EndpointPolicy Definition",
+ "service": "Microsoft.Storage",
+ "serviceResources": [
+ "/subscriptions/subid1",
+ "/subscriptions/subid1/resourceGroups/storageRg",
+ "/subscriptions/subid1/resourceGroups/storageRg/providers/Microsoft.Storage/storageAccounts/stAccount"
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ServiceEndpointPolicyDefinitionDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ServiceEndpointPolicyDefinitionDelete.json
new file mode 100644
index 000000000000..6ba1f7545b43
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ServiceEndpointPolicyDefinitionDelete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "serviceEndpointPolicyName": "testPolicy",
+ "serviceEndpointPolicyDefinitionName": "testDefinition"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ServiceEndpointPolicyDefinitionGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ServiceEndpointPolicyDefinitionGet.json
new file mode 100644
index 000000000000..a32a6077c786
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ServiceEndpointPolicyDefinitionGet.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "serviceEndpointPolicyName": "testPolicy",
+ "serviceEndpointPolicyDefinitionName": "testDefinition"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "testDefinition",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/serviceEndpointPolicies/testPolicy/serviceEndpointPolicyDefinitions/testDefinition",
+ "properties": {
+ "description": "Storage Service EndpointPolicy Definition",
+ "service": "Microsoft.Storage",
+ "serviceResources": [
+ "/subscriptions/subid1",
+ "/subscriptions/subid1/resourceGroups/storageRg",
+ "/subscriptions/subid1/resourceGroups/storageRg/providers/Microsoft.Storage/storageAccounts/stAccount"
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ServiceEndpointPolicyDefinitionList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ServiceEndpointPolicyDefinitionList.json
new file mode 100644
index 000000000000..1e8ce20a9dab
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ServiceEndpointPolicyDefinitionList.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "serviceEndpointPolicyName": "testPolicy"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "testDef",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/serviceEndpointPolicies/testPolicy/serviceEndpointPolicyDefinitions/testDef",
+ "properties": {
+ "description": "Storage Service EndpointPolicy Definition",
+ "service": "Microsoft.Storage",
+ "serviceResources": [
+ "/subscriptions/subid1",
+ "/subscriptions/subid1/resourceGroups/storageRg",
+ "/subscriptions/subid1/resourceGroups/storageRg/providers/Microsoft.Storage/storageAccounts/stAccount"
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ServiceEndpointPolicyDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ServiceEndpointPolicyDelete.json
new file mode 100644
index 000000000000..d1d8d6fcac11
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ServiceEndpointPolicyDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "serviceEndpointPolicyName": "serviceEndpointPolicy1"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ServiceEndpointPolicyGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ServiceEndpointPolicyGet.json
new file mode 100644
index 000000000000..31bae8abe932
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ServiceEndpointPolicyGet.json
@@ -0,0 +1,37 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "serviceEndpointPolicyName": "testServiceEndpointPolicy"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "testServiceEndpointPolicy",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/serviceEndpointPolicies/testServiceEndpointPolicy",
+ "type": "Microsoft.Network/serviceEndpointPolicies",
+ "location": "westus",
+ "properties": {
+ "serviceEndpointPolicyDefinitions": [
+ {
+ "name": "StorageServiceEndpointPolicyDefinition",
+ "properties": {
+ "description": "Storage Service EndpointPolicy Definition",
+ "service": "Microsoft.Storage",
+ "serviceResources": [
+ "/subscriptions/subid1",
+ "/subscriptions/subid1/resourceGroups/storageRg",
+ "/subscriptions/subid1/resourceGroups/storageRg/providers/Microsoft.Storage/storageAccounts/stAccount"
+ ]
+ }
+ }
+ ],
+ "subnets": [],
+ "provisioningState": "Succeeded",
+ "resourceGuid": "6A7C139D-8B8D-499B-B7CB-4F3F02A8A44F"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ServiceEndpointPolicyList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ServiceEndpointPolicyList.json
new file mode 100644
index 000000000000..1abfb4752916
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ServiceEndpointPolicyList.json
@@ -0,0 +1,63 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "testServiceEndpointPolicy",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/serviceEndpointPolicies/testServiceEndpointPolicy",
+ "location": "westus",
+ "properties": {
+ "serviceEndpointPolicyDefinitions": [
+ {
+ "name": "StorageServiceEndpointPolicyDefinition",
+ "properties": {
+ "description": "Storage Service EndpointPolicy Definition",
+ "service": "Microsoft.Storage",
+ "serviceResources": [
+ "/subscriptions/subid1",
+ "/subscriptions/subid1resourceGroups/storageRg",
+ "/subscriptions/subid1/resourceGroups/storageRg/providers/Microsoft.Storage/storageAccounts/stAccount"
+ ]
+ }
+ }
+ ],
+ "subnets": [],
+ "provisioningState": "Succeeded",
+ "resourceGuid": "6A7C139D-8B8D-499B-B7CB-4F3F02A8A44F"
+ }
+ },
+ {
+ "name": "testServiceEndpointPolicy1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/serviceEndpointPolicies/testServiceEndpointPolicy1",
+ "location": "westus",
+ "properties": {
+ "serviceEndpointPolicyDefinitions": [
+ {
+ "name": "StorageServiceEndpointPolicyDefinition1",
+ "properties": {
+ "description": "Storage Service EndpointPolicy Definition",
+ "service": "Microsoft.Storage",
+ "serviceResources": [
+ "/subscriptions/subid1",
+ "/subscriptions/subid1/resourceGroups/storageRg",
+ "/subscriptions/subid1/resourceGroups/storageRg/providers/Microsoft.Storage/storageAccounts/stAccount"
+ ]
+ }
+ }
+ ],
+ "subnets": [],
+ "provisioningState": "Succeeded",
+ "resourceGuid": "6A7C139D-8B8D-499B-B7CB-4F3F02A8A44F"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ServiceEndpointPolicyListAll.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ServiceEndpointPolicyListAll.json
new file mode 100644
index 000000000000..5da1ed62f0f5
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ServiceEndpointPolicyListAll.json
@@ -0,0 +1,64 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "testPolicy",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/serviceEndpointPolicies/testPolicy",
+ "type": "Microsoft.Network/serviceEndpointPolicies",
+ "location": "westus",
+ "properties": {
+ "serviceEndpointPolicyDefinitions": [
+ {
+ "name": "StorageServiceEndpointPolicyDefinition1",
+ "properties": {
+ "description": "Storage Service EndpointPolicy Definition",
+ "service": "Microsoft.Storage",
+ "serviceResources": [
+ "/subscriptions/subid1",
+ "/subscriptions/subid1/resourceGroups/storageRg",
+ "/subscriptions/subid1/resourceGroups/storageRg/providers/Microsoft.Storage/storageAccounts/stAccount"
+ ]
+ }
+ }
+ ],
+ "subnets": [],
+ "provisioningState": "Succeeded",
+ "resourceGuid": "6A7C139D-8B8D-499B-B7CB-4F3F02A8A44F"
+ }
+ },
+ {
+ "name": "testPolicy1",
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/serviceEndpointPolicies/testPolicy2",
+ "type": "Microsoft.Network/serviceEndpointPolicies",
+ "location": "westus",
+ "properties": {
+ "serviceEndpointPolicyDefinitions": [
+ {
+ "name": "StorageServiceEndpointPolicyDefinition2",
+ "properties": {
+ "description": "Storage Service EndpointPolicy Definition",
+ "service": "Microsoft.Storage",
+ "serviceResources": [
+ "/subscriptions/subid1",
+ "/subscriptions/subid1/resourceGroups/storageRg",
+ "/subscriptions/subid1/resourceGroups/storageRg/providers/Microsoft.Storage/storageAccounts/stAccount"
+ ]
+ }
+ }
+ ],
+ "subnets": [],
+ "provisioningState": "Succeeded",
+ "resourceGuid": "6A7C139D-8B8D-499B-B7CB-4F3F02A8A44F"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ServiceEndpointPolicyUpdateTags.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ServiceEndpointPolicyUpdateTags.json
new file mode 100644
index 000000000000..1a46ec44d0ac
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ServiceEndpointPolicyUpdateTags.json
@@ -0,0 +1,47 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "serviceEndpointPolicyName": "testServiceEndpointPolicy",
+ "parameters": {
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "testServiceEndpointPolicy",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/serviceEndpointPolicies/testServiceEndpointPolicy",
+ "type": "Microsoft.Network/serviceEndpointPolicies",
+ "location": "westus",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-000000000000",
+ "serviceEndpointPolicyDefinitions": [
+ {
+ "name": "StorageServiceEndpointPolicyDefinition",
+ "properties": {
+ "description": "Storage Service EndpointPolicy Definition",
+ "service": "Microsoft.Storage",
+ "serviceResources": [
+ "/subscriptions/subid1",
+ "/subscriptions/subid1/resourceGroups/storageRg",
+ "/subscriptions/subid1/resourceGroups/storageRg/providers/Microsoft.Storage/storageAccounts/stAccount"
+ ]
+ }
+ }
+ ],
+ "subnets": []
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ServiceTagsList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ServiceTagsList.json
new file mode 100644
index 000000000000..e5cc50e5610b
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/ServiceTagsList.json
@@ -0,0 +1,89 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "location": "westcentralus",
+ "subscriptionId": "subId"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "public",
+ "id": "/subscriptions/subId/providers/Microsoft.Network/serviceTags/public",
+ "type": "Microsoft.Network/serviceTags",
+ "changeNumber": "63",
+ "cloud": "Public",
+ "values": [
+ {
+ "name": "ApiManagement",
+ "id": "ApiManagement",
+ "properties": {
+ "changeNumber": "7",
+ "region": "",
+ "systemService": "AzureApiManagement",
+ "addressPrefixes": [
+ "13.64.39.16/32",
+ "40.74.146.80/31",
+ "40.74.147.32/28"
+ ]
+ }
+ },
+ {
+ "name": "ApiManagement.AustraliaCentral",
+ "id": "ApiManagement.AustraliaCentral",
+ "properties": {
+ "changeNumber": "2",
+ "region": "australiacentral",
+ "systemService": "AzureApiManagement",
+ "addressPrefixes": [
+ "20.36.106.68/31",
+ "20.36.107.176/28"
+ ]
+ }
+ },
+ {
+ "name": "AppService",
+ "id": "AppService",
+ "properties": {
+ "changeNumber": "13",
+ "region": "",
+ "systemService": "AzureAppService",
+ "addressPrefixes": [
+ "13.64.73.110/32",
+ "191.235.208.12/32",
+ "191.235.215.184/32"
+ ]
+ }
+ },
+ {
+ "name": "ServiceBus",
+ "id": "ServiceBus",
+ "properties": {
+ "changeNumber": "10",
+ "region": "",
+ "systemService": "AzureServiceBus",
+ "addressPrefixes": [
+ "23.98.82.96/29",
+ "40.68.127.68/32",
+ "40.70.146.64/29"
+ ]
+ }
+ },
+ {
+ "name": "ServiceBus.EastUS2",
+ "id": "ServiceBus.EastUS2",
+ "properties": {
+ "changeNumber": "1",
+ "region": "eastus2",
+ "systemService": "AzureServiceBus",
+ "addressPrefixes": [
+ "13.68.110.36/32",
+ "40.70.146.64/29"
+ ]
+ }
+ }
+ ],
+ "nextLink": "https://management.azure.com/subscriptions/subid/providers/Microsoft.Network/locations/centraluseuap/serviceTags?api-version=2020-06-01&changenumber=changenumber&$skipToken={skipToken}"
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/SubnetCreate.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/SubnetCreate.json
new file mode 100644
index 000000000000..a586d1f53451
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/SubnetCreate.json
@@ -0,0 +1,36 @@
+{
+ "parameters": {
+ "subnetName": "subnet1",
+ "virtualNetworkName": "vnetname",
+ "resourceGroupName": "subnet-test",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "subnetParameters": {
+ "properties": {
+ "addressPrefix": "10.0.0.0/16"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/subnet-test/providers/Microsoft.Network/virtualNetworks/vnetname/subnets/subnet1",
+ "name": "subnet1",
+ "properties": {
+ "addressPrefix": "10.0.0.0/16",
+ "provisioningState": "Succeeded"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/subnet-test/providers/Microsoft.Network/virtualNetworks/vnetname/subnets/subnet1",
+ "name": "subnet1",
+ "properties": {
+ "addressPrefix": "10.0.0.0/16",
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/SubnetCreateServiceEndpoint.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/SubnetCreateServiceEndpoint.json
new file mode 100644
index 000000000000..37457c0e3da0
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/SubnetCreateServiceEndpoint.json
@@ -0,0 +1,61 @@
+{
+ "parameters": {
+ "subnetName": "subnet1",
+ "virtualNetworkName": "vnetname",
+ "resourceGroupName": "subnet-test",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "subnetParameters": {
+ "properties": {
+ "addressPrefix": "10.0.0.0/16",
+ "serviceEndpoints": [
+ {
+ "service": "Microsoft.Storage"
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/subnet-test/providers/Microsoft.Network/virtualNetworks/vnetname/subnets/subnet1",
+ "name": "subnet1",
+ "properties": {
+ "addressPrefix": "10.0.0.0/16",
+ "serviceEndpoints": [
+ {
+ "service": "Microsoft.Storage",
+ "locations": [
+ "eastus2(stage)",
+ "usnorth(stage)"
+ ],
+ "provisioningState": "Succeeded"
+ }
+ ],
+ "provisioningState": "Succeeded"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/subnet-test/providers/Microsoft.Network/virtualNetworks/vnetname/subnets/subnet1",
+ "name": "subnet1",
+ "properties": {
+ "addressPrefix": "10.0.0.0/16",
+ "serviceEndpoints": [
+ {
+ "service": "Microsoft.Storage",
+ "locations": [
+ "eastus2(stage)",
+ "usnorth(stage)"
+ ],
+ "provisioningState": "Succeeded"
+ }
+ ],
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/SubnetCreateWithDelegation.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/SubnetCreateWithDelegation.json
new file mode 100644
index 000000000000..d6846a95e1b7
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/SubnetCreateWithDelegation.json
@@ -0,0 +1,60 @@
+{
+ "parameters": {
+ "subnetName": "subnet1",
+ "virtualNetworkName": "vnetname",
+ "resourceGroupName": "subnet-test",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subId",
+ "subnetParameters": {
+ "properties": {
+ "addressPrefix": "10.0.0.0/16"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subId/resourceGroups/subnet-test/providers/Microsoft.Network/virtualNetworks/vnetname/subnets/subnet1",
+ "name": "subnet1",
+ "properties": {
+ "addressPrefix": "10.0.0.0/16",
+ "provisioningState": "Succeeded",
+ "delegations": [
+ {
+ "name": "myDelegation",
+ "id": "/subscriptions/subId/resourceGroups/subnet-test/providers/Microsoft.Network/virtualNetworks/vnetname/subnets/subnet1/delegations/myDelegation",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "serviceName": "Microsoft.Provider/resourceType",
+ "actions": []
+ }
+ }
+ ],
+ "purpose": ""
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/subId/resourceGroups/subnet-test/providers/Microsoft.Network/virtualNetworks/vnetname/subnets/subnet1",
+ "name": "subnet1",
+ "properties": {
+ "addressPrefix": "10.0.0.0/16",
+ "provisioningState": "Succeeded",
+ "delegations": [
+ {
+ "name": "myDelegation",
+ "id": "/subscriptions/subId/resourceGroups/subnet-test/providers/Microsoft.Network/virtualNetworks/vnetname/subnets/subnet1/delegations/myDelegation",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "serviceName": "Microsoft.Provider/resourceType",
+ "actions": []
+ }
+ }
+ ],
+ "purpose": ""
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/SubnetDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/SubnetDelete.json
new file mode 100644
index 000000000000..8906483664c8
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/SubnetDelete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "subnetName": "subnet1",
+ "virtualNetworkName": "vnetname",
+ "resourceGroupName": "subnet-test",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/SubnetGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/SubnetGet.json
new file mode 100644
index 000000000000..2c9f64320d4a
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/SubnetGet.json
@@ -0,0 +1,21 @@
+{
+ "parameters": {
+ "subnetName": "subnet1",
+ "virtualNetworkName": "vnetname",
+ "resourceGroupName": "subnet-test",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/subnet-test/providers/Microsoft.Network/virtualNetworks/vnetname/subnets/subnet1",
+ "name": "subnet1",
+ "properties": {
+ "addressPrefix": "10.0.0.0/16",
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/SubnetGetWithDelegation.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/SubnetGetWithDelegation.json
new file mode 100644
index 000000000000..82c7656c4074
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/SubnetGetWithDelegation.json
@@ -0,0 +1,33 @@
+{
+ "parameters": {
+ "subnetName": "subnet1",
+ "virtualNetworkName": "vnetname",
+ "resourceGroupName": "subnet-test",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subId"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subId/resourceGroups/subnet-test/providers/Microsoft.Network/virtualNetworks/vnetname/subnets/subnet1",
+ "name": "subnet1",
+ "properties": {
+ "addressPrefix": "10.0.0.0/16",
+ "provisioningState": "Succeeded",
+ "delegations": [
+ {
+ "name": "myDelegation",
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/subnet1/delegations/myDelegation",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "serviceName": "Microsoft.Provider/resourceType",
+ "actions": []
+ }
+ }
+ ],
+ "purpose": ""
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/SubnetList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/SubnetList.json
new file mode 100644
index 000000000000..130a0f9b90e6
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/SubnetList.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "virtualNetworkName": "vnetname",
+ "resourceGroupName": "subnet-test",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/subnet-test/providers/Microsoft.Network/virtualNetworks/vnetname/subnets/subnet1",
+ "name": "subnet1",
+ "properties": {
+ "addressPrefix": "10.0.0.0/16",
+ "provisioningState": "Succeeded"
+ }
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/subnet-test/providers/Microsoft.Network/virtualNetworks/vnetname/subnets/subnet2",
+ "name": "subnet2",
+ "properties": {
+ "addressPrefix": "10.0.0.0/16",
+ "provisioningState": "Succeeded"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/SubnetPrepareNetworkPolicies.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/SubnetPrepareNetworkPolicies.json
new file mode 100644
index 000000000000..2f1dd508a4bc
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/SubnetPrepareNetworkPolicies.json
@@ -0,0 +1,16 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualNetworkName": "test-vnet",
+ "subnetName": "subnet1",
+ "prepareNetworkPoliciesRequestParameters": {
+ "serviceName": "Microsoft.Sql/managedInstances"
+ }
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/SubnetUnprepareNetworkPolicies.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/SubnetUnprepareNetworkPolicies.json
new file mode 100644
index 000000000000..b1f3caccc4b3
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/SubnetUnprepareNetworkPolicies.json
@@ -0,0 +1,16 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualNetworkName": "test-vnet",
+ "subnetName": "subnet1",
+ "unprepareNetworkPoliciesRequestParameters": {
+ "serviceName": "Microsoft.Sql/managedInstances"
+ }
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/UsageList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/UsageList.json
new file mode 100644
index 000000000000..52cd1b063205
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/UsageList.json
@@ -0,0 +1,265 @@
+{
+ "parameters": {
+ "location": "westus",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "currentValue": 8.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/westus/usages/VirtualNetworks",
+ "limit": 50.0,
+ "name": {
+ "localizedValue": "Virtual Networks",
+ "value": "VirtualNetworks"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 3.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/westus/usages/StaticPublicIPAddresses",
+ "limit": 20.0,
+ "name": {
+ "localizedValue": "Static Public IP Addresses",
+ "value": "StaticPublicIPAddresses"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 1.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/westus/usages/NetworkSecurityGroups",
+ "limit": 100.0,
+ "name": {
+ "localizedValue": "Network Security Groups",
+ "value": "NetworkSecurityGroups"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 8.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/westus/usages/PublicIPAddresses",
+ "limit": 60.0,
+ "name": {
+ "localizedValue": "Public IP Addresses",
+ "value": "PublicIPAddresses"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 2.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/westus/usages/NetworkInterfaces",
+ "limit": 350.0,
+ "name": {
+ "localizedValue": "Network Interfaces",
+ "value": "NetworkInterfaces"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 2.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/westus/usages/LoadBalancers",
+ "limit": 100.0,
+ "name": {
+ "localizedValue": "Load Balancers",
+ "value": "LoadBalancers"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 1.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/westus/usages/ApplicationGateways",
+ "limit": 50.0,
+ "name": {
+ "localizedValue": "Application Gateways",
+ "value": "ApplicationGateways"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 0.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/westus/usages/RouteTables",
+ "limit": 100.0,
+ "name": {
+ "localizedValue": "Route Tables",
+ "value": "RouteTables"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 0.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/westus/usages/RouteFilters",
+ "limit": 1000.0,
+ "name": {
+ "localizedValue": "Route Filters",
+ "value": "RouteFilters"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 0.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/westus/usages/NetworkWatchers",
+ "limit": 1.0,
+ "name": {
+ "localizedValue": "Network Watchers",
+ "value": "NetworkWatchers"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 0.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/westus/usages/PacketCaptures",
+ "limit": 10.0,
+ "name": {
+ "localizedValue": "Packet Captures",
+ "value": "PacketCaptures"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 0.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/westus/usages/DnsServersPerVirtualNetwork",
+ "limit": 9.0,
+ "name": {
+ "localizedValue": "DNS servers per Virtual Network",
+ "value": "DnsServersPerVirtualNetwork"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 0.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/westus/usages/SubnetsPerVirtualNetwork",
+ "limit": 1000.0,
+ "name": {
+ "localizedValue": "Subnets per Virtual Network",
+ "value": "SubnetsPerVirtualNetwork"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 0.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/westus/usages/IPConfigurationsPerVirtualNetwork",
+ "limit": 4096.0,
+ "name": {
+ "localizedValue": "IP Configurations per Virtual Network",
+ "value": "IPConfigurationsPerVirtualNetwork"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 0.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/westus/usages/PeeringsPerVirtualNetwork",
+ "limit": 10.0,
+ "name": {
+ "localizedValue": "Peerings per Virtual Network",
+ "value": "PeeringsPerVirtualNetwork"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 0.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/westus/usages/SecurityRulesPerNetworkSecurityGroup",
+ "limit": 200.0,
+ "name": {
+ "localizedValue": "Security rules per Network Security Group",
+ "value": "SecurityRulesPerNetworkSecurityGroup"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 0.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/westus/usages/SecurityRuleAddressesOrPortsPerNetworkSecurityGroup",
+ "limit": 2000.0,
+ "name": {
+ "localizedValue": "Security rules addresses or ports per Network Security Group",
+ "value": "SecurityRuleAddressesOrPortsPerNetworkSecurityGroup"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 0.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/westus/usages/InboundRulesPerLoadBalancer",
+ "limit": 150.0,
+ "name": {
+ "localizedValue": "Inbound Rules per Load Balancer",
+ "value": "InboundRulesPerLoadBalancer"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 0.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/westus/usages/FrontendIPConfigurationPerLoadBalancer",
+ "limit": 10.0,
+ "name": {
+ "localizedValue": "Frontend IP Configurations per Load Balancer",
+ "value": "FrontendIPConfigurationPerLoadBalancer"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 0.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/westus/usages/outboundRulesPerLoadBalancer",
+ "limit": 5.0,
+ "name": {
+ "localizedValue": "Outbound Rules per Load Balancer",
+ "value": "outboundRulesPerLoadBalancer"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 0.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/westus/usages/RoutesPerRouteTable",
+ "limit": 100.0,
+ "name": {
+ "localizedValue": "Routes per Route Table",
+ "value": "RoutesPerRouteTable"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 0.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/westus/usages/SecondaryIPConfigurationsPerNetworkInterface",
+ "limit": 256.0,
+ "name": {
+ "localizedValue": "Secondary IP Configurations per Network Interface",
+ "value": "SecondaryIPConfigurationsPerNetworkInterface"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 0.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/westus/usages/InboundRulesPerNetworkInterface",
+ "limit": 500.0,
+ "name": {
+ "localizedValue": "Inbound rules per Network Interface",
+ "value": "InboundRulesPerNetworkInterface"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 0.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/westus/usages/RouteFilterRulesPerRouteFilter",
+ "limit": 1.0,
+ "name": {
+ "localizedValue": "Route filter rules per Route Filter",
+ "value": "RouteFilterRulesPerRouteFilter"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 0.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/westus/usages/RouteFiltersPerExpressRouteBgpPeering",
+ "limit": 1.0,
+ "name": {
+ "localizedValue": "Route filters per Express route BGP Peering",
+ "value": "RouteFiltersPerExpressRouteBgpPeering"
+ },
+ "unit": "Count"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/UsageListSpacedLocation.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/UsageListSpacedLocation.json
new file mode 100644
index 000000000000..444f07f1cf36
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/UsageListSpacedLocation.json
@@ -0,0 +1,335 @@
+{
+ "parameters": {
+ "location": "West US",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "currentValue": 12.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/West US/usages/VirtualNetworks",
+ "limit": 50.0,
+ "name": {
+ "localizedValue": "Virtual Networks",
+ "value": "VirtualNetworks"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 1.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/West US/usages/StaticPublicIPAddresses",
+ "limit": 20.0,
+ "name": {
+ "localizedValue": "Static Public IP Addresses",
+ "value": "StaticPublicIPAddresses"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 3.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/West US/usages/NetworkSecurityGroups",
+ "limit": 100.0,
+ "name": {
+ "localizedValue": "Network Security Groups",
+ "value": "NetworkSecurityGroups"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 12.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/West US/usages/PublicIPAddresses",
+ "limit": 60.0,
+ "name": {
+ "localizedValue": "Public IP Addresses",
+ "value": "PublicIPAddresses"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 0.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/West US/usages/PublicIpPrefixes",
+ "limit": 2147483647.0,
+ "name": {
+ "localizedValue": "Public Ip Prefixes",
+ "value": "PublicIpPrefixes"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 2.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/West US/usages/NetworkInterfaces",
+ "limit": 24000.0,
+ "name": {
+ "localizedValue": "Network Interfaces",
+ "value": "NetworkInterfaces"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 0.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/West US/usages/LoadBalancers",
+ "limit": 100.0,
+ "name": {
+ "localizedValue": "Load Balancers",
+ "value": "LoadBalancers"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 3.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/West US/usages/ApplicationGateways",
+ "limit": 50.0,
+ "name": {
+ "localizedValue": "Application Gateways",
+ "value": "ApplicationGateways"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 5.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/West US/usages/RouteTables",
+ "limit": 100.0,
+ "name": {
+ "localizedValue": "Route Tables",
+ "value": "RouteTables"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 0.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/West US/usages/RouteFilters",
+ "limit": 1000.0,
+ "name": {
+ "localizedValue": "Route Filters",
+ "value": "RouteFilters"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 0.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/West US/usages/NetworkWatchers",
+ "limit": 1.0,
+ "name": {
+ "localizedValue": "Network Watchers",
+ "value": "NetworkWatchers"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 0.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/West US/usages/PacketCaptures",
+ "limit": 100.0,
+ "name": {
+ "localizedValue": "Packet Captures",
+ "value": "PacketCaptures"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 0.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/West US/usages/ApplicationSecurityGroups",
+ "limit": 500.0,
+ "name": {
+ "localizedValue": "Application Security Groups.",
+ "value": "ApplicationSecurityGroups"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 0.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/West US/usages/DdosProtectionPlans",
+ "limit": 1.0,
+ "name": {
+ "localizedValue": "DDoS Protection Plans.",
+ "value": "DdosProtectionPlans"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 0.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/West US/usages/ServiceEndpointPolicies",
+ "limit": 200.0,
+ "name": {
+ "localizedValue": "Service Endpoint Policies",
+ "value": "ServiceEndpointPolicies"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 0.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/West US/usages/NetworkIntentPolicies",
+ "limit": 200.0,
+ "name": {
+ "localizedValue": "Network Intent Policies",
+ "value": "NetworkIntentPolicies"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 0.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/West US/usages/DnsServersPerVirtualNetwork",
+ "limit": 9.0,
+ "name": {
+ "localizedValue": "DNS servers per Virtual Network",
+ "value": "DnsServersPerVirtualNetwork"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 0.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/West US/usages/SubnetsPerVirtualNetwork",
+ "limit": 1000.0,
+ "name": {
+ "localizedValue": "Subnets per Virtual Network",
+ "value": "SubnetsPerVirtualNetwork"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 0.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/West US/usages/IPConfigurationsPerVirtualNetwork",
+ "limit": 16384.0,
+ "name": {
+ "localizedValue": "IP Configurations per Virtual Network",
+ "value": "IPConfigurationsPerVirtualNetwork"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 0.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/West US/usages/PeeringsPerVirtualNetwork",
+ "limit": 50.0,
+ "name": {
+ "localizedValue": "Peerings per Virtual Network",
+ "value": "PeeringsPerVirtualNetwork"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 0.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/West US/usages/SecurityRulesPerNetworkSecurityGroup",
+ "limit": 1000.0,
+ "name": {
+ "localizedValue": "Security rules per Network Security Group",
+ "value": "SecurityRulesPerNetworkSecurityGroup"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 0.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/West US/usages/SecurityRulesPerNetworkIntentPolicy",
+ "limit": 100.0,
+ "name": {
+ "localizedValue": "Security rules per Network Intent Policy",
+ "value": "SecurityRulesPerNetworkIntentPolicy"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 0.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/West US/usages/RoutesPerNetworkIntentPolicy",
+ "limit": 100.0,
+ "name": {
+ "localizedValue": "Routes per Network Intent Policy",
+ "value": "RoutesPerNetworkIntentPolicy"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 0.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/West US/usages/SecurityRuleAddressesOrPortsPerNetworkSecurityGroup",
+ "limit": 2000.0,
+ "name": {
+ "localizedValue": "Security rules addresses or ports per Network Security Group",
+ "value": "SecurityRuleAddressesOrPortsPerNetworkSecurityGroup"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 0.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/West US/usages/InboundRulesPerLoadBalancer",
+ "limit": 150.0,
+ "name": {
+ "localizedValue": "Inbound Rules per Load Balancer",
+ "value": "InboundRulesPerLoadBalancer"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 0.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/West US/usages/FrontendIPConfigurationPerLoadBalancer",
+ "limit": 10.0,
+ "name": {
+ "localizedValue": "Frontend IP Configurations per Load Balancer",
+ "value": "FrontendIPConfigurationPerLoadBalancer"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 0.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/West US/usages/OutboundRulesPerLoadBalancer",
+ "limit": 5.0,
+ "name": {
+ "localizedValue": "Outbound Rules per Load Balancer",
+ "value": "OutboundRulesPerLoadBalancer"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 0.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/West US/usages/RoutesPerRouteTable",
+ "limit": 400.0,
+ "name": {
+ "localizedValue": "Routes per Route Table",
+ "value": "RoutesPerRouteTable"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 0.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/West US/usages/SecondaryIPConfigurationsPerNetworkInterface",
+ "limit": 256.0,
+ "name": {
+ "localizedValue": "Secondary IP Configurations per Network Interface",
+ "value": "SecondaryIPConfigurationsPerNetworkInterface"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 0.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/West US/usages/InboundRulesPerNetworkInterface",
+ "limit": 500.0,
+ "name": {
+ "localizedValue": "Inbound rules per Network Interface",
+ "value": "InboundRulesPerNetworkInterface"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 0.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/West US/usages/RouteFilterRulesPerRouteFilter",
+ "limit": 1.0,
+ "name": {
+ "localizedValue": "Route filter rules per Route Filter",
+ "value": "RouteFilterRulesPerRouteFilter"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 0.0,
+ "id": "/subscriptions/subid/providers/Microsoft.Network/locations/West US/usages/RouteFiltersPerExpressRouteBgpPeering",
+ "limit": 1.0,
+ "name": {
+ "localizedValue": "Route filters per Express route BGP Peering",
+ "value": "RouteFiltersPerExpressRouteBgpPeering"
+ },
+ "unit": "Count"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubBgpConnectionDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubBgpConnectionDelete.json
new file mode 100644
index 000000000000..dacc7229d0ab
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubBgpConnectionDelete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "connectionName": "conn1",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualHubName": "hub1"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubBgpConnectionGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubBgpConnectionGet.json
new file mode 100644
index 000000000000..ece37f7820a4
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubBgpConnectionGet.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "connectionName": "conn1",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualHubName": "hub1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "conn1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub1/bgpConnections/conn1",
+ "etag": "W/\"72090554-7e3b-43f2-80ad-99a9020dcb11\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "peerIp": "192.168.1.5",
+ "peerAsn": 20000,
+ "connectionState": "Connected"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubBgpConnectionList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubBgpConnectionList.json
new file mode 100644
index 000000000000..b8ea084d7dc7
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubBgpConnectionList.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualHubName": "hub1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "conn1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub1/bgpConnections/conn1",
+ "etag": "W/\"72090554-7e3b-43f2-80ad-99a9020dcb11\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "peerIp": "192.168.1.5",
+ "peerAsn": 20000,
+ "connectionState": "Connected"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubBgpConnectionPut.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubBgpConnectionPut.json
new file mode 100644
index 000000000000..6058ba82c82d
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubBgpConnectionPut.json
@@ -0,0 +1,43 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "connectionName": "conn1",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualHubName": "hub1",
+ "parameters": {
+ "properties": {
+ "peerIp": "192.168.1.5",
+ "peerAsn": 20000
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "conn1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub1/bgpConnections/conn1",
+ "etag": "W/\"72090554-7e3b-43f2-80ad-99a9020dcb11\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "peerIp": "192.168.1.5",
+ "peerAsn": 20000,
+ "connectionState": "Connected"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "conn1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub1/bgpConnections/conn1",
+ "etag": "W/\"72090554-7e3b-43f2-80ad-99a9020dcb11\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "peerIp": "192.168.1.5",
+ "peerAsn": 20000,
+ "connectionState": "Connected"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubDelete.json
new file mode 100644
index 000000000000..f31b21dd7c56
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "virtualHubName": "virtualHub1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubGet.json
new file mode 100644
index 000000000000..b593e3f29b70
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubGet.json
@@ -0,0 +1,35 @@
+{
+ "parameters": {
+ "virtualHubName": "virtualHub1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "name": "virtualHub1",
+ "type": "Microsoft.Network/virtualHubs",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "virtualWan": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualWans/virtualWan1"
+ },
+ "virtualHubRouteTableV2s": [],
+ "addressPrefix": "10.10.1.0/24",
+ "sku": "Basic",
+ "routingState": "Provisioned",
+ "virtualRouterAsn": 65515,
+ "virtualRouterIps": [
+ "10.10.1.12",
+ "10.10.1.13"
+ ],
+ "allowBranchToBranchTraffic": false
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubIpConfigurationDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubIpConfigurationDelete.json
new file mode 100644
index 000000000000..87ce327c1f85
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubIpConfigurationDelete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "ipConfigName": "ipconfig1",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualHubName": "hub1"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubIpConfigurationGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubIpConfigurationGet.json
new file mode 100644
index 000000000000..a4c21db66ec0
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubIpConfigurationGet.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualHubName": "hub1",
+ "ipConfigName": "ipconfig1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "ipconfig1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub1/ipConfigurations/ipconfig1",
+ "type": "Microsoft.Network/virtualHubs/ipConfigurations",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubIpConfigurationList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubIpConfigurationList.json
new file mode 100644
index 000000000000..c7a77aff4784
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubIpConfigurationList.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualHubName": "hub1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "ipconfig1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub1/ipConfigurations/ipconfig1",
+ "type": "Microsoft.Network/virtualHubs/ipConfigurations",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubIpConfigurationPut.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubIpConfigurationPut.json
new file mode 100644
index 000000000000..e1c168ea2652
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubIpConfigurationPut.json
@@ -0,0 +1,46 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "ipConfigName": "ipconfig1",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualHubName": "hub1",
+ "parameters": {
+ "properties": {
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "ipconfig1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub1/ipConfigurations/ipconfig1",
+ "type": "Microsoft.Network/virtualHubs/ipConfigurations",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1"
+ }
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "ipconfig1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub1/ipConfigurations/ipconfig1",
+ "type": "Microsoft.Network/virtualHubs/ipConfigurations",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubList.json
new file mode 100644
index 000000000000..6ffb257c8ef2
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubList.json
@@ -0,0 +1,130 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "name": "virtualHub1",
+ "type": "Microsoft.Network/virtualHubs",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "virtualWan": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualWans/virtualWan1"
+ },
+ "virtualHubRouteTableV2s": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/routeTables/virtualHubRouteTable1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "name": "rt2a",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "routes": [
+ {
+ "destinationType": "CIDR",
+ "destinations": [
+ "20.10.0.0/16",
+ "20.20.0.0/16"
+ ],
+ "nextHopType": "IPAddress",
+ "nextHops": [
+ "10.0.0.68"
+ ]
+ },
+ {
+ "destinationType": "CIDR",
+ "destinations": [
+ "0.0.0.0/0"
+ ],
+ "nextHopType": "IPAddress",
+ "nextHops": [
+ "10.0.0.68"
+ ]
+ }
+ ],
+ "attachedConnections": [
+ "All_Vnets"
+ ]
+ }
+ }
+ ],
+ "addressPrefix": "10.10.1.0/24",
+ "sku": "Basic",
+ "routingState": "Provisioned",
+ "virtualRouterAsn": 65515,
+ "virtualRouterIps": [
+ "10.10.1.12",
+ "10.10.1.13"
+ ],
+ "allowBranchToBranchTraffic": false
+ }
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub2",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "East US",
+ "name": "virtualHub2",
+ "type": "Microsoft.Network/virtualHubs",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "virtualWan": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualWans/virtualWan1"
+ },
+ "virtualHubRouteTableV2s": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub2/routeTables/virtualHubRouteTable2",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "name": "rt2a",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "routes": [
+ {
+ "destinationType": "CIDR",
+ "destinations": [
+ "20.10.0.0/16",
+ "20.20.0.0/16"
+ ],
+ "nextHopType": "IPAddress",
+ "nextHops": [
+ "10.0.0.68"
+ ]
+ },
+ {
+ "destinationType": "CIDR",
+ "destinations": [
+ "0.0.0.0/0"
+ ],
+ "nextHopType": "IPAddress",
+ "nextHops": [
+ "10.0.0.68"
+ ]
+ }
+ ],
+ "attachedConnections": [
+ "All_Vnets"
+ ]
+ }
+ }
+ ],
+ "addressPrefix": "210.10.1.0/24",
+ "sku": "Basic",
+ "routingState": "Provisioned",
+ "virtualRouterAsn": 65515,
+ "virtualRouterIps": [
+ "10.10.1.12",
+ "10.10.1.13"
+ ],
+ "allowBranchToBranchTraffic": false
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubListByResourceGroup.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubListByResourceGroup.json
new file mode 100644
index 000000000000..9617fb73fe77
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubListByResourceGroup.json
@@ -0,0 +1,131 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "resourceGroupName": "rg1",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "name": "virtualHub1",
+ "type": "Microsoft.Network/virtualHubs",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "virtualWan": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualWans/virtualWan1"
+ },
+ "virtualHubRouteTableV2s": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub2/routeTables/virtualHubRouteTable2",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "name": "rt2a",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "routes": [
+ {
+ "destinationType": "CIDR",
+ "destinations": [
+ "20.10.0.0/16",
+ "20.20.0.0/16"
+ ],
+ "nextHopType": "IPAddress",
+ "nextHops": [
+ "10.0.0.68"
+ ]
+ },
+ {
+ "destinationType": "CIDR",
+ "destinations": [
+ "0.0.0.0/0"
+ ],
+ "nextHopType": "IPAddress",
+ "nextHops": [
+ "10.0.0.68"
+ ]
+ }
+ ],
+ "attachedConnections": [
+ "All_Vnets"
+ ]
+ }
+ }
+ ],
+ "addressPrefix": "10.10.1.0/24",
+ "sku": "Basic",
+ "routingState": "Provisioned",
+ "virtualRouterAsn": 65515,
+ "virtualRouterIps": [
+ "10.10.1.12",
+ "10.10.1.13"
+ ],
+ "allowBranchToBranchTraffic": false
+ }
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub2",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "East US",
+ "name": "virtualHub2",
+ "type": "Microsoft.Network/virtualHubs",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "virtualWan": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualWans/virtualWan1"
+ },
+ "virtualHubRouteTableV2s": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub2/routeTables/virtualHubRouteTable2",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "name": "rt2a",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "routes": [
+ {
+ "destinationType": "CIDR",
+ "destinations": [
+ "20.10.0.0/16",
+ "20.20.0.0/16"
+ ],
+ "nextHopType": "IPAddress",
+ "nextHops": [
+ "10.0.0.68"
+ ]
+ },
+ {
+ "destinationType": "CIDR",
+ "destinations": [
+ "0.0.0.0/0"
+ ],
+ "nextHopType": "IPAddress",
+ "nextHops": [
+ "10.0.0.68"
+ ]
+ }
+ ],
+ "attachedConnections": [
+ "All_Vnets"
+ ]
+ }
+ }
+ ],
+ "addressPrefix": "210.10.1.0/24",
+ "sku": "Basic",
+ "routingState": "Provisioned",
+ "virtualRouterAsn": 65515,
+ "virtualRouterIps": [
+ "10.10.1.12",
+ "10.10.1.13"
+ ],
+ "allowBranchToBranchTraffic": false
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubPut.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubPut.json
new file mode 100644
index 000000000000..d0734ff49384
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubPut.json
@@ -0,0 +1,73 @@
+{
+ "parameters": {
+ "virtualHubName": "virtualHub2",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "virtualHubParameters": {
+ "location": "West US",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "virtualWan": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualWans/virtualWan1"
+ },
+ "addressPrefix": "10.168.0.0/24",
+ "sku": "Basic"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub2",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "name": "virtualHub2",
+ "type": "Microsoft.Network/virtualHubs",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "virtualWan": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualWans/virtualWan1"
+ },
+ "virtualHubRouteTableV2s": [],
+ "addressPrefix": "10.168.0.0/24",
+ "sku": "Basic",
+ "routingState": "Provisioned",
+ "virtualRouterAsn": 65515,
+ "virtualRouterIps": [
+ "10.10.1.12",
+ "10.10.1.13"
+ ],
+ "allowBranchToBranchTraffic": false
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub2",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "name": "virtualHub2",
+ "type": "Microsoft.Network/virtualHubs",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "virtualWan": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualWans/virtualWan1"
+ },
+ "virtualHubRouteTableV2s": [],
+ "addressPrefix": "10.168.0.0/24",
+ "sku": "Basic",
+ "routingState": "Provisioned",
+ "virtualRouterAsn": 65515,
+ "virtualRouterIps": [
+ "10.10.1.12",
+ "10.10.1.13"
+ ],
+ "allowBranchToBranchTraffic": false
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubRouteTableV2Delete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubRouteTableV2Delete.json
new file mode 100644
index 000000000000..43a8a8135cd4
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubRouteTableV2Delete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "routeTableName": "virtualHubRouteTable1a",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "virtualHubName": "virtualHub1"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubRouteTableV2Get.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubRouteTableV2Get.json
new file mode 100644
index 000000000000..ef98285d1d69
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubRouteTableV2Get.json
@@ -0,0 +1,47 @@
+{
+ "parameters": {
+ "routeTableName": "virtualHubRouteTable1a",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "virtualHubName": "virtualHub1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/routeTables/virtualHubRouteTable1a",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "name": "virtualHubRouteTable1a",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "routes": [
+ {
+ "destinationType": "CIDR",
+ "destinations": [
+ "20.10.0.0/16",
+ "20.20.0.0/16"
+ ],
+ "nextHopType": "IPAddress",
+ "nextHops": [
+ "10.0.0.68"
+ ]
+ },
+ {
+ "destinationType": "CIDR",
+ "destinations": [
+ "0.0.0.0/0"
+ ],
+ "nextHopType": "IPAddress",
+ "nextHops": [
+ "10.0.0.68"
+ ]
+ }
+ ],
+ "attachedConnections": [
+ "All_Vnets"
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubRouteTableV2List.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubRouteTableV2List.json
new file mode 100644
index 000000000000..62236951c73d
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubRouteTableV2List.json
@@ -0,0 +1,72 @@
+{
+ "parameters": {
+ "virtualHubName": "virtualHub1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": [
+ {
+ "name": "virtualHubRouteTable1a",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/routeTables/virtualHubRouteTable1a",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "routes": [
+ {
+ "destinationType": "CIDR",
+ "destinations": [
+ "20.10.0.0/16",
+ "20.20.0.0/16"
+ ],
+ "nextHopType": "IPAddress",
+ "nextHops": [
+ "10.0.0.68"
+ ]
+ },
+ {
+ "destinationType": "CIDR",
+ "destinations": [
+ "0.0.0.0/0"
+ ],
+ "nextHopType": "IPAddress",
+ "nextHops": [
+ "10.0.0.68"
+ ]
+ }
+ ],
+ "attachedConnections": [
+ "All_Vnets"
+ ]
+ }
+ },
+ {
+ "name": "virtualHubRouteTable1b",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/routeTables/virtualHubRouteTable1b",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "routes": [
+ {
+ "destinationType": "CIDR",
+ "destinations": [
+ "20.30.0.0/16",
+ "20.40.0.0/16"
+ ],
+ "nextHopType": "IPAddress",
+ "nextHops": [
+ "10.0.0.68"
+ ]
+ }
+ ],
+ "attachedConnections": [
+ "All_Branches"
+ ]
+ }
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubRouteTableV2Put.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubRouteTableV2Put.json
new file mode 100644
index 000000000000..55f608a973c9
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubRouteTableV2Put.json
@@ -0,0 +1,113 @@
+{
+ "parameters": {
+ "routeTableName": "virtualHubRouteTable1a",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "virtualHubName": "virtualHub1",
+ "virtualHubRouteTableV2Parameters": {
+ "properties": {
+ "routes": [
+ {
+ "destinationType": "CIDR",
+ "destinations": [
+ "20.10.0.0/16",
+ "20.20.0.0/16"
+ ],
+ "nextHopType": "IPAddress",
+ "nextHops": [
+ "10.0.0.68"
+ ]
+ },
+ {
+ "destinationType": "CIDR",
+ "destinations": [
+ "0.0.0.0/0"
+ ],
+ "nextHopType": "IPAddress",
+ "nextHops": [
+ "10.0.0.68"
+ ]
+ }
+ ],
+ "attachedConnections": [
+ "All_Vnets"
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/routeTables/virtualHubRouteTable1a",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "name": "virtualHubRouteTable1a",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "routes": [
+ {
+ "destinationType": "CIDR",
+ "destinations": [
+ "20.10.0.0/16",
+ "20.20.0.0/16"
+ ],
+ "nextHopType": "IPAddress",
+ "nextHops": [
+ "10.0.0.68"
+ ]
+ },
+ {
+ "destinationType": "CIDR",
+ "destinations": [
+ "0.0.0.0/0"
+ ],
+ "nextHopType": "IPAddress",
+ "nextHops": [
+ "10.0.0.68"
+ ]
+ }
+ ],
+ "attachedConnections": [
+ "All_Vnets"
+ ]
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/routeTables/virtualHubRouteTable1a",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "name": "virtualHubRouteTable1a",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "routes": [
+ {
+ "destinationType": "CIDR",
+ "destinations": [
+ "20.10.0.0/16",
+ "20.20.0.0/16"
+ ],
+ "nextHopType": "IPAddress",
+ "nextHops": [
+ "10.0.0.68"
+ ]
+ },
+ {
+ "destinationType": "CIDR",
+ "destinations": [
+ "0.0.0.0/0"
+ ],
+ "nextHopType": "IPAddress",
+ "nextHops": [
+ "10.0.0.68"
+ ]
+ }
+ ],
+ "attachedConnections": [
+ "All_Vnets"
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubUpdateTags.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubUpdateTags.json
new file mode 100644
index 000000000000..29817f9e4246
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualHubUpdateTags.json
@@ -0,0 +1,44 @@
+{
+ "parameters": {
+ "virtualHubName": "virtualHub2",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "virtualHubParameters": {
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub2",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "name": "virtualHub2",
+ "type": "Microsoft.Network/virtualHubs",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "virtualWan": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualWans/virtualWan1"
+ },
+ "virtualHubRouteTableV2s": [],
+ "addressPrefix": "10.168.0.0/24",
+ "sku": "Basic",
+ "virtualRouterAsn": 65515,
+ "virtualRouterIps": [
+ "10.10.1.12",
+ "10.10.1.13"
+ ],
+ "allowBranchToBranchTraffic": false
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkCheckIPAddressAvailability.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkCheckIPAddressAvailability.json
new file mode 100644
index 000000000000..6e8620f2811a
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkCheckIPAddressAvailability.json
@@ -0,0 +1,23 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualNetworkName": "test-vnet",
+ "ipAddress": "10.0.1.4"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "available": false,
+ "availableIPAddresses": [
+ "10.0.1.5",
+ "10.0.1.6",
+ "10.0.1.7",
+ "10.0.1.8",
+ "10.0.1.9"
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkCreate.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkCreate.json
new file mode 100644
index 000000000000..5f5e720a5013
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkCreate.json
@@ -0,0 +1,56 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualNetworkName": "test-vnet",
+ "parameters": {
+ "properties": {
+ "addressSpace": {
+ "addressPrefixes": [
+ "10.0.0.0/16"
+ ]
+ }
+ },
+ "location": "eastus"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "test-vnet",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet",
+ "type": "Microsoft.Network/virtualNetworks",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "addressSpace": {
+ "addressPrefixes": [
+ "10.0.0.0/16"
+ ]
+ },
+ "subnets": [],
+ "virtualNetworkPeerings": []
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "test-vnet",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet",
+ "type": "Microsoft.Network/virtualNetworks",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "addressSpace": {
+ "addressPrefixes": [
+ "10.0.0.0/16"
+ ]
+ },
+ "subnets": [],
+ "virtualNetworkPeerings": []
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkCreateServiceEndpointPolicy.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkCreateServiceEndpointPolicy.json
new file mode 100644
index 000000000000..9fd75560e6cf
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkCreateServiceEndpointPolicy.json
@@ -0,0 +1,126 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "vnetTest",
+ "virtualNetworkName": "vnet1",
+ "parameters": {
+ "properties": {
+ "addressSpace": {
+ "addressPrefixes": [
+ "10.0.0.0/16"
+ ]
+ },
+ "subnets": [
+ {
+ "name": "test-1",
+ "properties": {
+ "addressPrefix": "10.0.0.0/16",
+ "serviceEndpoints": [
+ {
+ "service": "Microsoft.Storage"
+ }
+ ],
+ "serviceEndpointPolicies": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/vnetTest/providers/Microsoft.Network/serviceEndpointPolicies/ServiceEndpointPolicy1"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "location": "eastus2euap"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "vnet1",
+ "id": "/subscriptions/subid/resourceGroups/vnetTest/providers/Microsoft.Network/virtualNetworks/vnet1",
+ "type": "Microsoft.Network/virtualNetworks",
+ "location": "eastus2euap",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "addressSpace": {
+ "addressPrefixes": [
+ "10.0.0.0/16"
+ ]
+ },
+ "subnets": [
+ {
+ "name": "test-1",
+ "id": "/subscriptions/subid/resourceGroups/vnetTest/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/test-1",
+ "properties": {
+ "addressPrefix": "10.0.0.0/16",
+ "ipConfigurations": [],
+ "resourceNavigationLinks": [],
+ "serviceEndpoints": [
+ {
+ "provisioningState": "Succeeded",
+ "service": "Microsoft.Storage",
+ "locations": [
+ "eastus2(stage)",
+ "usnorth(stage)"
+ ]
+ }
+ ],
+ "serviceEndpointPolicies": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/vnetTest/providers/Microsoft.Network/serviceEndpointPolicies/ServiceEndpointPolicy1"
+ }
+ ],
+ "provisioningState": "Succeeded"
+ }
+ }
+ ],
+ "virtualNetworkPeerings": []
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "vnet1",
+ "id": "/subscriptions/subid/resourceGroups/vnetTest/providers/Microsoft.Network/virtualNetworks/vnet1",
+ "type": "Microsoft.Network/virtualNetworks",
+ "location": "eastus2euap",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "addressSpace": {
+ "addressPrefixes": [
+ "10.0.0.0/16"
+ ]
+ },
+ "subnets": [
+ {
+ "name": "test-1",
+ "id": "/subscriptions/subid/resourceGroups/vnetTest/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/test-1",
+ "properties": {
+ "addressPrefix": "10.0.0.0/16",
+ "ipConfigurations": [],
+ "resourceNavigationLinks": [],
+ "serviceEndpoints": [
+ {
+ "provisioningState": "Succeeded",
+ "service": "Microsoft.Storage",
+ "locations": [
+ "eastus2(stage)",
+ "usnorth(stage)"
+ ]
+ }
+ ],
+ "serviceEndpointPolicies": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/vnetTest/providers/Microsoft.Network/serviceEndpointPolicies/ServiceEndpointPolicy1"
+ }
+ ],
+ "provisioningState": "Succeeded"
+ }
+ }
+ ],
+ "virtualNetworkPeerings": []
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkCreateServiceEndpoints.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkCreateServiceEndpoints.json
new file mode 100644
index 000000000000..e6468b76ce05
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkCreateServiceEndpoints.json
@@ -0,0 +1,111 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "vnetTest",
+ "virtualNetworkName": "vnet1",
+ "parameters": {
+ "properties": {
+ "addressSpace": {
+ "addressPrefixes": [
+ "10.0.0.0/16"
+ ]
+ },
+ "subnets": [
+ {
+ "name": "test-1",
+ "properties": {
+ "addressPrefix": "10.0.0.0/16",
+ "serviceEndpoints": [
+ {
+ "service": "Microsoft.Storage"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "location": "eastus"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "vnet1",
+ "id": "/subscriptions/subid/resourceGroups/vnetTest/providers/Microsoft.Network/virtualNetworks/vnet1",
+ "type": "Microsoft.Network/virtualNetworks",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "addressSpace": {
+ "addressPrefixes": [
+ "10.0.0.0/16"
+ ]
+ },
+ "subnets": [
+ {
+ "name": "test-1",
+ "id": "/subscriptions/subid/resourceGroups/vnetTest/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/test-1",
+ "properties": {
+ "addressPrefix": "10.0.0.0/16",
+ "ipConfigurations": [],
+ "resourceNavigationLinks": [],
+ "serviceEndpoints": [
+ {
+ "provisioningState": "Succeeded",
+ "service": "Microsoft.Storage",
+ "locations": [
+ "eastus2(stage)",
+ "usnorth(stage)"
+ ]
+ }
+ ],
+ "provisioningState": "Succeeded"
+ }
+ }
+ ],
+ "virtualNetworkPeerings": []
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "vnet1",
+ "id": "/subscriptions/subid/resourceGroups/vnetTest/providers/Microsoft.Network/virtualNetworks/vnet1",
+ "type": "Microsoft.Network/virtualNetworks",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "addressSpace": {
+ "addressPrefixes": [
+ "10.0.0.0/16"
+ ]
+ },
+ "subnets": [
+ {
+ "name": "test-1",
+ "id": "/subscriptions/subid/resourceGroups/vnetTest/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/test-1",
+ "properties": {
+ "addressPrefix": "10.0.0.0/16",
+ "ipConfigurations": [],
+ "resourceNavigationLinks": [],
+ "serviceEndpoints": [
+ {
+ "provisioningState": "Succeeded",
+ "service": "Microsoft.Storage",
+ "locations": [
+ "eastus2(stage)",
+ "usnorth(stage)"
+ ]
+ }
+ ],
+ "provisioningState": "Succeeded"
+ }
+ }
+ ],
+ "virtualNetworkPeerings": []
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkCreateSubnet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkCreateSubnet.json
new file mode 100644
index 000000000000..eb3c25ea168e
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkCreateSubnet.json
@@ -0,0 +1,82 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualNetworkName": "test-vnet",
+ "parameters": {
+ "properties": {
+ "addressSpace": {
+ "addressPrefixes": [
+ "10.0.0.0/16"
+ ]
+ },
+ "subnets": [
+ {
+ "name": "test-1",
+ "properties": {
+ "addressPrefix": "10.0.0.0/24"
+ }
+ }
+ ]
+ },
+ "location": "eastus"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "test-vnet",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet",
+ "type": "Microsoft.Network/virtualNetworks",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "addressSpace": {
+ "addressPrefixes": [
+ "10.0.0.0/16"
+ ]
+ },
+ "subnets": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/test-1",
+ "name": "test-1",
+ "properties": {
+ "addressPrefix": "10.0.0.0/24",
+ "provisioningState": "Succeeded"
+ }
+ }
+ ],
+ "virtualNetworkPeerings": []
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "test-vnet",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet",
+ "type": "Microsoft.Network/virtualNetworks",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "addressSpace": {
+ "addressPrefixes": [
+ "10.0.0.0/16"
+ ]
+ },
+ "subnets": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/test-1",
+ "name": "test-1",
+ "properties": {
+ "addressPrefix": "10.0.0.0/24",
+ "provisioningState": "Succeeded"
+ }
+ }
+ ],
+ "virtualNetworkPeerings": []
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkCreateSubnetWithAddressPrefixes.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkCreateSubnetWithAddressPrefixes.json
new file mode 100644
index 000000000000..8360cb8b0e8a
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkCreateSubnetWithAddressPrefixes.json
@@ -0,0 +1,91 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualNetworkName": "test-vnet",
+ "parameters": {
+ "properties": {
+ "addressSpace": {
+ "addressPrefixes": [
+ "10.0.0.0/16"
+ ]
+ },
+ "subnets": [
+ {
+ "name": "test-2",
+ "properties": {
+ "addressPrefixes": [
+ "10.0.0.0/28",
+ "10.0.1.0/28"
+ ]
+ }
+ }
+ ]
+ },
+ "location": "eastus"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "test-vnet",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet",
+ "type": "Microsoft.Network/virtualNetworks",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "addressSpace": {
+ "addressPrefixes": [
+ "10.0.0.0/16"
+ ]
+ },
+ "subnets": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/test-2",
+ "name": "test-2",
+ "properties": {
+ "addressPrefixes": [
+ "10.0.0.0/28",
+ "10.1.0.0/28"
+ ],
+ "provisioningState": "Succeeded"
+ }
+ }
+ ],
+ "virtualNetworkPeerings": []
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "test-vnet",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet",
+ "type": "Microsoft.Network/virtualNetworks",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "addressSpace": {
+ "addressPrefixes": [
+ "10.0.0.0/16"
+ ]
+ },
+ "subnets": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/test-2",
+ "name": "test-2",
+ "properties": {
+ "addressPrefixes": [
+ "10.0.0.0/28",
+ "10.0.1.0/28"
+ ],
+ "provisioningState": "Succeeded"
+ }
+ }
+ ],
+ "virtualNetworkPeerings": []
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkCreateSubnetWithDelegation.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkCreateSubnetWithDelegation.json
new file mode 100644
index 000000000000..1537c3871ca0
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkCreateSubnetWithDelegation.json
@@ -0,0 +1,114 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subId",
+ "resourceGroupName": "rg1",
+ "virtualNetworkName": "test-vnet",
+ "parameters": {
+ "properties": {
+ "addressSpace": {
+ "addressPrefixes": [
+ "10.0.0.0/16"
+ ]
+ },
+ "subnets": [
+ {
+ "name": "test-1",
+ "properties": {
+ "addressPrefix": "10.0.0.0/24",
+ "delegations": [
+ {
+ "name": "myDelegation",
+ "properties": {
+ "serviceName": "Microsoft.Sql/managedInstances"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "location": "westcentralus"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "test-vnet",
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet",
+ "type": "Microsoft.Network/virtualNetworks",
+ "location": "westcentralus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "addressSpace": {
+ "addressPrefixes": [
+ "10.0.0.0/16"
+ ]
+ },
+ "subnets": [
+ {
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/test-1",
+ "name": "test-1",
+ "properties": {
+ "addressPrefix": "10.0.0.0/24",
+ "provisioningState": "Succeeded",
+ "delegations": [
+ {
+ "name": "myDelegation",
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/test-1/delegations/myDelegation",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "serviceName": "Microsoft.Sql/managedInstances",
+ "actions": []
+ }
+ }
+ ],
+ "purpose": ""
+ }
+ }
+ ],
+ "virtualNetworkPeerings": []
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "test-vnet",
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet",
+ "type": "Microsoft.Network/virtualNetworks",
+ "location": "westcentralus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "addressSpace": {
+ "addressPrefixes": [
+ "10.0.0.0/16"
+ ]
+ },
+ "subnets": [
+ {
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/test-1",
+ "name": "test-1",
+ "properties": {
+ "addressPrefix": "10.0.0.0/24",
+ "provisioningState": "Succeeded",
+ "delegations": [
+ {
+ "name": "myDelegation",
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/test-1/delegations/myDelegation",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "serviceName": "Microsoft.Sql/managedInstances",
+ "actions": []
+ }
+ }
+ ],
+ "purpose": ""
+ }
+ }
+ ],
+ "virtualNetworkPeerings": []
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkCreateWithBgpCommunities.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkCreateWithBgpCommunities.json
new file mode 100644
index 000000000000..2ae3b2fb6e92
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkCreateWithBgpCommunities.json
@@ -0,0 +1,93 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualNetworkName": "test-vnet",
+ "parameters": {
+ "properties": {
+ "addressSpace": {
+ "addressPrefixes": [
+ "10.0.0.0/16"
+ ]
+ },
+ "subnets": [
+ {
+ "name": "test-1",
+ "properties": {
+ "addressPrefix": "10.0.0.0/24"
+ }
+ }
+ ],
+ "bgpCommunities": {
+ "virtualNetworkCommunity": "12076:20000"
+ }
+ },
+ "location": "eastus"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "test-vnet",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet",
+ "type": "Microsoft.Network/virtualNetworks",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "addressSpace": {
+ "addressPrefixes": [
+ "10.0.0.0/16"
+ ]
+ },
+ "subnets": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/test-1",
+ "name": "test-1",
+ "properties": {
+ "addressPrefix": "10.0.0.0/24",
+ "provisioningState": "Succeeded"
+ }
+ }
+ ],
+ "bgpCommunities": {
+ "virtualNetworkCommunity": "12076:20000",
+ "regionalCommunity": "12076:50004"
+ },
+ "virtualNetworkPeerings": []
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "test-vnet",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet",
+ "type": "Microsoft.Network/virtualNetworks",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "addressSpace": {
+ "addressPrefixes": [
+ "10.0.0.0/16"
+ ]
+ },
+ "subnets": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/test-1",
+ "name": "test-1",
+ "properties": {
+ "addressPrefix": "10.0.0.0/24",
+ "provisioningState": "Succeeded"
+ }
+ }
+ ],
+ "bgpCommunities": {
+ "virtualNetworkCommunity": "12076:20000",
+ "regionalCommunity": "12076:50004"
+ },
+ "virtualNetworkPeerings": []
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkDelete.json
new file mode 100644
index 000000000000..c9b7a712ae95
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualNetworkName": "test-vnet"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayConnectionCreate.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayConnectionCreate.json
new file mode 100644
index 000000000000..2e74816934be
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayConnectionCreate.json
@@ -0,0 +1,139 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualNetworkGatewayConnectionName": "connS2S",
+ "parameters": {
+ "properties": {
+ "virtualNetworkGateway1": {
+ "properties": {
+ "ipConfigurations": [
+ {
+ "properties": {
+ "privateIPAllocationMethod": "Dynamic",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/GatewaySubnet"
+ },
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/gwpip"
+ }
+ },
+ "name": "gwipconfig1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkGateways/vpngw/ipConfigurations/gwipconfig1"
+ }
+ ],
+ "gatewayType": "Vpn",
+ "vpnType": "RouteBased",
+ "enableBgp": false,
+ "activeActive": false,
+ "sku": {
+ "name": "VpnGw1",
+ "tier": "VpnGw1"
+ },
+ "bgpSettings": {
+ "asn": 65514,
+ "bgpPeeringAddress": "10.0.1.30",
+ "peerWeight": 0
+ }
+ },
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkGateways/vpngw",
+ "location": "centralus",
+ "tags": {}
+ },
+ "localNetworkGateway2": {
+ "properties": {
+ "localNetworkAddressSpace": {
+ "addressPrefixes": [
+ "10.1.0.0/16"
+ ]
+ },
+ "gatewayIpAddress": "x.x.x.x"
+ },
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/localNetworkGateways/localgw",
+ "location": "centralus",
+ "tags": {}
+ },
+ "connectionType": "IPsec",
+ "connectionProtocol": "IKEv2",
+ "routingWeight": 0,
+ "dpdTimeoutSeconds": 30,
+ "sharedKey": "Abc123",
+ "enableBgp": false,
+ "usePolicyBasedTrafficSelectors": false,
+ "ipsecPolicies": [],
+ "trafficSelectorPolicies": [],
+ "connectionMode": "Default"
+ },
+ "location": "centralus"
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "name": "connS2S",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/connections/connS2S",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "type": "Microsoft.Network/connections",
+ "location": "centralus",
+ "properties": {
+ "provisioningState": "Updating",
+ "resourceGuid": "00000000-0000-0000-0000-000000000000",
+ "virtualNetworkGateway1": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkGateways/vpngw",
+ "properties": {}
+ },
+ "localNetworkGateway2": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/localNetworkGateways/localgw",
+ "properties": {}
+ },
+ "connectionType": "IPsec",
+ "connectionProtocol": "IKEv2",
+ "routingWeight": 0,
+ "dpdTimeoutSeconds": 30,
+ "sharedKey": "Abc123",
+ "enableBgp": false,
+ "useLocalAzureIpAddress": false,
+ "usePolicyBasedTrafficSelectors": false,
+ "ipsecPolicies": [],
+ "ingressBytesTransferred": 0,
+ "egressBytesTransferred": 0,
+ "connectionMode": "Default"
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "name": "connS2S",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/connections/connS2S",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "type": "Microsoft.Network/connections",
+ "location": "centralus",
+ "properties": {
+ "provisioningState": "Updating",
+ "resourceGuid": "00000000-0000-0000-0000-000000000000",
+ "virtualNetworkGateway1": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkGateways/vpngw",
+ "properties": {}
+ },
+ "localNetworkGateway2": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/localNetworkGateways/localgw",
+ "properties": {}
+ },
+ "connectionType": "IPsec",
+ "connectionProtocol": "IKEv2",
+ "routingWeight": 0,
+ "dpdTimeoutSeconds": 30,
+ "sharedKey": "Abc123",
+ "enableBgp": false,
+ "useLocalAzureIpAddress": false,
+ "usePolicyBasedTrafficSelectors": false,
+ "ipsecPolicies": [],
+ "ingressBytesTransferred": 0,
+ "egressBytesTransferred": 0,
+ "connectionMode": "Default"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayConnectionDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayConnectionDelete.json
new file mode 100644
index 000000000000..b8929f474c2c
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayConnectionDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualNetworkGatewayConnectionName": "conn1"
+ },
+ "responses": {
+ "202": {},
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayConnectionGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayConnectionGet.json
new file mode 100644
index 000000000000..1cfb55ce9b7f
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayConnectionGet.json
@@ -0,0 +1,45 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualNetworkGatewayConnectionName": "connS2S"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "connS2S",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/connections/connS2S",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "type": "Microsoft.Network/connections",
+ "location": "centralus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-000000000000",
+ "virtualNetworkGateway1": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkGateways/vpngw",
+ "properties": {}
+ },
+ "localNetworkGateway2": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/localNetworkGateways/localgw",
+ "properties": {}
+ },
+ "connectionType": "IPsec",
+ "connectionProtocol": "IKEv2",
+ "routingWeight": 0,
+ "dpdTimeoutSeconds": 30,
+ "sharedKey": "Abc123",
+ "enableBgp": false,
+ "useLocalAzureIpAddress": false,
+ "usePolicyBasedTrafficSelectors": false,
+ "ipsecPolicies": [],
+ "trafficSelectorPolicies": [],
+ "connectionStatus": "Connecting",
+ "ingressBytesTransferred": 0,
+ "egressBytesTransferred": 0,
+ "connectionMode": "Default"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayConnectionGetSharedKey.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayConnectionGetSharedKey.json
new file mode 100644
index 000000000000..435a5e63b76b
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayConnectionGetSharedKey.json
@@ -0,0 +1,15 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualNetworkGatewayConnectionName": "connS2S"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": "AzureAbc123"
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayConnectionResetSharedKey.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayConnectionResetSharedKey.json
new file mode 100644
index 000000000000..1457e8770951
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayConnectionResetSharedKey.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualNetworkGatewayConnectionName": "conn1",
+ "parameters": {
+ "keyLength": 128
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "keyLength": 128
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayConnectionSetSharedKey.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayConnectionSetSharedKey.json
new file mode 100644
index 000000000000..44220b5cdd37
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayConnectionSetSharedKey.json
@@ -0,0 +1,23 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualNetworkGatewayConnectionName": "connS2S",
+ "parameters": {
+ "value": "AzureAbc123"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": "AzureAbc123"
+ }
+ },
+ "201": {
+ "body": {
+ "value": "AzureAbc123"
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayConnectionStartPacketCapture.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayConnectionStartPacketCapture.json
new file mode 100644
index 000000000000..95098dce727d
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayConnectionStartPacketCapture.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualNetworkGatewayConnectionName": "vpngwcn1"
+ },
+ "responses": {
+ "202": {},
+ "200": {
+ "body": "\"{\"Status\":\"Successful\",\"Data\":null}\""
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayConnectionStartPacketCaptureFilterData.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayConnectionStartPacketCaptureFilterData.json
new file mode 100644
index 000000000000..d4c272e3a6ac
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayConnectionStartPacketCaptureFilterData.json
@@ -0,0 +1,17 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualNetworkGatewayConnectionName": "vpngwcn1",
+ "parameters": {
+ "filterData": "{'TracingFlags': 11,'MaxPacketBufferSize': 120,'MaxFileSize': 200,'Filters': [{'SourceSubnets': ['20.1.1.0/24'],'DestinationSubnets': ['10.1.1.0/24'],'SourcePort': [500],'DestinationPort': [4500],'Protocol': 6,'TcpFlags': 16,'CaptureSingleDirectionTrafficOnly': true}]}"
+ }
+ },
+ "responses": {
+ "202": {},
+ "200": {
+ "body": "\"{\"Status\":\"Successful\",\"Data\":null}\""
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayConnectionStopPacketCapture.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayConnectionStopPacketCapture.json
new file mode 100644
index 000000000000..1634f684043a
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayConnectionStopPacketCapture.json
@@ -0,0 +1,17 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualNetworkGatewayConnectionName": "vpngwcn1",
+ "parameters": {
+ "sasUrl": "https://teststorage.blob.core.windows.net/?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-09-13T07:44:05Z&st=2019-09-06T23:44:05Z&spr=https&sig=V1h9D1riltvZMI69d6ihENnFo%2FrCvTqGgjO2lf%2FVBhE%3D"
+ }
+ },
+ "responses": {
+ "202": {},
+ "200": {
+ "body": "\"{\"Status\":\"Successful\",\"Data\":null}\""
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayConnectionUpdateTags.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayConnectionUpdateTags.json
new file mode 100644
index 000000000000..4c1f1c37b487
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayConnectionUpdateTags.json
@@ -0,0 +1,51 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualNetworkGatewayConnectionName": "test",
+ "parameters": {
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ }
+ }
+ },
+ "responses": {
+ "202": {},
+ "200": {
+ "body": {
+ "name": "test",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/connections/test",
+ "type": "Microsoft.Network/connections",
+ "location": "westus",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-000000000000",
+ "virtualNetworkGateway1": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkGateways/vpngw",
+ "properties": {}
+ },
+ "localNetworkGateway2": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/localNetworkGateways/lgw",
+ "properties": {}
+ },
+ "connectionType": "IPsec",
+ "routingWeight": 0,
+ "sharedKey": "temp1234",
+ "enableBgp": false,
+ "usePolicyBasedTrafficSelectors": false,
+ "ipsecPolicies": [],
+ "trafficSelectorPolicies": [],
+ "connectionStatus": "Unknown",
+ "ingressBytesTransferred": 0,
+ "egressBytesTransferred": 0
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayConnectionsList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayConnectionsList.json
new file mode 100644
index 000000000000..af66bed3b9b3
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayConnectionsList.json
@@ -0,0 +1,77 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "conn1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/connections/conn1",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "type": "Microsoft.Network/connections",
+ "location": "centralus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-000000000000",
+ "virtualNetworkGateway1": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkGateways/vpngw1",
+ "properties": {}
+ },
+ "localNetworkGateway2": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/localNetworkGateways/localgw1",
+ "properties": {}
+ },
+ "connectionType": "IPsec",
+ "connectionProtocol": "IKEv1",
+ "routingWeight": 0,
+ "dpdTimeoutSeconds": 30,
+ "enableBgp": false,
+ "useLocalAzureIpAddress": false,
+ "usePolicyBasedTrafficSelectors": false,
+ "ipsecPolicies": [],
+ "trafficSelectorPolicies": [],
+ "ingressBytesTransferred": 0,
+ "egressBytesTransferred": 0,
+ "connectionMode": "Default"
+ }
+ },
+ {
+ "name": "conn2",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/connections/conn2",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "type": "Microsoft.Network/connections",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-000000000000",
+ "virtualNetworkGateway1": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkGateways/vpngw2",
+ "properties": {}
+ },
+ "localNetworkGateway2": {
+ "properties": {},
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/localNetworkGateways/localgw2"
+ },
+ "connectionType": "IPsec",
+ "connectionProtocol": "IKEv2",
+ "routingWeight": 0,
+ "dpdTimeoutSeconds": 20,
+ "enableBgp": false,
+ "useLocalAzureIpAddress": true,
+ "usePolicyBasedTrafficSelectors": false,
+ "ipsecPolicies": [],
+ "trafficSelectorPolicies": [],
+ "ingressBytesTransferred": 0,
+ "egressBytesTransferred": 0,
+ "connectionMode": "Default"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayDelete.json
new file mode 100644
index 000000000000..b718d381e240
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualNetworkGatewayName": "vpngw"
+ },
+ "responses": {
+ "202": {},
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayGenerateVpnClientPackage.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayGenerateVpnClientPackage.json
new file mode 100644
index 000000000000..09845aaa2971
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayGenerateVpnClientPackage.json
@@ -0,0 +1,15 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualNetworkGatewayName": "vpngw",
+ "parameters": {}
+ },
+ "responses": {
+ "200": {
+ "body": ""
+ },
+ "202": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayGenerateVpnProfile.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayGenerateVpnProfile.json
new file mode 100644
index 000000000000..11f1c939b108
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayGenerateVpnProfile.json
@@ -0,0 +1,15 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualNetworkGatewayName": "vpngw",
+ "parameters": {}
+ },
+ "responses": {
+ "202": {},
+ "200": {
+ "body": ""
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayGet.json
new file mode 100644
index 000000000000..4fb15659bc02
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayGet.json
@@ -0,0 +1,88 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualNetworkGatewayName": "vpngw"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "vpngw",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkGateways/vpngw",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "type": "Microsoft.Network/virtualNetworkGateways",
+ "location": "centralus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-000000000000",
+ "ipConfigurations": [
+ {
+ "name": "gwipconfig1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkGateways/vpngw/ipConfigurations/gwipconfig1",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAllocationMethod": "Dynamic",
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/gwpip"
+ },
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/GatewaySubnet"
+ }
+ }
+ }
+ ],
+ "sku": {
+ "name": "VpnGw1",
+ "tier": "VpnGw1",
+ "capacity": 0
+ },
+ "gatewayType": "Vpn",
+ "vpnType": "RouteBased",
+ "vpnGatewayGeneration": "None",
+ "enableBgp": false,
+ "enablePrivateIpAddress": false,
+ "activeActive": false,
+ "vpnClientConfiguration": {
+ "vpnClientProtocols": [
+ "OpenVPN"
+ ],
+ "vpnClientRootCertificates": [],
+ "vpnClientRevokedCertificates": [],
+ "radiusServers": [
+ {
+ "radiusServerAddress": "10.1.0.0",
+ "radiusServerScore": 20
+ }
+ ]
+ },
+ "bgpSettings": {
+ "asn": 65514,
+ "bgpPeeringAddress": "10.0.1.30",
+ "peerWeight": 0,
+ "bgpPeeringAddresses": [
+ {
+ "ipconfigurationId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkGateways/vpngw/ipConfigurations/gwipconfig1",
+ "defaultBgpIpAddresses": [
+ "10.3.1.254"
+ ],
+ "customBgpIpAddresses": [
+ "169.254.21.10"
+ ],
+ "tunnelIpAddresses": [
+ "52.161.10.135"
+ ]
+ }
+ ]
+ },
+ "customRoutes": {
+ "addressPrefixes": [
+ "101.168.0.6/32"
+ ]
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayGetAdvertisedRoutes.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayGetAdvertisedRoutes.json
new file mode 100644
index 000000000000..4a4bf537c8ee
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayGetAdvertisedRoutes.json
@@ -0,0 +1,15 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualNetworkGatewayName": "vpngw",
+ "peer": "test"
+ },
+ "responses": {
+ "202": {},
+ "200": {
+ "body": {}
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayGetBGPPeerStatus.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayGetBGPPeerStatus.json
new file mode 100644
index 000000000000..2d0104fc786a
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayGetBGPPeerStatus.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualNetworkGatewayName": "vpngw"
+ },
+ "responses": {
+ "202": {},
+ "200": {
+ "body": {}
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayGetVpnClientIpsecParameters.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayGetVpnClientIpsecParameters.json
new file mode 100644
index 000000000000..6a074f091607
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayGetVpnClientIpsecParameters.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualNetworkGatewayName": "vpngw"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "saLifeTimeSeconds": 86473,
+ "saDataSizeKilobytes": 429497,
+ "ipsecEncryption": "AES256",
+ "ipsecIntegrity": "SHA256",
+ "ikeEncryption": "AES256",
+ "ikeIntegrity": "SHA384",
+ "dhGroup": "DHGroup2",
+ "pfsGroup": "PFS2"
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayGetVpnProfilePackageUrl.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayGetVpnProfilePackageUrl.json
new file mode 100644
index 000000000000..55fd74ce236c
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayGetVpnProfilePackageUrl.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualNetworkGatewayName": "vpngw"
+ },
+ "responses": {
+ "202": {},
+ "200": {
+ "body": ""
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayGetVpnclientConnectionHealth.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayGetVpnclientConnectionHealth.json
new file mode 100644
index 000000000000..690b19f4fe43
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayGetVpnclientConnectionHealth.json
@@ -0,0 +1,45 @@
+{
+ "parameters": {
+ "resourceGroupName": "p2s-vnet-test",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "virtualNetworkGatewayName": "vpnp2sgw"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "vpnConnectionId": "IKEv2_1e1cfe59-5c7c-4315-a876-b11fbfdfeed4",
+ "vpnConnectionDuration": 900,
+ "vpnConnectionTime": "2019-05-02T22:26:22",
+ "publicIpAddress": "167.220.2.232:45522",
+ "privateIpAddress": "192.168.210.2",
+ "vpnUserName": "gwp2schildcert",
+ "maxBandwidth": 240000000,
+ "egressPacketsTransferred": 557,
+ "egressBytesTransferred": 33420,
+ "ingressPacketsTransferred": 557,
+ "ingressBytesTransferred": 33420,
+ "maxPacketsPerSecond": 4
+ },
+ {
+ "vpnConnectionId": "IKEv2_571cfe59-2c7d-1415-e813-c51fbfdfea16",
+ "vpnConnectionDuration": 800,
+ "vpnConnectionTime": "2019-05-01T21:06:12",
+ "publicIpAddress": "167.220.2.232:45213",
+ "privateIpAddress": "192.168.210.1",
+ "vpnUserName": "gwp2schildcert",
+ "maxBandwidth": 220000000,
+ "egressPacketsTransferred": 357,
+ "egressBytesTransferred": 23420,
+ "ingressPacketsTransferred": 357,
+ "ingressBytesTransferred": 23420,
+ "maxPacketsPerSecond": 4
+ }
+ ]
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayLearnedRoutes.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayLearnedRoutes.json
new file mode 100644
index 000000000000..2d0104fc786a
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayLearnedRoutes.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualNetworkGatewayName": "vpngw"
+ },
+ "responses": {
+ "202": {},
+ "200": {
+ "body": {}
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayList.json
new file mode 100644
index 000000000000..ef3a62f10084
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayList.json
@@ -0,0 +1,132 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "vpngw1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkGateways/vpngw1",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "type": "Microsoft.Network/virtualNetworkGateways",
+ "location": "loc1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-000000000000",
+ "ipConfigurations": [
+ {
+ "name": "default",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkGateways/vpngw1/ipConfigurations/default",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAllocationMethod": "Dynamic",
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/vpngw1-ip"
+ },
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/GatewaySubnet"
+ }
+ }
+ }
+ ],
+ "sku": {
+ "name": "VpnGw1",
+ "tier": "VpnGw1",
+ "capacity": 2
+ },
+ "gatewayType": "Vpn",
+ "vpnType": "RouteBased",
+ "vpnGatewayGeneration": "None",
+ "enableBgp": false,
+ "enablePrivateIpAddress": false,
+ "activeActive": false,
+ "vpnClientConfiguration": {
+ "vpnClientProtocols": [],
+ "vpnClientRootCertificates": [],
+ "vpnClientRevokedCertificates": []
+ },
+ "bgpSettings": {
+ "asn": 65515,
+ "bgpPeeringAddress": "10.0.0.14",
+ "peerWeight": 0
+ },
+ "customRoutes": {
+ "addressPrefixes": [
+ "101.168.0.6/32"
+ ]
+ }
+ }
+ },
+ {
+ "name": "vpngw2",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkGateways/vpngw2",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "type": "Microsoft.Network/virtualNetworkGateways",
+ "location": "loc2",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-000000000000",
+ "ipConfigurations": [
+ {
+ "name": "default",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkGateways/vpngw2/ipConfigurations/default",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAllocationMethod": "Dynamic",
+ "privateIPAddress": "10.1.0.7",
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/vpngw2-ip"
+ },
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/GatewaySubnet"
+ }
+ }
+ }
+ ],
+ "sku": {
+ "name": "VpnGw1",
+ "tier": "VpnGw1",
+ "capacity": 2
+ },
+ "gatewayType": "Vpn",
+ "vpnType": "RouteBased",
+ "vpnGatewayGeneration": "None",
+ "enableBgp": false,
+ "enablePrivateIpAddress": true,
+ "activeActive": false,
+ "vpnClientConfiguration": {
+ "vpnClientProtocols": [
+ "OpenVPN"
+ ],
+ "vpnClientRootCertificates": [],
+ "vpnClientRevokedCertificates": [],
+ "radiusServers": [
+ {
+ "radiusServerAddress": "10.2.0.0",
+ "radiusServerScore": 20
+ }
+ ]
+ },
+ "bgpSettings": {
+ "asn": 65515,
+ "bgpPeeringAddress": "10.1.0.46",
+ "peerWeight": 0
+ },
+ "customRoutes": {
+ "addressPrefixes": [
+ "101.168.0.6/32"
+ ]
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayReset.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayReset.json
new file mode 100644
index 000000000000..ace9e0c5e9c8
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayReset.json
@@ -0,0 +1,74 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualNetworkGatewayName": "vpngw"
+ },
+ "responses": {
+ "202": {},
+ "200": {
+ "body": {
+ "name": "vpngw",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkGateways/vpngw",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "type": "Microsoft.Network/virtualNetworkGateways",
+ "location": "centralus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-000000000000",
+ "ipConfigurations": [
+ {
+ "name": "gwipconfig1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkGateways/vpngw/ipConfigurations/gwipconfig1",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAllocationMethod": "Dynamic",
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/gwpip"
+ },
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/GatewaySubnet"
+ }
+ }
+ }
+ ],
+ "sku": {
+ "name": "VpnGw1",
+ "tier": "VpnGw1",
+ "capacity": 0
+ },
+ "gatewayType": "Vpn",
+ "vpnType": "RouteBased",
+ "enableBgp": false,
+ "activeActive": false,
+ "bgpSettings": {
+ "asn": 65514,
+ "bgpPeeringAddress": "10.0.1.30",
+ "peerWeight": 0,
+ "bgpPeeringAddresses": [
+ {
+ "ipconfigurationId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkGateways/vpngw/ipConfigurations/gwipconfig1",
+ "defaultBgpIpAddresses": [
+ "10.3.1.254"
+ ],
+ "customBgpIpAddresses": [
+ "169.254.21.10"
+ ],
+ "tunnelIpAddresses": [
+ "52.161.10.135"
+ ]
+ }
+ ]
+ },
+ "customRoutes": {
+ "addressPrefixes": [
+ "101.168.0.6/32"
+ ]
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayResetVpnClientSharedKey.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayResetVpnClientSharedKey.json
new file mode 100644
index 000000000000..b50cca31ae23
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayResetVpnClientSharedKey.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualNetworkGatewayName": "vpngw"
+ },
+ "responses": {
+ "202": {},
+ "200": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewaySetVpnClientIpsecParameters.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewaySetVpnClientIpsecParameters.json
new file mode 100644
index 000000000000..ece9f47e5b5d
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewaySetVpnClientIpsecParameters.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualNetworkGatewayName": "vpngw",
+ "vpnclientIpsecParams": {
+ "saLifeTimeSeconds": 86473,
+ "saDataSizeKilobytes": 429497,
+ "ipsecEncryption": "AES256",
+ "ipsecIntegrity": "SHA256",
+ "ikeEncryption": "AES256",
+ "ikeIntegrity": "SHA384",
+ "dhGroup": "DHGroup2",
+ "pfsGroup": "PFS2"
+ }
+ },
+ "responses": {
+ "202": {},
+ "200": {
+ "body": ""
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayStartPacketCapture.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayStartPacketCapture.json
new file mode 100644
index 000000000000..a4f58c76dbcf
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayStartPacketCapture.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualNetworkGatewayName": "vpngw"
+ },
+ "responses": {
+ "202": {},
+ "200": {
+ "body": "\"{\"Status\":\"Successful\",\"Data\":null}\""
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayStartPacketCaptureFilterData.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayStartPacketCaptureFilterData.json
new file mode 100644
index 000000000000..c350318a3dcd
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayStartPacketCaptureFilterData.json
@@ -0,0 +1,17 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualNetworkGatewayName": "vpngw",
+ "parameters": {
+ "filterData": "{'TracingFlags': 11,'MaxPacketBufferSize': 120,'MaxFileSize': 200,'Filters': [{'SourceSubnets': ['20.1.1.0/24'],'DestinationSubnets': ['10.1.1.0/24'],'SourcePort': [500],'DestinationPort': [4500],'Protocol': 6,'TcpFlags': 16,'CaptureSingleDirectionTrafficOnly': true}]}"
+ }
+ },
+ "responses": {
+ "202": {},
+ "200": {
+ "body": "\"{\"Status\":\"Successful\",\"Data\":null}\""
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayStopPacketCapture.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayStopPacketCapture.json
new file mode 100644
index 000000000000..1965bfd62945
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayStopPacketCapture.json
@@ -0,0 +1,17 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualNetworkGatewayName": "vpngw",
+ "parameters": {
+ "sasUrl": "https://teststorage.blob.core.windows.net/?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-09-13T07:44:05Z&st=2019-09-06T23:44:05Z&spr=https&sig=V1h9D1riltvZMI69d6ihENnFo%2FrCvTqGgjO2lf%2FVBhE%3D"
+ }
+ },
+ "responses": {
+ "202": {},
+ "200": {
+ "body": "\"{\"Status\":\"Successful\",\"Data\":null}\""
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewaySupportedVpnDevice.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewaySupportedVpnDevice.json
new file mode 100644
index 000000000000..fcdf9f40d826
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewaySupportedVpnDevice.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualNetworkGatewayName": "vpngw"
+ },
+ "responses": {
+ "200": {
+ "body": " "
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayUpdate.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayUpdate.json
new file mode 100644
index 000000000000..c4504d132042
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayUpdate.json
@@ -0,0 +1,220 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualNetworkGatewayName": "vpngw",
+ "parameters": {
+ "properties": {
+ "ipConfigurations": [
+ {
+ "properties": {
+ "privateIPAllocationMethod": "Dynamic",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/GatewaySubnet"
+ },
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/gwpip"
+ }
+ },
+ "name": "gwipconfig1"
+ }
+ ],
+ "gatewayType": "Vpn",
+ "vpnType": "RouteBased",
+ "enableBgp": false,
+ "activeActive": false,
+ "enableDnsForwarding": true,
+ "sku": {
+ "name": "VpnGw1",
+ "tier": "VpnGw1"
+ },
+ "vpnClientConfiguration": {
+ "vpnClientProtocols": [
+ "OpenVPN"
+ ],
+ "vpnClientRootCertificates": [],
+ "vpnClientRevokedCertificates": [],
+ "radiusServers": [
+ {
+ "radiusServerAddress": "10.2.0.0",
+ "radiusServerScore": 20,
+ "radiusServerSecret": "radiusServerSecret"
+ }
+ ]
+ },
+ "bgpSettings": {
+ "asn": 65515,
+ "bgpPeeringAddress": "10.0.1.30",
+ "peerWeight": 0
+ },
+ "customRoutes": {
+ "addressPrefixes": [
+ "101.168.0.6/32"
+ ]
+ }
+ },
+ "location": "centralus"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "vpngw",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkGateways/vpngw",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "type": "Microsoft.Network/virtualNetworkGateways",
+ "location": "centralus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-000000000000",
+ "ipConfigurations": [
+ {
+ "name": "gwipconfig1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkGateways/vpngw/ipConfigurations/gwipconfig1",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAllocationMethod": "Dynamic",
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/gwpip"
+ },
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/GatewaySubnet"
+ }
+ }
+ }
+ ],
+ "sku": {
+ "name": "VpnGw1",
+ "tier": "VpnGw1",
+ "capacity": 0
+ },
+ "gatewayType": "Vpn",
+ "vpnType": "RouteBased",
+ "vpnGatewayGeneration": "None",
+ "enableBgp": false,
+ "activeActive": false,
+ "enableDnsForwarding": true,
+ "inboundDnsForwardingEndpoint": "10.0.1.14",
+ "vpnClientConfiguration": {
+ "vpnClientProtocols": [
+ "OpenVPN"
+ ],
+ "vpnClientRootCertificates": [],
+ "vpnClientRevokedCertificates": [],
+ "radiusServers": [
+ {
+ "radiusServerAddress": "10.2.0.0",
+ "radiusServerScore": 20
+ }
+ ]
+ },
+ "bgpSettings": {
+ "asn": 65515,
+ "bgpPeeringAddress": "10.0.1.30",
+ "peerWeight": 0,
+ "bgpPeeringAddresses": [
+ {
+ "ipconfigurationId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkGateways/vpngw/ipConfigurations/gwipconfig1",
+ "defaultBgpIpAddresses": [
+ "10.3.1.254"
+ ],
+ "customBgpIpAddresses": [
+ "169.254.21.10"
+ ],
+ "tunnelIpAddresses": [
+ "52.161.10.135"
+ ]
+ }
+ ]
+ },
+ "customRoutes": {
+ "addressPrefixes": [
+ "101.168.0.6/32"
+ ]
+ }
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "vpngw",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkGateways/vpngw",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "type": "Microsoft.Network/virtualNetworkGateways",
+ "location": "centralus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-000000000000",
+ "ipConfigurations": [
+ {
+ "name": "gwipconfig1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkGateways/vpngw/ipConfigurations/gwipconfig1",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAllocationMethod": "Dynamic",
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/gwpip"
+ },
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/GatewaySubnet"
+ }
+ }
+ }
+ ],
+ "sku": {
+ "name": "VpnGw1",
+ "tier": "VpnGw1",
+ "capacity": 0
+ },
+ "gatewayType": "Vpn",
+ "vpnType": "RouteBased",
+ "enableBgp": false,
+ "activeActive": false,
+ "enableDnsForwarding": true,
+ "enablePrivateIpAddress": false,
+ "inboundDnsForwardingEndpoint": "10.0.1.14",
+ "vpnClientConfiguration": {
+ "vpnClientProtocols": [
+ "OpenVPN"
+ ],
+ "vpnClientRootCertificates": [],
+ "vpnClientRevokedCertificates": [],
+ "radiusServers": [
+ {
+ "radiusServerAddress": "10.2.0.0",
+ "radiusServerScore": 20
+ }
+ ]
+ },
+ "bgpSettings": {
+ "asn": 65515,
+ "bgpPeeringAddress": "10.0.1.30",
+ "peerWeight": 0,
+ "bgpPeeringAddresses": [
+ {
+ "ipconfigurationId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkGateways/vpngw/ipConfigurations/gwipconfig1",
+ "defaultBgpIpAddresses": [
+ "10.3.1.254"
+ ],
+ "customBgpIpAddresses": [
+ "169.254.21.10"
+ ],
+ "tunnelIpAddresses": [
+ "52.161.10.135"
+ ]
+ }
+ ]
+ },
+ "customRoutes": {
+ "addressPrefixes": [
+ "101.168.0.6/32"
+ ]
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayUpdateTags.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayUpdateTags.json
new file mode 100644
index 000000000000..30a8c2a6563a
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayUpdateTags.json
@@ -0,0 +1,83 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualNetworkGatewayName": "vpngw",
+ "parameters": {
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ }
+ }
+ },
+ "responses": {
+ "202": {},
+ "200": {
+ "body": {
+ "name": "vpngw",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkGateways/vpngw",
+ "type": "Microsoft.Network/virtualNetworkGateways",
+ "location": "westus",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-000000000000",
+ "ipConfigurations": [
+ {
+ "name": "default",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkGateways/vpngw/ipConfigurations/default",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAllocationMethod": "Dynamic",
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/testpub1"
+ },
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/GatewaySubnet"
+ }
+ }
+ }
+ ],
+ "sku": {
+ "name": "VpnGw1",
+ "tier": "VpnGw1",
+ "capacity": 2
+ },
+ "gatewayType": "Vpn",
+ "vpnType": "RouteBased",
+ "vpnGatewayGeneration": "None",
+ "enableBgp": false,
+ "activeActive": false,
+ "bgpSettings": {
+ "asn": 65515,
+ "bgpPeeringAddress": "10.0.0.254",
+ "peerWeight": 0,
+ "bgpPeeringAddresses": [
+ {
+ "ipconfigurationId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkGateways/vpngw/ipConfigurations/gwipconfig1",
+ "defaultBgpIpAddresses": [
+ "10.3.1.254"
+ ],
+ "customBgpIpAddresses": [
+ "169.254.21.10"
+ ],
+ "tunnelIpAddresses": [
+ "52.161.10.135"
+ ]
+ }
+ ]
+ },
+ "customRoutes": {
+ "addressPrefixes": [
+ "101.168.0.6/32"
+ ]
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayVpnDeviceConfigurationScript.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayVpnDeviceConfigurationScript.json
new file mode 100644
index 000000000000..c6efd419ed13
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewayVpnDeviceConfigurationScript.json
@@ -0,0 +1,18 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualNetworkGatewayConnectionName": "vpngw",
+ "parameters": {
+ "vendor": "Cisco",
+ "deviceFamily": "ISR",
+ "firmwareVersion": "IOS 15.1 (Preview)"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": "! Microsoft Corporation\r\n! ---------------------------------------------------------------------------------------------------------------------\r\n! Sample VPN tunnel configuration template for IOS-based devices\r\n!\r\n! This configuration template applies to Cisco VPN devices running IOS 15.1 or beyond (ISR or ASR)\r\n!\r\n\r\n\r\n\t\t\r\n\r\n! ---------------------------------------------------------------------------------------------------------------------\r\n! ACL rules\r\n!\r\n! Some VPN devices require explicit ACL rules to allow cross-premises traffic:\r\n!\r\n! 1. Allow traffic between on premises address ranges and VNet address ranges\r\n! 2. Allow IKE traffic (UDP:500) between on premises VPN devices and Azure VPN gateway\r\n! 3. Allow IPsec traffic (Proto:ESP) between on premises VPN devices and Azure VPN gateway\r\n!\r\n\t\t\r\naccess-list 101 permit ip 10.1.0.0 0.0.255.255 10.0.0.0 0.0.255.255\r\n\r\n! ---------------------------------------------------------------------------------------------------------------------\r\n! Internet Key Exchange (IKE) configuration\r\n!\r\n! This section specifies the authentication, encryption, hashing, and Diffie-Hellman group parameters for IKE\r\n! main mode or phase 1\r\n!\r\n\r\ncrypto ikev2 proposal SwaggerS2S-proposal\r\n encryption DES3\r\n integrity SHA384\r\n group DHGroup24\r\n lifetime 3600\r\n exit\r\n\r\ncrypto ikev2 policy SwaggerS2S-policy\r\n proposal SwaggerS2S-proposal\r\n exit\r\n\r\ncrypto ikev2 keyring SwaggerBranch-keyring\r\n\t\t\r\n\t\tpeer 52.173.199.254\r\n\t\taddress 52.173.199.254\r\n\t\tpre-shared-key lALEHuppeopJmA94exRNiRr2QzuZ6lOsvzu5IlJUEA6LthbTc8g5MTT86MCsGNMzGkTAaLuLnEJoD1Cn4cIlr94qKZm9drsgllzWvsPNezS71stAkaW1Bb7h6GBnDlDP\r\n exit\r\n\r\ncrypto ikev2 profile SwaggerS2S-profile\r\n match address local 10.3.0.0\r\n\tmatch identity remote address 52.173.199.254 255.255.255.255\r\n\t\t\r\n authentication remote pre-share\r\n authentication local pre-share\r\n keyring SwaggerBranch-keyring\r\n exit\r\n\r\n! ---------------------------------------------------------------------------------------------------------------------\r\n! IPsec configuration\r\n!\r\n! This section specifies encryption, authentication, tunnel mode properties for the Phase 2 negotiation\r\n!\r\ncrypto ipsec transform-set SwaggerS2S-TransformSet DES3 DES3\r\n mode tunnel\r\n exit\r\n\r\n! ---------------------------------------------------------------------------------------------------------------------\r\n! Crypto map configuration\r\n!\r\n! This section defines a crypto profile that binds the cross-premises network traffic to the IPsec and IKE\r\n! policy profiles for this connection. Then defines the VTI (virtual tunnel interface) with the crypto\r\n! profile. A random interface number (tunnel 1) was used with a random link local address (169.254.0.1/28)\r\n! for the tunnel interface. If either selection is already used in the VPN device, please select another\r\n! interface number or address. The only requirement is that they must not overlap with another interface\r\n! on the same VPN device.\r\n!\r\ncrypto ipsec profile SwaggerS2S-IPsecProfile\r\n set transform-set SwaggerS2S-TransformSet\r\n set ikev2-profile SwaggerS2S-profile\r\n set pfs None\r\n set security-association lifetime 3600\r\n exit\r\n\r\n\r\nint tunnel 52.173.199.254\r\n ip address 169.254.0.1 255.255.255.252\r\n ip tcp adjust-mss 1350\r\n tunnel source 10.3.0.0\r\n tunnel mode ipsec ipv4\r\n tunnel destination 52.173.199.254\r\n tunnel protection ipsec profile SwaggerS2S-IPsecProfile\r\n exit\r\n\r\n\tip route 10.0.0.0 255.255.0.0 tunnel 52.173.199.254 "
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewaysDisconnectP2sVpnConnections.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewaysDisconnectP2sVpnConnections.json
new file mode 100644
index 000000000000..ff619d3d2f20
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewaysDisconnectP2sVpnConnections.json
@@ -0,0 +1,18 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "vpn-gateway-test",
+ "virtualNetworkGatewayName": "vpngateway",
+ "api-version": "2020-07-01",
+ "request": {
+ "vpnConnectionIds": [
+ "vpnconnId1",
+ "vpnconnId2"
+ ]
+ }
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewaysListConnections.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewaysListConnections.json
new file mode 100644
index 000000000000..2f32b7def6b2
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGatewaysListConnections.json
@@ -0,0 +1,41 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "testrg",
+ "virtualNetworkGatewayName": "test-vpn-gateway-1",
+ "api-version": "2020-07-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "test-vpn-connection",
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/connections/test-vpn-connection",
+ "etag": "W/\\\"00000000-0000-0000-0000-000000000000\\\"",
+ "type": "Microsoft.Network/connections",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "00000000-0000-0000-0000-000000000000",
+ "virtualNetworkGateway1": {
+ "id": "/subscriptions/subid/resourceGroups/testrg/providers/Microsoft.Network/virtualNetworkGateways/test-vpn-gateway-1"
+ },
+ "virtualNetworkGateway2": {
+ "id": "/subscriptions/subid/resourceGroups/testrg-2/providers/Microsoft.Network/virtualNetworkGateways/test-vpn-gateway-2"
+ },
+ "connectionType": "Vnet2Vnet",
+ "routingWeight": 22,
+ "enableBgp": true,
+ "usePolicyBasedTrafficSelectors": false,
+ "ipsecPolicies": [],
+ "trafficSelectorPolicies": [],
+ "ingressBytesTransferred": 0,
+ "egressBytesTransferred": 0
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGet.json
new file mode 100644
index 000000000000..9f5a80f09532
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGet.json
@@ -0,0 +1,42 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualNetworkName": "test-vnet"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "test-vnet",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet",
+ "type": "Microsoft.Network/virtualNetworks",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "addressSpace": {
+ "addressPrefixes": [
+ "10.0.0.0/16"
+ ]
+ },
+ "subnets": [
+ {
+ "name": "subnet1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/subnet1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "addressPrefix": "10.0.1.0/24",
+ "ipConfigurations": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe"
+ }
+ ]
+ }
+ }
+ ],
+ "virtualNetworkPeerings": []
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGetResourceNavigationLinks.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGetResourceNavigationLinks.json
new file mode 100644
index 000000000000..b20b0bb317f0
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGetResourceNavigationLinks.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualNetworkName": "vnet",
+ "subnetName": "subnet"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "redisCache_redis-tester",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet/subnets/subnet/resourceNavigationLinks/redisCache_redis-tester",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "type": "Microsoft.Network/virtualNetworks/subnets/resourceNavigationLinks",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "linkedResourceType": "Microsoft.Cache/redis",
+ "link": "/subscriptions/subid/resourceGroups/another-rg/providers/Microsoft.Cache/Redis/redis-tester"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGetServiceAssociationLinks.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGetServiceAssociationLinks.json
new file mode 100644
index 000000000000..9609539c9a12
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGetServiceAssociationLinks.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualNetworkName": "vnet",
+ "subnetName": "subnet"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "acisal",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet/subnets/subnet/serviceAssociationLinks/acisal",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "type": "Microsoft.Network/virtualNetworks/subnets/serviceAssociationLinks",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "linkedResourceType": "Microsoft.ContainerInstance/containerGroups",
+ "allowDelete": true,
+ "locations": [
+ "westus"
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGetWithServiceAssociationLink.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGetWithServiceAssociationLink.json
new file mode 100644
index 000000000000..2d21d600f152
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGetWithServiceAssociationLink.json
@@ -0,0 +1,69 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subId",
+ "resourceGroupName": "rg1",
+ "virtualNetworkName": "test-vnet"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "test-vnet",
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet",
+ "type": "Microsoft.Network/virtualNetworks",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "addressSpace": {
+ "addressPrefixes": [
+ "10.0.0.0/16"
+ ]
+ },
+ "subnets": [
+ {
+ "name": "subnet1",
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/subnet1",
+ "etag": "W/\"4d3e91b4-f67f-48be-880b-e4a8abdd019e\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "addressPrefix": "10.0.214.0/24",
+ "ipConfigurationProfiles": [
+ {
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/networkProfiles/networkProfile1/containerNetworkInterfaceConfigurations/eth0/ipConfigurations/ipconfigprofile1"
+ }
+ ],
+ "serviceAssociationLinks": [
+ {
+ "name": "serviceAssociationLink1",
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/subnet1/serviceAssociationLinks/serviceAssociationLink1",
+ "etag": "W/\"4d3e91b4-f67f-48be-880b-e4a8abdd019e\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "linkedResourceType": "Microsoft.Provider/resourceType"
+ }
+ }
+ ],
+ "serviceEndpoints": [],
+ "delegations": [
+ {
+ "name": "aciDelegation",
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/subnet1/delegations/aciDelegation",
+ "etag": "W/\"4d3e91b4-f67f-48be-880b-e4a8abdd019e\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "serviceName": "Microsoft.Provider/resourceType",
+ "actions": [
+ "Microsoft.Network/virtualNetworks/subnets/action"
+ ]
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "virtualNetworkPeerings": []
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGetWithSubnetDelegation.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGetWithSubnetDelegation.json
new file mode 100644
index 000000000000..f35e7d5a40ca
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkGetWithSubnetDelegation.json
@@ -0,0 +1,54 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subId",
+ "resourceGroupName": "rg1",
+ "virtualNetworkName": "test-vnet"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "test-vnet",
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet",
+ "type": "Microsoft.Network/virtualNetworks",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "addressSpace": {
+ "addressPrefixes": [
+ "10.0.0.0/16"
+ ]
+ },
+ "subnets": [
+ {
+ "name": "subnet1",
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/subnet1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "addressPrefix": "10.0.1.0/24",
+ "ipConfigurations": [
+ {
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe"
+ }
+ ],
+ "delegations": [
+ {
+ "name": "myDelegation",
+ "id": "/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/subnet1/delegations/myDelegation",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "serviceName": "Microsoft.Provider/resourceType",
+ "actions": []
+ }
+ }
+ ],
+ "purpose": ""
+ }
+ }
+ ],
+ "virtualNetworkPeerings": []
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkList.json
new file mode 100644
index 000000000000..eccfa2d5bb1d
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkList.json
@@ -0,0 +1,64 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1",
+ "name": "vnet1",
+ "type": "Microsoft.Network/virtualNetworks",
+ "location": "westus",
+ "properties": {
+ "addressSpace": {
+ "addressPrefixes": [
+ "10.0.0.0/8"
+ ]
+ },
+ "dhcpOptions": {
+ "dnsServers": []
+ },
+ "subnets": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/test-1",
+ "name": "test-1",
+ "properties": {
+ "addressPrefix": "10.0.0.0/24",
+ "provisioningState": "Succeeded"
+ }
+ }
+ ],
+ "virtualNetworkPeerings": [],
+ "provisioningState": "Succeeded"
+ }
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet2",
+ "name": "vnet2",
+ "type": "Microsoft.Network/virtualNetworks",
+ "location": "westus",
+ "properties": {
+ "addressSpace": {
+ "addressPrefixes": [
+ "10.0.0.0/16"
+ ]
+ },
+ "dhcpOptions": {
+ "dnsServers": [
+ "8.8.8.8"
+ ]
+ },
+ "subnets": [],
+ "virtualNetworkPeerings": [],
+ "provisioningState": "Succeeded"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkListAll.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkListAll.json
new file mode 100644
index 000000000000..9241d7b819b5
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkListAll.json
@@ -0,0 +1,63 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1",
+ "name": "vnet1",
+ "type": "Microsoft.Network/virtualNetworks",
+ "location": "westus",
+ "properties": {
+ "addressSpace": {
+ "addressPrefixes": [
+ "10.0.0.0/8"
+ ]
+ },
+ "dhcpOptions": {
+ "dnsServers": []
+ },
+ "subnets": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/test-1",
+ "name": "test-1",
+ "properties": {
+ "addressPrefix": "10.0.0.0/24",
+ "provisioningState": "Succeeded"
+ }
+ }
+ ],
+ "virtualNetworkPeerings": [],
+ "provisioningState": "Succeeded"
+ }
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/virtualNetworks/vnet2",
+ "name": "vnet2",
+ "type": "Microsoft.Network/virtualNetworks",
+ "location": "westus",
+ "properties": {
+ "addressSpace": {
+ "addressPrefixes": [
+ "10.0.0.0/16"
+ ]
+ },
+ "dhcpOptions": {
+ "dnsServers": [
+ "8.8.8.8"
+ ]
+ },
+ "subnets": [],
+ "virtualNetworkPeerings": [],
+ "provisioningState": "Succeeded"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkListUsage.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkListUsage.json
new file mode 100644
index 000000000000..d71c4e53f5ae
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkListUsage.json
@@ -0,0 +1,36 @@
+{
+ "parameters": {
+ "virtualNetworkName": "vnetName",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "currentValue": -1.0,
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetName/subnets/GatewaySubnet",
+ "limit": -1.0,
+ "name": {
+ "localizedValue": "Subnet size and usage",
+ "value": "SubnetSpace"
+ },
+ "unit": "Count"
+ },
+ {
+ "currentValue": 2.0,
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetName/subnets/newSubnet",
+ "limit": 3.0,
+ "name": {
+ "localizedValue": "Subnet size and usage",
+ "value": "SubnetSpace"
+ },
+ "unit": "Count"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkPeeringCreate.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkPeeringCreate.json
new file mode 100644
index 000000000000..39df51f05681
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkPeeringCreate.json
@@ -0,0 +1,87 @@
+{
+ "parameters": {
+ "virtualNetworkPeeringName": "peer",
+ "virtualNetworkName": "vnet1",
+ "resourceGroupName": "peerTest",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "VirtualNetworkPeeringParameters": {
+ "properties": {
+ "allowVirtualNetworkAccess": true,
+ "allowForwardedTraffic": true,
+ "allowGatewayTransit": false,
+ "useRemoteGateways": false,
+ "syncRemoteAddressSpace": true,
+ "remoteVirtualNetwork": {
+ "id": "/subscriptions/subid/resourceGroups/peerTest/providers/Microsoft.Network/virtualNetworks/vnet2"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/peerTest/providers/Microsoft.Network/virtualNetworks/vnet1/virtualNetworkPeerings/peer",
+ "name": "peer",
+ "properties": {
+ "allowVirtualNetworkAccess": true,
+ "allowForwardedTraffic": true,
+ "allowGatewayTransit": false,
+ "useRemoteGateways": false,
+ "remoteVirtualNetwork": {
+ "id": "/subscriptions/subid/resourceGroups/peerTest/providers/Microsoft.Network/virtualNetworks/vnet2"
+ },
+ "remoteAddressSpace": {
+ "addressPrefixes": [
+ "12.0.0.0/8"
+ ]
+ },
+ "remoteVirtualNetworkAddressSpace": {
+ "addressPrefixes": [
+ "12.0.0.0/8"
+ ]
+ },
+ "remoteBgpCommunities": {
+ "virtualNetworkCommunity": "12076:20002",
+ "regionalCommunity": "12076:50004"
+ },
+ "peeringState": "Initiated",
+ "provisioningState": "Succeeded",
+ "peeringSyncLevel": "FullySynced"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/peerTest/providers/Microsoft.Network/virtualNetworks/vnet1/virtualNetworkPeerings/peer",
+ "name": "peer",
+ "properties": {
+ "allowVirtualNetworkAccess": true,
+ "allowForwardedTraffic": true,
+ "allowGatewayTransit": false,
+ "useRemoteGateways": false,
+ "remoteVirtualNetwork": {
+ "id": "/subscriptions/subid/resourceGroups/peerTest/providers/Microsoft.Network/virtualNetworks/vnet2"
+ },
+ "remoteAddressSpace": {
+ "addressPrefixes": [
+ "12.0.0.0/8"
+ ]
+ },
+ "remoteVirtualNetworkAddressSpace": {
+ "addressPrefixes": [
+ "12.0.0.0/8"
+ ]
+ },
+ "remoteBgpCommunities": {
+ "virtualNetworkCommunity": "12076:20002",
+ "regionalCommunity": "12076:50004"
+ },
+ "peeringState": "Initiated",
+ "provisioningState": "Succeeded",
+ "peeringSyncLevel": "FullySynced"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkPeeringDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkPeeringDelete.json
new file mode 100644
index 000000000000..22e050b17ad0
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkPeeringDelete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "virtualNetworkPeeringName": "peer",
+ "virtualNetworkName": "vnet1",
+ "resourceGroupName": "peerTest",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkPeeringGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkPeeringGet.json
new file mode 100644
index 000000000000..6998d9a99703
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkPeeringGet.json
@@ -0,0 +1,43 @@
+{
+ "parameters": {
+ "virtualNetworkPeeringName": "peer",
+ "virtualNetworkName": "vnet1",
+ "resourceGroupName": "peerTest",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/peerTest/providers/Microsoft.Network/virtualNetworks/vnet1/virtualNetworkPeerings/peer",
+ "name": "peer",
+ "properties": {
+ "allowVirtualNetworkAccess": true,
+ "allowForwardedTraffic": true,
+ "allowGatewayTransit": false,
+ "useRemoteGateways": false,
+ "remoteVirtualNetwork": {
+ "id": "/subscriptions/subid/resourceGroups/peerTest/providers/Microsoft.Network/virtualNetworks/vnet2"
+ },
+ "remoteAddressSpace": {
+ "addressPrefixes": [
+ "12.0.0.0/8"
+ ]
+ },
+ "remoteVirtualNetworkAddressSpace": {
+ "addressPrefixes": [
+ "12.0.0.0/8"
+ ]
+ },
+ "remoteBgpCommunities": {
+ "virtualNetworkCommunity": "12076:20002",
+ "regionalCommunity": "12076:50004"
+ },
+ "peeringState": "Initiated",
+ "provisioningState": "Succeeded",
+ "peeringSyncLevel": "FullySynced"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkPeeringList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkPeeringList.json
new file mode 100644
index 000000000000..257400138675
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkPeeringList.json
@@ -0,0 +1,76 @@
+{
+ "parameters": {
+ "virtualNetworkName": "vnet1",
+ "resourceGroupName": "peerTest",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/peerTest/providers/Microsoft.Network/virtualNetworks/vnet1/virtualNetworkPeerings/peer",
+ "name": "peer",
+ "properties": {
+ "allowVirtualNetworkAccess": true,
+ "allowForwardedTraffic": true,
+ "allowGatewayTransit": false,
+ "useRemoteGateways": false,
+ "remoteVirtualNetwork": {
+ "id": "/subscriptions/subid/resourceGroups/peerTest/providers/Microsoft.Network/virtualNetworks/vnet2"
+ },
+ "remoteAddressSpace": {
+ "addressPrefixes": [
+ "12.0.0.0/8"
+ ]
+ },
+ "remoteVirtualNetworkAddressSpace": {
+ "addressPrefixes": [
+ "12.0.0.0/8"
+ ]
+ },
+ "remoteBgpCommunities": {
+ "virtualNetworkCommunity": "12076:20002",
+ "regionalCommunity": "12076:50004"
+ },
+ "peeringState": "Initiated",
+ "provisioningState": "Succeeded",
+ "peeringSyncLevel": "FullySynced"
+ }
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/peerTest/providers/Microsoft.Network/virtualNetworks/vnet1/virtualNetworkPeerings/peer2",
+ "name": "peer",
+ "properties": {
+ "allowVirtualNetworkAccess": true,
+ "allowForwardedTraffic": false,
+ "allowGatewayTransit": false,
+ "useRemoteGateways": false,
+ "remoteVirtualNetwork": {
+ "id": "/subscriptions/subid/resourceGroups/peerTest/providers/Microsoft.Network/virtualNetworks/vnet3"
+ },
+ "remoteAddressSpace": {
+ "addressPrefixes": [
+ "13.0.0.0/8"
+ ]
+ },
+ "remoteVirtualNetworkAddressSpace": {
+ "addressPrefixes": [
+ "13.0.0.0/8"
+ ]
+ },
+ "remoteBgpCommunities": {
+ "virtualNetworkCommunity": "12076:20003",
+ "regionalCommunity": "12076:50004"
+ },
+ "peeringState": "Initiated",
+ "provisioningState": "Succeeded",
+ "peeringSyncLevel": "FullySynced"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkTapCreate.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkTapCreate.json
new file mode 100644
index 000000000000..6746093e651c
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkTapCreate.json
@@ -0,0 +1,62 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "tapName": "test-vtap",
+ "parameters": {
+ "properties": {
+ "destinationNetworkInterfaceIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/testNetworkInterface/ipConfigurations/ipconfig1"
+ }
+ },
+ "location": "centraluseuap"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "testvtap",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkTaps/testvtap",
+ "etag": "etag",
+ "type": "Microsoft.Network/virtualNetworkTaps",
+ "location": "centraluseuap",
+ "properties": {
+ "destinationNetworkInterfaceIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/testNetworkInterface/ipConfigurations/testIPConfig1"
+ },
+ "destinationPort": 4789,
+ "provisioningState": "Succeded",
+ "resourceGuid": "6A7C139D-8B8D-499B-B7CB-4F3F02A8A44F",
+ "networkInterfaceTapConfigurations": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/testNetworkInterface2/tapConfigurations/testtapConfiguration"
+ }
+ ]
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "testvtap",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkTaps/testvtap",
+ "etag": "etag",
+ "type": "Microsoft.Network/virtualNetworkTaps",
+ "location": "centraluseuap",
+ "properties": {
+ "destinationNetworkInterfaceIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/testNetworkInterface/ipConfigurations/testIPConfig1"
+ },
+ "destinationPort": 4789,
+ "provisioningState": "Succeded",
+ "resourceGuid": "6A7C139D-8B8D-499B-B7CB-4F3F02A8A44F",
+ "networkInterfaceTapConfigurations": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/testNetworkInterface2/tapConfigurations/testtapConfiguration"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkTapDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkTapDelete.json
new file mode 100644
index 000000000000..f4627c5a8ea6
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkTapDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "tapName": "test-vtap"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkTapGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkTapGet.json
new file mode 100644
index 000000000000..d4457521331c
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkTapGet.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "tapName": "testvtap"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "testvtap",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkTaps/testvtap",
+ "etag": "etag",
+ "type": "Microsoft.Network/virtualNetworkTaps",
+ "location": "centraluseuap",
+ "properties": {
+ "destinationNetworkInterfaceIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/testNetworkInterface/ipConfigurations/testIPConfig1"
+ },
+ "destinationPort": 4789,
+ "provisioningState": "Succeded",
+ "resourceGuid": "6A7C139D-8B8D-499B-B7CB-4F3F02A8A44F",
+ "networkInterfaceTapConfigurations": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/testNetworkInterface2/tapConfigurations/testtapConfiguration"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkTapList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkTapList.json
new file mode 100644
index 000000000000..accc92c3f967
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkTapList.json
@@ -0,0 +1,55 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "testvtap",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkTaps/testvtap",
+ "etag": "etag",
+ "type": "Microsoft.Network/virtualNetworkTaps",
+ "location": "centraluseuap",
+ "properties": {
+ "destinationNetworkInterfaceIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/testNetworkInterface/ipConfigurations/testIPConfig1"
+ },
+ "destinationPort": 4789,
+ "provisioningState": "Succeded",
+ "resourceGuid": "6A7C139D-8B8D-499B-B7CB-4F3F02A8A44F",
+ "networkInterfaceTapConfigurations": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/testNetworkInterface2/tapConfigurations/testtapConfiguration"
+ }
+ ]
+ }
+ },
+ {
+ "name": "testvtap2",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkTaps/testvtap2",
+ "etag": "etag",
+ "type": "Microsoft.Network/virtualNetworkTaps",
+ "location": "centraluseuap",
+ "properties": {
+ "destinationNetworkInterfaceIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/testNetworkInterface/ipConfigurations/testIPConfig1"
+ },
+ "destinationPort": 4789,
+ "provisioningState": "Succeded",
+ "resourceGuid": "6A7C139D-8B8D-499B-B7CB-4F3F02A8A44F",
+ "networkInterfaceTapConfigurations": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/testNetworkInterface3/tapConfigurations/testtapConfiguration"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkTapListAll.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkTapListAll.json
new file mode 100644
index 000000000000..c40897c113ad
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkTapListAll.json
@@ -0,0 +1,54 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "testvtap",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkTaps/testvtap",
+ "etag": "etag",
+ "type": "Microsoft.Network/virtualNetworkTaps",
+ "location": "centraluseuap",
+ "properties": {
+ "destinationNetworkInterfaceIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/testNetworkInterface/ipConfigurations/testIPConfig1"
+ },
+ "destinationPort": 4789,
+ "provisioningState": "Succeded",
+ "resourceGuid": "6A7C139D-8B8D-499B-B7CB-4F3F02A8A44F",
+ "networkInterfaceTapConfigurations": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/testNetworkInterface2/tapConfigurations/testtapConfiguration"
+ }
+ ]
+ }
+ },
+ {
+ "name": "testvtap2",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkTaps/testvtap2",
+ "etag": "etag",
+ "type": "Microsoft.Network/virtualNetworkTaps",
+ "location": "centraluseuap",
+ "properties": {
+ "destinationNetworkInterfaceIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/testNetworkInterface/ipConfigurations/testIPConfig1"
+ },
+ "destinationPort": 4789,
+ "provisioningState": "Succeded",
+ "resourceGuid": "6A7C139D-8B8D-499B-B7CB-4F3F02A8A44F",
+ "networkInterfaceTapConfigurations": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/testNetworkInterface3/tapConfigurations/testtapConfiguration"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkTapUpdateTags.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkTapUpdateTags.json
new file mode 100644
index 000000000000..af6698c4c109
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkTapUpdateTags.json
@@ -0,0 +1,40 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "tapName": "test-vtap",
+ "tapParameters": {
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "test-vtap",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkTaps/test-vtap",
+ "location": "eastus",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "properties": {
+ "destinationNetworkInterfaceIPConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/testNetworkInterface/ipConfigurations/testIPConfig1"
+ },
+ "destinationPort": 4789,
+ "provisioningState": "Succeded",
+ "networkInterfaceTapConfigurations": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/testNetworkInterface2/tapConfigurations/testtapConfiguration"
+ }
+ ]
+ },
+ "type": "Microsoft.Network/virtualNetworkTaps"
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkUpdateTags.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkUpdateTags.json
new file mode 100644
index 000000000000..f45b8e8906d4
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualNetworkUpdateTags.json
@@ -0,0 +1,39 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualNetworkName": "test-vnet",
+ "location": "westus",
+ "parameters": {
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "test-vnet",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet",
+ "type": "Microsoft.Network/virtualNetworks",
+ "location": "westus",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "addressSpace": {
+ "addressPrefixes": [
+ "10.0.0.0/16"
+ ]
+ },
+ "subnets": [],
+ "virtualNetworkPeerings": []
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualRouterDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualRouterDelete.json
new file mode 100644
index 000000000000..e39d297c2477
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualRouterDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualRouterName": "virtualRouter"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualRouterGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualRouterGet.json
new file mode 100644
index 000000000000..7e3657cb2f9c
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualRouterGet.json
@@ -0,0 +1,38 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualRouterName": "virtualRouter"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "virtualRouter",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualRouters/virtualRouter",
+ "type": "Microsoft.Network/virtualRouters",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "virtualRouterAsn": 10000,
+ "virtualRouterIps": [
+ "192.168.1.1",
+ "192.168.1.2"
+ ],
+ "hostedGateway": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkGateways/vnetGateway"
+ },
+ "peerings": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualRouters/virtualRouter/peerings/peering1"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualRouterListByResourceGroup.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualRouterListByResourceGroup.json
new file mode 100644
index 000000000000..b397b3475085
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualRouterListByResourceGroup.json
@@ -0,0 +1,41 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "virtualRouter",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualRouters/virtualRouter",
+ "type": "Microsoft.Network/virtualRouters",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "virtualRouterAsn": 10000,
+ "virtualRouterIps": [
+ "192.168.1.1",
+ "192.168.1.2"
+ ],
+ "hostedGateway": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkGateways/vnetGateway"
+ },
+ "peerings": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualRouters/virtualRouter/peerings/peering1"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualRouterListBySubscription.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualRouterListBySubscription.json
new file mode 100644
index 000000000000..308bec43e540
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualRouterListBySubscription.json
@@ -0,0 +1,40 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "virtualRouter",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualRouters/virtualRouter",
+ "type": "Microsoft.Network/virtualRouters",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "virtualRouterAsn": 10000,
+ "virtualRouterIps": [
+ "192.168.1.1",
+ "192.168.1.2"
+ ],
+ "hostedGateway": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkGateways/vnetGateway"
+ },
+ "peerings": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualRouters/virtualRouter/peerings/peering1"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualRouterPeerListAdvertisedRoute.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualRouterPeerListAdvertisedRoute.json
new file mode 100644
index 000000000000..2f35088a8e63
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualRouterPeerListAdvertisedRoute.json
@@ -0,0 +1,45 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "hubName": "virtualRouter1",
+ "connectionName": "peer1"
+ },
+ "responses": {
+ "202": {},
+ "200": {
+ "body": {
+ "value": [
+ {
+ "localAddress": "10.85.3.4",
+ "network": "10.45.0.0/16",
+ "nextHop": "10.85.3.4",
+ "sourcePeer": "10.85.3.4",
+ "origin": "Igp",
+ "asPath": "65515",
+ "weight": 0
+ },
+ {
+ "localAddress": "10.85.3.4",
+ "network": "10.85.0.0/16",
+ "nextHop": "10.85.3.4",
+ "sourcePeer": "10.85.3.4",
+ "origin": "Igp",
+ "asPath": "65515",
+ "weight": 0
+ },
+ {
+ "localAddress": "10.85.3.4",
+ "network": "10.100.0.0/16",
+ "nextHop": "10.85.3.4",
+ "sourcePeer": "10.85.3.4",
+ "origin": "Igp",
+ "asPath": "65515",
+ "weight": 0
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualRouterPeerListLearnedRoute.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualRouterPeerListLearnedRoute.json
new file mode 100644
index 000000000000..389a53f51332
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualRouterPeerListLearnedRoute.json
@@ -0,0 +1,36 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "hubName": "virtualRouter1",
+ "connectionName": "peer1"
+ },
+ "responses": {
+ "202": {},
+ "200": {
+ "body": {
+ "value": [
+ {
+ "localAddress": "10.85.3.4",
+ "network": "10.101.0.0/16",
+ "nextHop": "10.85.4.4",
+ "sourcePeer": "10.85.4.4",
+ "origin": "EBgp",
+ "asPath": "65002-65001",
+ "weight": 32768
+ },
+ {
+ "localAddress": "10.85.3.5",
+ "network": "10.101.0.0/16",
+ "nextHop": "10.85.4.4",
+ "sourcePeer": "10.85.4.4",
+ "origin": "EBgp",
+ "asPath": "65002-65001",
+ "weight": 32768
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualRouterPeeringDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualRouterPeeringDelete.json
new file mode 100644
index 000000000000..2984045aad33
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualRouterPeeringDelete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "peeringName": "peering1",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualRouterName": "virtualRouter"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualRouterPeeringGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualRouterPeeringGet.json
new file mode 100644
index 000000000000..a6cb9eb51396
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualRouterPeeringGet.json
@@ -0,0 +1,23 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "peeringName": "peering1",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualRouterName": "virtualRouter"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "peering1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualRouters/virtualRouter/peerings/peering1",
+ "etag": "W/\"72090554-7e3b-43f2-80ad-99a9020dcb11\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "peerIp": "192.168.1.5",
+ "peerAsn": 20000
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualRouterPeeringList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualRouterPeeringList.json
new file mode 100644
index 000000000000..5dc25d8809ee
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualRouterPeeringList.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualRouterName": "virtualRouter"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "peering1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualRouters/virtualRouter/peerings/peering1",
+ "etag": "W/\"72090554-7e3b-43f2-80ad-99a9020dcb11\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "peerIp": "192.168.1.5",
+ "peerAsn": 20000
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualRouterPeeringPut.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualRouterPeeringPut.json
new file mode 100644
index 000000000000..da013617c3b2
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualRouterPeeringPut.json
@@ -0,0 +1,41 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "peeringName": "peering1",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualRouterName": "virtualRouter",
+ "parameters": {
+ "properties": {
+ "peerIp": "192.168.1.5",
+ "peerAsn": 20000
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "peering1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualRouters/virtualRouter/peerings/peering1",
+ "etag": "W/\"72090554-7e3b-43f2-80ad-99a9020dcb11\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "peerIp": "192.168.1.5",
+ "peerAsn": 20000
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "peering1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualRouters/virtualRouter/peerings/peering1",
+ "etag": "W/\"72090554-7e3b-43f2-80ad-99a9020dcb11\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "peerIp": "192.168.1.5",
+ "peerAsn": 20000
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualRouterPut.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualRouterPut.json
new file mode 100644
index 000000000000..a0e5d2460b46
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualRouterPut.json
@@ -0,0 +1,77 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualRouterName": "virtualRouter",
+ "parameters": {
+ "tags": {
+ "key1": "value1"
+ },
+ "location": "West US",
+ "properties": {
+ "hostedGateway": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkGateways/vnetGateway"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "virtualRouter",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualRouters/virtualRouter",
+ "type": "Microsoft.Network/virtualRouters",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "virtualRouterAsn": 10000,
+ "virtualRouterIps": [
+ "192.168.1.1",
+ "192.168.1.2"
+ ],
+ "hostedGateway": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkGateways/vnetGateway"
+ },
+ "peerings": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualRouters/virtualRouter/peerings/peering1"
+ }
+ ]
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "virtualRouter",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualRouters/virtualRouter",
+ "type": "Microsoft.Network/virtualRouters",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "virtualRouterAsn": 10000,
+ "virtualRouterIps": [
+ "192.168.1.1",
+ "192.168.1.2"
+ ],
+ "hostedGateway": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkGateways/vnetGateway"
+ },
+ "peerings": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualRouters/virtualRouter/peerings/peering1"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualWANDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualWANDelete.json
new file mode 100644
index 000000000000..3d7032d8e9a5
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualWANDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "VirtualWANName": "virtualWan1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualWANGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualWANGet.json
new file mode 100644
index 000000000000..07ae31a87600
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualWANGet.json
@@ -0,0 +1,35 @@
+{
+ "parameters": {
+ "VirtualWANName": "wan1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualWANs/wan1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "name": "wan1",
+ "type": "Microsoft.Network/virtualWANs",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "disableVpnEncryption": false,
+ "virtualHubs": [
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub1",
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub2"
+ ],
+ "vpnSites": [
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1",
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite2"
+ ],
+ "type": "Basic"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualWANList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualWANList.json
new file mode 100644
index 000000000000..bfd58e2cbf35
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualWANList.json
@@ -0,0 +1,60 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualWANs/wan1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "name": "wan1",
+ "type": "Microsoft.Network/virtualWANs",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "disableVpnEncryption": false,
+ "virtualHubs": [
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub1",
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub2"
+ ],
+ "vpnSites": [
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1",
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite2"
+ ],
+ "type": "Basic"
+ }
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/virtualWANs/wan2",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "East US",
+ "name": "wan2",
+ "type": "Microsoft.Network/virtualWANs",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "disableVpnEncryption": false,
+ "virtualHubs": [
+ "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/virtualHubs/hub1",
+ "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/virtualHubs/hub2"
+ ],
+ "vpnSites": [
+ "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/vpnSites/vpnSite1",
+ "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/vpnSites/vpnSite2"
+ ],
+ "type": "Basic"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualWANListByResourceGroup.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualWANListByResourceGroup.json
new file mode 100644
index 000000000000..4540ec0a20a8
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualWANListByResourceGroup.json
@@ -0,0 +1,61 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "resourceGroupName": "rg1",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualWANs/wan1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "name": "wan1",
+ "type": "Microsoft.Network/virtualWANs",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "disableVpnEncryption": false,
+ "virtualHubs": [
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub1",
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub2"
+ ],
+ "vpnSites": [
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1",
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite2"
+ ],
+ "type": "Basic"
+ }
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualWANs/wan2",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "East US",
+ "name": "wan2",
+ "type": "Microsoft.Network/virtualWANs",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "disableVpnEncryption": false,
+ "virtualHubs": [
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub3",
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub4"
+ ],
+ "vpnSites": [
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite3",
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite4"
+ ],
+ "type": "Basic"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualWANPut.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualWANPut.json
new file mode 100644
index 000000000000..8a45ba908c26
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualWANPut.json
@@ -0,0 +1,70 @@
+{
+ "parameters": {
+ "VirtualWANName": "wan1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "WANParameters": {
+ "location": "West US",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "disableVpnEncryption": false,
+ "type": "Basic"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualWANs/wan1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "name": "wan1",
+ "type": "Microsoft.Network/virtualWANs",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "disableVpnEncryption": false,
+ "virtualHubs": [
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub1",
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub2"
+ ],
+ "vpnSites": [
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1",
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite2"
+ ],
+ "type": "Basic"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualWANs/wan1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "name": "wan1",
+ "type": "Microsoft.Network/virtualWANs",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "disableVpnEncryption": false,
+ "virtualHubs": [
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub1",
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub2"
+ ],
+ "vpnSites": [
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1",
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite2"
+ ],
+ "type": "Basic"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualWANUpdateTags.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualWANUpdateTags.json
new file mode 100644
index 000000000000..d7a056fb2777
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualWANUpdateTags.json
@@ -0,0 +1,42 @@
+{
+ "parameters": {
+ "VirtualWANName": "wan1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "WANParameters": {
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualWANs/wan1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "name": "wan1",
+ "type": "Microsoft.Network/virtualWANs",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "disableVpnEncryption": false,
+ "virtualHubs": [
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub1",
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub2"
+ ],
+ "vpnSites": [
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1",
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite2"
+ ],
+ "type": "Basic"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualWanSupportedSecurityProviders.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualWanSupportedSecurityProviders.json
new file mode 100644
index 000000000000..bb94b118e9a6
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VirtualWanSupportedSecurityProviders.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "virtualWANName": "wan1"
+ },
+ "responses": {
+ "200": {
+ "description": "Request successful.",
+ "body": {
+ "supportedProviders": [
+ {
+ "name": "AzureFirewall",
+ "url": "",
+ "type": "Native"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VmssNetworkInterfaceGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VmssNetworkInterfaceGet.json
new file mode 100644
index 000000000000..146f80e3d7f4
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VmssNetworkInterfaceGet.json
@@ -0,0 +1,65 @@
+{
+ "parameters": {
+ "api-version": "2018-10-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "networkInterfaceName": "nic1",
+ "virtualMachineScaleSetName": "vmss1",
+ "virtualmachineIndex": "1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "nic1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1/virtualMachines/1/networkInterfaces/nic1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ipConfigurations": [
+ {
+ "name": "ip1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1/virtualMachines/1/networkInterfaces/nic1/ipConfigurations/ip1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "10.0.0.5",
+ "privateIPAllocationMethod": "Dynamic",
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1/virtualMachines/1/networkInterfaces/nic1/ipConfigurations/ip1/publicIPAddresses/pub1"
+ },
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1"
+ },
+ "primary": true,
+ "privateIPAddressVersion": "IPv4",
+ "loadBalancerBackendAddressPools": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb1/backendAddressPools/addressPool1"
+ }
+ ],
+ "loadBalancerInboundNatRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb1/inboundNatRules/natPool1.1"
+ }
+ ]
+ }
+ }
+ ],
+ "dnsSettings": {
+ "dnsServers": [],
+ "appliedDnsServers": [],
+ "internalDomainNameSuffix": "dns.cdmx.internal.cloudapp.net"
+ },
+ "macAddress": "00-00-00-00-00-00",
+ "enableAcceleratedNetworking": false,
+ "enableIPForwarding": false,
+ "networkSecurityGroup": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/nsg1"
+ },
+ "primary": true,
+ "virtualMachine": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1/virtualMachines/1"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VmssNetworkInterfaceIpConfigGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VmssNetworkInterfaceIpConfigGet.json
new file mode 100644
index 000000000000..5b7c23b7b56b
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VmssNetworkInterfaceIpConfigGet.json
@@ -0,0 +1,39 @@
+{
+ "parameters": {
+ "api-version": "2018-10-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualMachineScaleSetName": "vmss1",
+ "virtualmachineIndex": "2",
+ "networkInterfaceName": "nic1",
+ "ipConfigurationName": "ip1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "ip1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1/virtualMachines/2/networkInterfaces/nic1/ipConfigurations/ip1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "10.0.0.6",
+ "privateIPAllocationMethod": "Dynamic",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1"
+ },
+ "primary": true,
+ "privateIPAddressVersion": "IPv4",
+ "loadBalancerBackendAddressPools": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb1/backendAddressPools/addressPool1"
+ }
+ ],
+ "loadBalancerInboundNatRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb1/inboundNatRules/natPool1.2"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VmssNetworkInterfaceIpConfigList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VmssNetworkInterfaceIpConfigList.json
new file mode 100644
index 000000000000..e14de4e82a72
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VmssNetworkInterfaceIpConfigList.json
@@ -0,0 +1,42 @@
+{
+ "parameters": {
+ "api-version": "2018-10-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualMachineScaleSetName": "vmss1",
+ "virtualmachineIndex": "2",
+ "networkInterfaceName": "nic1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "ip1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1/virtualMachines/2/networkInterfaces/nic1/ipConfigurations/ip1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "10.0.0.6",
+ "privateIPAllocationMethod": "Dynamic",
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1"
+ },
+ "primary": true,
+ "privateIPAddressVersion": "IPv4",
+ "loadBalancerBackendAddressPools": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb1/backendAddressPools/addressPool1"
+ }
+ ],
+ "loadBalancerInboundNatRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb1/inboundNatRules/natPool1.2"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VmssNetworkInterfaceList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VmssNetworkInterfaceList.json
new file mode 100644
index 000000000000..0ec937148391
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VmssNetworkInterfaceList.json
@@ -0,0 +1,118 @@
+{
+ "parameters": {
+ "api-version": "2018-10-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualMachineScaleSetName": "vmss1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "nic1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1/virtualMachines/0/networkInterfaces/nic1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ipConfigurations": [
+ {
+ "name": "ip1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1/virtualMachines/0/networkInterfaces/nic1/ipConfigurations/ip1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "10.0.0.4",
+ "privateIPAllocationMethod": "Dynamic",
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1/virtualMachines/0/networkInterfaces/nic1/ipConfigurations/ip1/publicIPAddresses/pub1"
+ },
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1"
+ },
+ "primary": true,
+ "privateIPAddressVersion": "IPv4",
+ "loadBalancerBackendAddressPools": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb1/backendAddressPools/addressPool1"
+ }
+ ],
+ "loadBalancerInboundNatRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb1/inboundNatRules/natPool1.0"
+ }
+ ]
+ }
+ }
+ ],
+ "dnsSettings": {
+ "dnsServers": [],
+ "appliedDnsServers": [],
+ "internalDomainNameSuffix": "ruw4wz3grewudjsyzrxj44pxod.cdmx.internal.cloudapp.net"
+ },
+ "macAddress": "00-00-00-00-00-00",
+ "enableAcceleratedNetworking": false,
+ "enableIPForwarding": false,
+ "networkSecurityGroup": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/nsg1"
+ },
+ "primary": true,
+ "virtualMachine": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1/virtualMachines/0"
+ }
+ }
+ },
+ {
+ "name": "nic1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1/virtualMachines/1/networkInterfaces/nic1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ipConfigurations": [
+ {
+ "name": "ip1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1/virtualMachines/1/networkInterfaces/nic1/ipConfigurations/ip1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "10.0.0.5",
+ "privateIPAllocationMethod": "Dynamic",
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1/virtualMachines/1/networkInterfaces/nic1/ipConfigurations/ip1/publicIPAddresses/pub1"
+ },
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1"
+ },
+ "primary": true,
+ "privateIPAddressVersion": "IPv4",
+ "loadBalancerBackendAddressPools": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb1/backendAddressPools/addressPool1"
+ }
+ ],
+ "loadBalancerInboundNatRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb1/inboundNatRules/natPool1.1"
+ }
+ ]
+ }
+ }
+ ],
+ "dnsSettings": {
+ "dnsServers": [],
+ "appliedDnsServers": [],
+ "internalDomainNameSuffix": "ruw4wz3grewudjsyzrxj44pxod.cdmx.internal.cloudapp.net"
+ },
+ "macAddress": "00-00-00-00-00-00",
+ "enableAcceleratedNetworking": false,
+ "enableIPForwarding": false,
+ "networkSecurityGroup": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/nsg1"
+ },
+ "primary": true,
+ "virtualMachine": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1/virtualMachines/1"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VmssPublicIpGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VmssPublicIpGet.json
new file mode 100644
index 000000000000..229c15712a0d
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VmssPublicIpGet.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "virtualMachineScaleSetName": "vmss1",
+ "resourceGroupName": "vmss-tester",
+ "api-version": "2018-10-01",
+ "subscriptionId": "subid",
+ "virtualmachineIndex": 1,
+ "networkInterfaceName": "nic1",
+ "ipConfigurationName": "ip1",
+ "publicIpAddressName": "pub1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/vmss-tester/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1/virtualMachines/1/networkInterfaces/nic1/ipConfigurations/ip1/publicIPAddresses/pub1",
+ "name": "pub1",
+ "properties": {
+ "publicIPAllocationMethod": "Dynamic",
+ "publicIPAddressVersion": "IPv4",
+ "ipConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/vmss-tester/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1/virtualMachines/1/networkInterfaces/nic1/ipConfigurations/ip1"
+ },
+ "dnsSettings": {
+ "domainNameLabel": "vm1.testvmssacc",
+ "fqdn": "vm1.testvmssacc.southeastasia.cloudapp.azure.com"
+ },
+ "ipAddress": "13.67.119.72",
+ "idleTimeoutInMinutes": 10,
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VmssPublicIpListAll.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VmssPublicIpListAll.json
new file mode 100644
index 000000000000..605e0b831869
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VmssPublicIpListAll.json
@@ -0,0 +1,52 @@
+{
+ "parameters": {
+ "virtualMachineScaleSetName": "vmss1",
+ "resourceGroupName": "vmss-tester",
+ "api-version": "2018-10-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/vmss-tester/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1/virtualMachines/1/networkInterfaces/nic1/ipConfigurations/ip1/publicIPAddresses/pub1",
+ "name": "pub1",
+ "properties": {
+ "publicIPAllocationMethod": "Dynamic",
+ "publicIPAddressVersion": "IPv4",
+ "ipConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/vmss-tester/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1/virtualMachines/1/networkInterfaces/nic1/ipConfigurations/ip1"
+ },
+ "dnsSettings": {
+ "domainNameLabel": "vm1.testvmssacc",
+ "fqdn": "vm1.testvmssacc.southeastasia.cloudapp.azure.com"
+ },
+ "ipAddress": "13.67.119.72",
+ "idleTimeoutInMinutes": 10,
+ "provisioningState": "Succeeded"
+ }
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/vmss-tester/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1/virtualMachines/3/networkInterfaces/nic1/ipConfigurations/ip1/publicIPAddresses/pub1",
+ "name": "pub1",
+ "properties": {
+ "publicIPAllocationMethod": "Dynamic",
+ "publicIPAddressVersion": "IPv4",
+ "ipConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/vmss-tester/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1/virtualMachines/3/networkInterfaces/nic1/ipConfigurations/ip1"
+ },
+ "dnsSettings": {
+ "domainNameLabel": "vm3.testvmssacc",
+ "fqdn": "vm3.testvmssacc.southeastasia.cloudapp.azure.com"
+ },
+ "ipAddress": "13.67.118.216",
+ "idleTimeoutInMinutes": 10,
+ "provisioningState": "Succeeded"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VmssVmNetworkInterfaceList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VmssVmNetworkInterfaceList.json
new file mode 100644
index 000000000000..e4f1cbf14ebf
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VmssVmNetworkInterfaceList.json
@@ -0,0 +1,68 @@
+{
+ "parameters": {
+ "api-version": "2018-10-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "virtualMachineScaleSetName": "vmss1",
+ "virtualmachineIndex": "1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "nic1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1/virtualMachines/1/networkInterfaces/nic1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ipConfigurations": [
+ {
+ "name": "ip1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1/virtualMachines/1/networkInterfaces/nic1/ipConfigurations/ip1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateIPAddress": "10.0.0.5",
+ "privateIPAllocationMethod": "Dynamic",
+ "publicIPAddress": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1/virtualMachines/1/networkInterfaces/nic1/ipConfigurations/ip1/publicIPAddresses/pub1"
+ },
+ "subnet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1"
+ },
+ "primary": true,
+ "privateIPAddressVersion": "IPv4",
+ "loadBalancerBackendAddressPools": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb1/backendAddressPools/addressPool1"
+ }
+ ],
+ "loadBalancerInboundNatRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb1/inboundNatRules/natPool1.1"
+ }
+ ]
+ }
+ }
+ ],
+ "dnsSettings": {
+ "dnsServers": [],
+ "appliedDnsServers": [],
+ "internalDomainNameSuffix": "ruw4wz3grewudjsyzrxj44pxod.cdmx.internal.cloudapp.net"
+ },
+ "macAddress": "00-00-00-00-00-00",
+ "enableAcceleratedNetworking": false,
+ "enableIPForwarding": false,
+ "networkSecurityGroup": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/nsg1"
+ },
+ "primary": true,
+ "virtualMachine": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1/virtualMachines/1"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VmssVmPublicIpList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VmssVmPublicIpList.json
new file mode 100644
index 000000000000..d21f5d40ed03
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VmssVmPublicIpList.json
@@ -0,0 +1,37 @@
+{
+ "parameters": {
+ "virtualMachineScaleSetName": "vmss1",
+ "resourceGroupName": "vmss-tester",
+ "api-version": "2018-10-01",
+ "subscriptionId": "subid",
+ "virtualmachineIndex": 1,
+ "networkInterfaceName": "nic1",
+ "ipConfigurationName": "ip1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/vmss-tester/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1/virtualMachines/1/networkInterfaces/nic1/ipConfigurations/ip1/publicIPAddresses/pub1",
+ "name": "pub1",
+ "properties": {
+ "publicIPAllocationMethod": "Dynamic",
+ "publicIPAddressVersion": "IPv4",
+ "ipConfiguration": {
+ "id": "/subscriptions/subid/resourceGroups/vmss-tester/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1/virtualMachines/1/networkInterfaces/nic1/ipConfigurations/ip1"
+ },
+ "dnsSettings": {
+ "domainNameLabel": "vm1.testvmssacc",
+ "fqdn": "vm1.testvmssacc.southeastasia.cloudapp.azure.com"
+ },
+ "ipAddress": "13.67.119.72",
+ "idleTimeoutInMinutes": 10,
+ "provisioningState": "Succeeded"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnConnectionDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnConnectionDelete.json
new file mode 100644
index 000000000000..6dc9f510c37b
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnConnectionDelete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "connectionName": "vpnConnection1",
+ "gatewayName": "gateway1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnConnectionGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnConnectionGet.json
new file mode 100644
index 000000000000..e10a06091c96
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnConnectionGet.json
@@ -0,0 +1,100 @@
+{
+ "parameters": {
+ "gatewayName": "gateway1",
+ "connectionName": "vpnConnection1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "vpnConnection1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/vpnConnections/vpnConnection1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "remoteVpnSite": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1"
+ },
+ "enableInternetSecurity": false,
+ "ingressBytesTransferred": 0,
+ "egressBytesTransferred": 0,
+ "vpnLinkConnections": [
+ {
+ "name": "Connection-Link1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/vpnConnections/vpnConnection1/VpnSiteLinkConnections/Connection-Link1",
+ "type": "Microsoft.Network/vpnGateways/vpnConnections/VpnSiteLinkConnections",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "vpnSiteLink": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1/vpnSiteLinks/siteLink1"
+ },
+ "connectionBandwidth": 200,
+ "ipsecPolicies": [],
+ "vpnConnectionProtocolType": "IKEv2",
+ "sharedKey": "key",
+ "ingressBytesTransferred": 0,
+ "egressBytesTransferred": 0,
+ "enableBgp": false,
+ "enableRateLimiting": false,
+ "useLocalAzureIpAddress": false,
+ "usePolicyBasedTrafficSelectors": false,
+ "routingWeight": 0
+ }
+ },
+ {
+ "name": "Connection-Link2",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/vpnConnections/vpnConnection1/VpnSiteLinkConnections/Connection-Link2",
+ "type": "Microsoft.Network/vpnGateways/vpnConnections/VpnSiteLinkConnections",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "vpnSiteLink": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1/vpnSiteLinks/siteLink2"
+ },
+ "connectionBandwidth": 200,
+ "ipsecPolicies": [],
+ "vpnConnectionProtocolType": "IKEv2",
+ "sharedKey": "key",
+ "ingressBytesTransferred": 0,
+ "egressBytesTransferred": 0,
+ "enableBgp": false,
+ "enableRateLimiting": false,
+ "useLocalAzureIpAddress": false,
+ "usePolicyBasedTrafficSelectors": false,
+ "routingWeight": 0
+ }
+ }
+ ],
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub1/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub1/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub1/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnConnectionList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnConnectionList.json
new file mode 100644
index 000000000000..51004ddac7bc
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnConnectionList.json
@@ -0,0 +1,101 @@
+{
+ "parameters": {
+ "gatewayName": "gateway1",
+ "api-version": "2020-07-01",
+ "resourceGroupName": "rg1",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": [
+ {
+ "name": "vpnConnection1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/vpnConnections/vpnConnection1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "remoteVpnSite": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1"
+ },
+ "enableInternetSecurity": false,
+ "ingressBytesTransferred": 0,
+ "egressBytesTransferred": 0,
+ "vpnLinkConnections": [
+ {
+ "name": "Connection-Link1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/vpnConnections/vpnConnection1/VpnSiteLinkConnections/Connection-Link1",
+ "type": "Microsoft.Network/vpnGateways/vpnConnections/VpnSiteLinkConnections",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "vpnSiteLink": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1/vpnSiteLinks/siteLink1"
+ },
+ "connectionBandwidth": 200,
+ "ipsecPolicies": [],
+ "vpnConnectionProtocolType": "IKEv2",
+ "sharedKey": "key",
+ "ingressBytesTransferred": 0,
+ "egressBytesTransferred": 0,
+ "enableBgp": false,
+ "enableRateLimiting": false,
+ "useLocalAzureIpAddress": false,
+ "usePolicyBasedTrafficSelectors": false,
+ "routingWeight": 0
+ }
+ },
+ {
+ "name": "Connection-Link2",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/vpnConnections/vpnConnection1/VpnSiteLinkConnections/Connection-Link2",
+ "type": "Microsoft.Network/vpnGateways/vpnConnections/VpnSiteLinkConnections",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "vpnSiteLink": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1/vpnSiteLinks/siteLink2"
+ },
+ "connectionBandwidth": 200,
+ "ipsecPolicies": [],
+ "vpnConnectionProtocolType": "IKEv2",
+ "sharedKey": "key",
+ "ingressBytesTransferred": 0,
+ "egressBytesTransferred": 0,
+ "enableBgp": false,
+ "enableRateLimiting": false,
+ "useLocalAzureIpAddress": false,
+ "usePolicyBasedTrafficSelectors": false,
+ "routingWeight": 0
+ }
+ }
+ ],
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub1/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub1/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub1/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
+ }
+ }
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnConnectionPut.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnConnectionPut.json
new file mode 100644
index 000000000000..2a9e493c81d5
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnConnectionPut.json
@@ -0,0 +1,162 @@
+{
+ "parameters": {
+ "connectionName": "vpnConnection1",
+ "gatewayName": "gateway1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "VpnConnectionParameters": {
+ "properties": {
+ "remoteVpnSite": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1"
+ },
+ "vpnLinkConnections": [
+ {
+ "name": "Connection-Link1",
+ "properties": {
+ "vpnSiteLink": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1/vpnSiteLinks/siteLink1"
+ },
+ "connectionBandwidth": 200,
+ "vpnConnectionProtocolType": "IKEv2",
+ "sharedKey": "key"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "vpnConnection1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/vpnConnections/vpnConnection1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "remoteVpnSite": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1"
+ },
+ "enableInternetSecurity": false,
+ "ingressBytesTransferred": 0,
+ "egressBytesTransferred": 0,
+ "vpnLinkConnections": [
+ {
+ "name": "Connection-Link1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/vpnConnections/vpnConnection1/VpnSiteLinkConnections/Connection-Link1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "type": "Microsoft.Network/vpnGateways/vpnConnections/VpnSiteLinkConnections",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "vpnSiteLink": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1/vpnSiteLinks/siteLink1"
+ },
+ "connectionBandwidth": 200,
+ "ipsecPolicies": [],
+ "vpnConnectionProtocolType": "IKEv2",
+ "sharedKey": "key",
+ "ingressBytesTransferred": 0,
+ "egressBytesTransferred": 0,
+ "enableBgp": false,
+ "enableRateLimiting": false,
+ "useLocalAzureIpAddress": false,
+ "usePolicyBasedTrafficSelectors": false,
+ "routingWeight": 0
+ }
+ }
+ ],
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub1/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub1/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub1/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
+ }
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "vpnConnection1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/vpnConnections/vpnConnection1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "remoteVpnSite": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1"
+ },
+ "enableInternetSecurity": false,
+ "ingressBytesTransferred": 0,
+ "egressBytesTransferred": 0,
+ "vpnLinkConnections": [
+ {
+ "name": "Connection-Link1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/vpnConnections/vpnConnection1/VpnSiteLinkConnections/Connection-Link1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "vpnSiteLink": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1/vpnSiteLinks/siteLink1"
+ },
+ "connectionBandwidth": 200,
+ "ipsecPolicies": [],
+ "vpnConnectionProtocolType": "IKEv2",
+ "sharedKey": "key",
+ "ingressBytesTransferred": 0,
+ "egressBytesTransferred": 0,
+ "enableBgp": false,
+ "enableRateLimiting": false,
+ "useLocalAzureIpAddress": false,
+ "usePolicyBasedTrafficSelectors": false,
+ "routingWeight": 0
+ }
+ }
+ ],
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub1/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub1/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/hub1/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnConnectionStartPacketCapture.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnConnectionStartPacketCapture.json
new file mode 100644
index 000000000000..0e2b1686c114
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnConnectionStartPacketCapture.json
@@ -0,0 +1,21 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "gatewayName": "gateway1",
+ "vpnConnectionName": "vpnConnection1",
+ "parameters": {
+ "linkConnectionNames": [
+ "siteLink1",
+ "siteLink2"
+ ]
+ }
+ },
+ "responses": {
+ "202": {},
+ "200": {
+ "body": "\"{\"Status\":\"Successful\",\"Data\":null}\""
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnConnectionStartPacketCaptureFilterData.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnConnectionStartPacketCaptureFilterData.json
new file mode 100644
index 000000000000..0459c4d0b079
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnConnectionStartPacketCaptureFilterData.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "gatewayName": "gateway1",
+ "vpnConnectionName": "vpnConnection1",
+ "parameters": {
+ "filterData": "{'TracingFlags': 11,'MaxPacketBufferSize': 120,'MaxFileSize': 200,'Filters': [{'SourceSubnets': ['20.1.1.0/24'],'DestinationSubnets': ['10.1.1.0/24'],'SourcePort': [500],'DestinationPort': [4500],'Protocol': 6,'TcpFlags': 16,'CaptureSingleDirectionTrafficOnly': true}]}",
+ "linkConnectionNames": [
+ "siteLink1",
+ "siteLink2"
+ ]
+ }
+ },
+ "responses": {
+ "202": {},
+ "200": {
+ "body": "\"{\"Status\":\"Successful\",\"Data\":null}\""
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnConnectionStopPacketCapture.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnConnectionStopPacketCapture.json
new file mode 100644
index 000000000000..ecc959e7237d
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnConnectionStopPacketCapture.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "gatewayName": "gateway1",
+ "vpnConnectionName": "vpnConnection1",
+ "parameters": {
+ "sasUrl": "https://teststorage.blob.core.windows.net/?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-09-13T07:44:05Z&st=2019-09-06T23:44:05Z&spr=https&sig=V1h9D1riltvZMI69d6ihENnFo%2FrCvTqGgjO2lf%2FVBhE%3D",
+ "linkConnectionNames": [
+ "vpnSiteLink1",
+ "vpnSiteLink2"
+ ]
+ }
+ },
+ "responses": {
+ "202": {},
+ "200": {
+ "body": "\"{\"Status\":\"Successful\",\"Data\":null}\""
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnGatewayDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnGatewayDelete.json
new file mode 100644
index 000000000000..148a89b45c63
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnGatewayDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "gatewayName": "gateway1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnGatewayGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnGatewayGet.json
new file mode 100644
index 000000000000..ab8e71957983
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnGatewayGet.json
@@ -0,0 +1,146 @@
+{
+ "parameters": {
+ "gatewayName": "gateway1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "gateway1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "type": "Microsoft.Network/vpnGateways",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "virtualHub": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1"
+ },
+ "connections": [
+ {
+ "name": "vpnConnection1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/vpnConnections/vpnConnection1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "remoteVpnSite": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1"
+ },
+ "enableInternetSecurity": false,
+ "ingressBytesTransferred": 0,
+ "egressBytesTransferred": 0,
+ "vpnLinkConnections": [
+ {
+ "name": "Connection-Link1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/vpnConnections/vpnConnection1/VpnSiteLinkConnections/Connection-Link1",
+ "type": "Microsoft.Network/vpnGateways/vpnConnections/VpnSiteLinkConnections",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "vpnSiteLink": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1/vpnSiteLinks/siteLink1"
+ },
+ "connectionBandwidth": 200,
+ "ipsecPolicies": [],
+ "vpnConnectionProtocolType": "IKEv2",
+ "sharedKey": "key",
+ "ingressBytesTransferred": 0,
+ "egressBytesTransferred": 0,
+ "enableBgp": false,
+ "enableRateLimiting": false,
+ "useLocalAzureIpAddress": false,
+ "usePolicyBasedTrafficSelectors": false,
+ "routingWeight": 0
+ }
+ },
+ {
+ "name": "Connection-Link2",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/vpnConnections/vpnConnection1/VpnSiteLinkConnections/Connection-Link2",
+ "type": "Microsoft.Network/vpnGateways/vpnConnections/VpnSiteLinkConnections",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "vpnSiteLink": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1/vpnSiteLinks/siteLink2"
+ },
+ "connectionBandwidth": 200,
+ "ipsecPolicies": [],
+ "vpnConnectionProtocolType": "IKEv2",
+ "sharedKey": "key",
+ "ingressBytesTransferred": 0,
+ "egressBytesTransferred": 0,
+ "enableBgp": false,
+ "enableRateLimiting": false,
+ "useLocalAzureIpAddress": false,
+ "usePolicyBasedTrafficSelectors": false,
+ "routingWeight": 0
+ }
+ }
+ ],
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
+ }
+ }
+ }
+ ],
+ "bgpSettings": {
+ "asn": 65514,
+ "bgpPeeringAddress": "10.0.1.30",
+ "peerWeight": 0,
+ "bgpPeeringAddresses": [
+ {
+ "ipconfigurationId": "Instance0",
+ "defaultBgpIpAddresses": [
+ "10.30.0.4"
+ ],
+ "customBgpIpAddresses": [
+ "169.254.21.5"
+ ],
+ "tunnelIpAddresses": [
+ "104.208.48.178"
+ ]
+ },
+ {
+ "ipconfigurationId": "Instance1",
+ "defaultBgpIpAddresses": [
+ "10.30.0.5"
+ ],
+ "customBgpIpAddresses": [
+ "169.254.21.10"
+ ],
+ "tunnelIpAddresses": [
+ "104.208.48.179"
+ ]
+ }
+ ]
+ },
+ "isRoutingPreferenceInternet": false
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnGatewayList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnGatewayList.json
new file mode 100644
index 000000000000..234bdfcbf6ae
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnGatewayList.json
@@ -0,0 +1,241 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "resourceGroupName": "rg1",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "gateway1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "type": "Microsoft.Network/vpnGateways",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "virtualHub": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1"
+ },
+ "connections": [
+ {
+ "name": "vpnConnection1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/vpnConnections/vpnConnection1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "remoteVpnSite": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1"
+ },
+ "enableInternetSecurity": false,
+ "ingressBytesTransferred": 0,
+ "egressBytesTransferred": 0,
+ "vpnLinkConnections": [
+ {
+ "name": "Connection-Link1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/vpnConnections/vpnConnection1/VpnSiteLinkConnections/Connection-Link1",
+ "type": "Microsoft.Network/vpnGateways/vpnConnections/VpnSiteLinkConnections",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "vpnSiteLink": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1/vpnSiteLinks/siteLink1"
+ },
+ "connectionBandwidth": 200,
+ "ipsecPolicies": [],
+ "vpnConnectionProtocolType": "IKEv2",
+ "sharedKey": "key",
+ "ingressBytesTransferred": 0,
+ "egressBytesTransferred": 0,
+ "enableBgp": false,
+ "enableRateLimiting": false,
+ "useLocalAzureIpAddress": false,
+ "usePolicyBasedTrafficSelectors": false,
+ "routingWeight": 0
+ }
+ },
+ {
+ "name": "Connection-Link2",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/vpnConnections/vpnConnection1/VpnSiteLinkConnections/Connection-Link2",
+ "type": "Microsoft.Network/vpnGateways/vpnConnections/VpnSiteLinkConnections",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "vpnSiteLink": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1/vpnSiteLinks/siteLink2"
+ },
+ "connectionBandwidth": 200,
+ "ipsecPolicies": [],
+ "vpnConnectionProtocolType": "IKEv2",
+ "sharedKey": "key",
+ "ingressBytesTransferred": 0,
+ "egressBytesTransferred": 0,
+ "enableBgp": false,
+ "enableRateLimiting": false,
+ "useLocalAzureIpAddress": false,
+ "usePolicyBasedTrafficSelectors": false,
+ "routingWeight": 0
+ }
+ }
+ ],
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
+ }
+ }
+ }
+ ],
+ "bgpSettings": {
+ "asn": 65514,
+ "bgpPeeringAddress": "10.0.1.30",
+ "peerWeight": 0,
+ "bgpPeeringAddresses": [
+ {
+ "ipconfigurationId": "Instance0",
+ "defaultBgpIpAddresses": [
+ "10.30.0.4"
+ ],
+ "customBgpIpAddresses": [
+ "169.254.21.5"
+ ],
+ "tunnelIpAddresses": [
+ "104.208.48.178"
+ ]
+ },
+ {
+ "ipconfigurationId": "Instance1",
+ "defaultBgpIpAddresses": [
+ "10.30.0.5"
+ ],
+ "customBgpIpAddresses": [
+ "169.254.21.10"
+ ],
+ "tunnelIpAddresses": [
+ "104.208.48.179"
+ ]
+ }
+ ]
+ },
+ "isRoutingPreferenceInternet": false
+ }
+ },
+ {
+ "name": "gateway2",
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/vpnGateways/gateway2",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "type": "Microsoft.Network/vpnGateways",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "virtualHub": {
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/virtualHubs/virtualHub2"
+ },
+ "connections": [
+ {
+ "name": "vpnConnection1",
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/vpnGateways/gateway2/vpnConnections/vpnConnection2",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "remoteVpnSite": {
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/vpnSites/vpnSite2"
+ },
+ "connectionStatus": "Connected",
+ "ingressBytesTransferred": 0,
+ "egressBytesTransferred": 0,
+ "routingWeight": 0,
+ "connectionBandwidth": 100,
+ "sharedKey": "key",
+ "enableBgp": false,
+ "useLocalAzureIpAddress": false,
+ "ipsecPolicies": [],
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/virtualHubs/virtualHub2/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/virtualHubs/virtualHub2/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/virtualHubs/virtualHub2/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/virtualHubs/virtualHub2/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
+ }
+ }
+ }
+ ],
+ "bgpSettings": {
+ "asn": 65514,
+ "bgpPeeringAddress": "10.0.1.30",
+ "peerWeight": 0,
+ "bgpPeeringAddresses": [
+ {
+ "ipconfigurationId": "Instance0",
+ "defaultBgpIpAddresses": [
+ "10.30.0.4"
+ ],
+ "customBgpIpAddresses": [
+ "169.254.21.5"
+ ],
+ "tunnelIpAddresses": [
+ "104.208.48.178"
+ ]
+ },
+ {
+ "ipconfigurationId": "Instance1",
+ "defaultBgpIpAddresses": [
+ "10.30.0.5"
+ ],
+ "customBgpIpAddresses": [
+ "169.254.21.10"
+ ],
+ "tunnelIpAddresses": [
+ "104.208.48.179"
+ ]
+ }
+ ]
+ },
+ "isRoutingPreferenceInternet": false
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnGatewayListByResourceGroup.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnGatewayListByResourceGroup.json
new file mode 100644
index 000000000000..234bdfcbf6ae
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnGatewayListByResourceGroup.json
@@ -0,0 +1,241 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "resourceGroupName": "rg1",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "gateway1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "type": "Microsoft.Network/vpnGateways",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "virtualHub": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1"
+ },
+ "connections": [
+ {
+ "name": "vpnConnection1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/vpnConnections/vpnConnection1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "remoteVpnSite": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1"
+ },
+ "enableInternetSecurity": false,
+ "ingressBytesTransferred": 0,
+ "egressBytesTransferred": 0,
+ "vpnLinkConnections": [
+ {
+ "name": "Connection-Link1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/vpnConnections/vpnConnection1/VpnSiteLinkConnections/Connection-Link1",
+ "type": "Microsoft.Network/vpnGateways/vpnConnections/VpnSiteLinkConnections",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "vpnSiteLink": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1/vpnSiteLinks/siteLink1"
+ },
+ "connectionBandwidth": 200,
+ "ipsecPolicies": [],
+ "vpnConnectionProtocolType": "IKEv2",
+ "sharedKey": "key",
+ "ingressBytesTransferred": 0,
+ "egressBytesTransferred": 0,
+ "enableBgp": false,
+ "enableRateLimiting": false,
+ "useLocalAzureIpAddress": false,
+ "usePolicyBasedTrafficSelectors": false,
+ "routingWeight": 0
+ }
+ },
+ {
+ "name": "Connection-Link2",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/vpnConnections/vpnConnection1/VpnSiteLinkConnections/Connection-Link2",
+ "type": "Microsoft.Network/vpnGateways/vpnConnections/VpnSiteLinkConnections",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "vpnSiteLink": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1/vpnSiteLinks/siteLink2"
+ },
+ "connectionBandwidth": 200,
+ "ipsecPolicies": [],
+ "vpnConnectionProtocolType": "IKEv2",
+ "sharedKey": "key",
+ "ingressBytesTransferred": 0,
+ "egressBytesTransferred": 0,
+ "enableBgp": false,
+ "enableRateLimiting": false,
+ "useLocalAzureIpAddress": false,
+ "usePolicyBasedTrafficSelectors": false,
+ "routingWeight": 0
+ }
+ }
+ ],
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
+ }
+ }
+ }
+ ],
+ "bgpSettings": {
+ "asn": 65514,
+ "bgpPeeringAddress": "10.0.1.30",
+ "peerWeight": 0,
+ "bgpPeeringAddresses": [
+ {
+ "ipconfigurationId": "Instance0",
+ "defaultBgpIpAddresses": [
+ "10.30.0.4"
+ ],
+ "customBgpIpAddresses": [
+ "169.254.21.5"
+ ],
+ "tunnelIpAddresses": [
+ "104.208.48.178"
+ ]
+ },
+ {
+ "ipconfigurationId": "Instance1",
+ "defaultBgpIpAddresses": [
+ "10.30.0.5"
+ ],
+ "customBgpIpAddresses": [
+ "169.254.21.10"
+ ],
+ "tunnelIpAddresses": [
+ "104.208.48.179"
+ ]
+ }
+ ]
+ },
+ "isRoutingPreferenceInternet": false
+ }
+ },
+ {
+ "name": "gateway2",
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/vpnGateways/gateway2",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "type": "Microsoft.Network/vpnGateways",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "virtualHub": {
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/virtualHubs/virtualHub2"
+ },
+ "connections": [
+ {
+ "name": "vpnConnection1",
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/vpnGateways/gateway2/vpnConnections/vpnConnection2",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "remoteVpnSite": {
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/vpnSites/vpnSite2"
+ },
+ "connectionStatus": "Connected",
+ "ingressBytesTransferred": 0,
+ "egressBytesTransferred": 0,
+ "routingWeight": 0,
+ "connectionBandwidth": 100,
+ "sharedKey": "key",
+ "enableBgp": false,
+ "useLocalAzureIpAddress": false,
+ "ipsecPolicies": [],
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/virtualHubs/virtualHub2/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/virtualHubs/virtualHub2/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/virtualHubs/virtualHub2/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/virtualHubs/virtualHub2/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
+ }
+ }
+ }
+ ],
+ "bgpSettings": {
+ "asn": 65514,
+ "bgpPeeringAddress": "10.0.1.30",
+ "peerWeight": 0,
+ "bgpPeeringAddresses": [
+ {
+ "ipconfigurationId": "Instance0",
+ "defaultBgpIpAddresses": [
+ "10.30.0.4"
+ ],
+ "customBgpIpAddresses": [
+ "169.254.21.5"
+ ],
+ "tunnelIpAddresses": [
+ "104.208.48.178"
+ ]
+ },
+ {
+ "ipconfigurationId": "Instance1",
+ "defaultBgpIpAddresses": [
+ "10.30.0.5"
+ ],
+ "customBgpIpAddresses": [
+ "169.254.21.10"
+ ],
+ "tunnelIpAddresses": [
+ "104.208.48.179"
+ ]
+ }
+ ]
+ },
+ "isRoutingPreferenceInternet": false
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnGatewayPut.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnGatewayPut.json
new file mode 100644
index 000000000000..0f4d1a0d1f9e
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnGatewayPut.json
@@ -0,0 +1,289 @@
+{
+ "parameters": {
+ "gatewayName": "gateway1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "vpnGatewayParameters": {
+ "location": "westcentralus",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "virtualHub": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1"
+ },
+ "connections": [
+ {
+ "name": "vpnConnection1",
+ "properties": {
+ "remoteVpnSite": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1"
+ },
+ "vpnLinkConnections": [
+ {
+ "name": "Connection-Link1",
+ "properties": {
+ "vpnSiteLink": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1/vpnSiteLinks/siteLink1"
+ },
+ "connectionBandwidth": 200,
+ "vpnConnectionProtocolType": "IKEv2",
+ "sharedKey": "key"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "bgpSettings": {
+ "asn": 65515,
+ "peerWeight": 0,
+ "bgpPeeringAddresses": [
+ {
+ "ipconfigurationId": "Instance0",
+ "customBgpIpAddresses": [
+ "169.254.21.5"
+ ]
+ },
+ {
+ "ipconfigurationId": "Instance1",
+ "customBgpIpAddresses": [
+ "169.254.21.10"
+ ]
+ }
+ ]
+ },
+ "isRoutingPreferenceInternet": false
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "gateway1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "type": "Microsoft.Network/vpnGateways",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "virtualHub": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1"
+ },
+ "connections": [
+ {
+ "name": "vpnConnection1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/vpnConnections/vpnConnection1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "remoteVpnSite": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1"
+ },
+ "enableInternetSecurity": false,
+ "ingressBytesTransferred": 0,
+ "egressBytesTransferred": 0,
+ "vpnLinkConnections": [
+ {
+ "name": "Connection-Link1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/vpnConnections/vpnConnection1/VpnSiteLinkConnections/Connection-Link1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "type": "Microsoft.Network/vpnGateways/vpnConnections/VpnSiteLinkConnections",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "vpnSiteLink": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1/vpnSiteLinks/siteLink1"
+ },
+ "connectionBandwidth": 200,
+ "ipsecPolicies": [],
+ "vpnConnectionProtocolType": "IKEv2",
+ "sharedKey": "key",
+ "ingressBytesTransferred": 0,
+ "egressBytesTransferred": 0,
+ "enableBgp": false,
+ "enableRateLimiting": false,
+ "useLocalAzureIpAddress": false,
+ "usePolicyBasedTrafficSelectors": false,
+ "routingWeight": 0
+ }
+ }
+ ],
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
+ }
+ }
+ }
+ ],
+ "bgpSettings": {
+ "asn": 65514,
+ "bgpPeeringAddress": "10.0.1.30",
+ "peerWeight": 0,
+ "bgpPeeringAddresses": [
+ {
+ "ipconfigurationId": "Instance0",
+ "defaultBgpIpAddresses": [
+ "10.30.0.4"
+ ],
+ "customBgpIpAddresses": [
+ "169.254.21.5"
+ ],
+ "tunnelIpAddresses": [
+ "104.208.48.178"
+ ]
+ },
+ {
+ "ipconfigurationId": "Instance1",
+ "defaultBgpIpAddresses": [
+ "10.30.0.5"
+ ],
+ "customBgpIpAddresses": [
+ "169.254.21.10"
+ ],
+ "tunnelIpAddresses": [
+ "104.208.48.179"
+ ]
+ }
+ ]
+ },
+ "isRoutingPreferenceInternet": false
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "gateway1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "type": "Microsoft.Network/vpnGateways",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "virtualHub": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1"
+ },
+ "connections": [
+ {
+ "name": "vpnConnection1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/vpnConnections/vpnConnection1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "remoteVpnSite": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1"
+ },
+ "enableInternetSecurity": false,
+ "ingressBytesTransferred": 0,
+ "egressBytesTransferred": 0,
+ "vpnLinkConnections": [
+ {
+ "name": "Connection-Link1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/vpnConnections/vpnConnection1/VpnSiteLinkConnections/Connection-Link1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "type": "Microsoft.Network/vpnGateways/vpnConnections/VpnSiteLinkConnections",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "vpnSiteLink": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1/vpnSiteLinks/siteLink1"
+ },
+ "connectionBandwidth": 200,
+ "ipsecPolicies": [],
+ "vpnConnectionProtocolType": "IKEv2",
+ "sharedKey": "key",
+ "ingressBytesTransferred": 0,
+ "egressBytesTransferred": 0,
+ "enableBgp": false,
+ "enableRateLimiting": false,
+ "useLocalAzureIpAddress": false,
+ "usePolicyBasedTrafficSelectors": false,
+ "routingWeight": 0
+ }
+ }
+ ],
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
+ }
+ }
+ }
+ ],
+ "bgpSettings": {
+ "asn": 65514,
+ "bgpPeeringAddress": "10.0.1.30",
+ "peerWeight": 0,
+ "bgpPeeringAddresses": [
+ {
+ "ipconfigurationId": "Instance0",
+ "defaultBgpIpAddresses": [
+ "10.30.0.4"
+ ],
+ "customBgpIpAddresses": [
+ "169.254.21.5"
+ ],
+ "tunnelIpAddresses": [
+ "104.208.48.178"
+ ]
+ },
+ {
+ "ipconfigurationId": "Instance1",
+ "defaultBgpIpAddresses": [
+ "10.30.0.5"
+ ],
+ "customBgpIpAddresses": [
+ "169.254.21.10"
+ ],
+ "tunnelIpAddresses": [
+ "104.208.48.179"
+ ]
+ }
+ ]
+ },
+ "isRoutingPreferenceInternet": false
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnGatewayReset.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnGatewayReset.json
new file mode 100644
index 000000000000..eecf5fe16785
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnGatewayReset.json
@@ -0,0 +1,105 @@
+{
+ "parameters": {
+ "gatewayName": "vpngw",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "202": {},
+ "200": {
+ "body": {
+ "name": "vpngw",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/vpngw",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "type": "Microsoft.Network/vpnGateways",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "virtualHub": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1"
+ },
+ "connections": [
+ {
+ "name": "vpnConnection1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/vpngw/vpnConnections/vpnConnection1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "remoteVpnSite": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1"
+ },
+ "connectionStatus": "Connected",
+ "ingressBytesTransferred": 0,
+ "egressBytesTransferred": 0,
+ "routingWeight": 0,
+ "connectionBandwidth": 100,
+ "sharedKey": "key",
+ "enableBgp": false,
+ "useLocalAzureIpAddress": false,
+ "ipsecPolicies": [],
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
+ }
+ }
+ }
+ ],
+ "bgpSettings": {
+ "asn": 65514,
+ "bgpPeeringAddress": "10.0.1.30",
+ "peerWeight": 0,
+ "bgpPeeringAddresses": [
+ {
+ "ipconfigurationId": "Instance0",
+ "defaultBgpIpAddresses": [
+ "10.30.0.4"
+ ],
+ "customBgpIpAddresses": [
+ "169.254.21.5"
+ ],
+ "tunnelIpAddresses": [
+ "104.208.48.178"
+ ]
+ },
+ {
+ "ipconfigurationId": "Instance1",
+ "defaultBgpIpAddresses": [
+ "10.30.0.5"
+ ],
+ "customBgpIpAddresses": [
+ "169.254.21.10"
+ ],
+ "tunnelIpAddresses": [
+ "104.208.48.179"
+ ]
+ }
+ ]
+ },
+ "isRoutingPreferenceInternet": false
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnGatewayStartPacketCapture.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnGatewayStartPacketCapture.json
new file mode 100644
index 000000000000..e1da45bc255d
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnGatewayStartPacketCapture.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "gatewayName": "vpngw"
+ },
+ "responses": {
+ "202": {},
+ "200": {
+ "body": "\"{\"Status\":\"Successful\",\"Data\":null}\""
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnGatewayStartPacketCaptureFilterData.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnGatewayStartPacketCaptureFilterData.json
new file mode 100644
index 000000000000..28b659181379
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnGatewayStartPacketCaptureFilterData.json
@@ -0,0 +1,17 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "gatewayName": "vpngw",
+ "parameters": {
+ "filterData": "{'TracingFlags': 11,'MaxPacketBufferSize': 120,'MaxFileSize': 200,'Filters': [{'SourceSubnets': ['20.1.1.0/24'],'DestinationSubnets': ['10.1.1.0/24'],'SourcePort': [500],'DestinationPort': [4500],'Protocol': 6,'TcpFlags': 16,'CaptureSingleDirectionTrafficOnly': true}]}"
+ }
+ },
+ "responses": {
+ "202": {},
+ "200": {
+ "body": "\"{\"Status\":\"Successful\",\"Data\":null}\""
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnGatewayStopPacketCapture.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnGatewayStopPacketCapture.json
new file mode 100644
index 000000000000..dddd55282ca8
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnGatewayStopPacketCapture.json
@@ -0,0 +1,17 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "gatewayName": "vpngw",
+ "parameters": {
+ "sasUrl": "https://teststorage.blob.core.windows.net/?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-09-13T07:44:05Z&st=2019-09-06T23:44:05Z&spr=https&sig=V1h9D1riltvZMI69d6ihENnFo%2FrCvTqGgjO2lf%2FVBhE%3D"
+ }
+ },
+ "responses": {
+ "202": {},
+ "200": {
+ "body": "\"{\"Status\":\"Successful\",\"Data\":null}\""
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnGatewayUpdateTags.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnGatewayUpdateTags.json
new file mode 100644
index 000000000000..91b28576fb7f
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnGatewayUpdateTags.json
@@ -0,0 +1,113 @@
+{
+ "parameters": {
+ "gatewayName": "gateway1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "vpnGatewayParameters": {
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ }
+ }
+ },
+ "responses": {
+ "202": {},
+ "200": {
+ "body": {
+ "name": "gateway1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "type": "Microsoft.Network/vpnGateways",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "virtualHub": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1"
+ },
+ "connections": [
+ {
+ "name": "vpnConnection1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/vpnConnections/vpnConnection1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "remoteVpnSite": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1"
+ },
+ "connectionStatus": "Connected",
+ "ingressBytesTransferred": 0,
+ "egressBytesTransferred": 0,
+ "routingWeight": 0,
+ "sharedKey": "key",
+ "enableBgp": false,
+ "ipsecPolicies": [],
+ "routingConfiguration": {
+ "associatedRouteTable": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ "propagatedRouteTables": {
+ "labels": [
+ "label1",
+ "label2"
+ ],
+ "ids": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable1"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable2"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/hubRouteTable3"
+ }
+ ]
+ },
+ "vnetRoutes": {
+ "staticRoutes": []
+ }
+ }
+ }
+ }
+ ],
+ "bgpSettings": {
+ "asn": 65515,
+ "bgpPeeringAddress": "10.0.1.30",
+ "peerWeight": 0,
+ "bgpPeeringAddresses": [
+ {
+ "ipconfigurationId": "Instance0",
+ "defaultBgpIpAddresses": [
+ "10.30.0.4"
+ ],
+ "customBgpIpAddresses": [
+ "169.254.21.5"
+ ],
+ "tunnelIpAddresses": [
+ "104.208.48.178"
+ ]
+ },
+ {
+ "ipconfigurationId": "Instance1",
+ "defaultBgpIpAddresses": [
+ "10.30.0.5"
+ ],
+ "customBgpIpAddresses": [
+ "169.254.21.10"
+ ],
+ "tunnelIpAddresses": [
+ "104.208.48.179"
+ ]
+ }
+ ]
+ },
+ "isRoutingPreferenceInternet": false
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnServerConfigurationDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnServerConfigurationDelete.json
new file mode 100644
index 000000000000..198bbb14b68b
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnServerConfigurationDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "vpnServerConfigurationName": "vpnServerConfiguration1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnServerConfigurationGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnServerConfigurationGet.json
new file mode 100644
index 000000000000..b04a7cc68ac6
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnServerConfigurationGet.json
@@ -0,0 +1,73 @@
+{
+ "parameters": {
+ "vpnServerConfigurationName": "vpnServerConfiguration1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnServerConfigurations/vpnServerConfiguration1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "name": "vpnServerConfiguration1",
+ "type": "Microsoft.Network/vpnServerConfigurations",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "vpnProtocols": [
+ "IkeV2"
+ ],
+ "vpnAuthenticationTypes": [
+ "Certificate"
+ ],
+ "vpnClientIpsecPolicies": [
+ {
+ "saLifeTimeSeconds": 86472,
+ "saDataSizeKilobytes": 429497,
+ "ipsecEncryption": "AES256",
+ "ipsecIntegrity": "SHA256",
+ "ikeEncryption": "AES256",
+ "ikeIntegrity": "SHA384",
+ "dhGroup": "DHGroup14",
+ "pfsGroup": "PFS14"
+ }
+ ],
+ "vpnClientRootCertificates": [
+ {
+ "name": "vpnServerConfigVpnClientRootCert1",
+ "publicCertData": "MIIC5zCCAc+gAwIBAgIQErQ0Hk4aDJxIA+Q5RagB+jANBgkqhkiG9w0BAQsFADAWMRQwEgYDVQQDDAtQMlNSb290Q2VydDAeFw0xNzEyMTQyMTA3MzhaFw0xODEyMTQyMTI3MzhaMBYxFDASBgNVBAMMC1AyU1Jvb3RDZXJ0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArP7/NQXmW7cQ/ZR1mv3Y3I29Lt7HTOqzo/1KUOoVH3NItbQIRAQbwKy3UWrOFz4eGNX2GWtNRMdCyWsKeqy9Ltsdfcm1IbKXkl84DFeU/ZacXu4Dl3xX3gV5du4TLZjEowJELyur11Ea2YcjPRQ/FzAF9/hGuboS1HZQEPLx4FdUs9OxCYOtc0MxBCwLfVTTRqarb0Ne+arNYd4kCzIhAke1nOyKAJBda5ZL+VHy3S5S8qGlD46jm8HXugmAkUygS4oIIXOmj/1O9sNAi3LN60zufSzCmP8Rm/iUGX+DHAGGiXxwZOKQLEDaZXKqoHjMPP0XudmSWwOIbyeQVrLhkwIDAQABozEwLzAOBgNVHQ8BAf8EBAMCAgQwHQYDVR0OBBYEFEfeNU2trYxNLF9ONmuJUsT13pKDMA0GCSqGSIb3DQEBCwUAA4IBAQBmM6RJzsGGipxyMhimHKN2xlkejhVsgBoTAhOU0llW9aUSwINJ9zFUGgI8IzUFy1VG776fchHp0LMRmPSIUYk5btEPxbsrPtumPuMH8EQGrS+Rt4pD+78c8H1fEPkq5CmDl/PKu4JoFGv+aFcE+Od0hlILstIF10Qysf++QXDolKfzJa/56bgMeYKFiju73loiRM57ns8ddXpfLl792UVpRkFU62LNns6Y1LKTwapmUF4IvIuAIzd6LZNOQng64LAKXtKnViJ1JQiXwf4CEzhgvAti3/ejpb3U90hsrUcyZi6wBv9bZLcAJRWpz61JNYliM1d1grSwQDKGXNQE4xuN"
+ }
+ ],
+ "vpnClientRevokedCertificates": [
+ {
+ "name": "vpnServerConfigVpnClientRevokedCert1",
+ "thumbprint": "83FFBFC8848B5A5836C94D0112367E16148A286F"
+ }
+ ],
+ "radiusServers": [
+ {
+ "radiusServerAddress": "10.0.0.0",
+ "radiusServerScore": 25
+ }
+ ],
+ "radiusServerRootCertificates": [
+ {
+ "name": "vpnServerConfigRadiusServerRootCer1",
+ "publicCertData": "MIIC5zCCAc+gAwIBAgIQErQ0Hk4aDJxIA+Q5RagB+jANBgkqhkiG9w0BAQsFADAWMRQwEgYDVQQDDAtQMlNSb290Q2VydDAeFw0xNzEyMTQyMTA3MzhaFw0xODEyMTQyMTI3MzhaMBYxFDASBgNVBAMMC1AyU1Jvb3RDZXJ0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArP7/NQXmW7cQ/ZR1mv3Y3I29Lt7HTOqzo/1KUOoVH3NItbQIRAQbwKy3UWrOFz4eGNX2GWtNRMdCyWsKeqy9Ltsdfcm1IbKXkl84DFeU/ZacXu4Dl3xX3gV5du4TLZjEowJELyur11Ea2YcjPRQ/FzAF9/hGuboS1HZQEPLx4FdUs9OxCYOtc0MxBCwLfVTTRqarb0Ne+arNYd4kCzIhAke1nOyKAJBda5ZL+VHy3S5S8qGlD46jm8HXugmAkUygS4oIIXOmj/1O9sNAi3LN60zufSzCmP8Rm/iUGX+DHAGGiXxwZOKQLEDaZXKqoHjMPP0XudmSWwOIbyeQVrLhkwIDAQABozEwLzAOBgNVHQ8BAf8EBAMCAgQwHQYDVR0OBBYEFEfeNU2trYxNLF9ONmuJUsT13pKDMA0GCSqGSIb3DQEBCwUAA4IBAQBmM6RJzsGGipxyMhimHKN2xlkejhVsgBoTAhOU0llW9aUSwINJ9zFUGgI8IzUFy1VG776fchHp0LMRmPSIUYk5btEPxbsrPtumPuMH8EQGrS+Rt4pD+78c8H1fEPkq5CmDl/PKu4JoFGv+aFcE+Od0hlILstIF10Qysf++QXDolKfzJa/56bgMeYKFiju73loiRM57ns8ddXpfLl792UVpRkFU62LNns6Y1LKTwapmUF4IvIuAIzd6LZNOQng64LAKXtKnViJ1JQiXwf4CEzhgvAti3/ejpb3U90hsrUcyZi6wBv9bZLcAJRWpz61JNYliM1d1grSwQDKGXNQE4xuM"
+ }
+ ],
+ "radiusClientRootCertificates": [
+ {
+ "name": "vpnServerConfigRadiusClientRootCert1",
+ "thumbprint": "83FFBFC8848B5A5836C94D0112367E16148A286F"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnServerConfigurationList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnServerConfigurationList.json
new file mode 100644
index 000000000000..b74be000727e
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnServerConfigurationList.json
@@ -0,0 +1,132 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnServerConfigurations/vpnServerConfiguration1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "name": "vpnServerConfiguration1",
+ "type": "Microsoft.Network/vpnServerConfigurations",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "vpnProtocols": [
+ "IkeV2"
+ ],
+ "vpnAuthenticationTypes": [
+ "Certificate"
+ ],
+ "vpnClientIpsecPolicies": [
+ {
+ "saLifeTimeSeconds": 86472,
+ "saDataSizeKilobytes": 429497,
+ "ipsecEncryption": "AES256",
+ "ipsecIntegrity": "SHA256",
+ "ikeEncryption": "AES256",
+ "ikeIntegrity": "SHA384",
+ "dhGroup": "DHGroup14",
+ "pfsGroup": "PFS14"
+ }
+ ],
+ "vpnClientRootCertificates": [
+ {
+ "name": "vpnServerConfigVpnClientRootCert1",
+ "publicCertData": "MIIC5zCCAc+gAwIBAgIQErQ0Hk4aDJxIA+Q5RagB+jANBgkqhkiG9w0BAQsFADAWMRQwEgYDVQQDDAtQMlNSb290Q2VydDAeFw0xNzEyMTQyMTA3MzhaFw0xODEyMTQyMTI3MzhaMBYxFDASBgNVBAMMC1AyU1Jvb3RDZXJ0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArP7/NQXmW7cQ/ZR1mv3Y3I29Lt7HTOqzo/1KUOoVH3NItbQIRAQbwKy3UWrOFz4eGNX2GWtNRMdCyWsKeqy9Ltsdfcm1IbKXkl84DFeU/ZacXu4Dl3xX3gV5du4TLZjEowJELyur11Ea2YcjPRQ/FzAF9/hGuboS1HZQEPLx4FdUs9OxCYOtc0MxBCwLfVTTRqarb0Ne+arNYd4kCzIhAke1nOyKAJBda5ZL+VHy3S5S8qGlD46jm8HXugmAkUygS4oIIXOmj/1O9sNAi3LN60zufSzCmP8Rm/iUGX+DHAGGiXxwZOKQLEDaZXKqoHjMPP0XudmSWwOIbyeQVrLhkwIDAQABozEwLzAOBgNVHQ8BAf8EBAMCAgQwHQYDVR0OBBYEFEfeNU2trYxNLF9ONmuJUsT13pKDMA0GCSqGSIb3DQEBCwUAA4IBAQBmM6RJzsGGipxyMhimHKN2xlkejhVsgBoTAhOU0llW9aUSwINJ9zFUGgI8IzUFy1VG776fchHp0LMRmPSIUYk5btEPxbsrPtumPuMH8EQGrS+Rt4pD+78c8H1fEPkq5CmDl/PKu4JoFGv+aFcE+Od0hlILstIF10Qysf++QXDolKfzJa/56bgMeYKFiju73loiRM57ns8ddXpfLl792UVpRkFU62LNns6Y1LKTwapmUF4IvIuAIzd6LZNOQng64LAKXtKnViJ1JQiXwf4CEzhgvAti3/ejpb3U90hsrUcyZi6wBv9bZLcAJRWpz61JNYliM1d1grSwQDKGXNQE4xuN"
+ }
+ ],
+ "vpnClientRevokedCertificates": [
+ {
+ "name": "vpnServerConfigVpnClientRevokedCert1",
+ "thumbprint": "83FFBFC8848B5A5836C94D0112367E16148A286F"
+ }
+ ],
+ "radiusServerAddress": "8.9.9.9",
+ "radiusServerSecret": "123_abc",
+ "radiusServerRootCertificates": [
+ {
+ "name": "vpnServerConfigRadiusServerRootCer1",
+ "publicCertData": "MIIC5zCCAc+gAwIBAgIQErQ0Hk4aDJxIA+Q5RagB+jANBgkqhkiG9w0BAQsFADAWMRQwEgYDVQQDDAtQMlNSb290Q2VydDAeFw0xNzEyMTQyMTA3MzhaFw0xODEyMTQyMTI3MzhaMBYxFDASBgNVBAMMC1AyU1Jvb3RDZXJ0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArP7/NQXmW7cQ/ZR1mv3Y3I29Lt7HTOqzo/1KUOoVH3NItbQIRAQbwKy3UWrOFz4eGNX2GWtNRMdCyWsKeqy9Ltsdfcm1IbKXkl84DFeU/ZacXu4Dl3xX3gV5du4TLZjEowJELyur11Ea2YcjPRQ/FzAF9/hGuboS1HZQEPLx4FdUs9OxCYOtc0MxBCwLfVTTRqarb0Ne+arNYd4kCzIhAke1nOyKAJBda5ZL+VHy3S5S8qGlD46jm8HXugmAkUygS4oIIXOmj/1O9sNAi3LN60zufSzCmP8Rm/iUGX+DHAGGiXxwZOKQLEDaZXKqoHjMPP0XudmSWwOIbyeQVrLhkwIDAQABozEwLzAOBgNVHQ8BAf8EBAMCAgQwHQYDVR0OBBYEFEfeNU2trYxNLF9ONmuJUsT13pKDMA0GCSqGSIb3DQEBCwUAA4IBAQBmM6RJzsGGipxyMhimHKN2xlkejhVsgBoTAhOU0llW9aUSwINJ9zFUGgI8IzUFy1VG776fchHp0LMRmPSIUYk5btEPxbsrPtumPuMH8EQGrS+Rt4pD+78c8H1fEPkq5CmDl/PKu4JoFGv+aFcE+Od0hlILstIF10Qysf++QXDolKfzJa/56bgMeYKFiju73loiRM57ns8ddXpfLl792UVpRkFU62LNns6Y1LKTwapmUF4IvIuAIzd6LZNOQng64LAKXtKnViJ1JQiXwf4CEzhgvAti3/ejpb3U90hsrUcyZi6wBv9bZLcAJRWpz61JNYliM1d1grSwQDKGXNQE4xuM"
+ }
+ ],
+ "radiusClientRootCertificates": [
+ {
+ "name": "vpnServerConfigRadiusClientRootCert1",
+ "thumbprint": "83FFBFC8848B5A5836C94D0112367E16148A286F"
+ }
+ ]
+ }
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/vpnServerConfigurations/vpnServerConfiguration2",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "East US",
+ "name": "vpnServerConfiguration2",
+ "type": "Microsoft.Network/vpnServerConfigurations",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "vpnProtocols": [
+ "IkeV2"
+ ],
+ "vpnAuthenticationTypes": [
+ "Certificate"
+ ],
+ "vpnClientIpsecPolicies": [
+ {
+ "saLifeTimeSeconds": 86472,
+ "saDataSizeKilobytes": 429497,
+ "ipsecEncryption": "AES256",
+ "ipsecIntegrity": "SHA256",
+ "ikeEncryption": "AES256",
+ "ikeIntegrity": "SHA384",
+ "dhGroup": "DHGroup14",
+ "pfsGroup": "PFS14"
+ }
+ ],
+ "vpnClientRootCertificates": [
+ {
+ "name": "vpnServerConfigVpnClientRootCert1",
+ "publicCertData": "MIIC5zCCAc+gAwIBAgIQErQ0Hk4aDJxIA+Q5RagB+jANBgkqhkiG9w0BAQsFADAWMRQwEgYDVQQDDAtQMlNSb290Q2VydDAeFw0xNzEyMTQyMTA3MzhaFw0xODEyMTQyMTI3MzhaMBYxFDASBgNVBAMMC1AyU1Jvb3RDZXJ0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArP7/NQXmW7cQ/ZR1mv3Y3I29Lt7HTOqzo/1KUOoVH3NItbQIRAQbwKy3UWrOFz4eGNX2GWtNRMdCyWsKeqy9Ltsdfcm1IbKXkl84DFeU/ZacXu4Dl3xX3gV5du4TLZjEowJELyur11Ea2YcjPRQ/FzAF9/hGuboS1HZQEPLx4FdUs9OxCYOtc0MxBCwLfVTTRqarb0Ne+arNYd4kCzIhAke1nOyKAJBda5ZL+VHy3S5S8qGlD46jm8HXugmAkUygS4oIIXOmj/1O9sNAi3LN60zufSzCmP8Rm/iUGX+DHAGGiXxwZOKQLEDaZXKqoHjMPP0XudmSWwOIbyeQVrLhkwIDAQABozEwLzAOBgNVHQ8BAf8EBAMCAgQwHQYDVR0OBBYEFEfeNU2trYxNLF9ONmuJUsT13pKDMA0GCSqGSIb3DQEBCwUAA4IBAQBmM6RJzsGGipxyMhimHKN2xlkejhVsgBoTAhOU0llW9aUSwINJ9zFUGgI8IzUFy1VG776fchHp0LMRmPSIUYk5btEPxbsrPtumPuMH8EQGrS+Rt4pD+78c8H1fEPkq5CmDl/PKu4JoFGv+aFcE+Od0hlILstIF10Qysf++QXDolKfzJa/56bgMeYKFiju73loiRM57ns8ddXpfLl792UVpRkFU62LNns6Y1LKTwapmUF4IvIuAIzd6LZNOQng64LAKXtKnViJ1JQiXwf4CEzhgvAti3/ejpb3U90hsrUcyZi6wBv9bZLcAJRWpz61JNYliM1d1grSwQDKGXNQE4xuN"
+ }
+ ],
+ "vpnClientRevokedCertificates": [
+ {
+ "name": "vpnServerConfigVpnClientRevokedCert1",
+ "thumbprint": "83FFBFC8848B5A5836C94D0112367E16148A286F"
+ }
+ ],
+ "radiusServers": [
+ {
+ "radiusServerAddress": "10.0.0.0",
+ "radiusServerScore": 25
+ }
+ ],
+ "radiusServerRootCertificates": [
+ {
+ "name": "vpnServerConfigRadiusServerRootCer1",
+ "publicCertData": "MIIC5zCCAc+gAwIBAgIQErQ0Hk4aDJxIA+Q5RagB+jANBgkqhkiG9w0BAQsFADAWMRQwEgYDVQQDDAtQMlNSb290Q2VydDAeFw0xNzEyMTQyMTA3MzhaFw0xODEyMTQyMTI3MzhaMBYxFDASBgNVBAMMC1AyU1Jvb3RDZXJ0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArP7/NQXmW7cQ/ZR1mv3Y3I29Lt7HTOqzo/1KUOoVH3NItbQIRAQbwKy3UWrOFz4eGNX2GWtNRMdCyWsKeqy9Ltsdfcm1IbKXkl84DFeU/ZacXu4Dl3xX3gV5du4TLZjEowJELyur11Ea2YcjPRQ/FzAF9/hGuboS1HZQEPLx4FdUs9OxCYOtc0MxBCwLfVTTRqarb0Ne+arNYd4kCzIhAke1nOyKAJBda5ZL+VHy3S5S8qGlD46jm8HXugmAkUygS4oIIXOmj/1O9sNAi3LN60zufSzCmP8Rm/iUGX+DHAGGiXxwZOKQLEDaZXKqoHjMPP0XudmSWwOIbyeQVrLhkwIDAQABozEwLzAOBgNVHQ8BAf8EBAMCAgQwHQYDVR0OBBYEFEfeNU2trYxNLF9ONmuJUsT13pKDMA0GCSqGSIb3DQEBCwUAA4IBAQBmM6RJzsGGipxyMhimHKN2xlkejhVsgBoTAhOU0llW9aUSwINJ9zFUGgI8IzUFy1VG776fchHp0LMRmPSIUYk5btEPxbsrPtumPuMH8EQGrS+Rt4pD+78c8H1fEPkq5CmDl/PKu4JoFGv+aFcE+Od0hlILstIF10Qysf++QXDolKfzJa/56bgMeYKFiju73loiRM57ns8ddXpfLl792UVpRkFU62LNns6Y1LKTwapmUF4IvIuAIzd6LZNOQng64LAKXtKnViJ1JQiXwf4CEzhgvAti3/ejpb3U90hsrUcyZi6wBv9bZLcAJRWpz61JNYliM1d1grSwQDKGXNQE4xuM"
+ }
+ ],
+ "radiusClientRootCertificates": [
+ {
+ "name": "vpnServerConfigRadiusClientRootCert1",
+ "thumbprint": "83FFBFC8848B5A5836C94D0112367E16148A286F"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnServerConfigurationListByResourceGroup.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnServerConfigurationListByResourceGroup.json
new file mode 100644
index 000000000000..e70a1267af72
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnServerConfigurationListByResourceGroup.json
@@ -0,0 +1,129 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "resourceGroupName": "rg1",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnServerConfigurations/vpnServerConfiguration1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "name": "vpnServerConfiguration1",
+ "type": "Microsoft.Network/vpnServerConfigurations",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "vpnProtocols": [
+ "IkeV2"
+ ],
+ "vpnAuthenticationTypes": [
+ "Certificate"
+ ],
+ "vpnClientIpsecPolicies": [
+ {
+ "saLifeTimeSeconds": 86472,
+ "saDataSizeKilobytes": 429497,
+ "ipsecEncryption": "AES256",
+ "ipsecIntegrity": "SHA256",
+ "ikeEncryption": "AES256",
+ "ikeIntegrity": "SHA384",
+ "dhGroup": "DHGroup14",
+ "pfsGroup": "PFS14"
+ }
+ ],
+ "vpnClientRootCertificates": [
+ {
+ "name": "vpnServerConfigVpnClientRootCert1",
+ "publicCertData": "MIIC5zCCAc+gAwIBAgIQErQ0Hk4aDJxIA+Q5RagB+jANBgkqhkiG9w0BAQsFADAWMRQwEgYDVQQDDAtQMlNSb290Q2VydDAeFw0xNzEyMTQyMTA3MzhaFw0xODEyMTQyMTI3MzhaMBYxFDASBgNVBAMMC1AyU1Jvb3RDZXJ0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArP7/NQXmW7cQ/ZR1mv3Y3I29Lt7HTOqzo/1KUOoVH3NItbQIRAQbwKy3UWrOFz4eGNX2GWtNRMdCyWsKeqy9Ltsdfcm1IbKXkl84DFeU/ZacXu4Dl3xX3gV5du4TLZjEowJELyur11Ea2YcjPRQ/FzAF9/hGuboS1HZQEPLx4FdUs9OxCYOtc0MxBCwLfVTTRqarb0Ne+arNYd4kCzIhAke1nOyKAJBda5ZL+VHy3S5S8qGlD46jm8HXugmAkUygS4oIIXOmj/1O9sNAi3LN60zufSzCmP8Rm/iUGX+DHAGGiXxwZOKQLEDaZXKqoHjMPP0XudmSWwOIbyeQVrLhkwIDAQABozEwLzAOBgNVHQ8BAf8EBAMCAgQwHQYDVR0OBBYEFEfeNU2trYxNLF9ONmuJUsT13pKDMA0GCSqGSIb3DQEBCwUAA4IBAQBmM6RJzsGGipxyMhimHKN2xlkejhVsgBoTAhOU0llW9aUSwINJ9zFUGgI8IzUFy1VG776fchHp0LMRmPSIUYk5btEPxbsrPtumPuMH8EQGrS+Rt4pD+78c8H1fEPkq5CmDl/PKu4JoFGv+aFcE+Od0hlILstIF10Qysf++QXDolKfzJa/56bgMeYKFiju73loiRM57ns8ddXpfLl792UVpRkFU62LNns6Y1LKTwapmUF4IvIuAIzd6LZNOQng64LAKXtKnViJ1JQiXwf4CEzhgvAti3/ejpb3U90hsrUcyZi6wBv9bZLcAJRWpz61JNYliM1d1grSwQDKGXNQE4xuN"
+ }
+ ],
+ "vpnClientRevokedCertificates": [
+ {
+ "name": "vpnServerConfigVpnClientRevokedCert1",
+ "thumbprint": "83FFBFC8848B5A5836C94D0112367E16148A286F"
+ }
+ ],
+ "radiusServerAddress": "8.9.9.9",
+ "radiusServerSecret": "123_abc",
+ "radiusServerRootCertificates": [
+ {
+ "name": "vpnServerConfigRadiusServerRootCer1",
+ "publicCertData": "MIIC5zCCAc+gAwIBAgIQErQ0Hk4aDJxIA+Q5RagB+jANBgkqhkiG9w0BAQsFADAWMRQwEgYDVQQDDAtQMlNSb290Q2VydDAeFw0xNzEyMTQyMTA3MzhaFw0xODEyMTQyMTI3MzhaMBYxFDASBgNVBAMMC1AyU1Jvb3RDZXJ0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArP7/NQXmW7cQ/ZR1mv3Y3I29Lt7HTOqzo/1KUOoVH3NItbQIRAQbwKy3UWrOFz4eGNX2GWtNRMdCyWsKeqy9Ltsdfcm1IbKXkl84DFeU/ZacXu4Dl3xX3gV5du4TLZjEowJELyur11Ea2YcjPRQ/FzAF9/hGuboS1HZQEPLx4FdUs9OxCYOtc0MxBCwLfVTTRqarb0Ne+arNYd4kCzIhAke1nOyKAJBda5ZL+VHy3S5S8qGlD46jm8HXugmAkUygS4oIIXOmj/1O9sNAi3LN60zufSzCmP8Rm/iUGX+DHAGGiXxwZOKQLEDaZXKqoHjMPP0XudmSWwOIbyeQVrLhkwIDAQABozEwLzAOBgNVHQ8BAf8EBAMCAgQwHQYDVR0OBBYEFEfeNU2trYxNLF9ONmuJUsT13pKDMA0GCSqGSIb3DQEBCwUAA4IBAQBmM6RJzsGGipxyMhimHKN2xlkejhVsgBoTAhOU0llW9aUSwINJ9zFUGgI8IzUFy1VG776fchHp0LMRmPSIUYk5btEPxbsrPtumPuMH8EQGrS+Rt4pD+78c8H1fEPkq5CmDl/PKu4JoFGv+aFcE+Od0hlILstIF10Qysf++QXDolKfzJa/56bgMeYKFiju73loiRM57ns8ddXpfLl792UVpRkFU62LNns6Y1LKTwapmUF4IvIuAIzd6LZNOQng64LAKXtKnViJ1JQiXwf4CEzhgvAti3/ejpb3U90hsrUcyZi6wBv9bZLcAJRWpz61JNYliM1d1grSwQDKGXNQE4xuM"
+ }
+ ],
+ "radiusClientRootCertificates": [
+ {
+ "name": "vpnServerConfigRadiusClientRootCert1",
+ "thumbprint": "83FFBFC8848B5A5836C94D0112367E16148A286F"
+ }
+ ]
+ }
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnServerConfigurations/vpnServerConfiguration2",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "name": "vpnServerConfiguration2",
+ "type": "Microsoft.Network/vpnServerConfigurations",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "vpnProtocols": [
+ "IkeV2"
+ ],
+ "vpnAuthenticationTypes": [
+ "Certificate"
+ ],
+ "vpnClientIpsecPolicies": [
+ {
+ "saLifeTimeSeconds": 86472,
+ "saDataSizeKilobytes": 429497,
+ "ipsecEncryption": "AES256",
+ "ipsecIntegrity": "SHA256",
+ "ikeEncryption": "AES256",
+ "ikeIntegrity": "SHA384",
+ "dhGroup": "DHGroup14",
+ "pfsGroup": "PFS14"
+ }
+ ],
+ "vpnClientRootCertificates": [
+ {
+ "name": "vpnServerConfigVpnClientRootCert1",
+ "publicCertData": "MIIC5zCCAc+gAwIBAgIQErQ0Hk4aDJxIA+Q5RagB+jANBgkqhkiG9w0BAQsFADAWMRQwEgYDVQQDDAtQMlNSb290Q2VydDAeFw0xNzEyMTQyMTA3MzhaFw0xODEyMTQyMTI3MzhaMBYxFDASBgNVBAMMC1AyU1Jvb3RDZXJ0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArP7/NQXmW7cQ/ZR1mv3Y3I29Lt7HTOqzo/1KUOoVH3NItbQIRAQbwKy3UWrOFz4eGNX2GWtNRMdCyWsKeqy9Ltsdfcm1IbKXkl84DFeU/ZacXu4Dl3xX3gV5du4TLZjEowJELyur11Ea2YcjPRQ/FzAF9/hGuboS1HZQEPLx4FdUs9OxCYOtc0MxBCwLfVTTRqarb0Ne+arNYd4kCzIhAke1nOyKAJBda5ZL+VHy3S5S8qGlD46jm8HXugmAkUygS4oIIXOmj/1O9sNAi3LN60zufSzCmP8Rm/iUGX+DHAGGiXxwZOKQLEDaZXKqoHjMPP0XudmSWwOIbyeQVrLhkwIDAQABozEwLzAOBgNVHQ8BAf8EBAMCAgQwHQYDVR0OBBYEFEfeNU2trYxNLF9ONmuJUsT13pKDMA0GCSqGSIb3DQEBCwUAA4IBAQBmM6RJzsGGipxyMhimHKN2xlkejhVsgBoTAhOU0llW9aUSwINJ9zFUGgI8IzUFy1VG776fchHp0LMRmPSIUYk5btEPxbsrPtumPuMH8EQGrS+Rt4pD+78c8H1fEPkq5CmDl/PKu4JoFGv+aFcE+Od0hlILstIF10Qysf++QXDolKfzJa/56bgMeYKFiju73loiRM57ns8ddXpfLl792UVpRkFU62LNns6Y1LKTwapmUF4IvIuAIzd6LZNOQng64LAKXtKnViJ1JQiXwf4CEzhgvAti3/ejpb3U90hsrUcyZi6wBv9bZLcAJRWpz61JNYliM1d1grSwQDKGXNQE4xuN"
+ }
+ ],
+ "vpnClientRevokedCertificates": [
+ {
+ "name": "vpnServerConfigVpnClientRevokedCert1",
+ "thumbprint": "83FFBFC8848B5A5836C94D0112367E16148A286F"
+ }
+ ],
+ "radiusServerAddress": "8.9.9.9",
+ "radiusServerSecret": "123_abc",
+ "radiusServerRootCertificates": [
+ {
+ "name": "vpnServerConfigRadiusServerRootCer1",
+ "publicCertData": "MIIC5zCCAc+gAwIBAgIQErQ0Hk4aDJxIA+Q5RagB+jANBgkqhkiG9w0BAQsFADAWMRQwEgYDVQQDDAtQMlNSb290Q2VydDAeFw0xNzEyMTQyMTA3MzhaFw0xODEyMTQyMTI3MzhaMBYxFDASBgNVBAMMC1AyU1Jvb3RDZXJ0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArP7/NQXmW7cQ/ZR1mv3Y3I29Lt7HTOqzo/1KUOoVH3NItbQIRAQbwKy3UWrOFz4eGNX2GWtNRMdCyWsKeqy9Ltsdfcm1IbKXkl84DFeU/ZacXu4Dl3xX3gV5du4TLZjEowJELyur11Ea2YcjPRQ/FzAF9/hGuboS1HZQEPLx4FdUs9OxCYOtc0MxBCwLfVTTRqarb0Ne+arNYd4kCzIhAke1nOyKAJBda5ZL+VHy3S5S8qGlD46jm8HXugmAkUygS4oIIXOmj/1O9sNAi3LN60zufSzCmP8Rm/iUGX+DHAGGiXxwZOKQLEDaZXKqoHjMPP0XudmSWwOIbyeQVrLhkwIDAQABozEwLzAOBgNVHQ8BAf8EBAMCAgQwHQYDVR0OBBYEFEfeNU2trYxNLF9ONmuJUsT13pKDMA0GCSqGSIb3DQEBCwUAA4IBAQBmM6RJzsGGipxyMhimHKN2xlkejhVsgBoTAhOU0llW9aUSwINJ9zFUGgI8IzUFy1VG776fchHp0LMRmPSIUYk5btEPxbsrPtumPuMH8EQGrS+Rt4pD+78c8H1fEPkq5CmDl/PKu4JoFGv+aFcE+Od0hlILstIF10Qysf++QXDolKfzJa/56bgMeYKFiju73loiRM57ns8ddXpfLl792UVpRkFU62LNns6Y1LKTwapmUF4IvIuAIzd6LZNOQng64LAKXtKnViJ1JQiXwf4CEzhgvAti3/ejpb3U90hsrUcyZi6wBv9bZLcAJRWpz61JNYliM1d1grSwQDKGXNQE4xuM"
+ }
+ ],
+ "radiusClientRootCertificates": [
+ {
+ "name": "vpnServerConfigRadiusClientRootCert1",
+ "thumbprint": "83FFBFC8848B5A5836C94D0112367E16148A286F"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnServerConfigurationPut.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnServerConfigurationPut.json
new file mode 100644
index 000000000000..98479e585754
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnServerConfigurationPut.json
@@ -0,0 +1,190 @@
+{
+ "parameters": {
+ "vpnServerConfigurationName": "vpnServerConfiguration1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "VpnServerConfigurationParameters": {
+ "tags": {
+ "key1": "value1"
+ },
+ "location": "West US",
+ "properties": {
+ "vpnProtocols": [
+ "IkeV2"
+ ],
+ "vpnClientIpsecPolicies": [
+ {
+ "saLifeTimeSeconds": 86472,
+ "saDataSizeKilobytes": 429497,
+ "ipsecEncryption": "AES256",
+ "ipsecIntegrity": "SHA256",
+ "ikeEncryption": "AES256",
+ "ikeIntegrity": "SHA384",
+ "dhGroup": "DHGroup14",
+ "pfsGroup": "PFS14"
+ }
+ ],
+ "vpnClientRootCertificates": [
+ {
+ "name": "vpnServerConfigVpnClientRootCert1",
+ "publicCertData": "MIIC5zCCAc+gAwIBAgIQErQ0Hk4aDJxIA+Q5RagB+jANBgkqhkiG9w0BAQsFADAWMRQwEgYDVQQDDAtQMlNSb290Q2VydDAeFw0xNzEyMTQyMTA3MzhaFw0xODEyMTQyMTI3MzhaMBYxFDASBgNVBAMMC1AyU1Jvb3RDZXJ0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArP7/NQXmW7cQ/ZR1mv3Y3I29Lt7HTOqzo/1KUOoVH3NItbQIRAQbwKy3UWrOFz4eGNX2GWtNRMdCyWsKeqy9Ltsdfcm1IbKXkl84DFeU/ZacXu4Dl3xX3gV5du4TLZjEowJELyur11Ea2YcjPRQ/FzAF9/hGuboS1HZQEPLx4FdUs9OxCYOtc0MxBCwLfVTTRqarb0Ne+arNYd4kCzIhAke1nOyKAJBda5ZL+VHy3S5S8qGlD46jm8HXugmAkUygS4oIIXOmj/1O9sNAi3LN60zufSzCmP8Rm/iUGX+DHAGGiXxwZOKQLEDaZXKqoHjMPP0XudmSWwOIbyeQVrLhkwIDAQABozEwLzAOBgNVHQ8BAf8EBAMCAgQwHQYDVR0OBBYEFEfeNU2trYxNLF9ONmuJUsT13pKDMA0GCSqGSIb3DQEBCwUAA4IBAQBmM6RJzsGGipxyMhimHKN2xlkejhVsgBoTAhOU0llW9aUSwINJ9zFUGgI8IzUFy1VG776fchHp0LMRmPSIUYk5btEPxbsrPtumPuMH8EQGrS+Rt4pD+78c8H1fEPkq5CmDl/PKu4JoFGv+aFcE+Od0hlILstIF10Qysf++QXDolKfzJa/56bgMeYKFiju73loiRM57ns8ddXpfLl792UVpRkFU62LNns6Y1LKTwapmUF4IvIuAIzd6LZNOQng64LAKXtKnViJ1JQiXwf4CEzhgvAti3/ejpb3U90hsrUcyZi6wBv9bZLcAJRWpz61JNYliM1d1grSwQDKGXNQE4xuN"
+ }
+ ],
+ "vpnClientRevokedCertificates": [
+ {
+ "name": "vpnServerConfigVpnClientRevokedCert1",
+ "thumbprint": "83FFBFC8848B5A5836C94D0112367E16148A286F"
+ }
+ ],
+ "radiusServers": [
+ {
+ "radiusServerAddress": "10.0.0.0",
+ "radiusServerScore": 25,
+ "radiusServerSecret": "radiusServerSecret"
+ }
+ ],
+ "radiusServerRootCertificates": [
+ {
+ "name": "vpnServerConfigRadiusServerRootCer1",
+ "publicCertData": "MIIC5zCCAc+gAwIBAgIQErQ0Hk4aDJxIA+Q5RagB+jANBgkqhkiG9w0BAQsFADAWMRQwEgYDVQQDDAtQMlNSb290Q2VydDAeFw0xNzEyMTQyMTA3MzhaFw0xODEyMTQyMTI3MzhaMBYxFDASBgNVBAMMC1AyU1Jvb3RDZXJ0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArP7/NQXmW7cQ/ZR1mv3Y3I29Lt7HTOqzo/1KUOoVH3NItbQIRAQbwKy3UWrOFz4eGNX2GWtNRMdCyWsKeqy9Ltsdfcm1IbKXkl84DFeU/ZacXu4Dl3xX3gV5du4TLZjEowJELyur11Ea2YcjPRQ/FzAF9/hGuboS1HZQEPLx4FdUs9OxCYOtc0MxBCwLfVTTRqarb0Ne+arNYd4kCzIhAke1nOyKAJBda5ZL+VHy3S5S8qGlD46jm8HXugmAkUygS4oIIXOmj/1O9sNAi3LN60zufSzCmP8Rm/iUGX+DHAGGiXxwZOKQLEDaZXKqoHjMPP0XudmSWwOIbyeQVrLhkwIDAQABozEwLzAOBgNVHQ8BAf8EBAMCAgQwHQYDVR0OBBYEFEfeNU2trYxNLF9ONmuJUsT13pKDMA0GCSqGSIb3DQEBCwUAA4IBAQBmM6RJzsGGipxyMhimHKN2xlkejhVsgBoTAhOU0llW9aUSwINJ9zFUGgI8IzUFy1VG776fchHp0LMRmPSIUYk5btEPxbsrPtumPuMH8EQGrS+Rt4pD+78c8H1fEPkq5CmDl/PKu4JoFGv+aFcE+Od0hlILstIF10Qysf++QXDolKfzJa/56bgMeYKFiju73loiRM57ns8ddXpfLl792UVpRkFU62LNns6Y1LKTwapmUF4IvIuAIzd6LZNOQng64LAKXtKnViJ1JQiXwf4CEzhgvAti3/ejpb3U90hsrUcyZi6wBv9bZLcAJRWpz61JNYliM1d1grSwQDKGXNQE4xuM"
+ }
+ ],
+ "radiusClientRootCertificates": [
+ {
+ "name": "vpnServerConfigRadiusClientRootCert1",
+ "thumbprint": "83FFBFC8848B5A5836C94D0112367E16148A286F"
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnServerConfigurations/vpnServerConfiguration1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "name": "vpnServerConfiguration1",
+ "type": "Microsoft.Network/vpnServerConfigurations",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "vpnProtocols": [
+ "IkeV2"
+ ],
+ "vpnAuthenticationTypes": [
+ "Certificate"
+ ],
+ "vpnClientIpsecPolicies": [
+ {
+ "saLifeTimeSeconds": 86472,
+ "saDataSizeKilobytes": 429497,
+ "ipsecEncryption": "AES256",
+ "ipsecIntegrity": "SHA256",
+ "ikeEncryption": "AES256",
+ "ikeIntegrity": "SHA384",
+ "dhGroup": "DHGroup14",
+ "pfsGroup": "PFS14"
+ }
+ ],
+ "vpnClientRootCertificates": [
+ {
+ "name": "vpnServerConfigVpnClientRootCert1",
+ "publicCertData": "MIIC5zCCAc+gAwIBAgIQErQ0Hk4aDJxIA+Q5RagB+jANBgkqhkiG9w0BAQsFADAWMRQwEgYDVQQDDAtQMlNSb290Q2VydDAeFw0xNzEyMTQyMTA3MzhaFw0xODEyMTQyMTI3MzhaMBYxFDASBgNVBAMMC1AyU1Jvb3RDZXJ0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArP7/NQXmW7cQ/ZR1mv3Y3I29Lt7HTOqzo/1KUOoVH3NItbQIRAQbwKy3UWrOFz4eGNX2GWtNRMdCyWsKeqy9Ltsdfcm1IbKXkl84DFeU/ZacXu4Dl3xX3gV5du4TLZjEowJELyur11Ea2YcjPRQ/FzAF9/hGuboS1HZQEPLx4FdUs9OxCYOtc0MxBCwLfVTTRqarb0Ne+arNYd4kCzIhAke1nOyKAJBda5ZL+VHy3S5S8qGlD46jm8HXugmAkUygS4oIIXOmj/1O9sNAi3LN60zufSzCmP8Rm/iUGX+DHAGGiXxwZOKQLEDaZXKqoHjMPP0XudmSWwOIbyeQVrLhkwIDAQABozEwLzAOBgNVHQ8BAf8EBAMCAgQwHQYDVR0OBBYEFEfeNU2trYxNLF9ONmuJUsT13pKDMA0GCSqGSIb3DQEBCwUAA4IBAQBmM6RJzsGGipxyMhimHKN2xlkejhVsgBoTAhOU0llW9aUSwINJ9zFUGgI8IzUFy1VG776fchHp0LMRmPSIUYk5btEPxbsrPtumPuMH8EQGrS+Rt4pD+78c8H1fEPkq5CmDl/PKu4JoFGv+aFcE+Od0hlILstIF10Qysf++QXDolKfzJa/56bgMeYKFiju73loiRM57ns8ddXpfLl792UVpRkFU62LNns6Y1LKTwapmUF4IvIuAIzd6LZNOQng64LAKXtKnViJ1JQiXwf4CEzhgvAti3/ejpb3U90hsrUcyZi6wBv9bZLcAJRWpz61JNYliM1d1grSwQDKGXNQE4xuN"
+ }
+ ],
+ "vpnClientRevokedCertificates": [
+ {
+ "name": "vpnServerConfigVpnClientRevokedCert1",
+ "thumbprint": "83FFBFC8848B5A5836C94D0112367E16148A286F"
+ }
+ ],
+ "radiusServers": [
+ {
+ "radiusServerAddress": "10.0.0.0",
+ "radiusServerScore": 25
+ }
+ ],
+ "radiusServerRootCertificates": [
+ {
+ "name": "vpnServerConfigRadiusServerRootCer1",
+ "publicCertData": "MIIC5zCCAc+gAwIBAgIQErQ0Hk4aDJxIA+Q5RagB+jANBgkqhkiG9w0BAQsFADAWMRQwEgYDVQQDDAtQMlNSb290Q2VydDAeFw0xNzEyMTQyMTA3MzhaFw0xODEyMTQyMTI3MzhaMBYxFDASBgNVBAMMC1AyU1Jvb3RDZXJ0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArP7/NQXmW7cQ/ZR1mv3Y3I29Lt7HTOqzo/1KUOoVH3NItbQIRAQbwKy3UWrOFz4eGNX2GWtNRMdCyWsKeqy9Ltsdfcm1IbKXkl84DFeU/ZacXu4Dl3xX3gV5du4TLZjEowJELyur11Ea2YcjPRQ/FzAF9/hGuboS1HZQEPLx4FdUs9OxCYOtc0MxBCwLfVTTRqarb0Ne+arNYd4kCzIhAke1nOyKAJBda5ZL+VHy3S5S8qGlD46jm8HXugmAkUygS4oIIXOmj/1O9sNAi3LN60zufSzCmP8Rm/iUGX+DHAGGiXxwZOKQLEDaZXKqoHjMPP0XudmSWwOIbyeQVrLhkwIDAQABozEwLzAOBgNVHQ8BAf8EBAMCAgQwHQYDVR0OBBYEFEfeNU2trYxNLF9ONmuJUsT13pKDMA0GCSqGSIb3DQEBCwUAA4IBAQBmM6RJzsGGipxyMhimHKN2xlkejhVsgBoTAhOU0llW9aUSwINJ9zFUGgI8IzUFy1VG776fchHp0LMRmPSIUYk5btEPxbsrPtumPuMH8EQGrS+Rt4pD+78c8H1fEPkq5CmDl/PKu4JoFGv+aFcE+Od0hlILstIF10Qysf++QXDolKfzJa/56bgMeYKFiju73loiRM57ns8ddXpfLl792UVpRkFU62LNns6Y1LKTwapmUF4IvIuAIzd6LZNOQng64LAKXtKnViJ1JQiXwf4CEzhgvAti3/ejpb3U90hsrUcyZi6wBv9bZLcAJRWpz61JNYliM1d1grSwQDKGXNQE4xuM"
+ }
+ ],
+ "radiusClientRootCertificates": [
+ {
+ "name": "vpnServerConfigRadiusClientRootCert1",
+ "thumbprint": "83FFBFC8848B5A5836C94D0112367E16148A286F"
+ }
+ ]
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnServerConfigurations/vpnServerConfiguration1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "name": "vpnServerConfiguration1",
+ "type": "Microsoft.Network/vpnServerConfigurations",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "vpnProtocols": [
+ "IkeV2"
+ ],
+ "vpnAuthenticationTypes": [
+ "Certificate"
+ ],
+ "vpnClientIpsecPolicies": [
+ {
+ "saLifeTimeSeconds": 86472,
+ "saDataSizeKilobytes": 429497,
+ "ipsecEncryption": "AES256",
+ "ipsecIntegrity": "SHA256",
+ "ikeEncryption": "AES256",
+ "ikeIntegrity": "SHA384",
+ "dhGroup": "DHGroup14",
+ "pfsGroup": "PFS14"
+ }
+ ],
+ "vpnClientRootCertificates": [
+ {
+ "name": "vpnServerConfigVpnClientRootCert1",
+ "publicCertData": "MIIC5zCCAc+gAwIBAgIQErQ0Hk4aDJxIA+Q5RagB+jANBgkqhkiG9w0BAQsFADAWMRQwEgYDVQQDDAtQMlNSb290Q2VydDAeFw0xNzEyMTQyMTA3MzhaFw0xODEyMTQyMTI3MzhaMBYxFDASBgNVBAMMC1AyU1Jvb3RDZXJ0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArP7/NQXmW7cQ/ZR1mv3Y3I29Lt7HTOqzo/1KUOoVH3NItbQIRAQbwKy3UWrOFz4eGNX2GWtNRMdCyWsKeqy9Ltsdfcm1IbKXkl84DFeU/ZacXu4Dl3xX3gV5du4TLZjEowJELyur11Ea2YcjPRQ/FzAF9/hGuboS1HZQEPLx4FdUs9OxCYOtc0MxBCwLfVTTRqarb0Ne+arNYd4kCzIhAke1nOyKAJBda5ZL+VHy3S5S8qGlD46jm8HXugmAkUygS4oIIXOmj/1O9sNAi3LN60zufSzCmP8Rm/iUGX+DHAGGiXxwZOKQLEDaZXKqoHjMPP0XudmSWwOIbyeQVrLhkwIDAQABozEwLzAOBgNVHQ8BAf8EBAMCAgQwHQYDVR0OBBYEFEfeNU2trYxNLF9ONmuJUsT13pKDMA0GCSqGSIb3DQEBCwUAA4IBAQBmM6RJzsGGipxyMhimHKN2xlkejhVsgBoTAhOU0llW9aUSwINJ9zFUGgI8IzUFy1VG776fchHp0LMRmPSIUYk5btEPxbsrPtumPuMH8EQGrS+Rt4pD+78c8H1fEPkq5CmDl/PKu4JoFGv+aFcE+Od0hlILstIF10Qysf++QXDolKfzJa/56bgMeYKFiju73loiRM57ns8ddXpfLl792UVpRkFU62LNns6Y1LKTwapmUF4IvIuAIzd6LZNOQng64LAKXtKnViJ1JQiXwf4CEzhgvAti3/ejpb3U90hsrUcyZi6wBv9bZLcAJRWpz61JNYliM1d1grSwQDKGXNQE4xuN"
+ }
+ ],
+ "vpnClientRevokedCertificates": [
+ {
+ "name": "vpnServerConfigVpnClientRevokedCert1",
+ "thumbprint": "83FFBFC8848B5A5836C94D0112367E16148A286F"
+ }
+ ],
+ "radiusServers": [
+ {
+ "radiusServerAddress": "10.0.0.0",
+ "radiusServerScore": 25
+ }
+ ],
+ "radiusServerRootCertificates": [
+ {
+ "name": "vpnServerConfigRadiusServerRootCer1",
+ "publicCertData": "MIIC5zCCAc+gAwIBAgIQErQ0Hk4aDJxIA+Q5RagB+jANBgkqhkiG9w0BAQsFADAWMRQwEgYDVQQDDAtQMlNSb290Q2VydDAeFw0xNzEyMTQyMTA3MzhaFw0xODEyMTQyMTI3MzhaMBYxFDASBgNVBAMMC1AyU1Jvb3RDZXJ0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArP7/NQXmW7cQ/ZR1mv3Y3I29Lt7HTOqzo/1KUOoVH3NItbQIRAQbwKy3UWrOFz4eGNX2GWtNRMdCyWsKeqy9Ltsdfcm1IbKXkl84DFeU/ZacXu4Dl3xX3gV5du4TLZjEowJELyur11Ea2YcjPRQ/FzAF9/hGuboS1HZQEPLx4FdUs9OxCYOtc0MxBCwLfVTTRqarb0Ne+arNYd4kCzIhAke1nOyKAJBda5ZL+VHy3S5S8qGlD46jm8HXugmAkUygS4oIIXOmj/1O9sNAi3LN60zufSzCmP8Rm/iUGX+DHAGGiXxwZOKQLEDaZXKqoHjMPP0XudmSWwOIbyeQVrLhkwIDAQABozEwLzAOBgNVHQ8BAf8EBAMCAgQwHQYDVR0OBBYEFEfeNU2trYxNLF9ONmuJUsT13pKDMA0GCSqGSIb3DQEBCwUAA4IBAQBmM6RJzsGGipxyMhimHKN2xlkejhVsgBoTAhOU0llW9aUSwINJ9zFUGgI8IzUFy1VG776fchHp0LMRmPSIUYk5btEPxbsrPtumPuMH8EQGrS+Rt4pD+78c8H1fEPkq5CmDl/PKu4JoFGv+aFcE+Od0hlILstIF10Qysf++QXDolKfzJa/56bgMeYKFiju73loiRM57ns8ddXpfLl792UVpRkFU62LNns6Y1LKTwapmUF4IvIuAIzd6LZNOQng64LAKXtKnViJ1JQiXwf4CEzhgvAti3/ejpb3U90hsrUcyZi6wBv9bZLcAJRWpz61JNYliM1d1grSwQDKGXNQE4xuM"
+ }
+ ],
+ "radiusClientRootCertificates": [
+ {
+ "name": "vpnServerConfigRadiusClientRootCert1",
+ "thumbprint": "83FFBFC8848B5A5836C94D0112367E16148A286F"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnServerConfigurationUpdateTags.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnServerConfigurationUpdateTags.json
new file mode 100644
index 000000000000..e29572f317ea
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnServerConfigurationUpdateTags.json
@@ -0,0 +1,73 @@
+{
+ "parameters": {
+ "vpnServerConfigurationName": "vpnServerConfiguration1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "VpnServerConfigurationParameters": {
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnServerConfigurations/vpnServerConfiguration1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "name": "vpnServerConfiguration1",
+ "type": "Microsoft.Network/vpnServerConfigurations",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "vpnProtocols": [
+ "IkeV2"
+ ],
+ "vpnClientIpsecPolicies": [
+ {
+ "saLifeTimeSeconds": 86472,
+ "saDataSizeKilobytes": 429497,
+ "ipsecEncryption": "AES256",
+ "ipsecIntegrity": "SHA256",
+ "ikeEncryption": "AES256",
+ "ikeIntegrity": "SHA384",
+ "dhGroup": "DHGroup14",
+ "pfsGroup": "PFS14"
+ }
+ ],
+ "vpnClientRootCertificates": [
+ {
+ "name": "vpnServerConfigVpnClientRootCert1",
+ "publicCertData": "MIIC5zCCAc+gAwIBAgIQErQ0Hk4aDJxIA+Q5RagB+jANBgkqhkiG9w0BAQsFADAWMRQwEgYDVQQDDAtQMlNSb290Q2VydDAeFw0xNzEyMTQyMTA3MzhaFw0xODEyMTQyMTI3MzhaMBYxFDASBgNVBAMMC1AyU1Jvb3RDZXJ0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArP7/NQXmW7cQ/ZR1mv3Y3I29Lt7HTOqzo/1KUOoVH3NItbQIRAQbwKy3UWrOFz4eGNX2GWtNRMdCyWsKeqy9Ltsdfcm1IbKXkl84DFeU/ZacXu4Dl3xX3gV5du4TLZjEowJELyur11Ea2YcjPRQ/FzAF9/hGuboS1HZQEPLx4FdUs9OxCYOtc0MxBCwLfVTTRqarb0Ne+arNYd4kCzIhAke1nOyKAJBda5ZL+VHy3S5S8qGlD46jm8HXugmAkUygS4oIIXOmj/1O9sNAi3LN60zufSzCmP8Rm/iUGX+DHAGGiXxwZOKQLEDaZXKqoHjMPP0XudmSWwOIbyeQVrLhkwIDAQABozEwLzAOBgNVHQ8BAf8EBAMCAgQwHQYDVR0OBBYEFEfeNU2trYxNLF9ONmuJUsT13pKDMA0GCSqGSIb3DQEBCwUAA4IBAQBmM6RJzsGGipxyMhimHKN2xlkejhVsgBoTAhOU0llW9aUSwINJ9zFUGgI8IzUFy1VG776fchHp0LMRmPSIUYk5btEPxbsrPtumPuMH8EQGrS+Rt4pD+78c8H1fEPkq5CmDl/PKu4JoFGv+aFcE+Od0hlILstIF10Qysf++QXDolKfzJa/56bgMeYKFiju73loiRM57ns8ddXpfLl792UVpRkFU62LNns6Y1LKTwapmUF4IvIuAIzd6LZNOQng64LAKXtKnViJ1JQiXwf4CEzhgvAti3/ejpb3U90hsrUcyZi6wBv9bZLcAJRWpz61JNYliM1d1grSwQDKGXNQE4xuN"
+ }
+ ],
+ "vpnClientRevokedCertificates": [
+ {
+ "name": "vpnServerConfigVpnClientRevokedCert1",
+ "thumbprint": "83FFBFC8848B5A5836C94D0112367E16148A286F"
+ }
+ ],
+ "radiusServerAddress": "8.9.9.9",
+ "radiusServerSecret": "123_abc",
+ "radiusServerRootCertificates": [
+ {
+ "name": "vpnServerConfigRadiusServerRootCer1",
+ "publicCertData": "MIIC5zCCAc+gAwIBAgIQErQ0Hk4aDJxIA+Q5RagB+jANBgkqhkiG9w0BAQsFADAWMRQwEgYDVQQDDAtQMlNSb290Q2VydDAeFw0xNzEyMTQyMTA3MzhaFw0xODEyMTQyMTI3MzhaMBYxFDASBgNVBAMMC1AyU1Jvb3RDZXJ0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArP7/NQXmW7cQ/ZR1mv3Y3I29Lt7HTOqzo/1KUOoVH3NItbQIRAQbwKy3UWrOFz4eGNX2GWtNRMdCyWsKeqy9Ltsdfcm1IbKXkl84DFeU/ZacXu4Dl3xX3gV5du4TLZjEowJELyur11Ea2YcjPRQ/FzAF9/hGuboS1HZQEPLx4FdUs9OxCYOtc0MxBCwLfVTTRqarb0Ne+arNYd4kCzIhAke1nOyKAJBda5ZL+VHy3S5S8qGlD46jm8HXugmAkUygS4oIIXOmj/1O9sNAi3LN60zufSzCmP8Rm/iUGX+DHAGGiXxwZOKQLEDaZXKqoHjMPP0XudmSWwOIbyeQVrLhkwIDAQABozEwLzAOBgNVHQ8BAf8EBAMCAgQwHQYDVR0OBBYEFEfeNU2trYxNLF9ONmuJUsT13pKDMA0GCSqGSIb3DQEBCwUAA4IBAQBmM6RJzsGGipxyMhimHKN2xlkejhVsgBoTAhOU0llW9aUSwINJ9zFUGgI8IzUFy1VG776fchHp0LMRmPSIUYk5btEPxbsrPtumPuMH8EQGrS+Rt4pD+78c8H1fEPkq5CmDl/PKu4JoFGv+aFcE+Od0hlILstIF10Qysf++QXDolKfzJa/56bgMeYKFiju73loiRM57ns8ddXpfLl792UVpRkFU62LNns6Y1LKTwapmUF4IvIuAIzd6LZNOQng64LAKXtKnViJ1JQiXwf4CEzhgvAti3/ejpb3U90hsrUcyZi6wBv9bZLcAJRWpz61JNYliM1d1grSwQDKGXNQE4xuM"
+ }
+ ],
+ "radiusClientRootCertificates": [
+ {
+ "name": "vpnServerConfigRadiusClientRootCert1",
+ "thumbprint": "83FFBFC8848B5A5836C94D0112367E16148A286F"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnSiteDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnSiteDelete.json
new file mode 100644
index 000000000000..40f4fb7067c6
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnSiteDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "vpnSiteName": "vpnSite1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnSiteGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnSiteGet.json
new file mode 100644
index 000000000000..0b63e72a42a2
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnSiteGet.json
@@ -0,0 +1,57 @@
+{
+ "parameters": {
+ "vpnSiteName": "vpnSite1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "name": "vpnSite1",
+ "type": "Microsoft.Network/vpnSites",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "virtualWan": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualWANs/wan1"
+ },
+ "deviceProperties": {
+ "linkSpeedInMbps": 0
+ },
+ "addressSpace": {
+ "addressPrefixes": [
+ "10.0.0.0/16"
+ ]
+ },
+ "isSecuritySite": false,
+ "vpnSiteLinks": [
+ {
+ "name": "vpnSiteLink1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1/vpnSiteLinks/vpnSiteLink1",
+ "type": "Microsoft.Network/vpnSites/vpnSiteLinks",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ipAddress": "50.50.50.56",
+ "linkProperties": {
+ "linkProviderName": "vendor1",
+ "linkSpeedInMbps": 0
+ },
+ "bgpProperties": {
+ "bgpPeeringAddress": "192.168.0.0",
+ "asn": 1234
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnSiteLinkConnectionGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnSiteLinkConnectionGet.json
new file mode 100644
index 000000000000..a70cb6f754d6
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnSiteLinkConnectionGet.json
@@ -0,0 +1,37 @@
+{
+ "parameters": {
+ "gatewayName": "gateway1",
+ "connectionName": "vpnConnection1",
+ "linkConnectionName": "Connection-Link1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "Connection-Link1",
+ "type": "Microsoft.Network/vpnGateways/vpnConnections/VpnSiteLinkConnections",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/vpnConnections/vpnConnection1/VpnSiteLinkConnections/Connection-Link1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "vpnSiteLink": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1/vpnSiteLinks/siteLink1"
+ },
+ "connectionBandwidth": 200,
+ "ipsecPolicies": [],
+ "vpnConnectionProtocolType": "IKEv2",
+ "sharedKey": "key",
+ "ingressBytesTransferred": 0,
+ "egressBytesTransferred": 0,
+ "enableBgp": false,
+ "enableRateLimiting": false,
+ "useLocalAzureIpAddress": false,
+ "usePolicyBasedTrafficSelectors": false,
+ "routingWeight": 0
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnSiteLinkConnectionList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnSiteLinkConnectionList.json
new file mode 100644
index 000000000000..c63bc430eda0
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnSiteLinkConnectionList.json
@@ -0,0 +1,38 @@
+{
+ "parameters": {
+ "gatewayName": "gateway1",
+ "api-version": "2020-07-01",
+ "resourceGroupName": "rg1",
+ "subscriptionId": "subid",
+ "connectionName": "vpnConnection1"
+ },
+ "responses": {
+ "200": {
+ "body": [
+ {
+ "name": "Connection-Link1",
+ "type": "Microsoft.Network/vpnGateways/vpnConnections/VpnSiteLinkConnections",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/vpnConnections/vpnConnection1/VpnSiteLinkConnections/Connection-Link1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "vpnSiteLink": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1/vpnSiteLinks/siteLink1"
+ },
+ "connectionBandwidth": 200,
+ "ipsecPolicies": [],
+ "vpnConnectionProtocolType": "IKEv2",
+ "sharedKey": "key",
+ "ingressBytesTransferred": 0,
+ "egressBytesTransferred": 0,
+ "enableBgp": false,
+ "enableRateLimiting": false,
+ "useLocalAzureIpAddress": false,
+ "usePolicyBasedTrafficSelectors": false,
+ "routingWeight": 0
+ }
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnSiteLinkGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnSiteLinkGet.json
new file mode 100644
index 000000000000..234662b2debf
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnSiteLinkGet.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "vpnSiteName": "vpnSite1",
+ "vpnSiteLinkName": "vpnSiteLink1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "vpnSiteLink1",
+ "type": "Microsoft.Network/vpnSites/vpnSiteLinks",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1/vpnSiteLinks/vpnSiteLink1",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ipAddress": "50.50.50.56",
+ "linkProperties": {
+ "linkSpeedInMbps": 0
+ },
+ "bgpProperties": {
+ "bgpPeeringAddress": "192.168.0.0",
+ "asn": 1234
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnSiteLinkListByVpnSite.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnSiteLinkListByVpnSite.json
new file mode 100644
index 000000000000..f148bb21d625
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnSiteLinkListByVpnSite.json
@@ -0,0 +1,50 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "vpnSiteName": "vpnSite1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "vpnSiteLink1",
+ "type": "Microsoft.Network/vpnSites/vpnSiteLinks",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1/vpnSiteLinks/vpnSiteLink1",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ipAddress": "50.50.50.56",
+ "linkProperties": {
+ "linkSpeedInMbps": 200
+ },
+ "bgpProperties": {
+ "bgpPeeringAddress": "192.168.0.0",
+ "asn": 1234
+ }
+ }
+ },
+ {
+ "name": "vpnSiteLink2",
+ "type": "Microsoft.Network/vpnSites/vpnSiteLinks",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1/vpnSiteLinks/vpnSiteLink2",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ipAddress": "40.40.40.46",
+ "linkProperties": {
+ "linkSpeedInMbps": 200
+ },
+ "bgpProperties": {
+ "bgpPeeringAddress": "192.168.0.1",
+ "asn": 1234
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnSiteList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnSiteList.json
new file mode 100644
index 000000000000..529c686975c2
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnSiteList.json
@@ -0,0 +1,88 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "name": "vpnSite1",
+ "type": "Microsoft.Network/vpnSites",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "virtualWan": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualWANs/wan1"
+ },
+ "deviceProperties": {
+ "linkSpeedInMbps": 0
+ },
+ "addressSpace": {
+ "addressPrefixes": [
+ "10.0.0.0/16"
+ ]
+ },
+ "isSecuritySite": false,
+ "vpnSiteLinks": [
+ {
+ "name": "vpnSiteLink1",
+ "type": "Microsoft.Network/vpnSites/vpnSiteLinks",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1/vpnSiteLinks/vpnSiteLink1",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ipAddress": "50.50.50.56",
+ "linkProperties": {
+ "linkSpeedInMbps": 0
+ },
+ "bgpProperties": {
+ "bgpPeeringAddress": "192.168.0.0",
+ "asn": 1234
+ }
+ }
+ }
+ ]
+ }
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/vpnSites/vpnSite2",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "East US",
+ "name": "vpnSite2",
+ "type": "Microsoft.Network/vpnSites",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "virtualWan": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/virtualWANs/wan1",
+ "deviceProperties": {
+ "deviceVendor": "vendor1",
+ "deviceModel": "model01",
+ "linkSpeedInMbps": 200
+ },
+ "ipAddress": "10.1.0.0",
+ "addressSpace": {
+ "addressPrefixes": [
+ "10.0.0.0/16"
+ ]
+ },
+ "bgpProperties": {
+ "bgpPeeringAddress": "192.168.0.0",
+ "asn": 1234
+ },
+ "isSecuritySite": false
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnSiteListByResourceGroup.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnSiteListByResourceGroup.json
new file mode 100644
index 000000000000..647a139f4360
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnSiteListByResourceGroup.json
@@ -0,0 +1,88 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "resourceGroupName": "rg1",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "name": "vpnSite1",
+ "type": "Microsoft.Network/vpnSites",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "virtualWan": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualWANs/wan1"
+ },
+ "deviceProperties": {
+ "linkSpeedInMbps": 0
+ },
+ "addressSpace": {
+ "addressPrefixes": [
+ "10.0.0.0/16"
+ ]
+ },
+ "isSecuritySite": false,
+ "vpnSiteLinks": [
+ {
+ "name": "vpnSiteLink1",
+ "type": "Microsoft.Network/vpnSites/vpnSiteLinks",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1/vpnSiteLinks/vpnSiteLink1",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ipAddress": "50.50.50.56",
+ "linkProperties": {
+ "linkSpeedInMbps": 0
+ },
+ "bgpProperties": {
+ "bgpPeeringAddress": "192.168.0.0",
+ "asn": 1234
+ }
+ }
+ }
+ ]
+ }
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite2",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "name": "vpnSite2",
+ "type": "Microsoft.Network/vpnSites",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "virtualWan": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualWANs/wan1",
+ "deviceProperties": {
+ "deviceVendor": "vendor1",
+ "deviceModel": "model01",
+ "linkSpeedInMbps": 200
+ },
+ "ipAddress": "10.1.0.0",
+ "addressSpace": {
+ "addressPrefixes": [
+ "10.0.0.0/16"
+ ]
+ },
+ "bgpProperties": {
+ "bgpPeeringAddress": "192.168.0.0",
+ "asn": 1234
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnSitePut.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnSitePut.json
new file mode 100644
index 000000000000..a1496a33e39e
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnSitePut.json
@@ -0,0 +1,144 @@
+{
+ "parameters": {
+ "vpnSiteName": "vpnSite1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "VpnSiteParameters": {
+ "tags": {
+ "key1": "value1"
+ },
+ "location": "West US",
+ "properties": {
+ "virtualWan": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualWANs/wan1"
+ },
+ "addressSpace": {
+ "addressPrefixes": [
+ "10.0.0.0/16"
+ ]
+ },
+ "isSecuritySite": false,
+ "vpnSiteLinks": [
+ {
+ "name": "vpnSiteLink1",
+ "properties": {
+ "ipAddress": "50.50.50.56",
+ "fqdn": "link1.vpnsite1.contoso.com",
+ "linkProperties": {
+ "linkProviderName": "vendor1",
+ "linkSpeedInMbps": 0
+ },
+ "bgpProperties": {
+ "bgpPeeringAddress": "192.168.0.0",
+ "asn": 1234
+ }
+ }
+ }
+ ],
+ "o365Policy": {
+ "breakOutCategories": {
+ "allow": true,
+ "optimize": true,
+ "default": false
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "name": "vpnSite1",
+ "type": "Microsoft.Network/vpnSites",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "virtualWan": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualWANs/wan1"
+ },
+ "deviceProperties": {
+ "linkSpeedInMbps": 0
+ },
+ "addressSpace": {
+ "addressPrefixes": [
+ "10.0.0.0/16"
+ ]
+ },
+ "isSecuritySite": false,
+ "vpnSiteLinks": [
+ {
+ "name": "vpnSiteLink1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1/vpnSiteLinks/vpnSiteLink1",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "type": "Microsoft.Network/vpnSites/vpnSiteLinks",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ipAddress": "50.50.50.56",
+ "linkProperties": {
+ "linkProviderName": "vendor1",
+ "linkSpeedInMbps": 0
+ },
+ "bgpProperties": {
+ "bgpPeeringAddress": "192.168.0.0",
+ "asn": 1234
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "name": "vpnSite1",
+ "type": "Microsoft.Network/vpnSites",
+ "tags": {
+ "key1": "value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "virtualWan": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualWANs/wan1"
+ },
+ "deviceProperties": {
+ "linkSpeedInMbps": 0
+ },
+ "addressSpace": {
+ "addressPrefixes": [
+ "10.0.0.0/16"
+ ]
+ },
+ "isSecuritySite": false,
+ "vpnSiteLinks": [
+ {
+ "name": "vpnSiteLink1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1/vpnSiteLinks/vpnSiteLink1",
+ "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "ipAddress": "50.50.50.56",
+ "linkProperties": {
+ "linkProviderName": "vendor1",
+ "linkSpeedInMbps": 0
+ },
+ "bgpProperties": {
+ "bgpPeeringAddress": "192.168.0.0",
+ "asn": 1234
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnSiteUpdateTags.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnSiteUpdateTags.json
new file mode 100644
index 000000000000..63f1cea8a168
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnSiteUpdateTags.json
@@ -0,0 +1,48 @@
+{
+ "parameters": {
+ "vpnSiteName": "vpnSite1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "VpnSiteParameters": {
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/vpnSite1",
+ "etag": "w/\\00000000-0000-0000-0000-000000000000\\",
+ "location": "West US",
+ "name": "vpnSite1",
+ "type": "Microsoft.Network/vpnSites",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "virtualWan": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualWANs/wan1",
+ "deviceProperties": {
+ "deviceVendor": "vendor1",
+ "deviceModel": "model01",
+ "linkSpeedInMbps": 200
+ },
+ "ipAddress": "10.0.0.0",
+ "addressSpace": {
+ "addressPrefixes": [
+ "10.0.0.0/16"
+ ]
+ },
+ "bgpProperties": {
+ "bgpPeeringAddress": "192.168.0.0",
+ "asn": 1234
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnSitesConfigurationDownload.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnSitesConfigurationDownload.json
new file mode 100644
index 000000000000..313a866c3d9e
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/VpnSitesConfigurationDownload.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-07-01",
+ "virtualWANName": "wan1",
+ "request": {
+ "vpnSites": [
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/abc"
+ ],
+ "outputBlobSasUrl": "https://blobcortextesturl.blob.core.windows.net/folderforconfig/vpnFile?sp=rw&se=2018-01-10T03%3A42%3A04Z&sv=2017-04-17&sig=WvXrT5bDmDFfgHs%2Brz%2BjAu123eRCNE9BO0eQYcPDT7pY%3D&sr=b"
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "Request successful. Follow the location header for sas-url to output blob."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/WafListAllPolicies.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/WafListAllPolicies.json
new file mode 100644
index 000000000000..2d0a031d43ba
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/WafListAllPolicies.json
@@ -0,0 +1,102 @@
+{
+ "parameters": {
+ "api-version": "2020-07-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": {
+ "state": "Enabled",
+ "mode": "Prevention",
+ "maxRequestBodySizeInKb": 128,
+ "fileUploadLimitInMb": 750,
+ "requestBodyCheck": true
+ },
+ "customRules": [
+ {
+ "name": "Rule1",
+ "priority": 1,
+ "ruleType": "MatchRule",
+ "matchConditions": [
+ {
+ "matchVariables": [
+ {
+ "variableName": "RemoteAddr",
+ "selector": null
+ }
+ ],
+ "operator": "IPMatch",
+ "negationConditon": false,
+ "matchValues": [
+ "192.168.1.0/24",
+ "10.0.0.0/24"
+ ],
+ "transforms": []
+ }
+ ],
+ "action": "Block"
+ },
+ {
+ "name": "Rule2",
+ "priority": 2,
+ "ruleType": "MatchRule",
+ "matchConditions": [
+ {
+ "matchVariables": [
+ {
+ "variableName": "RemoteAddr",
+ "selector": null
+ }
+ ],
+ "operator": "IPMatch",
+ "negationConditon": false,
+ "matchValues": [
+ "192.168.1.0/24"
+ ]
+ },
+ {
+ "matchVariables": [
+ {
+ "variableName": "RequestHeader",
+ "selector": "UserAgent"
+ }
+ ],
+ "operator": "Contains",
+ "negationConditon": false,
+ "matchValues": [
+ "Windows"
+ ]
+ }
+ ],
+ "action": "Block"
+ }
+ ],
+ "managedRules": {
+ "managedRuleSets": [
+ {
+ "ruleSetType": "OWASP",
+ "ruleSetVersion": "3.0"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/WafListPolicies.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/WafListPolicies.json
new file mode 100644
index 000000000000..0a6915b8d8c9
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/WafListPolicies.json
@@ -0,0 +1,103 @@
+{
+ "parameters": {
+ "api-version": "2020-07-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": {
+ "state": "Enabled",
+ "mode": "Detection",
+ "maxRequestBodySizeInKb": 128,
+ "fileUploadLimitInMb": 750,
+ "requestBodyCheck": true
+ },
+ "managedRules": {
+ "managedRuleSets": [
+ {
+ "ruleSetType": "OWASP",
+ "ruleSetVersion": "3.0"
+ }
+ ]
+ },
+ "customRules": [
+ {
+ "name": "Rule1",
+ "priority": 1,
+ "ruleType": "MatchRule",
+ "matchConditions": [
+ {
+ "matchVariables": [
+ {
+ "variableName": "RemoteAddr",
+ "selector": null
+ }
+ ],
+ "operator": "IPMatch",
+ "negationConditon": false,
+ "matchValues": [
+ "192.168.1.0/24",
+ "10.0.0.0/24"
+ ],
+ "transforms": []
+ }
+ ],
+ "action": "Block"
+ },
+ {
+ "name": "Rule2",
+ "priority": 2,
+ "ruleType": "MatchRule",
+ "matchConditions": [
+ {
+ "matchVariables": [
+ {
+ "variableName": "RemoteAddr",
+ "selector": null
+ }
+ ],
+ "operator": "IPMatch",
+ "negationConditon": false,
+ "matchValues": [
+ "192.168.1.0/24"
+ ]
+ },
+ {
+ "matchVariables": [
+ {
+ "variableName": "RequestHeader",
+ "selector": "UserAgent"
+ }
+ ],
+ "operator": "Contains",
+ "negationConditon": false,
+ "matchValues": [
+ "Windows"
+ ]
+ }
+ ],
+ "action": "Block"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/WafPolicyCreateOrUpdate.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/WafPolicyCreateOrUpdate.json
new file mode 100644
index 000000000000..1d15f1f4ffff
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/WafPolicyCreateOrUpdate.json
@@ -0,0 +1,258 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "policyName": "Policy1",
+ "parameters": {
+ "location": "WestUs",
+ "properties": {
+ "managedRules": {
+ "managedRuleSets": [
+ {
+ "ruleSetType": "OWASP",
+ "ruleSetVersion": "3.0"
+ }
+ ]
+ },
+ "customRules": [
+ {
+ "name": "Rule1",
+ "priority": 1,
+ "ruleType": "MatchRule",
+ "action": "Block",
+ "matchConditions": [
+ {
+ "matchVariables": [
+ {
+ "variableName": "RemoteAddr",
+ "selector": null
+ }
+ ],
+ "operator": "IPMatch",
+ "matchValues": [
+ "192.168.1.0/24",
+ "10.0.0.0/24"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Rule2",
+ "priority": 2,
+ "ruleType": "MatchRule",
+ "matchConditions": [
+ {
+ "matchVariables": [
+ {
+ "variableName": "RemoteAddr",
+ "selector": null
+ }
+ ],
+ "operator": "IPMatch",
+ "matchValues": [
+ "192.168.1.0/24"
+ ]
+ },
+ {
+ "matchVariables": [
+ {
+ "variableName": "RequestHeaders",
+ "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/applicationgatewaywebapplicationfirewallpolicies",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "location": "WestUs",
+ "properties": {
+ "resourceState": "Enabled",
+ "provisioningState": "Succeeded",
+ "policySettings": {
+ "state": "Enabled",
+ "mode": "Detection",
+ "maxRequestBodySizeInKb": 128,
+ "fileUploadLimitInMb": 750,
+ "requestBodyCheck": true
+ },
+ "managedRules": {
+ "managedRuleSets": [
+ {
+ "ruleSetType": "OWASP",
+ "ruleSetVersion": "3.0"
+ }
+ ]
+ },
+ "customRules": [
+ {
+ "name": "Rule1",
+ "priority": 1,
+ "ruleType": "MatchRule",
+ "matchConditions": [
+ {
+ "matchVariables": [
+ {
+ "variableName": "RemoteAddr",
+ "selector": null
+ }
+ ],
+ "operator": "IPMatch",
+ "negationConditon": false,
+ "matchValues": [
+ "192.168.1.0/24",
+ "10.0.0.0/24"
+ ],
+ "transforms": []
+ }
+ ],
+ "action": "Block"
+ },
+ {
+ "name": "Rule2",
+ "priority": 2,
+ "ruleType": "MatchRule",
+ "matchConditions": [
+ {
+ "matchVariables": [
+ {
+ "variableName": "RemoteAddr",
+ "selector": null
+ }
+ ],
+ "operator": "IPMatch",
+ "negationConditon": false,
+ "matchValues": [
+ "192.168.1.0/24"
+ ]
+ },
+ {
+ "matchVariables": [
+ {
+ "variableName": "RequestHeader",
+ "selector": "UserAgent"
+ }
+ ],
+ "operator": "Contains",
+ "negationConditon": false,
+ "matchValues": [
+ "Windows"
+ ]
+ }
+ ],
+ "action": "Block"
+ }
+ ]
+ }
+ }
+ },
+ "201": {
+ "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": {
+ "state": "Enabled",
+ "mode": "Detection",
+ "maxRequestBodySizeInKb": 128,
+ "fileUploadLimitInMb": 750,
+ "requestBodyCheck": true
+ },
+ "managedRules": {
+ "managedRuleSets": [
+ {
+ "ruleSetType": "OWASP",
+ "ruleSetVersion": "3.0"
+ }
+ ]
+ },
+ "customRules": [
+ {
+ "name": "Rule1",
+ "priority": 1,
+ "ruleType": "MatchRule",
+ "matchConditions": [
+ {
+ "matchVariables": [
+ {
+ "variableName": "RemoteAddr",
+ "selector": null
+ }
+ ],
+ "operator": "IPMatch",
+ "negationConditon": false,
+ "matchValues": [
+ "192.168.1.0/24",
+ "10.0.0.0/24"
+ ],
+ "transforms": []
+ }
+ ],
+ "action": "Block"
+ },
+ {
+ "name": "Rule2",
+ "priority": 2,
+ "ruleType": "MatchRule",
+ "matchConditions": [
+ {
+ "matchVariables": [
+ {
+ "variableName": "RemoteAddr",
+ "selector": null
+ }
+ ],
+ "operator": "IPMatch",
+ "negationConditon": false,
+ "matchValues": [
+ "192.168.1.0/24"
+ ]
+ },
+ {
+ "matchVariables": [
+ {
+ "variableName": "RequestHeader",
+ "selector": "UserAgent"
+ }
+ ],
+ "operator": "Contains",
+ "negationConditon": false,
+ "matchValues": [
+ "Windows"
+ ]
+ }
+ ],
+ "action": "Block"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/WafPolicyDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/WafPolicyDelete.json
new file mode 100644
index 000000000000..2a597f7e10ee
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/WafPolicyDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg1",
+ "policyName": "Policy1"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/WafPolicyGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/WafPolicyGet.json
new file mode 100644
index 000000000000..ed4bf6cf8440
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/examples/WafPolicyGet.json
@@ -0,0 +1,140 @@
+{
+ "parameters": {
+ "api-version": "2020-07-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": {
+ "state": "Enabled",
+ "mode": "Prevention",
+ "maxRequestBodySizeInKb": 128,
+ "fileUploadLimitInMb": 750,
+ "requestBodyCheck": true
+ },
+ "customRules": [
+ {
+ "name": "Rule1",
+ "priority": 1,
+ "ruleType": "MatchRule",
+ "matchConditions": [
+ {
+ "matchVariables": [
+ {
+ "variableName": "RemoteAddr",
+ "selector": null
+ }
+ ],
+ "operator": "IPMatch",
+ "negationConditon": false,
+ "matchValues": [
+ "192.168.1.0/24",
+ "10.0.0.0/24"
+ ],
+ "transforms": []
+ }
+ ],
+ "action": "Block"
+ },
+ {
+ "name": "Rule2",
+ "priority": 2,
+ "ruleType": "MatchRule",
+ "matchConditions": [
+ {
+ "matchVariables": [
+ {
+ "variableName": "RemoteAddr",
+ "selector": null
+ }
+ ],
+ "operator": "IPMatch",
+ "negationConditon": false,
+ "matchValues": [
+ "192.168.1.0/24"
+ ]
+ },
+ {
+ "matchVariables": [
+ {
+ "variableName": "RequestHeader",
+ "selector": "UserAgent"
+ }
+ ],
+ "operator": "Contains",
+ "negationConditon": false,
+ "matchValues": [
+ "Windows"
+ ]
+ }
+ ],
+ "action": "Block"
+ }
+ ],
+ "managedRules": {
+ "managedRuleSets": [
+ {
+ "ruleSetType": "OWASP",
+ "ruleSetVersion": "3.0",
+ "ruleGroupOverrides": [
+ {
+ "ruleGroupName": "REQUEST-942-APPLICATION-ATTACK-SQLI",
+ "rules": [
+ {
+ "ruleId": "942130",
+ "state": "Disabled"
+ },
+ {
+ "ruleId": "942110",
+ "state": "Disabled"
+ }
+ ]
+ },
+ {
+ "ruleGroupName": "REQUEST-920-PROTOCOL-ENFORCEMENT",
+ "rules": [
+ {
+ "ruleId": "920100",
+ "state": "Disabled"
+ },
+ {
+ "ruleId": "920120",
+ "state": "Disabled"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "exclusions": [
+ {
+ "matchVariable": "RequestHeaderNames",
+ "selectorMatchOperator": "Equals",
+ "selector": "testHeader1"
+ },
+ {
+ "matchVariable": "RequestHeaderNames",
+ "selectorMatchOperator": "StartsWith",
+ "selector": "testHeader2"
+ }
+ ]
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/expressRouteCircuit.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/expressRouteCircuit.json
new file mode 100644
index 000000000000..506133276e79
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/expressRouteCircuit.json
@@ -0,0 +1,2507 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "NetworkManagementClient",
+ "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
+ "version": "2020-07-01"
+ },
+ "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/expressRouteCircuits/{circuitName}/authorizations/{authorizationName}": {
+ "delete": {
+ "tags": [
+ "ExpressRouteCircuitAuthorizations"
+ ],
+ "operationId": "ExpressRouteCircuitAuthorizations_Delete",
+ "description": "Deletes the specified authorization 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": "authorizationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the authorization."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "200": {
+ "description": "Delete successful."
+ },
+ "204": {
+ "description": "Delete successful."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "x-ms-examples": {
+ "Delete ExpressRouteCircuit Authorization": {
+ "$ref": "./examples/ExpressRouteCircuitAuthorizationDelete.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "ExpressRouteCircuitAuthorizations"
+ ],
+ "operationId": "ExpressRouteCircuitAuthorizations_Get",
+ "description": "Gets the specified authorization 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": "authorizationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the authorization."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the ExpressRouteCircuitAuthorization resource.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteCircuitAuthorization"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get ExpressRouteCircuit Authorization": {
+ "$ref": "./examples/ExpressRouteCircuitAuthorizationGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "ExpressRouteCircuitAuthorizations"
+ ],
+ "operationId": "ExpressRouteCircuitAuthorizations_CreateOrUpdate",
+ "description": "Creates or updates an authorization in 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": "authorizationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the authorization."
+ },
+ {
+ "name": "authorizationParameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteCircuitAuthorization"
+ },
+ "description": "Parameters supplied to the create or update express route circuit authorization operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Create successful. The operation returns the resulting ExpressRouteCircuitAuthorization resource.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteCircuitAuthorization"
+ }
+ },
+ "200": {
+ "description": "Update successful. The operation returns the resulting ExpressRouteCircuitAuthorization resource.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteCircuitAuthorization"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ },
+ "x-ms-examples": {
+ "Create ExpressRouteCircuit Authorization": {
+ "$ref": "./examples/ExpressRouteCircuitAuthorizationCreate.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCircuits/{circuitName}/authorizations": {
+ "get": {
+ "tags": [
+ "ExpressRouteCircuitAuthorizations"
+ ],
+ "operationId": "ExpressRouteCircuitAuthorizations_List",
+ "description": "Gets all authorizations 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."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of ExpressRouteCircuitAuthorization resources.",
+ "schema": {
+ "$ref": "#/definitions/AuthorizationListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "List ExpressRouteCircuit Authorization": {
+ "$ref": "./examples/ExpressRouteCircuitAuthorizationList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCircuits/{circuitName}/peerings/{peeringName}": {
+ "delete": {
+ "tags": [
+ "ExpressRouteCircuitPeerings"
+ ],
+ "operationId": "ExpressRouteCircuitPeerings_Delete",
+ "description": "Deletes the specified peering 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."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Delete successful."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "204": {
+ "description": "Delete successful."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "x-ms-examples": {
+ "Delete ExpressRouteCircuit Peerings": {
+ "$ref": "./examples/ExpressRouteCircuitPeeringDelete.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "ExpressRouteCircuitPeerings"
+ ],
+ "operationId": "ExpressRouteCircuitPeerings_Get",
+ "description": "Gets the specified peering for the 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."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting ExpressRouteCircuitPeering resource.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteCircuitPeering"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get ExpressRouteCircuit Peering": {
+ "$ref": "./examples/ExpressRouteCircuitPeeringGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "ExpressRouteCircuitPeerings"
+ ],
+ "operationId": "ExpressRouteCircuitPeerings_CreateOrUpdate",
+ "description": "Creates or updates a peering in the specified express route circuits.",
+ "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": "peeringParameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteCircuitPeering"
+ },
+ "description": "Parameters supplied to the create or update express route circuit peering operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update successful. The operation returns the resulting ExpressRouteCircuitPeering resource.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteCircuitPeering"
+ }
+ },
+ "201": {
+ "description": "Create successful. The operation returns the resulting ExpressRouteCircuitPeering resource.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteCircuitPeering"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ },
+ "x-ms-examples": {
+ "Create ExpressRouteCircuit Peerings": {
+ "$ref": "./examples/ExpressRouteCircuitPeeringCreate.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCircuits/{circuitName}/peerings": {
+ "get": {
+ "tags": [
+ "ExpressRouteCircuitPeerings"
+ ],
+ "operationId": "ExpressRouteCircuitPeerings_List",
+ "description": "Gets all peerings in a 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."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of ExpressRouteCircuitPeering resources.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteCircuitPeeringListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "List ExpressRouteCircuit Peerings": {
+ "$ref": "./examples/ExpressRouteCircuitPeeringList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCircuits/{circuitName}/peerings/{peeringName}/connections/{connectionName}": {
+ "delete": {
+ "tags": [
+ "ExpressRouteCircuitConnections"
+ ],
+ "operationId": "ExpressRouteCircuitConnections_Delete",
+ "description": "Deletes the specified 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 express route circuit connection."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Delete successful."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "204": {
+ "description": "Delete successful."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete ExpressRouteCircuit": {
+ "$ref": "./examples/ExpressRouteCircuitConnectionDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ },
+ "get": {
+ "tags": [
+ "ExpressRouteCircuitConnections"
+ ],
+ "operationId": "ExpressRouteCircuitConnections_Get",
+ "description": "Gets the specified 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 express route circuit connection."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting Express Route Circuit Connection resource.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteCircuitConnection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ExpressRouteCircuitConnectionGet": {
+ "$ref": "./examples/ExpressRouteCircuitConnectionGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "ExpressRouteCircuitConnections"
+ ],
+ "operationId": "ExpressRouteCircuitConnections_CreateOrUpdate",
+ "description": "Creates or updates a Express Route Circuit Connection in the specified express route circuits.",
+ "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 express route circuit connection."
+ },
+ {
+ "name": "expressRouteCircuitConnectionParameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteCircuitConnection"
+ },
+ "description": "Parameters supplied to the create or update express route circuit connection operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update successful. The operation returns the resulting ExpressRouteCircuitPeering resource.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteCircuitConnection"
+ }
+ },
+ "201": {
+ "description": "Create successful. The operation returns the resulting ExpressRouteCircuitPeering resource.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteCircuitConnection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ExpressRouteCircuitConnectionCreate": {
+ "$ref": "./examples/ExpressRouteCircuitConnectionCreate.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCircuits/{circuitName}/peerings/{peeringName}/connections": {
+ "get": {
+ "tags": [
+ "ExpressRouteCircuitConnections"
+ ],
+ "operationId": "ExpressRouteCircuitConnections_List",
+ "description": "Gets all global reach 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 ExpressRouteCircuitConnections resources.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteCircuitConnectionListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "List ExpressRouteCircuit Connection": {
+ "$ref": "./examples/ExpressRouteCircuitConnectionList.json"
+ }
+ }
+ }
+ },
+ "/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"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "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"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "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": [
+ "ExpressRouteCircuits"
+ ],
+ "operationId": "ExpressRouteCircuits_Delete",
+ "description": "Deletes 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."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Delete successful."
+ },
+ "202": {
+ "description": "Accepted. Sets 'Disabling' provisioningState until the operation completes. Returns an operation URI that can be queried to find the current state of the operation."
+ },
+ "200": {
+ "description": "Delete successful."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "x-ms-examples": {
+ "Delete ExpressRouteCircuit": {
+ "$ref": "./examples/ExpressRouteCircuitDelete.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "ExpressRouteCircuits"
+ ],
+ "operationId": "ExpressRouteCircuits_Get",
+ "description": "Gets information about 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 express route circuit."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting ExpressRouteCircuit resource.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteCircuit"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get ExpressRouteCircuit": {
+ "$ref": "./examples/ExpressRouteCircuitGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "ExpressRouteCircuits"
+ ],
+ "operationId": "ExpressRouteCircuits_CreateOrUpdate",
+ "description": "Creates or updates 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": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteCircuit"
+ },
+ "description": "Parameters supplied to the create or update express route circuit operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Create successful. The operation returns the resulting ExpressRouteCircuit resource.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteCircuit"
+ }
+ },
+ "200": {
+ "description": "Update successful. The operation returns the resulting ExpressRouteCircuit resource.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteCircuit"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ },
+ "x-ms-examples": {
+ "Create ExpressRouteCircuit": {
+ "$ref": "./examples/ExpressRouteCircuitCreate.json"
+ },
+ "Create ExpressRouteCircuit on ExpressRoutePort": {
+ "$ref": "./examples/ExpressRouteCircuitCreateOnExpressRoutePort.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "ExpressRouteCircuits"
+ ],
+ "operationId": "ExpressRouteCircuits_UpdateTags",
+ "description": "Updates an express route circuit tags.",
+ "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": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./network.json#/definitions/TagsObject"
+ },
+ "description": "Parameters supplied to update express route circuit tags."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update successful. The operation returns the resulting ExpressRouteCircuit resource.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteCircuit"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update Express Route Circuit Tags": {
+ "$ref": "./examples/ExpressRouteCircuitUpdateTags.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCircuits/{circuitName}/peerings/{peeringName}/arpTables/{devicePath}": {
+ "post": {
+ "tags": [
+ "ExpressRouteCircuitArpTable"
+ ],
+ "operationId": "ExpressRouteCircuits_ListArpTable",
+ "description": "Gets the currently advertised ARP table associated with the express route circuit in a resource group.",
+ "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": "devicePath",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The path of the device."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting ExpressRouteCircuitsArpTable resource.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteCircuitsArpTableListResult"
+ }
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "x-ms-examples": {
+ "List ARP Table": {
+ "$ref": "./examples/ExpressRouteCircuitARPTableList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCircuits/{circuitName}/peerings/{peeringName}/routeTables/{devicePath}": {
+ "post": {
+ "tags": [
+ "ExpressRouteCircuitRoutesTable"
+ ],
+ "operationId": "ExpressRouteCircuits_ListRoutesTable",
+ "description": "Gets the currently advertised routes table associated with the express route circuit in a resource group.",
+ "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": "devicePath",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The path of the device."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting ExpressRouteCircuitsRouteTable resource.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteCircuitsRoutesTableListResult"
+ }
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "x-ms-examples": {
+ "List Route Tables": {
+ "$ref": "./examples/ExpressRouteCircuitRouteTableList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCircuits/{circuitName}/peerings/{peeringName}/routeTablesSummary/{devicePath}": {
+ "post": {
+ "tags": [
+ "ExpressRouteCircuitRoutesTableSummary"
+ ],
+ "operationId": "ExpressRouteCircuits_ListRoutesTableSummary",
+ "description": "Gets the currently advertised routes table summary associated with the express route circuit in a resource group.",
+ "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": "devicePath",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The path of the device."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting ExpressRouteCircuitsRoutesTableSummary resource.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteCircuitsRoutesTableSummaryListResult"
+ }
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "x-ms-examples": {
+ "List Route Table Summary": {
+ "$ref": "./examples/ExpressRouteCircuitRouteTableSummaryList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCircuits/{circuitName}/stats": {
+ "get": {
+ "tags": [
+ "ExpressRouteCircuitStats"
+ ],
+ "operationId": "ExpressRouteCircuits_GetStats",
+ "description": "Gets all the stats from an express route circuit in a resource group.",
+ "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."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting ExpressRouteCircuitStats resource.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteCircuitStats"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get ExpressRoute Circuit Traffic Stats": {
+ "$ref": "./examples/ExpressRouteCircuitStats.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCircuits/{circuitName}/peerings/{peeringName}/stats": {
+ "get": {
+ "tags": [
+ "ExpressRouteCircuitStats"
+ ],
+ "operationId": "ExpressRouteCircuits_GetPeeringStats",
+ "description": "Gets all stats from an express route circuit in a resource group.",
+ "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."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting ExpressRouteCircuitStats resource.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteCircuitStats"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get ExpressRoute Circuit Peering Traffic Stats": {
+ "$ref": "./examples/ExpressRouteCircuitPeeringStats.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCircuits": {
+ "get": {
+ "tags": [
+ "ExpressRouteCircuits"
+ ],
+ "operationId": "ExpressRouteCircuits_List",
+ "description": "Gets all the express route circuits in a resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting ExpressRouteCircuitAuthorization resource.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteCircuitListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "List ExpressRouteCircuits in a resource group": {
+ "$ref": "./examples/ExpressRouteCircuitListByResourceGroup.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/expressRouteCircuits": {
+ "get": {
+ "tags": [
+ "ExpressRouteCircuits"
+ ],
+ "operationId": "ExpressRouteCircuits_ListAll",
+ "description": "Gets all the express route circuits in a subscription.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of ExpressRouteCircuit resources.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteCircuitListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "List ExpressRouteCircuits in a subscription": {
+ "$ref": "./examples/ExpressRouteCircuitListBySubscription.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/expressRouteServiceProviders": {
+ "get": {
+ "tags": [
+ "ExpressRouteServiceProviders"
+ ],
+ "operationId": "ExpressRouteServiceProviders_List",
+ "description": "Gets all the available express route service providers.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of ExpressRouteServiceProvider resources.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteServiceProviderListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "List ExpressRoute providers": {
+ "$ref": "./examples/ExpressRouteProviderList.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "AuthorizationPropertiesFormat": {
+ "properties": {
+ "authorizationKey": {
+ "type": "string",
+ "description": "The authorization key."
+ },
+ "authorizationUseStatus": {
+ "type": "string",
+ "description": "The authorization use status.",
+ "enum": [
+ "Available",
+ "InUse"
+ ],
+ "x-ms-enum": {
+ "name": "AuthorizationUseStatus",
+ "modelAsString": true
+ }
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the authorization resource."
+ }
+ },
+ "description": "Properties of ExpressRouteCircuitAuthorization."
+ },
+ "ExpressRouteCircuitAuthorization": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/AuthorizationPropertiesFormat",
+ "description": "Properties of the express route circuit authorization."
+ },
+ "name": {
+ "type": "string",
+ "description": "The 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."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Type of the resource."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "Authorization in an ExpressRouteCircuit resource."
+ },
+ "AuthorizationListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ExpressRouteCircuitAuthorization"
+ },
+ "description": "The authorizations in an ExpressRoute Circuit."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for ListAuthorizations API service call retrieves all authorizations that belongs to an ExpressRouteCircuit."
+ },
+ "ExpressRouteCircuitPeeringConfig": {
+ "properties": {
+ "advertisedPublicPrefixes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The reference to AdvertisedPublicPrefixes."
+ },
+ "advertisedCommunities": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The communities of bgp peering. Specified for microsoft peering."
+ },
+ "advertisedPublicPrefixesState": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The advertised public prefix state of the Peering resource.",
+ "enum": [
+ "NotConfigured",
+ "Configuring",
+ "Configured",
+ "ValidationNeeded"
+ ],
+ "x-ms-enum": {
+ "name": "ExpressRouteCircuitPeeringAdvertisedPublicPrefixState",
+ "modelAsString": true
+ }
+ },
+ "legacyMode": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The legacy mode of the peering."
+ },
+ "customerASN": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The CustomerASN of the peering."
+ },
+ "routingRegistryName": {
+ "type": "string",
+ "description": "The RoutingRegistryName of the configuration."
+ }
+ },
+ "description": "Specifies the peering configuration."
+ },
+ "Ipv6ExpressRouteCircuitPeeringConfig": {
+ "properties": {
+ "primaryPeerAddressPrefix": {
+ "type": "string",
+ "description": "The primary address prefix."
+ },
+ "secondaryPeerAddressPrefix": {
+ "type": "string",
+ "description": "The secondary address prefix."
+ },
+ "microsoftPeeringConfig": {
+ "$ref": "#/definitions/ExpressRouteCircuitPeeringConfig",
+ "description": "The Microsoft peering configuration."
+ },
+ "routeFilter": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "The reference to the RouteFilter resource."
+ },
+ "state": {
+ "type": "string",
+ "description": "The state of peering.",
+ "enum": [
+ "Disabled",
+ "Enabled"
+ ],
+ "x-ms-enum": {
+ "name": "ExpressRouteCircuitPeeringState",
+ "modelAsString": true
+ }
+ }
+ },
+ "description": "Contains IPv6 peering config."
+ },
+ "ExpressRouteCircuitStats": {
+ "properties": {
+ "primarybytesIn": {
+ "type": "integer",
+ "format": "int64",
+ "description": "The Primary BytesIn of the peering."
+ },
+ "primarybytesOut": {
+ "type": "integer",
+ "format": "int64",
+ "description": "The primary BytesOut of the peering."
+ },
+ "secondarybytesIn": {
+ "type": "integer",
+ "format": "int64",
+ "description": "The secondary BytesIn of the peering."
+ },
+ "secondarybytesOut": {
+ "type": "integer",
+ "format": "int64",
+ "description": "The secondary BytesOut of the peering."
+ }
+ },
+ "description": "Contains stats associated with the peering."
+ },
+ "ExpressRouteCircuitPeeringPropertiesFormat": {
+ "properties": {
+ "peeringType": {
+ "$ref": "#/definitions/ExpressRoutePeeringType",
+ "description": "The peering type."
+ },
+ "state": {
+ "$ref": "#/definitions/ExpressRoutePeeringState",
+ "description": "The peering state."
+ },
+ "azureASN": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The Azure ASN."
+ },
+ "peerASN": {
+ "type": "integer",
+ "format": "int64",
+ "minimum": 1,
+ "maximum": 4294967295,
+ "description": "The peer ASN."
+ },
+ "primaryPeerAddressPrefix": {
+ "type": "string",
+ "description": "The primary address prefix."
+ },
+ "secondaryPeerAddressPrefix": {
+ "type": "string",
+ "description": "The secondary address prefix."
+ },
+ "primaryAzurePort": {
+ "type": "string",
+ "description": "The primary port."
+ },
+ "secondaryAzurePort": {
+ "type": "string",
+ "description": "The secondary port."
+ },
+ "sharedKey": {
+ "type": "string",
+ "description": "The shared key."
+ },
+ "vlanId": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The VLAN ID."
+ },
+ "microsoftPeeringConfig": {
+ "$ref": "#/definitions/ExpressRouteCircuitPeeringConfig",
+ "description": "The Microsoft peering configuration."
+ },
+ "stats": {
+ "$ref": "#/definitions/ExpressRouteCircuitStats",
+ "description": "The peering stats of express route circuit."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the express route circuit peering resource."
+ },
+ "gatewayManagerEtag": {
+ "type": "string",
+ "description": "The GatewayManager Etag."
+ },
+ "lastModifiedBy": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Who was the last to modify the peering."
+ },
+ "routeFilter": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "The reference to the RouteFilter resource."
+ },
+ "ipv6PeeringConfig": {
+ "$ref": "#/definitions/Ipv6ExpressRouteCircuitPeeringConfig",
+ "description": "The IPv6 peering configuration."
+ },
+ "expressRouteConnection": {
+ "$ref": "./virtualWan.json#/definitions/ExpressRouteConnectionId",
+ "description": "The ExpressRoute connection."
+ },
+ "connections": {
+ "type": "array",
+ "items": {
+ "$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."
+ }
+ },
+ "description": "Properties of the express route circuit peering."
+ },
+ "ExpressRouteCircuitPeering": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ExpressRouteCircuitPeeringPropertiesFormat",
+ "description": "Properties of the express route circuit peering."
+ },
+ "name": {
+ "type": "string",
+ "description": "The 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."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Type of the resource."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "Peering in an ExpressRouteCircuit resource."
+ },
+ "ExpressRouteCircuitPeeringListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ExpressRouteCircuitPeering"
+ },
+ "description": "The peerings in an express route circuit."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for ListPeering API service call retrieves all peerings that belong to an ExpressRouteCircuit."
+ },
+ "ExpressRoutePeeringType": {
+ "type": "string",
+ "description": "The peering type.",
+ "enum": [
+ "AzurePublicPeering",
+ "AzurePrivatePeering",
+ "MicrosoftPeering"
+ ],
+ "x-ms-enum": {
+ "name": "ExpressRoutePeeringType",
+ "modelAsString": true
+ }
+ },
+ "ExpressRoutePeeringState": {
+ "type": "string",
+ "description": "The state of peering.",
+ "enum": [
+ "Disabled",
+ "Enabled"
+ ],
+ "x-ms-enum": {
+ "name": "ExpressRoutePeeringState",
+ "modelAsString": true
+ }
+ },
+ "Ipv6CircuitConnectionConfig": {
+ "description": "IPv6 Circuit Connection properties for global reach.",
+ "properties": {
+ "addressPrefix": {
+ "type": "string",
+ "description": "/125 IP address space to carve out customer addresses for global reach."
+ },
+ "circuitConnectionStatus": {
+ "readOnly": true,
+ "$ref": "#/definitions/CircuitConnectionStatus",
+ "description": "Express Route Circuit connection state."
+ }
+ }
+ },
+ "ExpressRouteCircuitConnectionPropertiesFormat": {
+ "properties": {
+ "expressRouteCircuitPeering": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "Reference to Express Route Circuit Private Peering Resource of the circuit initiating connection."
+ },
+ "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."
+ },
+ "authorizationKey": {
+ "type": "string",
+ "description": "The authorization key."
+ },
+ "ipv6CircuitConnectionConfig": {
+ "$ref": "#/definitions/Ipv6CircuitConnectionConfig",
+ "description": "IPv6 Address PrefixProperties of the express route circuit connection."
+ },
+ "circuitConnectionStatus": {
+ "$ref": "#/definitions/CircuitConnectionStatus",
+ "description": "Express Route Circuit connection state."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the express route circuit connection resource."
+ }
+ },
+ "description": "Properties of the express route circuit connection."
+ },
+ "ExpressRouteCircuitConnection": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ExpressRouteCircuitConnectionPropertiesFormat",
+ "description": "Properties of the express route circuit connection."
+ },
+ "name": {
+ "type": "string",
+ "description": "The 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."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Type of the resource."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "Express Route Circuit Connection in an ExpressRouteCircuitPeering resource."
+ },
+ "ExpressRouteCircuitConnectionListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ExpressRouteCircuitConnection"
+ },
+ "description": "The global reach 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 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": {
+ "$ref": "#/definitions/CircuitConnectionStatus",
+ "description": "Express Route Circuit connection state."
+ },
+ "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": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the peer express route circuit connection resource."
+ }
+ },
+ "description": "Properties of the peer express route circuit connection."
+ },
+ "PeerExpressRouteCircuitConnection": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/PeerExpressRouteCircuitConnectionPropertiesFormat",
+ "description": "Properties of the peer express route circuit connection."
+ },
+ "name": {
+ "type": "string",
+ "description": "The 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."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Type of the resource."
+ }
+ },
+ "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": {
+ "type": "string",
+ "description": "The name of the SKU."
+ },
+ "tier": {
+ "type": "string",
+ "description": "The tier of the SKU.",
+ "enum": [
+ "Standard",
+ "Premium",
+ "Basic",
+ "Local"
+ ],
+ "x-ms-enum": {
+ "name": "ExpressRouteCircuitSkuTier",
+ "modelAsString": true
+ }
+ },
+ "family": {
+ "type": "string",
+ "description": "The family of the SKU.",
+ "enum": [
+ "UnlimitedData",
+ "MeteredData"
+ ],
+ "x-ms-enum": {
+ "name": "ExpressRouteCircuitSkuFamily",
+ "modelAsString": true
+ }
+ }
+ },
+ "description": "Contains SKU in an ExpressRouteCircuit."
+ },
+ "ExpressRouteCircuitServiceProviderProperties": {
+ "properties": {
+ "serviceProviderName": {
+ "type": "string",
+ "description": "The serviceProviderName."
+ },
+ "peeringLocation": {
+ "type": "string",
+ "description": "The peering location."
+ },
+ "bandwidthInMbps": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The BandwidthInMbps."
+ }
+ },
+ "description": "Contains ServiceProviderProperties in an ExpressRouteCircuit."
+ },
+ "ExpressRouteCircuitPropertiesFormat": {
+ "properties": {
+ "allowClassicOperations": {
+ "type": "boolean",
+ "description": "Allow classic operations."
+ },
+ "circuitProvisioningState": {
+ "type": "string",
+ "description": "The CircuitProvisioningState state of the resource."
+ },
+ "serviceProviderProvisioningState": {
+ "$ref": "#/definitions/ServiceProviderProvisioningState",
+ "description": "The ServiceProviderProvisioningState state of the resource."
+ },
+ "authorizations": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ExpressRouteCircuitAuthorization"
+ },
+ "description": "The list of authorizations."
+ },
+ "peerings": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ExpressRouteCircuitPeering"
+ },
+ "description": "The list of peerings."
+ },
+ "serviceKey": {
+ "type": "string",
+ "description": "The ServiceKey."
+ },
+ "serviceProviderNotes": {
+ "type": "string",
+ "description": "The ServiceProviderNotes."
+ },
+ "serviceProviderProperties": {
+ "$ref": "#/definitions/ExpressRouteCircuitServiceProviderProperties",
+ "description": "The ServiceProviderProperties."
+ },
+ "expressRoutePort": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "The reference to the ExpressRoutePort resource when the circuit is provisioned on an ExpressRoutePort resource."
+ },
+ "bandwidthInGbps": {
+ "type": "number",
+ "description": "The bandwidth of the circuit when the circuit is provisioned on an ExpressRoutePort resource."
+ },
+ "stag": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int32",
+ "description": "The identifier of the circuit traffic. Outer tag for QinQ encapsulation."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the express route circuit resource."
+ },
+ "gatewayManagerEtag": {
+ "type": "string",
+ "description": "The GatewayManager Etag."
+ },
+ "globalReachEnabled": {
+ "type": "boolean",
+ "description": "Flag denoting global reach status."
+ }
+ },
+ "description": "Properties of ExpressRouteCircuit."
+ },
+ "ExpressRouteCircuit": {
+ "properties": {
+ "sku": {
+ "$ref": "#/definitions/ExpressRouteCircuitSku",
+ "description": "The SKU."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ExpressRouteCircuitPropertiesFormat",
+ "description": "Properties of the express route circuit."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "description": "ExpressRouteCircuit resource."
+ },
+ "ExpressRouteCircuitArpTable": {
+ "properties": {
+ "age": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Entry age in minutes."
+ },
+ "interface": {
+ "type": "string",
+ "description": "Interface address."
+ },
+ "ipAddress": {
+ "type": "string",
+ "description": "The IP address."
+ },
+ "macAddress": {
+ "type": "string",
+ "description": "The MAC address."
+ }
+ },
+ "description": "The ARP table associated with the ExpressRouteCircuit."
+ },
+ "ExpressRouteCircuitsArpTableListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ExpressRouteCircuitArpTable"
+ },
+ "description": "A list of the ARP tables."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for ListArpTable associated with the Express Route Circuits API."
+ },
+ "ExpressRouteCircuitRoutesTable": {
+ "properties": {
+ "network": {
+ "type": "string",
+ "description": "IP address of a network entity."
+ },
+ "nextHop": {
+ "type": "string",
+ "description": "NextHop address."
+ },
+ "locPrf": {
+ "type": "string",
+ "description": "Local preference value as set with the set local-preference route-map configuration command."
+ },
+ "weight": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Route Weight."
+ },
+ "path": {
+ "type": "string",
+ "description": "Autonomous system paths to the destination network."
+ }
+ },
+ "description": "The routes table associated with the ExpressRouteCircuit."
+ },
+ "ExpressRouteCircuitsRoutesTableListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ExpressRouteCircuitRoutesTable"
+ },
+ "description": "The list of routes table."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for ListRoutesTable associated with the Express Route Circuits API."
+ },
+ "ExpressRouteCircuitRoutesTableSummary": {
+ "properties": {
+ "neighbor": {
+ "type": "string",
+ "description": "IP address of the neighbor."
+ },
+ "v": {
+ "type": "integer",
+ "format": "int32",
+ "description": "BGP version number spoken to the neighbor."
+ },
+ "as": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Autonomous system number."
+ },
+ "upDown": {
+ "type": "string",
+ "description": "The length of time that the BGP session has been in the Established state, or the current status if not in the Established state."
+ },
+ "statePfxRcd": {
+ "type": "string",
+ "description": "Current state of the BGP session, and the number of prefixes that have been received from a neighbor or peer group."
+ }
+ },
+ "description": "The routes table associated with the ExpressRouteCircuit."
+ },
+ "ExpressRouteCircuitsRoutesTableSummaryListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ExpressRouteCircuitRoutesTableSummary"
+ },
+ "description": "A list of the routes table."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for ListRoutesTable associated with the Express Route Circuits API."
+ },
+ "ExpressRouteCircuitListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ExpressRouteCircuit"
+ },
+ "description": "A list of ExpressRouteCircuits in a resource group."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for ListExpressRouteCircuit API service call."
+ },
+ "ExpressRouteServiceProviderBandwidthsOffered": {
+ "properties": {
+ "offerName": {
+ "type": "string",
+ "description": "The OfferName."
+ },
+ "valueInMbps": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The ValueInMbps."
+ }
+ },
+ "description": "Contains bandwidths offered in ExpressRouteServiceProvider resources."
+ },
+ "ExpressRouteServiceProviderPropertiesFormat": {
+ "properties": {
+ "peeringLocations": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "A list of peering locations."
+ },
+ "bandwidthsOffered": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ExpressRouteServiceProviderBandwidthsOffered"
+ },
+ "description": "A list of bandwidths offered."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the express route service provider resource."
+ }
+ },
+ "description": "Properties of ExpressRouteServiceProvider."
+ },
+ "ExpressRouteServiceProvider": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ExpressRouteServiceProviderPropertiesFormat",
+ "description": "Properties of the express route service provider."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "description": "A ExpressRouteResourceProvider object."
+ },
+ "ExpressRouteServiceProviderListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ExpressRouteServiceProvider"
+ },
+ "description": "A list of ExpressRouteResourceProvider resources."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for the ListExpressRouteServiceProvider API service call."
+ },
+ "CircuitConnectionStatus": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Express Route Circuit connection state.",
+ "enum": [
+ "Connected",
+ "Connecting",
+ "Disconnected"
+ ],
+ "x-ms-enum": {
+ "name": "CircuitConnectionStatus",
+ "modelAsString": true
+ }
+ },
+ "ServiceProviderProvisioningState": {
+ "type": "string",
+ "description": "The ServiceProviderProvisioningState state of the resource.",
+ "enum": [
+ "NotProvisioned",
+ "Provisioning",
+ "Provisioned",
+ "Deprovisioning"
+ ],
+ "x-ms-enum": {
+ "name": "ServiceProviderProvisioningState",
+ "modelAsString": true
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/expressRouteCrossConnection.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/expressRouteCrossConnection.json
new file mode 100644
index 000000000000..6bfa69849605
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/expressRouteCrossConnection.json
@@ -0,0 +1,1008 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "ExpressRouteCrossConnection REST APIs",
+ "description": "The Microsoft Azure ExpressRouteCrossConnection Resource Provider REST APIs describes the operations for the connectivity provider to provision ExpressRoute circuit, create and modify BGP peering entities and troubleshoot connectivity on customer's ExpressRoute circuit.",
+ "version": "2020-07-01"
+ },
+ "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}/providers/Microsoft.Network/expressRouteCrossConnections": {
+ "get": {
+ "tags": [
+ "ExpressRouteCrossConnections"
+ ],
+ "operationId": "ExpressRouteCrossConnections_List",
+ "description": "Retrieves all the ExpressRouteCrossConnections in a subscription.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of ExpressRouteCrossConnection resources. If there are no cross connection resources an empty list is returned.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteCrossConnectionListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ExpressRouteCrossConnectionList": {
+ "$ref": "./examples/ExpressRouteCrossConnectionList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCrossConnections": {
+ "get": {
+ "tags": [
+ "ExpressRouteCrossConnections"
+ ],
+ "operationId": "ExpressRouteCrossConnections_ListByResourceGroup",
+ "description": "Retrieves all the ExpressRouteCrossConnections in a resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful.The operation returns a list of ExpressRouteCrossConnection resources. If there are no cross connection resources an empty list is returned.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteCrossConnectionListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ExpressRouteCrossConnectionListByResourceGroup": {
+ "$ref": "./examples/ExpressRouteCrossConnectionListByResourceGroup.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCrossConnections/{crossConnectionName}": {
+ "get": {
+ "tags": [
+ "ExpressRouteCrossConnections"
+ ],
+ "operationId": "ExpressRouteCrossConnections_Get",
+ "description": "Gets details about the specified ExpressRouteCrossConnection.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group (peering location of the circuit)."
+ },
+ {
+ "name": "crossConnectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the ExpressRouteCrossConnection (service key of the circuit)."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting ExpressRouteCrossConnection resource.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteCrossConnection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "GetExpressRouteCrossConnection": {
+ "$ref": "./examples/ExpressRouteCrossConnectionGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "ExpressRouteCrossConnections"
+ ],
+ "operationId": "ExpressRouteCrossConnections_CreateOrUpdate",
+ "description": "Update the specified ExpressRouteCrossConnection.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "crossConnectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the ExpressRouteCrossConnection."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteCrossConnection"
+ },
+ "description": "Parameters supplied to the update express route crossConnection operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update successful. The operation returns the resulting ExpressRouteCrossConnection resource.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteCrossConnection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "UpdateExpressRouteCrossConnection": {
+ "$ref": "./examples/ExpressRouteCrossConnectionUpdate.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ },
+ "patch": {
+ "tags": [
+ "ExpressRouteCrossConnections"
+ ],
+ "operationId": "ExpressRouteCrossConnections_UpdateTags",
+ "description": "Updates an express route cross connection tags.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "crossConnectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the cross connection."
+ },
+ {
+ "name": "crossConnectionParameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./network.json#/definitions/TagsObject"
+ },
+ "description": "Parameters supplied to update express route cross connection tags."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update successful. The operation returns the resulting ExpressRouteCrossConnection resource.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteCrossConnection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "UpdateExpressRouteCrossConnectionTags": {
+ "$ref": "./examples/ExpressRouteCrossConnectionUpdateTags.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCrossConnections/{crossConnectionName}/peerings": {
+ "get": {
+ "tags": [
+ "ExpressRouteCrossConnectionPeerings"
+ ],
+ "operationId": "ExpressRouteCrossConnectionPeerings_List",
+ "description": "Gets all peerings in a specified ExpressRouteCrossConnection.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "crossConnectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the ExpressRouteCrossConnection."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of ExpressRouteCrossConnectionPeering resources.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteCrossConnectionPeeringList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ExpressRouteCrossConnectionBgpPeeringList": {
+ "$ref": "./examples/ExpressRouteCrossConnectionBgpPeeringList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCrossConnections/{crossConnectionName}/peerings/{peeringName}": {
+ "delete": {
+ "tags": [
+ "ExpressRouteCrossConnectionPeerings"
+ ],
+ "operationId": "ExpressRouteCrossConnectionPeerings_Delete",
+ "description": "Deletes the specified peering from the ExpressRouteCrossConnection.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "crossConnectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the ExpressRouteCrossConnection."
+ },
+ {
+ "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": "Delete successful."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "204": {
+ "description": "Delete successful."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "DeleteExpressRouteCrossConnectionBgpPeering": {
+ "$ref": "./examples/ExpressRouteCrossConnectionBgpPeeringDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ },
+ "get": {
+ "tags": [
+ "ExpressRouteCrossConnectionPeerings"
+ ],
+ "operationId": "ExpressRouteCrossConnectionPeerings_Get",
+ "description": "Gets the specified peering for the ExpressRouteCrossConnection.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "crossConnectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the ExpressRouteCrossConnection."
+ },
+ {
+ "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 the resulting ExpressRouteCrossConnectionPeering resource.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteCrossConnectionPeering"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "GetExpressRouteCrossConnectionBgpPeering": {
+ "$ref": "./examples/ExpressRouteCrossConnectionBgpPeeringGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "ExpressRouteCrossConnectionPeerings"
+ ],
+ "operationId": "ExpressRouteCrossConnectionPeerings_CreateOrUpdate",
+ "description": "Creates or updates a peering in the specified ExpressRouteCrossConnection.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "crossConnectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the ExpressRouteCrossConnection."
+ },
+ {
+ "name": "peeringName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the peering."
+ },
+ {
+ "name": "peeringParameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteCrossConnectionPeering"
+ },
+ "description": "Parameters supplied to the create or update ExpressRouteCrossConnection peering operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update successful. The operation returns the resulting ExpressRouteCrossConnectionPeering resource.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteCrossConnectionPeering"
+ }
+ },
+ "201": {
+ "description": "Create successful. The operation returns the resulting ExpressRouteCrossConnectionPeering resource.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteCrossConnectionPeering"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ExpressRouteCrossConnectionBgpPeeringCreate": {
+ "$ref": "./examples/ExpressRouteCrossConnectionBgpPeeringCreate.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCrossConnections/{crossConnectionName}/peerings/{peeringName}/arpTables/{devicePath}": {
+ "post": {
+ "tags": [
+ "ExpressRouteCrossConnectionArpTable"
+ ],
+ "operationId": "ExpressRouteCrossConnections_ListArpTable",
+ "description": "Gets the currently advertised ARP table associated with the express route cross connection in a resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "crossConnectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the ExpressRouteCrossConnection."
+ },
+ {
+ "name": "peeringName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the peering."
+ },
+ {
+ "name": "devicePath",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The path of the device."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting ExpressRouteCrossConnectionsArpTable resource.",
+ "schema": {
+ "$ref": "./expressRouteCircuit.json#/definitions/ExpressRouteCircuitsArpTableListResult"
+ }
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "GetExpressRouteCrossConnectionsArpTable": {
+ "$ref": "./examples/ExpressRouteCrossConnectionsArpTable.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCrossConnections/{crossConnectionName}/peerings/{peeringName}/routeTablesSummary/{devicePath}": {
+ "post": {
+ "tags": [
+ "ExpressRouteCrossConnectionRouteTableSummary"
+ ],
+ "operationId": "ExpressRouteCrossConnections_ListRoutesTableSummary",
+ "description": "Gets the route table summary associated with the express route cross connection in a resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "crossConnectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the ExpressRouteCrossConnection."
+ },
+ {
+ "name": "peeringName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the peering."
+ },
+ {
+ "name": "devicePath",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The path of the device."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting ExpressRouteCrossConnectionsRouteTableSummary resource.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteCrossConnectionsRoutesTableSummaryListResult"
+ }
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "GetExpressRouteCrossConnectionsRouteTableSummary": {
+ "$ref": "./examples/ExpressRouteCrossConnectionsRouteTableSummary.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCrossConnections/{crossConnectionName}/peerings/{peeringName}/routeTables/{devicePath}": {
+ "post": {
+ "tags": [
+ "ExpressRouteCrossConnectionRouteTable"
+ ],
+ "operationId": "ExpressRouteCrossConnections_ListRoutesTable",
+ "description": "Gets the currently advertised routes table associated with the express route cross connection in a resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "crossConnectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the ExpressRouteCrossConnection."
+ },
+ {
+ "name": "peeringName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the peering."
+ },
+ {
+ "name": "devicePath",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The path of the device."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting ExpressRouteCrossConnectionsRouteTable resource.",
+ "schema": {
+ "$ref": "./expressRouteCircuit.json#/definitions/ExpressRouteCircuitsRoutesTableListResult"
+ }
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "GetExpressRouteCrossConnectionsRouteTable": {
+ "$ref": "./examples/ExpressRouteCrossConnectionsRouteTable.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "ExpressRouteCrossConnectionRoutesTableSummary": {
+ "properties": {
+ "neighbor": {
+ "type": "string",
+ "description": "IP address of Neighbor router."
+ },
+ "asn": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Autonomous system number."
+ },
+ "upDown": {
+ "type": "string",
+ "description": "The length of time that the BGP session has been in the Established state, or the current status if not in the Established state."
+ },
+ "stateOrPrefixesReceived": {
+ "type": "string",
+ "description": "Current state of the BGP session, and the number of prefixes that have been received from a neighbor or peer group."
+ }
+ },
+ "description": "The routes table associated with the ExpressRouteCircuit."
+ },
+ "ExpressRouteCrossConnectionsRoutesTableSummaryListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ExpressRouteCrossConnectionRoutesTableSummary"
+ },
+ "description": "A list of the routes table."
+ },
+ "nextLink": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for ListRoutesTable associated with the Express Route Cross Connections."
+ },
+ "ExpressRouteCircuitReference": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Corresponding Express Route Circuit Id."
+ }
+ },
+ "description": "Reference to an express route circuit."
+ },
+ "ExpressRouteCrossConnectionProperties": {
+ "properties": {
+ "primaryAzurePort": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The name of the primary port."
+ },
+ "secondaryAzurePort": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The name of the secondary port."
+ },
+ "sTag": {
+ "readOnly": true,
+ "type": "integer",
+ "description": "The identifier of the circuit traffic."
+ },
+ "peeringLocation": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The peering location of the ExpressRoute circuit."
+ },
+ "bandwidthInMbps": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int32",
+ "description": "The circuit bandwidth In Mbps."
+ },
+ "expressRouteCircuit": {
+ "$ref": "#/definitions/ExpressRouteCircuitReference",
+ "description": "The ExpressRouteCircuit."
+ },
+ "serviceProviderProvisioningState": {
+ "$ref": "./expressRouteCircuit.json#/definitions/ServiceProviderProvisioningState",
+ "description": "The provisioning state of the circuit in the connectivity provider system."
+ },
+ "serviceProviderNotes": {
+ "type": "string",
+ "description": "Additional read only notes set by the connectivity provider."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the express route cross connection resource."
+ },
+ "peerings": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ExpressRouteCrossConnectionPeering"
+ },
+ "description": "The list of peerings."
+ }
+ },
+ "description": "Properties of ExpressRouteCrossConnection."
+ },
+ "ExpressRouteCrossConnection": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ExpressRouteCrossConnectionProperties",
+ "description": "Properties of the express route cross connection."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "description": "ExpressRouteCrossConnection resource."
+ },
+ "ExpressRouteCrossConnectionListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ExpressRouteCrossConnection"
+ },
+ "description": "A list of ExpressRouteCrossConnection resources."
+ },
+ "nextLink": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for ListExpressRouteCrossConnection API service call."
+ },
+ "ExpressRouteCrossConnectionPeeringProperties": {
+ "properties": {
+ "peeringType": {
+ "$ref": "./expressRouteCircuit.json#/definitions/ExpressRoutePeeringType",
+ "description": "The peering type."
+ },
+ "state": {
+ "$ref": "./expressRouteCircuit.json#/definitions/ExpressRoutePeeringState",
+ "description": "The peering state."
+ },
+ "azureASN": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int32",
+ "description": "The Azure ASN."
+ },
+ "peerASN": {
+ "type": "integer",
+ "format": "int64",
+ "minimum": 1,
+ "maximum": 4294967295,
+ "description": "The peer ASN."
+ },
+ "primaryPeerAddressPrefix": {
+ "type": "string",
+ "description": "The primary address prefix."
+ },
+ "secondaryPeerAddressPrefix": {
+ "type": "string",
+ "description": "The secondary address prefix."
+ },
+ "primaryAzurePort": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The primary port."
+ },
+ "secondaryAzurePort": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The secondary port."
+ },
+ "sharedKey": {
+ "type": "string",
+ "description": "The shared key."
+ },
+ "vlanId": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The VLAN ID."
+ },
+ "microsoftPeeringConfig": {
+ "$ref": "./expressRouteCircuit.json#/definitions/ExpressRouteCircuitPeeringConfig",
+ "description": "The Microsoft peering configuration."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the express route cross connection peering resource."
+ },
+ "gatewayManagerEtag": {
+ "type": "string",
+ "description": "The GatewayManager Etag."
+ },
+ "lastModifiedBy": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Who was the last to modify the peering."
+ },
+ "ipv6PeeringConfig": {
+ "$ref": "./expressRouteCircuit.json#/definitions/Ipv6ExpressRouteCircuitPeeringConfig",
+ "description": "The IPv6 peering configuration."
+ }
+ },
+ "description": "Properties of express route cross connection peering."
+ },
+ "ExpressRouteCrossConnectionPeering": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ExpressRouteCrossConnectionPeeringProperties",
+ "description": "Properties of the express route cross connection peering."
+ },
+ "name": {
+ "type": "string",
+ "description": "The 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": "Peering in an ExpressRoute Cross Connection resource."
+ },
+ "ExpressRouteCrossConnectionPeeringList": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ExpressRouteCrossConnectionPeering"
+ },
+ "description": "The peerings in an express route cross connection."
+ },
+ "nextLink": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for ListPeering API service call retrieves all peerings that belong to an ExpressRouteCrossConnection."
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/expressRoutePort.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/expressRoutePort.json
new file mode 100644
index 000000000000..79b7772f7b78
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/expressRoutePort.json
@@ -0,0 +1,963 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "NetworkManagementClient",
+ "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
+ "version": "2020-07-01"
+ },
+ "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}/providers/Microsoft.Network/ExpressRoutePortsLocations": {
+ "get": {
+ "tags": [
+ "ExpressRoutePortsLocations"
+ ],
+ "operationId": "ExpressRoutePortsLocations_List",
+ "description": "Retrieves all ExpressRoutePort peering locations. Does not return available bandwidths for each location. Available bandwidths can only be obtained when retrieving a specific peering location.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the list of all ExpressRoutePort peering locations.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRoutePortsLocationListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "ExpressRoutePortsLocationList": {
+ "$ref": "./examples/ExpressRoutePortsLocationList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/ExpressRoutePortsLocations/{locationName}": {
+ "get": {
+ "tags": [
+ "ExpressRoutePortsLocations"
+ ],
+ "operationId": "ExpressRoutePortsLocations_Get",
+ "description": "Retrieves a single ExpressRoutePort peering location, including the list of available bandwidths available at said peering location.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "locationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of the requested ExpressRoutePort peering location."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the requested ExpressRoutePort peering location.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRoutePortsLocation"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ExpressRoutePortsLocationGet": {
+ "$ref": "./examples/ExpressRoutePortsLocationGet.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/ExpressRoutePorts/{expressRoutePortName}": {
+ "delete": {
+ "tags": [
+ "ExpressRoutePorts"
+ ],
+ "operationId": "ExpressRoutePorts_Delete",
+ "description": "Deletes the specified ExpressRoutePort resource.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "expressRoutePortName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the ExpressRoutePort resource."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Delete successful."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "204": {
+ "description": "Request successful. Resource does not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "x-ms-examples": {
+ "ExpressRoutePortDelete": {
+ "$ref": "./examples/ExpressRoutePortDelete.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "ExpressRoutePorts"
+ ],
+ "operationId": "ExpressRoutePorts_Get",
+ "description": "Retrieves the requested ExpressRoutePort resource.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "expressRoutePortName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of ExpressRoutePort."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the requested ExpressRoutePort resource.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRoutePort"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ExpressRoutePortGet": {
+ "$ref": "./examples/ExpressRoutePortGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "ExpressRoutePorts"
+ ],
+ "operationId": "ExpressRoutePorts_CreateOrUpdate",
+ "description": "Creates or updates the specified ExpressRoutePort resource.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "expressRoutePortName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the ExpressRoutePort resource."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ExpressRoutePort"
+ },
+ "description": "Parameters supplied to the create ExpressRoutePort operation."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update successful. The operation returns the resulting ExpressRoutePort resource.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRoutePort"
+ }
+ },
+ "201": {
+ "description": "Create successful. The operation returns the resulting ExpressRoutePort resource.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRoutePort"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ },
+ "x-ms-examples": {
+ "ExpressRoutePortCreate": {
+ "$ref": "./examples/ExpressRoutePortCreate.json"
+ },
+ "ExpressRoutePortUpdateLink": {
+ "$ref": "./examples/ExpressRoutePortUpdateLink.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "ExpressRoutePorts"
+ ],
+ "operationId": "ExpressRoutePorts_UpdateTags",
+ "description": "Update ExpressRoutePort tags.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "expressRoutePortName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the ExpressRoutePort resource."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./network.json#/definitions/TagsObject"
+ },
+ "description": "Parameters supplied to update ExpressRoutePort resource tags."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update successful. The operation returns the resulting ExpressRoutePort resource.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRoutePort"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ExpressRoutePortUpdateTags": {
+ "$ref": "./examples/ExpressRoutePortUpdateTags.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/ExpressRoutePorts": {
+ "get": {
+ "tags": [
+ "ExpressRoutePorts"
+ ],
+ "operationId": "ExpressRoutePorts_ListByResourceGroup",
+ "description": "List all the ExpressRoutePort resources in the specified resource group.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of ExpressRoutePort resources. If there are no ExpressRoutePort resources then an empty list is returned.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRoutePortListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "ExpressRoutePortListByResourceGroup": {
+ "$ref": "./examples/ExpressRoutePortListByResourceGroup.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/ExpressRoutePorts": {
+ "get": {
+ "tags": [
+ "ExpressRoutePorts"
+ ],
+ "operationId": "ExpressRoutePorts_List",
+ "description": "List all the ExpressRoutePort resources in the specified subscription.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of ExpressRoutePort resources. If there are no ExpressRoutePort resources then an empty list is returned.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRoutePortListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "ExpressRoutePortList": {
+ "$ref": "./examples/ExpressRoutePortList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/ExpressRoutePorts/{expressRoutePortName}/links/{linkName}": {
+ "get": {
+ "tags": [
+ "ExpressRouteLinks"
+ ],
+ "operationId": "ExpressRouteLinks_Get",
+ "description": "Retrieves the specified ExpressRouteLink resource.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "expressRoutePortName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the ExpressRoutePort resource."
+ },
+ {
+ "name": "linkName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the ExpressRouteLink resource."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the requested ExpressRouteLink resource.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteLink"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ExpressRouteLinkGet": {
+ "$ref": "./examples/ExpressRouteLinkGet.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/ExpressRoutePorts/{expressRoutePortName}/links": {
+ "get": {
+ "tags": [
+ "ExpressRouteLinks"
+ ],
+ "operationId": "ExpressRouteLinks_List",
+ "description": "Retrieve the ExpressRouteLink sub-resources of the specified ExpressRoutePort resource.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "expressRoutePortName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the ExpressRoutePort resource."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of ExpressRouteLink resources. If there are no ExpressRouteLink resources then an empty list is returned.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteLinkListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "ExpressRouteLinkGet": {
+ "$ref": "./examples/ExpressRouteLinkList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRoutePorts/{expressRoutePortName}/generateLoa": {
+ "post": {
+ "tags": [
+ "ExpressRoutePorts"
+ ],
+ "operationId": "ExpressRoutePorts_GenerateLOA",
+ "description": "Generate a letter of authorization for the requested ExpressRoutePort resource.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "expressRoutePortName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of ExpressRoutePort."
+ },
+ {
+ "name": "request",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/GenerateExpressRoutePortsLOARequest"
+ },
+ "description": "Request parameters supplied to generate a letter of authorization."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the content as a base64 encoded string.",
+ "schema": {
+ "$ref": "#/definitions/GenerateExpressRoutePortsLOAResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "GenerateExpressRoutePortLOA": {
+ "$ref": "./examples/GenerateExpressRoutePortsLOA.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "ExpressRoutePortsLocationBandwidths": {
+ "title": "ExpressRoutePorts Location Bandwidths",
+ "description": "Real-time inventory of available ExpressRoute port bandwidths.",
+ "properties": {
+ "offerName": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Bandwidth descriptive name."
+ },
+ "valueInGbps": {
+ "type": "integer",
+ "readOnly": true,
+ "description": "Bandwidth value in Gbps."
+ }
+ }
+ },
+ "ExpressRoutePortsLocationPropertiesFormat": {
+ "title": "ExpressRoutePorts Location Properties",
+ "description": "Properties specific to ExpressRoutePorts peering location resources.",
+ "properties": {
+ "address": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Address of peering location."
+ },
+ "contact": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Contact details of peering locations."
+ },
+ "availableBandwidths": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ExpressRoutePortsLocationBandwidths"
+ },
+ "description": "The inventory of available ExpressRoutePort bandwidths."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the express route port location resource."
+ }
+ }
+ },
+ "ExpressRoutePortsLocation": {
+ "title": "ExpressRoutePorts Peering Location",
+ "description": "Definition of the ExpressRoutePorts peering location resource.",
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ExpressRoutePortsLocationPropertiesFormat",
+ "description": "ExpressRoutePort peering location properties."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ]
+ },
+ "ExpressRoutePortsLocationListResult": {
+ "title": "ExpressRoutePorts Location List Result",
+ "description": "Response for ListExpressRoutePortsLocations API service call.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ExpressRoutePortsLocation"
+ },
+ "description": "The list of all ExpressRoutePort peering locations."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ }
+ },
+ "ExpressRouteLinkMacSecConfig": {
+ "description": "ExpressRouteLink Mac Security Configuration.",
+ "title": "Definition of ExpressRouteLink Mac Security configuration.",
+ "properties": {
+ "cknSecretIdentifier": {
+ "type": "string",
+ "description": "Keyvault Secret Identifier URL containing Mac security CKN key."
+ },
+ "cakSecretIdentifier": {
+ "type": "string",
+ "description": "Keyvault Secret Identifier URL containing Mac security CAK key."
+ },
+ "cipher": {
+ "type": "string",
+ "description": "Mac security cipher.",
+ "enum": [
+ "GcmAes256",
+ "GcmAes128",
+ "GcmAesXpn128",
+ "GcmAesXpn256"
+ ],
+ "x-ms-enum": {
+ "name": "ExpressRouteLinkMacSecCipher",
+ "modelAsString": true
+ }
+ },
+ "sciState": {
+ "type": "string",
+ "description": "Sci mode enabled/disabled.",
+ "enum": [
+ "Disabled",
+ "Enabled"
+ ],
+ "x-ms-enum": {
+ "name": "ExpressRouteLinkMacSecSciState",
+ "modelAsString": true
+ }
+ }
+ }
+ },
+ "ExpressRouteLinkPropertiesFormat": {
+ "title": "ExpressRouteLink Resource Properties",
+ "description": "Properties specific to ExpressRouteLink resources.",
+ "properties": {
+ "routerName": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Name of Azure router associated with physical port."
+ },
+ "interfaceName": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Name of Azure router interface."
+ },
+ "patchPanelId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Mapping between physical port to patch panel port."
+ },
+ "rackId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Mapping of physical patch panel to rack."
+ },
+ "connectorType": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Physical fiber port type.",
+ "enum": [
+ "LC",
+ "SC"
+ ],
+ "x-ms-enum": {
+ "name": "ExpressRouteLinkConnectorType",
+ "modelAsString": true
+ }
+ },
+ "adminState": {
+ "type": "string",
+ "description": "Administrative state of the physical port.",
+ "enum": [
+ "Enabled",
+ "Disabled"
+ ],
+ "x-ms-enum": {
+ "name": "ExpressRouteLinkAdminState",
+ "modelAsString": true
+ }
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the express route link resource."
+ },
+ "macSecConfig": {
+ "$ref": "#/definitions/ExpressRouteLinkMacSecConfig",
+ "description": "MacSec configuration."
+ }
+ }
+ },
+ "ExpressRouteLink": {
+ "title": "ExpressRouteLink",
+ "description": "ExpressRouteLink child resource definition.",
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ExpressRouteLinkPropertiesFormat",
+ "description": "ExpressRouteLink properties."
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of child port resource that is unique among child port resources of the parent."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ]
+ },
+ "ExpressRouteLinkListResult": {
+ "title": "ExpressRouteLink List Result",
+ "description": "Response for ListExpressRouteLinks API service call.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ExpressRouteLink"
+ },
+ "description": "The list of ExpressRouteLink sub-resources."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ }
+ },
+ "ExpressRoutePortPropertiesFormat": {
+ "title": "ExpressRoutePort Properties",
+ "description": "Properties specific to ExpressRoutePort resources.",
+ "properties": {
+ "peeringLocation": {
+ "type": "string",
+ "description": "The name of the peering location that the ExpressRoutePort is mapped to physically."
+ },
+ "bandwidthInGbps": {
+ "type": "integer",
+ "description": "Bandwidth of procured ports in Gbps."
+ },
+ "provisionedBandwidthInGbps": {
+ "readOnly": true,
+ "type": "number",
+ "description": "Aggregate Gbps of associated circuit bandwidths."
+ },
+ "mtu": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Maximum transmission unit of the physical port pair(s)."
+ },
+ "encapsulation": {
+ "type": "string",
+ "description": "Encapsulation method on physical ports.",
+ "enum": [
+ "Dot1Q",
+ "QinQ"
+ ],
+ "x-ms-enum": {
+ "name": "ExpressRoutePortsEncapsulation",
+ "modelAsString": true
+ }
+ },
+ "etherType": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Ether type of the physical port."
+ },
+ "allocationDate": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Date of the physical port allocation to be used in Letter of Authorization."
+ },
+ "links": {
+ "title": "ExpressRouteLink Sub-Resources",
+ "description": "The set of physical links of the ExpressRoutePort resource.",
+ "readOnly": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ExpressRouteLink"
+ }
+ },
+ "circuits": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "./network.json#/definitions/SubResource"
+ },
+ "description": "Reference the ExpressRoute circuit(s) that are provisioned on this ExpressRoutePort resource."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the express route port resource."
+ },
+ "resourceGuid": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource GUID property of the express route port resource."
+ }
+ }
+ },
+ "ExpressRoutePort": {
+ "title": "ExpressRoute Port",
+ "description": "ExpressRoutePort resource definition.",
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ExpressRoutePortPropertiesFormat",
+ "description": "ExpressRoutePort properties."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ },
+ "identity": {
+ "$ref": "./network.json#/definitions/ManagedServiceIdentity",
+ "description": "The identity of ExpressRoutePort, if configured."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ]
+ },
+ "ExpressRoutePortListResult": {
+ "title": "ExpressRoute Port List Result",
+ "description": "Response for ListExpressRoutePorts API service call.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ExpressRoutePort"
+ },
+ "description": "A list of ExpressRoutePort resources."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ }
+ },
+ "GenerateExpressRoutePortsLOARequest": {
+ "description": "The customer name to be printed on a letter of authorization.",
+ "properties": {
+ "customerName": {
+ "type": "string",
+ "description": "The customer name."
+ }
+ },
+ "required": [
+ "customerName"
+ ]
+ },
+ "GenerateExpressRoutePortsLOAResult": {
+ "description": "Response for GenerateExpressRoutePortsLOA API service call.",
+ "properties": {
+ "encodedContent": {
+ "type": "string",
+ "description": "The content as a base64 encoded string."
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/firewallPolicy.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/firewallPolicy.json
new file mode 100644
index 000000000000..92c6eb90948a
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/firewallPolicy.json
@@ -0,0 +1,1336 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "NetworkManagementClient",
+ "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
+ "version": "2020-07-01"
+ },
+ "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/firewallPolicies/{firewallPolicyName}": {
+ "delete": {
+ "tags": [
+ "FirewallPolicies"
+ ],
+ "operationId": "FirewallPolicies_Delete",
+ "description": "Deletes the specified Firewall Policy.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "firewallPolicyName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Firewall Policy."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "204": {
+ "description": "Request successful. Resource with the specified name does not exist."
+ },
+ "200": {
+ "description": "Delete successful."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete Firewall Policy": {
+ "$ref": "./examples/FirewallPolicyDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ },
+ "get": {
+ "tags": [
+ "FirewallPolicies"
+ ],
+ "operationId": "FirewallPolicies_Get",
+ "description": "Gets the specified Firewall Policy.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "firewallPolicyName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Firewall Policy."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Expands referenced resources."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a Firewall Policy resource.",
+ "schema": {
+ "$ref": "#/definitions/FirewallPolicy"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get FirewallPolicy": {
+ "$ref": "./examples/FirewallPolicyGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "FirewallPolicies"
+ ],
+ "operationId": "FirewallPolicies_CreateOrUpdate",
+ "description": "Creates or updates the specified Firewall Policy.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "firewallPolicyName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Firewall Policy."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/FirewallPolicy"
+ },
+ "description": "Parameters supplied to the create or update Firewall Policy operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Request received successfully. The operation returns the resulting FirewallPolicy resource.",
+ "schema": {
+ "$ref": "#/definitions/FirewallPolicy"
+ }
+ },
+ "200": {
+ "description": "Request successful. The operation returns the resulting FirewallPolicy resource.",
+ "schema": {
+ "$ref": "#/definitions/FirewallPolicy"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create FirewallPolicy": {
+ "$ref": "./examples/FirewallPolicyPut.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/firewallPolicies": {
+ "get": {
+ "tags": [
+ "FirewallPolicies"
+ ],
+ "operationId": "FirewallPolicies_List",
+ "description": "Lists all Firewall Policies in a resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The operation returns a list of FirewallPolicy resources.",
+ "schema": {
+ "$ref": "#/definitions/FirewallPolicyListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List all Firewall Policies for a given resource group": {
+ "$ref": "./examples/FirewallPolicyListByResourceGroup.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/firewallPolicies": {
+ "get": {
+ "tags": [
+ "FirewallPolicies"
+ ],
+ "operationId": "FirewallPolicies_ListAll",
+ "description": "Gets all the Firewall Policies in a subscription.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The operation returns a list of FirewallPolicy resources.",
+ "schema": {
+ "$ref": "#/definitions/FirewallPolicyListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List all Firewall Policies for a given subscription": {
+ "$ref": "./examples/FirewallPolicyListBySubscription.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/firewallPolicies/{firewallPolicyName}/ruleCollectionGroups/{ruleCollectionGroupName}": {
+ "delete": {
+ "tags": [
+ "FirewallPolicyRuleCollectionGroups"
+ ],
+ "operationId": "FirewallPolicyRuleCollectionGroups_Delete",
+ "description": "Deletes the specified FirewallPolicyRuleCollectionGroup.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "firewallPolicyName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Firewall Policy."
+ },
+ {
+ "name": "ruleCollectionGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the FirewallPolicyRuleCollectionGroup."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "204": {
+ "description": "Request successful. Resource with the specified name does not exist."
+ },
+ "200": {
+ "description": "Delete successful."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete FirewallPolicyRuleCollectionGroup": {
+ "$ref": "./examples/FirewallPolicyRuleCollectionGroupDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ },
+ "get": {
+ "tags": [
+ "FirewallPolicyRuleCollectionGroups"
+ ],
+ "operationId": "FirewallPolicyRuleCollectionGroups_Get",
+ "description": "Gets the specified FirewallPolicyRuleCollectionGroup.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "firewallPolicyName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Firewall Policy."
+ },
+ {
+ "name": "ruleCollectionGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the FirewallPolicyRuleCollectionGroup."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a FirewallPolicyRuleCollectionGroup resource.",
+ "schema": {
+ "$ref": "#/definitions/FirewallPolicyRuleCollectionGroup"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get FirewallPolicyRuleCollectionGroup": {
+ "$ref": "./examples/FirewallPolicyRuleCollectionGroupGet.json"
+ },
+ "Get FirewallPolicyRuleCollectionGroup With IpGroups": {
+ "$ref": "./examples/FirewallPolicyRuleCollectionGroupWithIpGroupsGet.json"
+ },
+ "Get FirewallPolicyNatRuleCollectionGroup": {
+ "$ref": "./examples/FirewallPolicyNatRuleCollectionGroupGet.json"
+ },
+ "Get FirewallPolicyRuleCollectionGroup With Web Categories": {
+ "$ref": "./examples/FirewallPolicyRuleCollectionGroupWithWebCategoriesGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "FirewallPolicyRuleCollectionGroups"
+ ],
+ "operationId": "FirewallPolicyRuleCollectionGroups_CreateOrUpdate",
+ "description": "Creates or updates the specified FirewallPolicyRuleCollectionGroup.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "firewallPolicyName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Firewall Policy."
+ },
+ {
+ "name": "ruleCollectionGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the FirewallPolicyRuleCollectionGroup."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/FirewallPolicyRuleCollectionGroup"
+ },
+ "description": "Parameters supplied to the create or update FirewallPolicyRuleCollectionGroup operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Request received successfully. The operation returns the resulting FirewallPolicyRuleCollectionGroup resource.",
+ "schema": {
+ "$ref": "#/definitions/FirewallPolicyRuleCollectionGroup"
+ }
+ },
+ "200": {
+ "description": "Request successful. The operation returns the resulting FirewallPolicyRuleCollectionGroup resource.",
+ "schema": {
+ "$ref": "#/definitions/FirewallPolicyRuleCollectionGroup"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create FirewallPolicyRuleCollectionGroup": {
+ "$ref": "./examples/FirewallPolicyRuleCollectionGroupPut.json"
+ },
+ "Create FirewallPolicyRuleCollectionGroup With IpGroups": {
+ "$ref": "./examples/FirewallPolicyRuleCollectionGroupWithIpGroupsPut.json"
+ },
+ "Create FirewallPolicyNatRuleCollectionGroup": {
+ "$ref": "./examples/FirewallPolicyNatRuleCollectionGroupPut.json"
+ },
+ "Create FirewallPolicyRuleCollectionGroup With Web Categories": {
+ "$ref": "./examples/FirewallPolicyRuleCollectionGroupWithWebCategoriesPut.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/firewallPolicies/{firewallPolicyName}/ruleCollectionGroups": {
+ "get": {
+ "tags": [
+ "FirewallPolicyRuleCollectionGroups"
+ ],
+ "operationId": "FirewallPolicyRuleCollectionGroups_List",
+ "description": "Lists all FirewallPolicyRuleCollectionGroups in a FirewallPolicy resource.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "firewallPolicyName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Firewall Policy."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The operation returns a list of FirewallPolicyRuleCollectionGroup resources.",
+ "schema": {
+ "$ref": "#/definitions/FirewallPolicyRuleCollectionGroupListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List all FirewallPolicyRuleCollectionGroups for a given FirewallPolicy": {
+ "$ref": "./examples/FirewallPolicyRuleCollectionGroupList.json"
+ },
+ "List all FirewallPolicyRuleCollectionGroups with IpGroups for a given FirewallPolicy": {
+ "$ref": "./examples/FirewallPolicyRuleCollectionGroupWithIpGroupsList.json"
+ },
+ "List all FirewallPolicyRuleCollectionGroup With Web Categories": {
+ "$ref": "./examples/FirewallPolicyRuleCollectionGroupWithWebCategoriesList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "FirewallPolicy": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/FirewallPolicyPropertiesFormat",
+ "description": "Properties of the firewall policy."
+ },
+ "etag": {
+ "type": "string",
+ "readOnly": true,
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ },
+ "identity": {
+ "$ref": "./network.json#/definitions/ManagedServiceIdentity",
+ "description": "The identity of the firewall policy."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "description": "FirewallPolicy Resource."
+ },
+ "FirewallPolicyPropertiesFormat": {
+ "properties": {
+ "ruleCollectionGroups": {
+ "type": "array",
+ "readOnly": true,
+ "description": "List of references to FirewallPolicyRuleCollectionGroups.",
+ "items": {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the firewall policy resource."
+ },
+ "basePolicy": {
+ "readOnly": false,
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "The parent firewall policy from which rules are inherited."
+ },
+ "firewalls": {
+ "type": "array",
+ "readOnly": true,
+ "description": "List of references to Azure Firewalls that this Firewall Policy is associated with.",
+ "items": {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ },
+ "childPolicies": {
+ "type": "array",
+ "readOnly": true,
+ "description": "List of references to Child Firewall Policies.",
+ "items": {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ },
+ "threatIntelMode": {
+ "description": "The operation mode for Threat Intelligence.",
+ "$ref": "./azureFirewall.json#/definitions/AzureFirewallThreatIntelMode"
+ },
+ "threatIntelWhitelist": {
+ "description": "ThreatIntel Whitelist for Firewall Policy.",
+ "$ref": "#/definitions/FirewallPolicyThreatIntelWhitelist"
+ },
+ "dnsSettings": {
+ "description": "DNS Proxy Settings definition.",
+ "$ref": "#/definitions/DnsSettings"
+ },
+ "intrusionDetection": {
+ "description": "The configuration for Intrusion detection.",
+ "$ref": "#/definitions/FirewallPolicyIntrusionDetection"
+ },
+ "transportSecurity": {
+ "description": "TLS Configuration definition.",
+ "$ref": "#/definitions/FirewallPolicyTransportSecurity"
+ },
+ "sku": {
+ "description": "The Firewall Policy SKU.",
+ "$ref": "#/definitions/FirewallPolicySku"
+ }
+ },
+ "description": "Firewall Policy definition."
+ },
+ "FirewallPolicyRuleCollectionGroup": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/FirewallPolicyRuleCollectionGroupProperties",
+ "description": "The properties of the firewall policy rule collection group."
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of the resource that is unique within a resource group. This name can be used to access the resource."
+ },
+ "etag": {
+ "type": "string",
+ "readOnly": true,
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Rule Group type."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "Rule Collection Group resource."
+ },
+ "FirewallPolicyRuleCollectionGroupProperties": {
+ "properties": {
+ "priority": {
+ "type": "integer",
+ "format": "int32",
+ "maximum": 65000,
+ "exclusiveMaximum": false,
+ "minimum": 100,
+ "exclusiveMinimum": false,
+ "description": "Priority of the Firewall Policy Rule Collection Group resource."
+ },
+ "ruleCollections": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/FirewallPolicyRuleCollection"
+ },
+ "description": "Group of Firewall Policy rule collections."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the firewall policy rule collection group resource."
+ }
+ },
+ "description": "Properties of the rule collection group."
+ },
+ "FirewallPolicyRuleCollection": {
+ "description": "Properties of the rule collection.",
+ "discriminator": "ruleCollectionType",
+ "required": [
+ "ruleCollectionType"
+ ],
+ "properties": {
+ "ruleCollectionType": {
+ "type": "string",
+ "description": "The type of the rule collection.",
+ "enum": [
+ "FirewallPolicyNatRuleCollection",
+ "FirewallPolicyFilterRuleCollection"
+ ],
+ "x-ms-enum": {
+ "name": "FirewallPolicyRuleCollectionType",
+ "modelAsString": true
+ }
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of the rule collection."
+ },
+ "priority": {
+ "type": "integer",
+ "format": "int32",
+ "maximum": 65000,
+ "exclusiveMaximum": false,
+ "minimum": 100,
+ "exclusiveMinimum": false,
+ "description": "Priority of the Firewall Policy Rule Collection resource."
+ }
+ }
+ },
+ "FirewallPolicyNatRuleCollection": {
+ "properties": {
+ "action": {
+ "$ref": "#/definitions/FirewallPolicyNatRuleCollectionAction",
+ "description": "The action type of a Nat rule collection."
+ },
+ "rules": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/FirewallPolicyRule"
+ },
+ "description": "List of rules included in a rule collection."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/FirewallPolicyRuleCollection"
+ }
+ ],
+ "x-ms-discriminator-value": "FirewallPolicyNatRuleCollection",
+ "description": "Firewall Policy NAT Rule Collection."
+ },
+ "FirewallPolicyFilterRuleCollection": {
+ "properties": {
+ "action": {
+ "$ref": "#/definitions/FirewallPolicyFilterRuleCollectionAction",
+ "description": "The action type of a Filter rule collection."
+ },
+ "rules": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/FirewallPolicyRule"
+ },
+ "description": "List of rules included in a rule collection."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/FirewallPolicyRuleCollection"
+ }
+ ],
+ "x-ms-discriminator-value": "FirewallPolicyFilterRuleCollection",
+ "description": "Firewall Policy Filter Rule Collection."
+ },
+ "FirewallPolicyRule": {
+ "description": "Properties of a rule.",
+ "discriminator": "ruleType",
+ "required": [
+ "ruleType"
+ ],
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name of the rule."
+ },
+ "description": {
+ "type": "string",
+ "description": "Description of the rule."
+ },
+ "ruleType": {
+ "type": "string",
+ "description": "Rule Type.",
+ "enum": [
+ "ApplicationRule",
+ "NetworkRule",
+ "NatRule"
+ ],
+ "x-ms-enum": {
+ "name": "FirewallPolicyRuleType",
+ "modelAsString": true
+ }
+ }
+ }
+ },
+ "ApplicationRule": {
+ "x-ms-discriminator-value": "ApplicationRule",
+ "allOf": [
+ {
+ "$ref": "#/definitions/FirewallPolicyRule"
+ }
+ ],
+ "properties": {
+ "sourceAddresses": {
+ "type": "array",
+ "description": "List of source IP addresses for this rule.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "destinationAddresses": {
+ "type": "array",
+ "description": "List of destination IP addresses or Service Tags.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "protocols": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/FirewallPolicyRuleApplicationProtocol"
+ },
+ "description": "Array of Application Protocols."
+ },
+ "targetFqdns": {
+ "type": "array",
+ "description": "List of FQDNs for this rule.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "targetUrls": {
+ "type": "array",
+ "description": "List of Urls for this rule condition.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "fqdnTags": {
+ "type": "array",
+ "description": "List of FQDN Tags for this rule.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "sourceIpGroups": {
+ "type": "array",
+ "description": "List of source IpGroups for this rule.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "terminateTLS": {
+ "type": "boolean",
+ "description": "Terminate TLS connections for this rule."
+ },
+ "webCategories": {
+ "type": "array",
+ "description": "List of destination azure web categories.",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "Rule of type application."
+ },
+ "NatRule": {
+ "description": "Rule of type nat.",
+ "x-ms-discriminator-value": "NatRule",
+ "allOf": [
+ {
+ "$ref": "#/definitions/FirewallPolicyRule"
+ }
+ ],
+ "properties": {
+ "ipProtocols": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/FirewallPolicyRuleNetworkProtocol"
+ },
+ "description": "Array of FirewallPolicyRuleNetworkProtocols."
+ },
+ "sourceAddresses": {
+ "type": "array",
+ "description": "List of source IP addresses for this rule.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "destinationAddresses": {
+ "type": "array",
+ "description": "List of destination IP addresses or Service Tags.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "destinationPorts": {
+ "type": "array",
+ "description": "List of destination ports.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "translatedAddress": {
+ "type": "string",
+ "description": "The translated address for this NAT rule."
+ },
+ "translatedPort": {
+ "type": "string",
+ "description": "The translated port for this NAT rule."
+ },
+ "sourceIpGroups": {
+ "type": "array",
+ "description": "List of source IpGroups for this rule.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "translatedFqdn": {
+ "type": "string",
+ "description": "The translated FQDN for this NAT rule."
+ }
+ }
+ },
+ "NetworkRule": {
+ "description": "Rule of type network.",
+ "x-ms-discriminator-value": "NetworkRule",
+ "allOf": [
+ {
+ "$ref": "#/definitions/FirewallPolicyRule"
+ }
+ ],
+ "properties": {
+ "ipProtocols": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/FirewallPolicyRuleNetworkProtocol"
+ },
+ "description": "Array of FirewallPolicyRuleNetworkProtocols."
+ },
+ "sourceAddresses": {
+ "type": "array",
+ "description": "List of source IP addresses for this rule.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "destinationAddresses": {
+ "type": "array",
+ "description": "List of destination IP addresses or Service Tags.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "destinationPorts": {
+ "type": "array",
+ "description": "List of destination ports.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "sourceIpGroups": {
+ "type": "array",
+ "description": "List of source IpGroups for this rule.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "destinationIpGroups": {
+ "type": "array",
+ "description": "List of destination IpGroups for this rule.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "destinationFqdns": {
+ "type": "array",
+ "description": "List of destination FQDNs.",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "FirewallPolicyRuleApplicationProtocol": {
+ "properties": {
+ "protocolType": {
+ "description": "Protocol type.",
+ "$ref": "#/definitions/FirewallPolicyRuleApplicationProtocolType"
+ },
+ "port": {
+ "type": "integer",
+ "format": "int32",
+ "maximum": 64000,
+ "exclusiveMaximum": false,
+ "minimum": 0,
+ "exclusiveMinimum": false,
+ "description": "Port number for the protocol, cannot be greater than 64000."
+ }
+ },
+ "description": "Properties of the application rule protocol."
+ },
+ "FirewallPolicyRuleApplicationProtocolType": {
+ "type": "string",
+ "description": "The application protocol type of a Rule.",
+ "enum": [
+ "Http",
+ "Https"
+ ],
+ "x-ms-enum": {
+ "name": "FirewallPolicyRuleApplicationProtocolType",
+ "modelAsString": true
+ }
+ },
+ "FirewallPolicyNatRuleCollectionActionType": {
+ "type": "string",
+ "description": "The action type of a rule.",
+ "enum": [
+ "DNAT"
+ ],
+ "x-ms-enum": {
+ "name": "FirewallPolicyNatRuleCollectionActionType",
+ "modelAsString": true
+ }
+ },
+ "FirewallPolicyNatRuleCollectionAction": {
+ "properties": {
+ "type": {
+ "description": "The type of action.",
+ "$ref": "#/definitions/FirewallPolicyNatRuleCollectionActionType"
+ }
+ },
+ "description": "Properties of the FirewallPolicyNatRuleCollectionAction."
+ },
+ "FirewallPolicyFilterRuleCollectionActionType": {
+ "type": "string",
+ "description": "The action type of a rule.",
+ "enum": [
+ "Allow",
+ "Deny"
+ ],
+ "x-ms-enum": {
+ "name": "FirewallPolicyFilterRuleCollectionActionType",
+ "modelAsString": true
+ }
+ },
+ "FirewallPolicyFilterRuleCollectionAction": {
+ "properties": {
+ "type": {
+ "description": "The type of action.",
+ "$ref": "#/definitions/FirewallPolicyFilterRuleCollectionActionType"
+ }
+ },
+ "description": "Properties of the FirewallPolicyFilterRuleCollectionAction."
+ },
+ "FirewallPolicyRuleNetworkProtocol": {
+ "type": "string",
+ "description": "The Network protocol of a Rule.",
+ "enum": [
+ "TCP",
+ "UDP",
+ "Any",
+ "ICMP"
+ ],
+ "x-ms-enum": {
+ "name": "FirewallPolicyRuleNetworkProtocol",
+ "modelAsString": true
+ }
+ },
+ "FirewallPolicyListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/FirewallPolicy"
+ },
+ "description": "List of Firewall Policies in a resource group."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of results."
+ }
+ },
+ "description": "Response for ListFirewallPolicies API service call."
+ },
+ "FirewallPolicyRuleCollectionGroupListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/FirewallPolicyRuleCollectionGroup"
+ },
+ "description": "List of FirewallPolicyRuleCollectionGroups in a FirewallPolicy."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of results."
+ }
+ },
+ "description": "Response for ListFirewallPolicyRuleCollectionGroups API service call."
+ },
+ "FirewallPolicyThreatIntelWhitelist": {
+ "description": "ThreatIntel Whitelist for Firewall Policy.",
+ "x-ms-discriminator-value": "FirewallPolicyThreatIntelWhitelist",
+ "properties": {
+ "ipAddresses": {
+ "type": "array",
+ "description": "List of IP addresses for the ThreatIntel Whitelist.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "fqdns": {
+ "type": "array",
+ "description": "List of FQDNs for the ThreatIntel Whitelist.",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "DnsSettings": {
+ "description": "DNS Proxy Settings in Firewall Policy.",
+ "x-ms-discriminator-value": "DnsSettings",
+ "properties": {
+ "servers": {
+ "type": "array",
+ "description": "List of Custom DNS Servers.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "enableProxy": {
+ "type": "boolean",
+ "description": "Enable DNS Proxy on Firewalls attached to the Firewall Policy."
+ },
+ "requireProxyForNetworkRules": {
+ "type": "boolean",
+ "description": "FQDNs in Network Rules are supported when set to true.",
+ "x-nullable": true
+ }
+ }
+ },
+ "FirewallPolicyIntrusionDetection": {
+ "description": "Configuration for intrusion detection mode and rules.",
+ "properties": {
+ "mode": {
+ "$ref": "#/definitions/FirewallPolicyIntrusionDetectionStateOptions",
+ "description": "Intrusion detection general state."
+ },
+ "configuration": {
+ "$ref": "#/definitions/FirewallPolicyIntrusionDetectionConfiguration",
+ "description": "Intrusion detection configuration properties."
+ }
+ }
+ },
+ "FirewallPolicyIntrusionDetectionStateOptions": {
+ "type": "string",
+ "description": "Possible state values.",
+ "enum": [
+ "Off",
+ "Alert",
+ "Deny"
+ ],
+ "x-ms-enum": {
+ "name": "FirewallPolicyIntrusionDetectionStateType",
+ "modelAsString": true
+ }
+ },
+ "FirewallPolicyIntrusionDetectionConfiguration": {
+ "description": "The operation for configuring intrusion detection.",
+ "properties": {
+ "signatureOverrides": {
+ "type": "array",
+ "description": "List of specific signatures states.",
+ "items": {
+ "$ref": "#/definitions/FirewallPolicyIntrusionDetectionSignatureSpecification"
+ }
+ },
+ "bypassTrafficSettings": {
+ "type": "array",
+ "description": "List of rules for traffic to bypass.",
+ "items": {
+ "$ref": "#/definitions/FirewallPolicyIntrusionDetectionBypassTrafficSpecifications"
+ }
+ }
+ }
+ },
+ "FirewallPolicyIntrusionDetectionSignatureSpecification": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Signature id."
+ },
+ "mode": {
+ "$ref": "#/definitions/FirewallPolicyIntrusionDetectionStateOptions",
+ "description": "The signature state."
+ }
+ },
+ "description": "Intrusion detection signatures specification states."
+ },
+ "FirewallPolicyIntrusionDetectionBypassTrafficSpecifications": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name of the bypass traffic rule."
+ },
+ "description": {
+ "type": "string",
+ "description": "Description of the bypass traffic rule."
+ },
+ "protocol": {
+ "type": "string",
+ "$ref": "#/definitions/FirewallPolicyIntrusionDetectionBypassTrafficProtocol",
+ "description": "The rule bypass protocol."
+ },
+ "sourceAddresses": {
+ "type": "array",
+ "description": "List of source IP addresses or ranges for this rule.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "destinationAddresses": {
+ "type": "array",
+ "description": "List of destination IP addresses or ranges for this rule.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "destinationPorts": {
+ "type": "array",
+ "description": "List of destination ports or ranges.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "sourceIpGroups": {
+ "type": "array",
+ "description": "List of source IpGroups for this rule.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "destinationIpGroups": {
+ "type": "array",
+ "description": "List of destination IpGroups for this rule.",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "Intrusion detection bypass traffic specification."
+ },
+ "FirewallPolicyIntrusionDetectionBypassTrafficProtocol": {
+ "type": "string",
+ "description": "Possible intrusion detection bypass traffic protocols.",
+ "enum": [
+ "TCP",
+ "UDP",
+ "ICMP",
+ "ANY"
+ ],
+ "x-ms-enum": {
+ "name": "FirewallPolicyIntrusionDetectionProtocol",
+ "modelAsString": true
+ }
+ },
+ "FirewallPolicyTransportSecurity": {
+ "properties": {
+ "certificateAuthority": {
+ "$ref": "#/definitions/FirewallPolicyCertificateAuthority",
+ "description": "The CA used for intermediate CA generation."
+ }
+ },
+ "description": "Configuration needed to perform TLS termination & initiation."
+ },
+ "FirewallPolicyCertificateAuthority": {
+ "properties": {
+ "keyVaultSecretId": {
+ "type": "string",
+ "description": "Secret Id of (base-64 encoded unencrypted pfx) 'Secret' or 'Certificate' object stored in KeyVault."
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the CA certificate."
+ }
+ },
+ "description": "Trusted Root certificates properties for tls."
+ },
+ "FirewallPolicySku": {
+ "properties": {
+ "tier": {
+ "type": "string",
+ "description": "Tier of Firewall Policy.",
+ "enum": [
+ "Standard",
+ "Premium"
+ ],
+ "x-ms-enum": {
+ "name": "FirewallPolicySkuTier",
+ "modelAsString": true
+ }
+ }
+ },
+ "description": "SKU of Firewall policy."
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/ipAllocation.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/ipAllocation.json
new file mode 100644
index 000000000000..c6e732849e02
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/ipAllocation.json
@@ -0,0 +1,454 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "NetworkManagementClient",
+ "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
+ "version": "2020-07-01"
+ },
+ "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/IpAllocations/{ipAllocationName}": {
+ "delete": {
+ "tags": [
+ "IpAllocations"
+ ],
+ "operationId": "IpAllocations_Delete",
+ "description": "Deletes the specified IpAllocation.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "ipAllocationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the IpAllocation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "204": {
+ "description": "Delete successful."
+ },
+ "200": {
+ "description": "Delete successful."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "x-ms-examples": {
+ "Delete IpAllocation": {
+ "$ref": "./examples/IpAllocationDelete.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "IpAllocations"
+ ],
+ "operationId": "IpAllocations_Get",
+ "description": "Gets the specified IpAllocation by resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "ipAllocationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the IpAllocation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Expands referenced resources."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting IpAllocation resource.",
+ "schema": {
+ "$ref": "#/definitions/IpAllocation"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get IpAllocation": {
+ "$ref": "./examples/IpAllocationGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "IpAllocations"
+ ],
+ "operationId": "IpAllocations_CreateOrUpdate",
+ "description": "Creates or updates an IpAllocation in the specified resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "ipAllocationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the IpAllocation."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/IpAllocation"
+ },
+ "description": "Parameters supplied to the create or update virtual network operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update successful. The operation returns the resulting IpAllocation resource.",
+ "schema": {
+ "$ref": "#/definitions/IpAllocation"
+ }
+ },
+ "201": {
+ "description": "Create successful. The operation returns the resulting IpAllocation resource.",
+ "schema": {
+ "$ref": "#/definitions/IpAllocation"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ },
+ "x-ms-examples": {
+ "Create IpAllocation": {
+ "$ref": "./examples/IpAllocationCreate.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "IpAllocations"
+ ],
+ "operationId": "IpAllocations_UpdateTags",
+ "description": "Updates a IpAllocation tags.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "ipAllocationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the IpAllocation."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./network.json#/definitions/TagsObject"
+ },
+ "description": "Parameters supplied to update IpAllocation tags."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update successful. The operation returns the resulting IpAllocation resource.",
+ "schema": {
+ "$ref": "#/definitions/IpAllocation"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update virtual network tags": {
+ "$ref": "./examples/IpAllocationUpdateTags.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/IpAllocations": {
+ "get": {
+ "tags": [
+ "IpAllocations"
+ ],
+ "operationId": "IpAllocations_List",
+ "description": "Gets all IpAllocations in a subscription.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of IpAllocation resources.",
+ "schema": {
+ "$ref": "#/definitions/IpAllocationListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List all IpAllocations": {
+ "$ref": "./examples/IpAllocationList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/IpAllocations": {
+ "get": {
+ "tags": [
+ "IpAllocations"
+ ],
+ "operationId": "IpAllocations_ListByResourceGroup",
+ "description": "Gets all IpAllocations in a resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of IpAllocation resources.",
+ "schema": {
+ "$ref": "#/definitions/IpAllocationListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List IpAllocations in resource group": {
+ "$ref": "./examples/IpAllocationListByResourceGroup.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "IpAllocationPropertiesFormat": {
+ "properties": {
+ "subnet": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "The Subnet that using the prefix of this IpAllocation resource."
+ },
+ "virtualNetwork": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "The VirtualNetwork that using the prefix of this IpAllocation resource."
+ },
+ "type": {
+ "$ref": "#/definitions/IpAllocationType",
+ "description": "The type for the IpAllocation."
+ },
+ "prefix": {
+ "type": "string",
+ "description": "The address prefix for the IpAllocation."
+ },
+ "prefixLength": {
+ "type": "integer",
+ "x-nullable": true,
+ "default": 0,
+ "description": "The address prefix length for the IpAllocation."
+ },
+ "prefixType": {
+ "$ref": "./network.json#/definitions/IPVersion",
+ "default": null,
+ "description": "The address prefix Type for the IpAllocation."
+ },
+ "ipamAllocationId": {
+ "type": "string",
+ "description": "The IPAM allocation ID."
+ },
+ "allocationTags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "IpAllocation tags."
+ }
+ },
+ "description": "Properties of the IpAllocation."
+ },
+ "IpAllocation": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/IpAllocationPropertiesFormat",
+ "description": "Properties of the IpAllocation."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "description": "IpAllocation resource."
+ },
+ "IpAllocationListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/IpAllocation"
+ },
+ "description": "A list of IpAllocation resources."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for the ListIpAllocations API service call."
+ },
+ "IpAllocationType": {
+ "type": "string",
+ "description": "IpAllocation type.",
+ "enum": [
+ "Undefined",
+ "Hypernet"
+ ],
+ "x-ms-enum": {
+ "name": "IpAllocationType",
+ "modelAsString": true
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/ipGroups.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/ipGroups.json
new file mode 100644
index 000000000000..c6e39a564299
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/ipGroups.json
@@ -0,0 +1,430 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "NetworkManagementClient",
+ "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
+ "version": "2020-07-01"
+ },
+ "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/ipGroups/{ipGroupsName}": {
+ "get": {
+ "tags": [
+ "IpGroups"
+ ],
+ "operationId": "IpGroups_Get",
+ "description": "Gets the specified ipGroups.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "ipGroupsName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the ipGroups."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Expands resourceIds (of Firewalls/Network Security Groups etc.) back referenced by the IpGroups resource."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting IpGroups resource.",
+ "schema": {
+ "$ref": "#/definitions/IpGroup"
+ }
+ },
+ "default": {
+ "description": "Unexpected error.",
+ "schema": {
+ "$ref": "./network.json#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get_IpGroups": {
+ "$ref": "./examples/IpGroupsGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "IpGroups"
+ ],
+ "operationId": "IpGroups_CreateOrUpdate",
+ "description": "Creates or updates an ipGroups in a specified resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "ipGroupsName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the ipGroups."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/IpGroup"
+ },
+ "description": "Parameters supplied to the create or update IpGroups operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting ipGroups resource.",
+ "schema": {
+ "$ref": "#/definitions/IpGroup"
+ }
+ },
+ "201": {
+ "description": "Create successful. The operation returns the resulting ipGroups resource.",
+ "schema": {
+ "$ref": "#/definitions/IpGroup"
+ }
+ },
+ "default": {
+ "description": "Unexpected error.",
+ "schema": {
+ "$ref": "./network.json#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ },
+ "x-ms-examples": {
+ "CreateOrUpdate_IpGroups": {
+ "$ref": "./examples/IpGroupsCreate.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "IpGroups"
+ ],
+ "operationId": "IpGroups_UpdateGroups",
+ "description": "Updates tags of an IpGroups resource.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "ipGroupsName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the ipGroups."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./network.json#/definitions/TagsObject"
+ },
+ "description": "Parameters supplied to the update ipGroups operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting ipGroups resource.",
+ "schema": {
+ "$ref": "#/definitions/IpGroup"
+ }
+ },
+ "default": {
+ "description": "Unexpected error.",
+ "schema": {
+ "$ref": "./network.json#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update_IpGroups": {
+ "$ref": "./examples/IpGroupsUpdateTags.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "IpGroups"
+ ],
+ "operationId": "IpGroups_Delete",
+ "description": "Deletes the specified ipGroups.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "ipGroupsName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the ipGroups."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Delete successful."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "204": {
+ "description": "Delete successful."
+ },
+ "default": {
+ "description": "Unexpected error.",
+ "schema": {
+ "$ref": "./network.json#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete_IpGroups": {
+ "$ref": "./examples/IpGroupsDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/ipGroups": {
+ "get": {
+ "tags": [
+ "IpGroups"
+ ],
+ "operationId": "IpGroups_ListByResourceGroup",
+ "description": "Gets all IpGroups in a resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of ipGroups resources.",
+ "schema": {
+ "$ref": "#/definitions/IpGroupListResult"
+ }
+ },
+ "default": {
+ "description": "Unexpected error.",
+ "schema": {
+ "$ref": "./network.json#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ListByResourceGroup_IpGroups": {
+ "$ref": "./examples/IpGroupsListByResourceGroup.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/ipGroups": {
+ "get": {
+ "tags": [
+ "IpGroups"
+ ],
+ "operationId": "IpGroups_List",
+ "description": "Gets all IpGroups in a subscription.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of ipGroups resources.",
+ "schema": {
+ "$ref": "#/definitions/IpGroupListResult"
+ }
+ },
+ "default": {
+ "description": "Unexpected error.",
+ "schema": {
+ "$ref": "./network.json#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List_IpGroups": {
+ "$ref": "./examples/IpGroupsListBySubscription.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "IpGroup": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/IpGroupPropertiesFormat",
+ "description": "Properties of the IpGroups."
+ },
+ "etag": {
+ "type": "string",
+ "readOnly": true,
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "description": "The IpGroups resource information."
+ },
+ "IpGroupListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/IpGroup"
+ },
+ "description": "The list of IpGroups information resources."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of results."
+ }
+ },
+ "description": "Response for the ListIpGroups API service call."
+ },
+ "IpGroupPropertiesFormat": {
+ "properties": {
+ "provisioningState": {
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the IpGroups resource.",
+ "readOnly": true
+ },
+ "ipAddresses": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "IpAddresses/IpAddressPrefixes in the IpGroups resource."
+ },
+ "firewalls": {
+ "type": "array",
+ "readOnly": true,
+ "description": "List of references to Firewall resources that this IpGroups is associated with.",
+ "items": {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ },
+ "firewallPolicies": {
+ "type": "array",
+ "readOnly": true,
+ "description": "List of references to Firewall Policies resources that this IpGroups is associated with.",
+ "items": {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ }
+ },
+ "description": "The IpGroups property information."
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/loadBalancer.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/loadBalancer.json
new file mode 100644
index 000000000000..25e6fa1eee70
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/loadBalancer.json
@@ -0,0 +1,2264 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "NetworkManagementClient",
+ "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
+ "version": "2020-07-01"
+ },
+ "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/loadBalancers/{loadBalancerName}": {
+ "delete": {
+ "tags": [
+ "LoadBalancers"
+ ],
+ "operationId": "LoadBalancers_Delete",
+ "description": "Deletes the specified load balancer.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "loadBalancerName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the load balancer."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Request successful. Resource does not exist."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "200": {
+ "description": "Delete successful."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete load balancer": {
+ "$ref": "./examples/LoadBalancerDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ },
+ "get": {
+ "tags": [
+ "LoadBalancers"
+ ],
+ "operationId": "LoadBalancers_Get",
+ "description": "Gets the specified load balancer.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "loadBalancerName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the load balancer."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Expands referenced resources."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting LoadBalancer resource.",
+ "schema": {
+ "$ref": "#/definitions/LoadBalancer"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get load balancer": {
+ "$ref": "./examples/LoadBalancerGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "LoadBalancers"
+ ],
+ "operationId": "LoadBalancers_CreateOrUpdate",
+ "description": "Creates or updates a load balancer.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "loadBalancerName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the load balancer."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/LoadBalancer"
+ },
+ "description": "Parameters supplied to the create or update load balancer operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Create successful. The operation returns the resulting LoadBalancer resource.",
+ "schema": {
+ "$ref": "#/definitions/LoadBalancer"
+ }
+ },
+ "200": {
+ "description": "Update successful. The operation returns the resulting LoadBalancer resource.",
+ "schema": {
+ "$ref": "#/definitions/LoadBalancer"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create load balancer": {
+ "$ref": "./examples/LoadBalancerCreate.json"
+ },
+ "Create load balancer with Standard SKU": {
+ "$ref": "./examples/LoadBalancerCreateStandardSku.json"
+ },
+ "Create load balancer with Global Tier and one regional load balancer in its backend pool": {
+ "$ref": "./examples/LoadBalancerCreateGlobalTier.json"
+ },
+ "Create load balancer with Frontend IP in Zone 1": {
+ "$ref": "./examples/LoadBalancerCreateWithZones.json"
+ },
+ "Create load balancer with inbound nat pool": {
+ "$ref": "./examples/LoadBalancerCreateWithInboundNatPool.json"
+ },
+ "Create load balancer with outbound rules": {
+ "$ref": "./examples/LoadBalancerCreateWithOutboundRules.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ },
+ "patch": {
+ "tags": [
+ "LoadBalancers"
+ ],
+ "operationId": "LoadBalancers_UpdateTags",
+ "description": "Updates a load balancer tags.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "loadBalancerName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the load balancer."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./network.json#/definitions/TagsObject"
+ },
+ "description": "Parameters supplied to update load balancer tags."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update successful. The operation returns the resulting LoadBalancer resource.",
+ "schema": {
+ "$ref": "#/definitions/LoadBalancer"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update load balancer tags": {
+ "$ref": "./examples/LoadBalancerUpdateTags.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/loadBalancers": {
+ "get": {
+ "tags": [
+ "LoadBalancers"
+ ],
+ "operationId": "LoadBalancers_ListAll",
+ "description": "Gets all the load balancers in a subscription.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of LoadBalancer resources.",
+ "schema": {
+ "$ref": "#/definitions/LoadBalancerListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List all load balancers": {
+ "$ref": "./examples/LoadBalancerListAll.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers": {
+ "get": {
+ "tags": [
+ "LoadBalancers"
+ ],
+ "operationId": "LoadBalancers_List",
+ "description": "Gets all the load balancers in a resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of LoadBalancer resources.",
+ "schema": {
+ "$ref": "#/definitions/LoadBalancerListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List load balancers in resource group": {
+ "$ref": "./examples/LoadBalancerList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/backendAddressPools": {
+ "get": {
+ "tags": [
+ "LoadBalancers"
+ ],
+ "operationId": "LoadBalancerBackendAddressPools_List",
+ "description": "Gets all the load balancer backed address pools.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "loadBalancerName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the load balancer."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of LoadBalancer BackendAddressPool resources.",
+ "schema": {
+ "$ref": "#/definitions/LoadBalancerBackendAddressPoolListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "LoadBalancerBackendAddressPoolList": {
+ "$ref": "./examples/LoadBalancerBackendAddressPoolList.json"
+ },
+ "Load balancer with BackendAddressPool containing BackendAddresses": {
+ "$ref": "./examples/LBBackendAddressPoolListWithBackendAddressesPoolType.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/backendAddressPools/{backendAddressPoolName}": {
+ "get": {
+ "tags": [
+ "LoadBalancers"
+ ],
+ "operationId": "LoadBalancerBackendAddressPools_Get",
+ "description": "Gets load balancer backend address pool.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "loadBalancerName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the load balancer."
+ },
+ {
+ "name": "backendAddressPoolName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the backend address pool."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns LoadBalancer BackendAddressPool resource.",
+ "schema": {
+ "$ref": "#/definitions/BackendAddressPool"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "LoadBalancerBackendAddressPoolGet": {
+ "$ref": "./examples/LoadBalancerBackendAddressPoolGet.json"
+ },
+ "LoadBalancer with BackendAddressPool with BackendAddresses": {
+ "$ref": "./examples/LBBackendAddressPoolWithBackendAddressesGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "LoadBalancers"
+ ],
+ "operationId": "LoadBalancerBackendAddressPools_CreateOrUpdate",
+ "description": "Creates or updates a load balancer backend address pool.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "loadBalancerName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the load balancer."
+ },
+ {
+ "name": "backendAddressPoolName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the backend address pool."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/BackendAddressPool"
+ },
+ "description": "Parameters supplied to the create or update load balancer backend address pool operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Create successful. The operation returns the resulting BackendAddressPool resource.",
+ "schema": {
+ "$ref": "#/definitions/BackendAddressPool"
+ }
+ },
+ "200": {
+ "description": "Update successful. The operation returns the resulting BackendAddressPool resource.",
+ "schema": {
+ "$ref": "#/definitions/BackendAddressPool"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update load balancer backend pool with backend addresses containing virtual network and IP address.": {
+ "$ref": "./examples/LBBackendAddressPoolWithBackendAddressesPut.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ },
+ "delete": {
+ "tags": [
+ "LoadBalancers"
+ ],
+ "operationId": "LoadBalancerBackendAddressPools_Delete",
+ "description": "Deletes the specified load balancer backend address pool.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "loadBalancerName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the load balancer."
+ },
+ {
+ "name": "backendAddressPoolName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the backend address pool."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Request successful. Resource does not exist."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "200": {
+ "description": "Delete successful."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "BackendAddressPoolDelete": {
+ "$ref": "./examples/LoadBalancerBackendAddressPoolDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/frontendIPConfigurations": {
+ "get": {
+ "tags": [
+ "LoadBalancers"
+ ],
+ "operationId": "LoadBalancerFrontendIPConfigurations_List",
+ "description": "Gets all the load balancer frontend IP configurations.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "loadBalancerName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the load balancer."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of LoadBalancer FrontendIPConfiguration resources.",
+ "schema": {
+ "$ref": "#/definitions/LoadBalancerFrontendIPConfigurationListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "LoadBalancerFrontendIPConfigurationList": {
+ "$ref": "./examples/LoadBalancerFrontendIPConfigurationList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/frontendIPConfigurations/{frontendIPConfigurationName}": {
+ "get": {
+ "tags": [
+ "LoadBalancers"
+ ],
+ "operationId": "LoadBalancerFrontendIPConfigurations_Get",
+ "description": "Gets load balancer frontend IP configuration.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "loadBalancerName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the load balancer."
+ },
+ {
+ "name": "frontendIPConfigurationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the frontend IP configuration."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns LoadBalancer FrontendIPConfiguration resource.",
+ "schema": {
+ "$ref": "#/definitions/FrontendIPConfiguration"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "LoadBalancerFrontendIPConfigurationGet": {
+ "$ref": "./examples/LoadBalancerFrontendIPConfigurationGet.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/inboundNatRules": {
+ "get": {
+ "tags": [
+ "LoadBalancers"
+ ],
+ "operationId": "InboundNatRules_List",
+ "description": "Gets all the inbound nat rules in a load balancer.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "loadBalancerName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the load balancer."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of LoadBalancer InboundNatRule resources.",
+ "schema": {
+ "$ref": "#/definitions/InboundNatRuleListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "InboundNatRuleList": {
+ "$ref": "./examples/InboundNatRuleList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/inboundNatRules/{inboundNatRuleName}": {
+ "delete": {
+ "tags": [
+ "LoadBalancers"
+ ],
+ "operationId": "InboundNatRules_Delete",
+ "description": "Deletes the specified load balancer inbound nat rule.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "loadBalancerName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the load balancer."
+ },
+ {
+ "name": "inboundNatRuleName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the inbound nat rule."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Request successful. Resource does not exist."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "200": {
+ "description": "Delete successful."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "InboundNatRuleDelete": {
+ "$ref": "./examples/InboundNatRuleDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ },
+ "get": {
+ "tags": [
+ "LoadBalancers"
+ ],
+ "operationId": "InboundNatRules_Get",
+ "description": "Gets the specified load balancer inbound nat rule.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "loadBalancerName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the load balancer."
+ },
+ {
+ "name": "inboundNatRuleName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the inbound nat rule."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Expands referenced resources."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting InboundNatRule resource.",
+ "schema": {
+ "$ref": "#/definitions/InboundNatRule"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "InboundNatRuleGet": {
+ "$ref": "./examples/InboundNatRuleGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "LoadBalancers"
+ ],
+ "operationId": "InboundNatRules_CreateOrUpdate",
+ "description": "Creates or updates a load balancer inbound nat rule.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "loadBalancerName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the load balancer."
+ },
+ {
+ "name": "inboundNatRuleName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the inbound nat rule."
+ },
+ {
+ "name": "inboundNatRuleParameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/InboundNatRule"
+ },
+ "description": "Parameters supplied to the create or update inbound nat rule operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Create successful. The operation returns the resulting InboundNatRule resource.",
+ "schema": {
+ "$ref": "#/definitions/InboundNatRule"
+ }
+ },
+ "200": {
+ "description": "Update successful. The operation returns the resulting InboundNatRule resource.",
+ "schema": {
+ "$ref": "#/definitions/InboundNatRule"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ },
+ "x-ms-examples": {
+ "InboundNatRuleCreate": {
+ "$ref": "./examples/InboundNatRuleCreate.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/loadBalancingRules": {
+ "get": {
+ "tags": [
+ "LoadBalancers"
+ ],
+ "operationId": "LoadBalancerLoadBalancingRules_List",
+ "description": "Gets all the load balancing rules in a load balancer.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "loadBalancerName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the load balancer."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of LoadBalancer LoadBalancingRule resources.",
+ "schema": {
+ "$ref": "#/definitions/LoadBalancerLoadBalancingRuleListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "LoadBalancerLoadBalancingRuleList": {
+ "$ref": "./examples/LoadBalancerLoadBalancingRuleList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/loadBalancingRules/{loadBalancingRuleName}": {
+ "get": {
+ "tags": [
+ "LoadBalancers"
+ ],
+ "operationId": "LoadBalancerLoadBalancingRules_Get",
+ "description": "Gets the specified load balancer load balancing rule.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "loadBalancerName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the load balancer."
+ },
+ {
+ "name": "loadBalancingRuleName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the load balancing rule."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting LoadBalancingRule resource.",
+ "schema": {
+ "$ref": "#/definitions/LoadBalancingRule"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "LoadBalancerLoadBalancingRuleGet": {
+ "$ref": "./examples/LoadBalancerLoadBalancingRuleGet.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/outboundRules": {
+ "get": {
+ "tags": [
+ "LoadBalancers"
+ ],
+ "operationId": "LoadBalancerOutboundRules_List",
+ "description": "Gets all the outbound rules in a load balancer.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "loadBalancerName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the load balancer."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of LoadBalancer OutboundRule resources.",
+ "schema": {
+ "$ref": "#/definitions/LoadBalancerOutboundRuleListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "LoadBalancerOutboundRuleList": {
+ "$ref": "./examples/LoadBalancerOutboundRuleList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/outboundRules/{outboundRuleName}": {
+ "get": {
+ "tags": [
+ "LoadBalancers"
+ ],
+ "operationId": "LoadBalancerOutboundRules_Get",
+ "description": "Gets the specified load balancer outbound rule.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "loadBalancerName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the load balancer."
+ },
+ {
+ "name": "outboundRuleName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the outbound rule."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting OutboundRule resource.",
+ "schema": {
+ "$ref": "#/definitions/OutboundRule"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "LoadBalancerOutboundRuleGet": {
+ "$ref": "./examples/LoadBalancerOutboundRuleGet.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/networkInterfaces": {
+ "get": {
+ "tags": [
+ "LoadBalancers"
+ ],
+ "operationId": "LoadBalancerNetworkInterfaces_List",
+ "description": "Gets associated load balancer network interfaces.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "loadBalancerName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the load balancer."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of NetworkInterface resources.",
+ "schema": {
+ "$ref": "./networkInterface.json#/definitions/NetworkInterfaceListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "LoadBalancerNetworkInterfaceListVmss": {
+ "$ref": "./examples/LoadBalancerNetworkInterfaceListVmss.json"
+ },
+ "LoadBalancerNetworkInterfaceListSimple": {
+ "$ref": "./examples/LoadBalancerNetworkInterfaceListSimple.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/probes": {
+ "get": {
+ "tags": [
+ "LoadBalancers"
+ ],
+ "operationId": "LoadBalancerProbes_List",
+ "description": "Gets all the load balancer probes.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "loadBalancerName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the load balancer."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of LoadBalancer Probe resources.",
+ "schema": {
+ "$ref": "#/definitions/LoadBalancerProbeListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "LoadBalancerProbeList": {
+ "$ref": "./examples/LoadBalancerProbeList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/probes/{probeName}": {
+ "get": {
+ "tags": [
+ "LoadBalancers"
+ ],
+ "operationId": "LoadBalancerProbes_Get",
+ "description": "Gets load balancer probe.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "loadBalancerName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the load balancer."
+ },
+ {
+ "name": "probeName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the probe."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns LoadBalancer Probe resource.",
+ "schema": {
+ "$ref": "#/definitions/Probe"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "LoadBalancerProbeGet": {
+ "$ref": "./examples/LoadBalancerProbeGet.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "LoadBalancerSku": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name of a load balancer SKU.",
+ "enum": [
+ "Basic",
+ "Standard"
+ ],
+ "x-ms-enum": {
+ "name": "LoadBalancerSkuName",
+ "modelAsString": true
+ }
+ },
+ "tier": {
+ "type": "string",
+ "description": "Tier of a load balancer SKU.",
+ "enum": [
+ "Regional",
+ "Global"
+ ],
+ "x-ms-enum": {
+ "name": "LoadBalancerSkuTier",
+ "modelAsString": true
+ }
+ }
+ },
+ "description": "SKU of a load balancer."
+ },
+ "FrontendIPConfigurationPropertiesFormat": {
+ "properties": {
+ "inboundNatRules": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "./network.json#/definitions/SubResource"
+ },
+ "description": "An array of references to inbound rules that use this frontend IP."
+ },
+ "inboundNatPools": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "./network.json#/definitions/SubResource"
+ },
+ "description": "An array of references to inbound pools that use this frontend IP."
+ },
+ "outboundRules": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "./network.json#/definitions/SubResource"
+ },
+ "description": "An array of references to outbound rules that use this frontend IP."
+ },
+ "loadBalancingRules": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "./network.json#/definitions/SubResource"
+ },
+ "description": "An array of references to load balancing rules that use this frontend IP."
+ },
+ "privateIPAddress": {
+ "type": "string",
+ "description": "The private IP address of the IP configuration."
+ },
+ "privateIPAllocationMethod": {
+ "$ref": "./network.json#/definitions/IPAllocationMethod",
+ "description": "The Private IP allocation method."
+ },
+ "privateIPAddressVersion": {
+ "$ref": "./network.json#/definitions/IPVersion",
+ "description": "Whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4."
+ },
+ "subnet": {
+ "$ref": "./virtualNetwork.json#/definitions/Subnet",
+ "description": "The reference to the subnet resource."
+ },
+ "publicIPAddress": {
+ "$ref": "./publicIpAddress.json#/definitions/PublicIPAddress",
+ "description": "The reference to the Public IP resource."
+ },
+ "publicIPPrefix": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "The reference to the Public IP Prefix resource."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the frontend IP configuration resource."
+ }
+ },
+ "description": "Properties of Frontend IP Configuration of the load balancer."
+ },
+ "FrontendIPConfiguration": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/FrontendIPConfigurationPropertiesFormat",
+ "description": "Properties of the load balancer probe."
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of the resource that is unique within the set of frontend IP configurations used by the load balancer. 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."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Type of the resource."
+ },
+ "zones": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "A list of availability zones denoting the IP allocated for the resource needs to come from."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "Frontend IP address of the load balancer."
+ },
+ "LoadBalancerBackendAddressPropertiesFormat": {
+ "properties": {
+ "virtualNetwork": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "Reference to an existing virtual network."
+ },
+ "ipAddress": {
+ "type": "string",
+ "description": "IP Address belonging to the referenced virtual network.",
+ "x-ms-azure-resource": false
+ },
+ "networkInterfaceIPConfiguration": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "Reference to IP address defined in network interfaces."
+ },
+ "loadBalancerFrontendIPConfiguration": {
+ "readOnly": false,
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "Reference to the frontend ip address configuration defined in regional loadbalancer."
+ }
+ },
+ "description": "Properties of the load balancer backend addresses."
+ },
+ "LoadBalancerBackendAddress": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/LoadBalancerBackendAddressPropertiesFormat",
+ "description": "Properties of load balancer backend address pool."
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the backend address."
+ }
+ },
+ "description": "Load balancer backend addresses."
+ },
+ "BackendAddressPoolPropertiesFormat": {
+ "properties": {
+ "loadBalancerBackendAddresses": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/LoadBalancerBackendAddress"
+ },
+ "description": "An array of backend addresses."
+ },
+ "backendIPConfigurations": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "./networkInterface.json#/definitions/NetworkInterfaceIPConfiguration"
+ },
+ "description": "An array of references to IP addresses defined in network interfaces."
+ },
+ "loadBalancingRules": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "./network.json#/definitions/SubResource"
+ },
+ "description": "An array of references to load balancing rules that use this backend address pool."
+ },
+ "outboundRule": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "A reference to an outbound rule that uses this backend address pool."
+ },
+ "outboundRules": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "./network.json#/definitions/SubResource"
+ },
+ "description": "An array of references to outbound rules that use this backend address pool."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the backend address pool resource."
+ }
+ },
+ "description": "Properties of the backend address pool."
+ },
+ "BackendAddressPool": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/BackendAddressPoolPropertiesFormat",
+ "description": "Properties of load balancer backend address pool."
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of the resource that is unique within the set of backend address pools used by the load balancer. 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."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Type of the resource."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "Pool of backend IP addresses."
+ },
+ "LoadBalancingRulePropertiesFormat": {
+ "properties": {
+ "frontendIPConfiguration": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "A reference to frontend IP addresses."
+ },
+ "backendAddressPool": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "A reference to a pool of DIPs. Inbound traffic is randomly load balanced across IPs in the backend IPs."
+ },
+ "probe": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "The reference to the load balancer probe used by the load balancing rule."
+ },
+ "protocol": {
+ "$ref": "#/definitions/TransportProtocol",
+ "description": "The reference to the transport protocol used by the load balancing rule."
+ },
+ "loadDistribution": {
+ "type": "string",
+ "description": "The load distribution policy for this rule.",
+ "enum": [
+ "Default",
+ "SourceIP",
+ "SourceIPProtocol"
+ ],
+ "x-ms-enum": {
+ "name": "LoadDistribution",
+ "modelAsString": true
+ }
+ },
+ "frontendPort": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The port for the external endpoint. Port numbers for each rule must be unique within the Load Balancer. Acceptable values are between 0 and 65534. Note that value 0 enables \"Any Port\"."
+ },
+ "backendPort": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The port used for internal connections on the endpoint. Acceptable values are between 0 and 65535. Note that value 0 enables \"Any Port\"."
+ },
+ "idleTimeoutInMinutes": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The timeout for the TCP idle connection. The value can be set between 4 and 30 minutes. The default value is 4 minutes. This element is only used when the protocol is set to TCP."
+ },
+ "enableFloatingIP": {
+ "type": "boolean",
+ "description": "Configures a virtual machine's endpoint for the floating IP capability required to configure a SQL AlwaysOn Availability Group. This setting is required when using the SQL AlwaysOn Availability Groups in SQL server. This setting can't be changed after you create the endpoint."
+ },
+ "enableTcpReset": {
+ "type": "boolean",
+ "description": "Receive bidirectional TCP Reset on TCP flow idle timeout or unexpected connection termination. This element is only used when the protocol is set to TCP."
+ },
+ "disableOutboundSnat": {
+ "type": "boolean",
+ "description": "Configures SNAT for the VMs in the backend pool to use the publicIP address specified in the frontend of the load balancing rule."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the load balancing rule resource."
+ }
+ },
+ "required": [
+ "protocol",
+ "frontendPort"
+ ],
+ "description": "Properties of the load balancer."
+ },
+ "LoadBalancingRule": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/LoadBalancingRulePropertiesFormat",
+ "description": "Properties of load balancer load balancing rule."
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of the resource that is unique within the set of load balancing rules used by the load balancer. 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."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Type of the resource."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "A load balancing rule for a load balancer."
+ },
+ "ProbePropertiesFormat": {
+ "properties": {
+ "loadBalancingRules": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "./network.json#/definitions/SubResource"
+ },
+ "description": "The load balancer rules that use this probe."
+ },
+ "protocol": {
+ "type": "string",
+ "description": "The protocol of the end point. If 'Tcp' is specified, a received ACK is required for the probe to be successful. If 'Http' or 'Https' is specified, a 200 OK response from the specifies URI is required for the probe to be successful.",
+ "enum": [
+ "Http",
+ "Tcp",
+ "Https"
+ ],
+ "x-ms-enum": {
+ "name": "ProbeProtocol",
+ "modelAsString": true
+ }
+ },
+ "port": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The port for communicating the probe. Possible values range from 1 to 65535, inclusive."
+ },
+ "intervalInSeconds": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The interval, in seconds, for how frequently to probe the endpoint for health status. Typically, the interval is slightly less than half the allocated timeout period (in seconds) which allows two full probes before taking the instance out of rotation. The default value is 15, the minimum value is 5."
+ },
+ "numberOfProbes": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The number of probes where if no response, will result in stopping further traffic from being delivered to the endpoint. This values allows endpoints to be taken out of rotation faster or slower than the typical times used in Azure."
+ },
+ "requestPath": {
+ "type": "string",
+ "description": "The URI used for requesting health status from the VM. Path is required if a protocol is set to http. Otherwise, it is not allowed. There is no default value."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the probe resource."
+ }
+ },
+ "required": [
+ "protocol",
+ "port"
+ ],
+ "description": "Load balancer probe resource."
+ },
+ "Probe": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ProbePropertiesFormat",
+ "description": "Properties of load balancer probe."
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of the resource that is unique within the set of probes used by the load balancer. 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."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Type of the resource."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "A load balancer probe."
+ },
+ "InboundNatRulePropertiesFormat": {
+ "properties": {
+ "frontendIPConfiguration": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "A reference to frontend IP addresses."
+ },
+ "backendIPConfiguration": {
+ "readOnly": true,
+ "$ref": "./networkInterface.json#/definitions/NetworkInterfaceIPConfiguration",
+ "description": "A reference to a private IP address defined on a network interface of a VM. Traffic sent to the frontend port of each of the frontend IP configurations is forwarded to the backend IP."
+ },
+ "protocol": {
+ "$ref": "#/definitions/TransportProtocol",
+ "description": "The reference to the transport protocol used by the load balancing rule."
+ },
+ "frontendPort": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The port for the external endpoint. Port numbers for each rule must be unique within the Load Balancer. Acceptable values range from 1 to 65534."
+ },
+ "backendPort": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The port used for the internal endpoint. Acceptable values range from 1 to 65535."
+ },
+ "idleTimeoutInMinutes": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The timeout for the TCP idle connection. The value can be set between 4 and 30 minutes. The default value is 4 minutes. This element is only used when the protocol is set to TCP."
+ },
+ "enableFloatingIP": {
+ "type": "boolean",
+ "description": "Configures a virtual machine's endpoint for the floating IP capability required to configure a SQL AlwaysOn Availability Group. This setting is required when using the SQL AlwaysOn Availability Groups in SQL server. This setting can't be changed after you create the endpoint."
+ },
+ "enableTcpReset": {
+ "type": "boolean",
+ "description": "Receive bidirectional TCP Reset on TCP flow idle timeout or unexpected connection termination. This element is only used when the protocol is set to TCP."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the inbound NAT rule resource."
+ }
+ },
+ "description": "Properties of the inbound NAT rule."
+ },
+ "InboundNatRule": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/InboundNatRulePropertiesFormat",
+ "description": "Properties of load balancer inbound nat rule."
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of the resource that is unique within the set of inbound NAT rules used by the load balancer. 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."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Type of the resource."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "Inbound NAT rule of the load balancer."
+ },
+ "InboundNatPoolPropertiesFormat": {
+ "properties": {
+ "frontendIPConfiguration": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "A reference to frontend IP addresses."
+ },
+ "protocol": {
+ "$ref": "#/definitions/TransportProtocol",
+ "description": "The reference to the transport protocol used by the inbound NAT pool."
+ },
+ "frontendPortRangeStart": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The first port number in the range of external ports that will be used to provide Inbound Nat to NICs associated with a load balancer. Acceptable values range between 1 and 65534."
+ },
+ "frontendPortRangeEnd": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The last port number in the range of external ports that will be used to provide Inbound Nat to NICs associated with a load balancer. Acceptable values range between 1 and 65535."
+ },
+ "backendPort": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The port used for internal connections on the endpoint. Acceptable values are between 1 and 65535."
+ },
+ "idleTimeoutInMinutes": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The timeout for the TCP idle connection. The value can be set between 4 and 30 minutes. The default value is 4 minutes. This element is only used when the protocol is set to TCP."
+ },
+ "enableFloatingIP": {
+ "type": "boolean",
+ "description": "Configures a virtual machine's endpoint for the floating IP capability required to configure a SQL AlwaysOn Availability Group. This setting is required when using the SQL AlwaysOn Availability Groups in SQL server. This setting can't be changed after you create the endpoint."
+ },
+ "enableTcpReset": {
+ "type": "boolean",
+ "description": "Receive bidirectional TCP Reset on TCP flow idle timeout or unexpected connection termination. This element is only used when the protocol is set to TCP."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the inbound NAT pool resource."
+ }
+ },
+ "required": [
+ "protocol",
+ "frontendPortRangeStart",
+ "frontendPortRangeEnd",
+ "backendPort"
+ ],
+ "description": "Properties of Inbound NAT pool."
+ },
+ "InboundNatPool": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/InboundNatPoolPropertiesFormat",
+ "description": "Properties of load balancer inbound nat pool."
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of the resource that is unique within the set of inbound NAT pools used by the load balancer. 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."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Type of the resource."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "Inbound NAT pool of the load balancer."
+ },
+ "OutboundRulePropertiesFormat": {
+ "properties": {
+ "allocatedOutboundPorts": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The number of outbound ports to be used for NAT."
+ },
+ "frontendIPConfigurations": {
+ "type": "array",
+ "items": {
+ "$ref": "./network.json#/definitions/SubResource"
+ },
+ "description": "The Frontend IP addresses of the load balancer."
+ },
+ "backendAddressPool": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "A reference to a pool of DIPs. Outbound traffic is randomly load balanced across IPs in the backend IPs."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the outbound rule resource."
+ },
+ "protocol": {
+ "type": "string",
+ "description": "The protocol for the outbound rule in load balancer.",
+ "enum": [
+ "Tcp",
+ "Udp",
+ "All"
+ ],
+ "x-ms-enum": {
+ "name": "LoadBalancerOutboundRuleProtocol",
+ "modelAsString": true
+ }
+ },
+ "enableTcpReset": {
+ "type": "boolean",
+ "description": "Receive bidirectional TCP Reset on TCP flow idle timeout or unexpected connection termination. This element is only used when the protocol is set to TCP."
+ },
+ "idleTimeoutInMinutes": {
+ "type": "integer",
+ "description": "The timeout for the TCP idle connection."
+ }
+ },
+ "required": [
+ "backendAddressPool",
+ "frontendIPConfigurations",
+ "protocol"
+ ],
+ "description": "Outbound rule of the load balancer."
+ },
+ "OutboundRule": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/OutboundRulePropertiesFormat",
+ "description": "Properties of load balancer outbound rule."
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of the resource that is unique within the set of outbound rules used by the load balancer. 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."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Type of the resource."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "Outbound rule of the load balancer."
+ },
+ "LoadBalancerPropertiesFormat": {
+ "properties": {
+ "frontendIPConfigurations": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/FrontendIPConfiguration"
+ },
+ "description": "Object representing the frontend IPs to be used for the load balancer."
+ },
+ "backendAddressPools": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/BackendAddressPool"
+ },
+ "description": "Collection of backend address pools used by a load balancer."
+ },
+ "loadBalancingRules": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/LoadBalancingRule"
+ },
+ "description": "Object collection representing the load balancing rules Gets the provisioning."
+ },
+ "probes": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Probe"
+ },
+ "description": "Collection of probe objects used in the load balancer."
+ },
+ "inboundNatRules": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/InboundNatRule"
+ },
+ "description": "Collection of inbound NAT Rules used by a load balancer. Defining inbound NAT rules on your load balancer is mutually exclusive with defining an inbound NAT pool. Inbound NAT pools are referenced from virtual machine scale sets. NICs that are associated with individual virtual machines cannot reference an Inbound NAT pool. They have to reference individual inbound NAT rules."
+ },
+ "inboundNatPools": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/InboundNatPool"
+ },
+ "description": "Defines an external port range for inbound NAT to a single backend port on NICs associated with a load balancer. Inbound NAT rules are created automatically for each NIC associated with the Load Balancer using an external port from this range. Defining an Inbound NAT pool on your Load Balancer is mutually exclusive with defining inbound Nat rules. Inbound NAT pools are referenced from virtual machine scale sets. NICs that are associated with individual virtual machines cannot reference an inbound NAT pool. They have to reference individual inbound NAT rules."
+ },
+ "outboundRules": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/OutboundRule"
+ },
+ "description": "The outbound rules."
+ },
+ "resourceGuid": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource GUID property of the load balancer resource."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the load balancer resource."
+ }
+ },
+ "description": "Properties of the load balancer."
+ },
+ "LoadBalancer": {
+ "properties": {
+ "extendedLocation": {
+ "$ref": "./network.json#/definitions/ExtendedLocation",
+ "description": "The extended location of the load balancer."
+ },
+ "sku": {
+ "$ref": "#/definitions/LoadBalancerSku",
+ "description": "The load balancer SKU."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/LoadBalancerPropertiesFormat",
+ "description": "Properties of load balancer."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "description": "LoadBalancer resource."
+ },
+ "LoadBalancerListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/LoadBalancer"
+ },
+ "description": "A list of load balancers in a resource group."
+ },
+ "nextLink": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for ListLoadBalancers API service call."
+ },
+ "InboundNatRuleListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/InboundNatRule"
+ },
+ "description": "A list of inbound nat rules in a load balancer."
+ },
+ "nextLink": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for ListInboundNatRule API service call."
+ },
+ "LoadBalancerBackendAddressPoolListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/BackendAddressPool"
+ },
+ "description": "A list of backend address pools in a load balancer."
+ },
+ "nextLink": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for ListBackendAddressPool API service call."
+ },
+ "LoadBalancerFrontendIPConfigurationListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/FrontendIPConfiguration"
+ },
+ "description": "A list of frontend IP configurations in a load balancer."
+ },
+ "nextLink": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for ListFrontendIPConfiguration API service call."
+ },
+ "LoadBalancerLoadBalancingRuleListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/LoadBalancingRule"
+ },
+ "description": "A list of load balancing rules in a load balancer."
+ },
+ "nextLink": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for ListLoadBalancingRule API service call."
+ },
+ "LoadBalancerOutboundRuleListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/OutboundRule"
+ },
+ "description": "A list of outbound rules in a load balancer."
+ },
+ "nextLink": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for ListOutboundRule API service call."
+ },
+ "LoadBalancerProbeListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Probe"
+ },
+ "description": "A list of probes in a load balancer."
+ },
+ "nextLink": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for ListProbe API service call."
+ },
+ "TransportProtocol": {
+ "type": "string",
+ "description": "The transport protocol for the endpoint.",
+ "enum": [
+ "Udp",
+ "Tcp",
+ "All"
+ ],
+ "x-ms-enum": {
+ "name": "TransportProtocol",
+ "modelAsString": true
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/natGateway.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/natGateway.json
new file mode 100644
index 000000000000..153f5b961f80
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/natGateway.json
@@ -0,0 +1,469 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "NetworkManagementClient",
+ "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
+ "version": "2020-07-01"
+ },
+ "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/natGateways/{natGatewayName}": {
+ "delete": {
+ "tags": [
+ "NatGateways"
+ ],
+ "operationId": "NatGateways_Delete",
+ "description": "Deletes the specified nat gateway.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "natGatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the nat gateway."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Request successful. Resource does not exist."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "200": {
+ "description": "Delete successful."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete nat gateway": {
+ "$ref": "./examples/NatGatewayDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ },
+ "get": {
+ "tags": [
+ "NatGateways"
+ ],
+ "operationId": "NatGateways_Get",
+ "description": "Gets the specified nat gateway in a specified resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "natGatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the nat gateway."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Expands referenced resources."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting NatGateway resource.",
+ "schema": {
+ "$ref": "#/definitions/NatGateway"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get nat gateway": {
+ "$ref": "./examples/NatGatewayGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "NatGateways"
+ ],
+ "operationId": "NatGateways_CreateOrUpdate",
+ "description": "Creates or updates a nat gateway.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "natGatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the nat gateway."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/NatGateway"
+ },
+ "description": "Parameters supplied to the create or update nat gateway operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Create successful. The operation returns the resulting NatGateway resource.",
+ "schema": {
+ "$ref": "#/definitions/NatGateway"
+ }
+ },
+ "200": {
+ "description": "Update successful. The operation returns the resulting NatGateway resource.",
+ "schema": {
+ "$ref": "#/definitions/NatGateway"
+ }
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create nat gateway": {
+ "$ref": "./examples/NatGatewayCreateOrUpdate.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ },
+ "patch": {
+ "tags": [
+ "NatGateways"
+ ],
+ "operationId": "NatGateways_UpdateTags",
+ "description": "Updates nat gateway tags.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "natGatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the nat gateway."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./network.json#/definitions/TagsObject"
+ },
+ "description": "Parameters supplied to update nat gateway tags."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update successful. The operation returns the resulting NatGateway resource.",
+ "schema": {
+ "$ref": "#/definitions/NatGateway"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update nat gateway tags": {
+ "$ref": "./examples/NatGatewayUpdateTags.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/natGateways": {
+ "get": {
+ "tags": [
+ "NatGateways"
+ ],
+ "operationId": "NatGateways_ListAll",
+ "description": "Gets all the Nat Gateways in a subscription.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of NatGateway resources.",
+ "schema": {
+ "$ref": "#/definitions/NatGatewayListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List all nat gateways": {
+ "$ref": "./examples/NatGatewayListAll.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/natGateways": {
+ "get": {
+ "tags": [
+ "NatGateways"
+ ],
+ "operationId": "NatGateways_List",
+ "description": "Gets all nat gateways in a resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of NatGateway resources.",
+ "schema": {
+ "$ref": "#/definitions/NatGatewayListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List nat gateways in resource group": {
+ "$ref": "./examples/NatGatewayList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "NatGatewaySku": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name of Nat Gateway SKU.",
+ "enum": [
+ "Standard"
+ ],
+ "x-ms-enum": {
+ "name": "NatGatewaySkuName",
+ "modelAsString": true
+ }
+ }
+ },
+ "description": "SKU of nat gateway."
+ },
+ "NatGatewayPropertiesFormat": {
+ "properties": {
+ "idleTimeoutInMinutes": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The idle timeout of the nat gateway."
+ },
+ "publicIpAddresses": {
+ "type": "array",
+ "items": {
+ "$ref": "./network.json#/definitions/SubResource"
+ },
+ "description": "An array of public ip addresses associated with the nat gateway resource."
+ },
+ "publicIpPrefixes": {
+ "type": "array",
+ "items": {
+ "$ref": "./network.json#/definitions/SubResource"
+ },
+ "description": "An array of public ip prefixes associated with the nat gateway resource."
+ },
+ "subnets": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "./network.json#/definitions/SubResource"
+ },
+ "description": "An array of references to the subnets using this nat gateway resource."
+ },
+ "resourceGuid": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource GUID property of the NAT gateway resource."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the NAT gateway resource."
+ }
+ },
+ "description": "Nat Gateway properties."
+ },
+ "NatGateway": {
+ "properties": {
+ "sku": {
+ "$ref": "#/definitions/NatGatewaySku",
+ "description": "The nat gateway SKU."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/NatGatewayPropertiesFormat",
+ "description": "Nat Gateway properties."
+ },
+ "zones": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "A list of availability zones denoting the zone in which Nat Gateway should be deployed."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "description": "Nat Gateway resource."
+ },
+ "NatGatewayListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NatGateway"
+ },
+ "description": "A list of Nat Gateways that exists in a resource group."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for ListNatGateways API service call."
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/network.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/network.json
new file mode 100644
index 000000000000..a2e2b3394fdd
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/network.json
@@ -0,0 +1,363 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "NetworkManagementClient",
+ "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
+ "version": "2020-07-01"
+ },
+ "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": {},
+ "definitions": {
+ "ErrorDetails": {
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "Error code."
+ },
+ "target": {
+ "type": "string",
+ "description": "Error target."
+ },
+ "message": {
+ "type": "string",
+ "description": "Error message."
+ }
+ },
+ "description": "Common error details representation."
+ },
+ "Error": {
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "Error code."
+ },
+ "message": {
+ "type": "string",
+ "description": "Error message."
+ },
+ "target": {
+ "type": "string",
+ "description": "Error target."
+ },
+ "details": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorDetails"
+ },
+ "description": "Error details."
+ },
+ "innerError": {
+ "type": "string",
+ "description": "Inner error message."
+ }
+ },
+ "description": "Common error representation."
+ },
+ "CloudError": {
+ "x-ms-external": true,
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/CloudErrorBody",
+ "description": "Cloud error body."
+ }
+ },
+ "description": "An error response from the service."
+ },
+ "CloudErrorBody": {
+ "x-ms-external": true,
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "An identifier for the error. Codes are invariant and are intended to be consumed programmatically."
+ },
+ "message": {
+ "type": "string",
+ "description": "A message describing the error, intended to be suitable for display in a user interface."
+ },
+ "target": {
+ "type": "string",
+ "description": "The target of the particular error. For example, the name of the property in error."
+ },
+ "details": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CloudErrorBody"
+ },
+ "description": "A list of additional details about the error."
+ }
+ },
+ "description": "An error response from the service."
+ },
+ "AzureAsyncOperationResult": {
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "Status of the Azure async operation.",
+ "enum": [
+ "InProgress",
+ "Succeeded",
+ "Failed"
+ ],
+ "x-ms-enum": {
+ "name": "NetworkOperationStatus",
+ "modelAsString": true
+ }
+ },
+ "error": {
+ "$ref": "#/definitions/Error",
+ "description": "Details of the error occurred during specified asynchronous operation."
+ }
+ },
+ "description": "The response body contains the status of the specified asynchronous operation, indicating whether it has succeeded, is in progress, or has failed. Note that this status is distinct from the HTTP status code returned for the Get Operation Status operation itself. If the asynchronous operation succeeded, the response body includes the HTTP status code for the successful request. If the asynchronous operation failed, the response body includes the HTTP status code for the failed request and error information regarding the failure."
+ },
+ "Resource": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Resource ID."
+ },
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource name."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource type."
+ },
+ "location": {
+ "type": "string",
+ "description": "Resource location."
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags."
+ }
+ },
+ "description": "Common resource representation.",
+ "x-ms-azure-resource": true
+ },
+ "SubResource": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Resource ID."
+ }
+ },
+ "description": "Reference to another subresource.",
+ "x-ms-azure-resource": true
+ },
+ "TagsObject": {
+ "properties": {
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags."
+ }
+ },
+ "description": "Tags object for patch operations."
+ },
+ "ManagedServiceIdentity": {
+ "properties": {
+ "principalId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The principal id of the system assigned identity. This property will only be provided for a system assigned identity."
+ },
+ "tenantId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The tenant id of the system assigned identity. This property will only be provided for a system assigned identity."
+ },
+ "type": {
+ "type": "string",
+ "description": "The type of identity used for the resource. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the virtual machine.",
+ "enum": [
+ "SystemAssigned",
+ "UserAssigned",
+ "SystemAssigned, UserAssigned",
+ "None"
+ ],
+ "x-ms-enum": {
+ "name": "ResourceIdentityType",
+ "modelAsString": false
+ }
+ },
+ "userAssignedIdentities": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "object",
+ "properties": {
+ "principalId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The principal id of user assigned identity."
+ },
+ "clientId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The client id of user assigned identity."
+ }
+ }
+ },
+ "description": "The list of user identities associated with resource. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'."
+ }
+ },
+ "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
+ }
+ },
+ "Access": {
+ "type": "string",
+ "description": "Access to be allowed or denied.",
+ "enum": [
+ "Allow",
+ "Deny"
+ ],
+ "x-ms-enum": {
+ "name": "Access",
+ "modelAsString": true
+ }
+ },
+ "AuthenticationMethod": {
+ "type": "string",
+ "description": "VPN client authentication method.",
+ "enum": [
+ "EAPTLS",
+ "EAPMSCHAPv2"
+ ],
+ "x-ms-enum": {
+ "name": "AuthenticationMethod",
+ "modelAsString": true
+ }
+ },
+ "IPAllocationMethod": {
+ "type": "string",
+ "description": "IP address allocation method.",
+ "enum": [
+ "Static",
+ "Dynamic"
+ ],
+ "x-ms-enum": {
+ "name": "IPAllocationMethod",
+ "modelAsString": true
+ }
+ },
+ "IPVersion": {
+ "type": "string",
+ "description": "IP address version.",
+ "enum": [
+ "IPv4",
+ "IPv6"
+ ],
+ "x-ms-enum": {
+ "name": "IPVersion",
+ "modelAsString": true
+ }
+ },
+ "ExtendedLocationType": {
+ "type": "string",
+ "description": "The supported ExtendedLocation types. Currently only EdgeZone is supported in Microsoft.Network resources.",
+ "enum": [
+ "EdgeZone"
+ ],
+ "x-ms-enum": {
+ "name": "ExtendedLocationTypes",
+ "modelAsString": true
+ }
+ },
+ "ExtendedLocation": {
+ "description": "ExtendedLocation complex type.",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the extended location."
+ },
+ "type": {
+ "$ref": "#/definitions/ExtendedLocationType",
+ "description": "The type of the extended location."
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ]
+ }
+ },
+ "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."
+ },
+ "ApiVersionVmssParameter": {
+ "name": "api-version",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "2017-03-30"
+ ],
+ "x-ms-enum": {
+ "name": "ApiVersion",
+ "modelAsString": true
+ },
+ "description": "Client API version."
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/networkInterface.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/networkInterface.json
new file mode 100644
index 000000000000..e16b18732254
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/networkInterface.json
@@ -0,0 +1,1531 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "NetworkManagementClient",
+ "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
+ "version": "2020-07-01"
+ },
+ "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/networkInterfaces/{networkInterfaceName}": {
+ "delete": {
+ "tags": [
+ "NetworkInterfaces"
+ ],
+ "operationId": "NetworkInterfaces_Delete",
+ "description": "Deletes the specified network interface.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkInterfaceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network interface."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Request successful. Resource does not exist."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "200": {
+ "description": "Delete successful."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete network interface": {
+ "$ref": "./examples/NetworkInterfaceDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ },
+ "get": {
+ "tags": [
+ "NetworkInterfaces"
+ ],
+ "operationId": "NetworkInterfaces_Get",
+ "description": "Gets information about the specified network interface.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkInterfaceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network interface."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Expands referenced resources."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting NetworkInterface resource.",
+ "schema": {
+ "$ref": "#/definitions/NetworkInterface"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get network interface": {
+ "$ref": "./examples/NetworkInterfaceGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "NetworkInterfaces"
+ ],
+ "operationId": "NetworkInterfaces_CreateOrUpdate",
+ "description": "Creates or updates a network interface.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkInterfaceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network interface."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/NetworkInterface"
+ },
+ "description": "Parameters supplied to the create or update network interface operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Create successful. The operation returns the resulting NetworkInterface resource.",
+ "schema": {
+ "$ref": "#/definitions/NetworkInterface"
+ }
+ },
+ "200": {
+ "description": "Update successful. The operation returns the resulting NetworkInterface resource.",
+ "schema": {
+ "$ref": "#/definitions/NetworkInterface"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create network interface": {
+ "$ref": "./examples/NetworkInterfaceCreate.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ },
+ "patch": {
+ "tags": [
+ "NetworkInterfaces"
+ ],
+ "operationId": "NetworkInterfaces_UpdateTags",
+ "description": "Updates a network interface tags.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkInterfaceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network interface."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./network.json#/definitions/TagsObject"
+ },
+ "description": "Parameters supplied to update network interface tags."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update successful. The operation returns the resulting NetworkInterface resource.",
+ "schema": {
+ "$ref": "#/definitions/NetworkInterface"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update network interface tags": {
+ "$ref": "./examples/NetworkInterfaceUpdateTags.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/networkInterfaces": {
+ "get": {
+ "tags": [
+ "NetworkInterfaces"
+ ],
+ "operationId": "NetworkInterfaces_ListAll",
+ "description": "Gets all network interfaces in a subscription.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of NetworkInterface resources.",
+ "schema": {
+ "$ref": "#/definitions/NetworkInterfaceListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List all network interfaces": {
+ "$ref": "./examples/NetworkInterfaceListAll.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces": {
+ "get": {
+ "tags": [
+ "NetworkInterfaces"
+ ],
+ "operationId": "NetworkInterfaces_List",
+ "description": "Gets all network interfaces in a resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of NetworkInterface resources.",
+ "schema": {
+ "$ref": "#/definitions/NetworkInterfaceListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List network interfaces in resource group": {
+ "$ref": "./examples/NetworkInterfaceList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces/{networkInterfaceName}/effectiveRouteTable": {
+ "post": {
+ "tags": [
+ "NetworkInterfaces"
+ ],
+ "operationId": "NetworkInterfaces_GetEffectiveRouteTable",
+ "description": "Gets all route tables applied to a network interface.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkInterfaceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network interface."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of EffectRoute resources.",
+ "schema": {
+ "$ref": "#/definitions/EffectiveRouteListResult"
+ }
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Show network interface effective route tables": {
+ "$ref": "./examples/NetworkInterfaceEffectiveRouteTableList.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces/{networkInterfaceName}/effectiveNetworkSecurityGroups": {
+ "post": {
+ "tags": [
+ "NetworkInterfaces"
+ ],
+ "operationId": "NetworkInterfaces_ListEffectiveNetworkSecurityGroups",
+ "description": "Gets all network security groups applied to a network interface.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkInterfaceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network interface."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of NetworkSecurityGroup resources.",
+ "schema": {
+ "$ref": "#/definitions/EffectiveNetworkSecurityGroupListResult"
+ }
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List network interface effective network security groups": {
+ "$ref": "./examples/NetworkInterfaceEffectiveNSGList.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces/{networkInterfaceName}/ipConfigurations": {
+ "get": {
+ "tags": [
+ "NetworkInterfaces"
+ ],
+ "operationId": "NetworkInterfaceIPConfigurations_List",
+ "description": "Get all ip configurations in a network interface.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkInterfaceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network interface."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of NetworkInterface IPConfiguration resources.",
+ "schema": {
+ "$ref": "#/definitions/NetworkInterfaceIPConfigurationListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "NetworkInterfaceIPConfigurationList": {
+ "$ref": "./examples/NetworkInterfaceIPConfigurationList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces/{networkInterfaceName}/ipConfigurations/{ipConfigurationName}": {
+ "get": {
+ "tags": [
+ "NetworkInterfaces"
+ ],
+ "operationId": "NetworkInterfaceIPConfigurations_Get",
+ "description": "Gets the specified network interface ip configuration.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkInterfaceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network interface."
+ },
+ {
+ "name": "ipConfigurationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the ip configuration name."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting NetworkInterface IPConfiguration resource.",
+ "schema": {
+ "$ref": "#/definitions/NetworkInterfaceIPConfiguration"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "NetworkInterfaceIPConfigurationGet": {
+ "$ref": "./examples/NetworkInterfaceIPConfigurationGet.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces/{networkInterfaceName}/loadBalancers": {
+ "get": {
+ "tags": [
+ "NetworkInterfaces"
+ ],
+ "operationId": "NetworkInterfaceLoadBalancers_List",
+ "description": "List all load balancers in a network interface.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkInterfaceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network interface."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of NetworkInterface LoadBalancer resources.",
+ "schema": {
+ "$ref": "#/definitions/NetworkInterfaceLoadBalancerListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "NetworkInterfaceLoadBalancerList": {
+ "$ref": "./examples/NetworkInterfaceLoadBalancerList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces/{networkInterfaceName}/tapConfigurations/{tapConfigurationName}": {
+ "delete": {
+ "tags": [
+ "Network Interfaces"
+ ],
+ "operationId": "NetworkInterfaceTapConfigurations_Delete",
+ "description": "Deletes the specified tap configuration from the NetworkInterface.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkInterfaceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network interface."
+ },
+ {
+ "name": "tapConfigurationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the tap configuration."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Delete successful."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "204": {
+ "description": "Delete successful."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete tap configuration": {
+ "$ref": "./examples/NetworkInterfaceTapConfigurationDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ },
+ "get": {
+ "tags": [
+ "NetworkInterfaces"
+ ],
+ "operationId": "NetworkInterfaceTapConfigurations_Get",
+ "description": "Get the specified tap configuration on a network interface.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkInterfaceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network interface."
+ },
+ {
+ "name": "tapConfigurationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the tap configuration."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a tap configuration.",
+ "schema": {
+ "$ref": "#/definitions/NetworkInterfaceTapConfiguration"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Network Interface Tap Configurations": {
+ "$ref": "./examples/NetworkInterfaceTapConfigurationGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Network Interfaces"
+ ],
+ "operationId": "NetworkInterfaceTapConfigurations_CreateOrUpdate",
+ "description": "Creates or updates a Tap configuration in the specified NetworkInterface.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkInterfaceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network interface."
+ },
+ {
+ "name": "tapConfigurationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the tap configuration."
+ },
+ {
+ "name": "tapConfigurationParameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/NetworkInterfaceTapConfiguration"
+ },
+ "description": "Parameters supplied to the create or update tap configuration operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update successful. The operation returns the resulting Tap Configuration resource.",
+ "schema": {
+ "$ref": "#/definitions/NetworkInterfaceTapConfiguration"
+ }
+ },
+ "201": {
+ "description": "Create successful. The operation returns the resulting Tap configuration resource.",
+ "schema": {
+ "$ref": "#/definitions/NetworkInterfaceTapConfiguration"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create Network Interface Tap Configurations": {
+ "$ref": "./examples/NetworkInterfaceTapConfigurationCreate.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces/{networkInterfaceName}/tapConfigurations": {
+ "get": {
+ "tags": [
+ "NetworkInterfaces"
+ ],
+ "operationId": "NetworkInterfaceTapConfigurations_List",
+ "description": "Get all Tap configurations in a network interface.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkInterfaceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network interface."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of NetworkInterface TapConfiguration resources.",
+ "schema": {
+ "$ref": "#/definitions/NetworkInterfaceTapConfigurationListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List virtual network tap configurations": {
+ "$ref": "./examples/NetworkInterfaceTapConfigurationList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "NetworkInterfaceTapConfiguration": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/NetworkInterfaceTapConfigurationPropertiesFormat",
+ "description": "Properties of the Virtual Network Tap configuration."
+ },
+ "name": {
+ "type": "string",
+ "description": "The 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."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Sub Resource type."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "Tap configuration in a Network Interface."
+ },
+ "NetworkInterfaceTapConfigurationPropertiesFormat": {
+ "properties": {
+ "virtualNetworkTap": {
+ "$ref": "./virtualNetworkTap.json#/definitions/VirtualNetworkTap",
+ "description": "The reference to the Virtual Network Tap resource."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the network interface tap configuration resource."
+ }
+ },
+ "description": "Properties of Virtual Network Tap configuration."
+ },
+ "NetworkInterfaceIPConfigurationPropertiesFormat": {
+ "properties": {
+ "virtualNetworkTaps": {
+ "type": "array",
+ "items": {
+ "$ref": "./virtualNetworkTap.json#/definitions/VirtualNetworkTap"
+ },
+ "description": "The reference to Virtual Network Taps."
+ },
+ "applicationGatewayBackendAddressPools": {
+ "type": "array",
+ "items": {
+ "$ref": "./applicationGateway.json#/definitions/ApplicationGatewayBackendAddressPool"
+ },
+ "description": "The reference to ApplicationGatewayBackendAddressPool resource."
+ },
+ "loadBalancerBackendAddressPools": {
+ "type": "array",
+ "items": {
+ "$ref": "./loadBalancer.json#/definitions/BackendAddressPool"
+ },
+ "description": "The reference to LoadBalancerBackendAddressPool resource."
+ },
+ "loadBalancerInboundNatRules": {
+ "type": "array",
+ "items": {
+ "$ref": "./loadBalancer.json#/definitions/InboundNatRule"
+ },
+ "description": "A list of references of LoadBalancerInboundNatRules."
+ },
+ "privateIPAddress": {
+ "type": "string",
+ "description": "Private IP address of the IP configuration."
+ },
+ "privateIPAllocationMethod": {
+ "$ref": "./network.json#/definitions/IPAllocationMethod",
+ "description": "The private IP address allocation method."
+ },
+ "privateIPAddressVersion": {
+ "$ref": "./network.json#/definitions/IPVersion",
+ "description": "Whether the specific IP configuration is IPv4 or IPv6. Default is IPv4."
+ },
+ "subnet": {
+ "$ref": "./virtualNetwork.json#/definitions/Subnet",
+ "description": "Subnet bound to the IP configuration."
+ },
+ "primary": {
+ "type": "boolean",
+ "description": "Whether this is a primary customer address on the network interface."
+ },
+ "publicIPAddress": {
+ "$ref": "./publicIpAddress.json#/definitions/PublicIPAddress",
+ "description": "Public IP address bound to the IP configuration."
+ },
+ "applicationSecurityGroups": {
+ "type": "array",
+ "items": {
+ "$ref": "./applicationSecurityGroup.json#/definitions/ApplicationSecurityGroup"
+ },
+ "description": "Application security groups in which the IP configuration is included."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the network interface IP configuration."
+ },
+ "privateLinkConnectionProperties": {
+ "$ref": "#/definitions/NetworkInterfaceIPConfigurationPrivateLinkConnectionProperties",
+ "description": "PrivateLinkConnection properties for the network interface.",
+ "readOnly": true
+ }
+ },
+ "description": "Properties of IP configuration."
+ },
+ "NetworkInterfaceIPConfigurationPrivateLinkConnectionProperties": {
+ "properties": {
+ "groupId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The group ID for current private link connection."
+ },
+ "requiredMemberName": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The required member name for current private link connection."
+ },
+ "fqdns": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "readOnly": true,
+ "description": "List of FQDNs for current private link connection."
+ }
+ },
+ "description": "PrivateLinkConnection properties for the network interface."
+ },
+ "NetworkInterfaceIPConfiguration": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/NetworkInterfaceIPConfigurationPropertiesFormat",
+ "description": "Network interface IP configuration properties."
+ },
+ "name": {
+ "type": "string",
+ "description": "The 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": "IPConfiguration in a network interface."
+ },
+ "NetworkInterfaceDnsSettings": {
+ "properties": {
+ "dnsServers": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of DNS servers IP addresses. Use 'AzureProvidedDNS' to switch to azure provided DNS resolution. 'AzureProvidedDNS' value cannot be combined with other IPs, it must be the only value in dnsServers collection."
+ },
+ "appliedDnsServers": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "If the VM that uses this NIC is part of an Availability Set, then this list will have the union of all DNS servers from all NICs that are part of the Availability Set. This property is what is configured on each of those VMs."
+ },
+ "internalDnsNameLabel": {
+ "type": "string",
+ "description": "Relative DNS name for this NIC used for internal communications between VMs in the same virtual network."
+ },
+ "internalFqdn": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Fully qualified DNS name supporting internal communications between VMs in the same virtual network."
+ },
+ "internalDomainNameSuffix": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Even if internalDnsNameLabel is not specified, a DNS entry is created for the primary NIC of the VM. This DNS name can be constructed by concatenating the VM name with the value of internalDomainNameSuffix."
+ }
+ },
+ "description": "DNS settings of a network interface."
+ },
+ "NetworkInterfacePropertiesFormat": {
+ "properties": {
+ "virtualMachine": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "The reference to a virtual machine.",
+ "readOnly": true
+ },
+ "networkSecurityGroup": {
+ "$ref": "./networkSecurityGroup.json#/definitions/NetworkSecurityGroup",
+ "description": "The reference to the NetworkSecurityGroup resource."
+ },
+ "privateEndpoint": {
+ "readOnly": true,
+ "$ref": "./privateEndpoint.json#/definitions/PrivateEndpoint",
+ "description": "A reference to the private endpoint to which the network interface is linked."
+ },
+ "ipConfigurations": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NetworkInterfaceIPConfiguration"
+ },
+ "description": "A list of IPConfigurations of the network interface."
+ },
+ "tapConfigurations": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NetworkInterfaceTapConfiguration"
+ },
+ "description": "A list of TapConfigurations of the network interface."
+ },
+ "dnsSettings": {
+ "$ref": "#/definitions/NetworkInterfaceDnsSettings",
+ "description": "The DNS settings in network interface."
+ },
+ "macAddress": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The MAC address of the network interface."
+ },
+ "primary": {
+ "readOnly": true,
+ "type": "boolean",
+ "description": "Whether this is a primary network interface on a virtual machine."
+ },
+ "enableAcceleratedNetworking": {
+ "type": "boolean",
+ "description": "If the network interface is accelerated networking enabled."
+ },
+ "enableIPForwarding": {
+ "type": "boolean",
+ "description": "Indicates whether IP forwarding is enabled on this network interface."
+ },
+ "hostedWorkloads": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "readOnly": true,
+ "description": "A list of references to linked BareMetal resources."
+ },
+ "dscpConfiguration": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "A reference to the dscp configuration to which the network interface is linked.",
+ "readOnly": true
+ },
+ "resourceGuid": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource GUID property of the network interface resource."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the network interface resource."
+ }
+ },
+ "description": "NetworkInterface properties."
+ },
+ "NetworkInterface": {
+ "properties": {
+ "extendedLocation": {
+ "$ref": "./network.json#/definitions/ExtendedLocation",
+ "description": "The extended location of the network interface."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/NetworkInterfacePropertiesFormat",
+ "description": "Properties of the network interface."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "description": "A network interface in a resource group."
+ },
+ "NetworkInterfaceListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NetworkInterface"
+ },
+ "description": "A list of network interfaces in a resource group."
+ },
+ "nextLink": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for the ListNetworkInterface API service call."
+ },
+ "NetworkInterfaceTapConfigurationListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NetworkInterfaceTapConfiguration"
+ },
+ "description": "A list of tap configurations."
+ },
+ "nextLink": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for list tap configurations API service call."
+ },
+ "NetworkInterfaceIPConfigurationListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NetworkInterfaceIPConfiguration"
+ },
+ "description": "A list of ip configurations."
+ },
+ "nextLink": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for list ip configurations API service call."
+ },
+ "NetworkInterfaceLoadBalancerListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "./loadBalancer.json#/definitions/LoadBalancer"
+ },
+ "description": "A list of load balancers."
+ },
+ "nextLink": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for list ip configurations API service call."
+ },
+ "EffectiveNetworkSecurityGroup": {
+ "properties": {
+ "networkSecurityGroup": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "The ID of network security group that is applied."
+ },
+ "association": {
+ "$ref": "#/definitions/EffectiveNetworkSecurityGroupAssociation",
+ "description": "Associated resources."
+ },
+ "effectiveSecurityRules": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EffectiveNetworkSecurityRule"
+ },
+ "description": "A collection of effective security rules."
+ },
+ "tagMap": {
+ "type": "string",
+ "additionalProperties": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of IP Addresses within the tag (key)."
+ },
+ "description": "Mapping of tags to list of IP Addresses included within the tag."
+ }
+ },
+ "description": "Effective network security group."
+ },
+ "EffectiveNetworkSecurityGroupAssociation": {
+ "properties": {
+ "subnet": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "The ID of the subnet if assigned."
+ },
+ "networkInterface": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "The ID of the network interface if assigned."
+ }
+ },
+ "description": "The effective network security group association."
+ },
+ "EffectiveNetworkSecurityRule": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the security rule specified by the user (if created by the user)."
+ },
+ "protocol": {
+ "type": "string",
+ "description": "The network protocol this rule applies to.",
+ "enum": [
+ "Tcp",
+ "Udp",
+ "All"
+ ],
+ "x-ms-enum": {
+ "name": "EffectiveSecurityRuleProtocol",
+ "modelAsString": true
+ }
+ },
+ "sourcePortRange": {
+ "type": "string",
+ "description": "The source port or range."
+ },
+ "destinationPortRange": {
+ "type": "string",
+ "description": "The destination port or range."
+ },
+ "sourcePortRanges": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The source port ranges. Expected values include a single integer between 0 and 65535, a range using '-' as separator (e.g. 100-400), or an asterisk (*)."
+ },
+ "destinationPortRanges": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The destination port ranges. Expected values include a single integer between 0 and 65535, a range using '-' as separator (e.g. 100-400), or an asterisk (*)."
+ },
+ "sourceAddressPrefix": {
+ "type": "string",
+ "description": "The source address prefix."
+ },
+ "destinationAddressPrefix": {
+ "type": "string",
+ "description": "The destination address prefix."
+ },
+ "sourceAddressPrefixes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The source address prefixes. Expected values include CIDR IP ranges, Default Tags (VirtualNetwork, AzureLoadBalancer, Internet), System Tags, and the asterisk (*)."
+ },
+ "destinationAddressPrefixes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The destination address prefixes. Expected values include CIDR IP ranges, Default Tags (VirtualNetwork, AzureLoadBalancer, Internet), System Tags, and the asterisk (*)."
+ },
+ "expandedSourceAddressPrefix": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The expanded source address prefix."
+ },
+ "expandedDestinationAddressPrefix": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Expanded destination address prefix."
+ },
+ "access": {
+ "$ref": "./networkSecurityGroup.json#/definitions/SecurityRuleAccess",
+ "description": "Whether network traffic is allowed or denied."
+ },
+ "priority": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The priority of the rule."
+ },
+ "direction": {
+ "$ref": "./networkSecurityGroup.json#/definitions/SecurityRuleDirection",
+ "description": "The direction of the rule."
+ }
+ },
+ "description": "Effective network security rules."
+ },
+ "EffectiveNetworkSecurityGroupListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EffectiveNetworkSecurityGroup"
+ },
+ "description": "A list of effective network security groups."
+ },
+ "nextLink": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for list effective network security groups API service call."
+ },
+ "EffectiveRoute": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the user defined route. This is optional."
+ },
+ "disableBgpRoutePropagation": {
+ "type": "boolean",
+ "description": "If true, on-premises routes are not propagated to the network interfaces in the subnet."
+ },
+ "source": {
+ "type": "string",
+ "description": "Who created the route.",
+ "enum": [
+ "Unknown",
+ "User",
+ "VirtualNetworkGateway",
+ "Default"
+ ],
+ "x-ms-enum": {
+ "name": "EffectiveRouteSource",
+ "modelAsString": true
+ }
+ },
+ "state": {
+ "type": "string",
+ "description": "The value of effective route.",
+ "enum": [
+ "Active",
+ "Invalid"
+ ],
+ "x-ms-enum": {
+ "name": "EffectiveRouteState",
+ "modelAsString": true
+ }
+ },
+ "addressPrefix": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The address prefixes of the effective routes in CIDR notation."
+ },
+ "nextHopIpAddress": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The IP address of the next hop of the effective route."
+ },
+ "nextHopType": {
+ "$ref": "./routeTable.json#/definitions/RouteNextHopType",
+ "description": "The type of Azure hop the packet should be sent to."
+ }
+ },
+ "description": "Effective Route."
+ },
+ "EffectiveRouteListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EffectiveRoute"
+ },
+ "description": "A list of effective routes."
+ },
+ "nextLink": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for list effective route API service call."
+ },
+ "IPConfigurationPropertiesFormat": {
+ "properties": {
+ "privateIPAddress": {
+ "type": "string",
+ "description": "The private IP address of the IP configuration."
+ },
+ "privateIPAllocationMethod": {
+ "$ref": "./network.json#/definitions/IPAllocationMethod",
+ "description": "The private IP address allocation method."
+ },
+ "subnet": {
+ "$ref": "./virtualNetwork.json#/definitions/Subnet",
+ "description": "The reference to the subnet resource."
+ },
+ "publicIPAddress": {
+ "$ref": "./publicIpAddress.json#/definitions/PublicIPAddress",
+ "description": "The reference to the public IP resource."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the IP configuration resource."
+ }
+ },
+ "description": "Properties of IP configuration."
+ },
+ "IPConfiguration": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/IPConfigurationPropertiesFormat",
+ "description": "Properties of the IP configuration."
+ },
+ "name": {
+ "type": "string",
+ "description": "The 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": "IP configuration."
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/networkProfile.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/networkProfile.json
new file mode 100644
index 000000000000..23edd5f24b42
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/networkProfile.json
@@ -0,0 +1,622 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "NetworkManagementClient",
+ "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
+ "version": "2020-07-01"
+ },
+ "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/networkProfiles/{networkProfileName}": {
+ "delete": {
+ "tags": [
+ "NetworkProfiles"
+ ],
+ "operationId": "NetworkProfiles_Delete",
+ "description": "Deletes the specified network profile.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkProfileName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the NetworkProfile."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Request successful. Resource does not exist."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "200": {
+ "description": "Delete successful."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete network profile": {
+ "$ref": "./examples/NetworkProfileDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ },
+ "get": {
+ "tags": [
+ "NetworkProfiles"
+ ],
+ "operationId": "NetworkProfiles_Get",
+ "description": "Gets the specified network profile in a specified resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkProfileName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the public IP prefix."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Expands referenced resources."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting NetworkProfile resource.",
+ "schema": {
+ "$ref": "#/definitions/NetworkProfile"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get network profile": {
+ "$ref": "./examples/NetworkProfileGetConfigOnly.json"
+ },
+ "Get network profile with container network interfaces": {
+ "$ref": "./examples/NetworkProfileGetWithContainerNic.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "NetworkProfiles"
+ ],
+ "operationId": "NetworkProfiles_CreateOrUpdate",
+ "description": "Creates or updates a network profile.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkProfileName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network profile."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/NetworkProfile"
+ },
+ "description": "Parameters supplied to the create or update network profile operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Create successful. The operation returns the resulting NetworkProfile resource.",
+ "schema": {
+ "$ref": "#/definitions/NetworkProfile"
+ }
+ },
+ "200": {
+ "description": "Update successful. The operation returns the resulting NetworkProfile resource.",
+ "schema": {
+ "$ref": "#/definitions/NetworkProfile"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create network profile defaults": {
+ "$ref": "./examples/NetworkProfileCreateConfigOnly.json"
+ }
+ },
+ "x-ms-long-running-operation": false
+ },
+ "patch": {
+ "tags": [
+ "NetworkProfiles"
+ ],
+ "operationId": "NetworkProfiles_UpdateTags",
+ "description": "Updates network profile tags.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkProfileName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network profile."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./network.json#/definitions/TagsObject"
+ },
+ "description": "Parameters supplied to update network profile tags."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update successful. The operation returns the resulting NetworkProfile resource.",
+ "schema": {
+ "$ref": "#/definitions/NetworkProfile"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update network profile tags": {
+ "$ref": "./examples/NetworkProfileUpdateTags.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/networkProfiles": {
+ "get": {
+ "tags": [
+ "NetworkProfiles"
+ ],
+ "operationId": "NetworkProfiles_ListAll",
+ "description": "Gets all the network profiles in a subscription.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of NetworkProfile resources.",
+ "schema": {
+ "$ref": "#/definitions/NetworkProfileListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List all network profiles": {
+ "$ref": "./examples/NetworkProfileListAll.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkProfiles": {
+ "get": {
+ "tags": [
+ "NetworkProfiles"
+ ],
+ "operationId": "NetworkProfiles_List",
+ "description": "Gets all network profiles in a resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of NetworkProfile resources.",
+ "schema": {
+ "$ref": "#/definitions/NetworkProfileListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List resource group network profiles": {
+ "$ref": "./examples/NetworkProfileList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "NetworkProfilePropertiesFormat": {
+ "properties": {
+ "containerNetworkInterfaces": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ContainerNetworkInterface"
+ },
+ "description": "List of child container network interfaces."
+ },
+ "containerNetworkInterfaceConfigurations": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ContainerNetworkInterfaceConfiguration"
+ },
+ "description": "List of chid container network interface configurations."
+ },
+ "resourceGuid": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource GUID property of the network profile resource."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the network profile resource."
+ }
+ },
+ "description": "Network profile properties."
+ },
+ "NetworkProfile": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/NetworkProfilePropertiesFormat",
+ "description": "Network profile properties."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "description": "Network profile resource."
+ },
+ "NetworkProfileListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NetworkProfile"
+ },
+ "description": "A list of network profiles that exist in a resource group."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for ListNetworkProfiles API service call."
+ },
+ "ContainerNetworkInterfacePropertiesFormat": {
+ "properties": {
+ "containerNetworkInterfaceConfiguration": {
+ "readOnly": true,
+ "$ref": "#/definitions/ContainerNetworkInterfaceConfiguration",
+ "description": "Container network interface configuration from which this container network interface is created."
+ },
+ "container": {
+ "$ref": "#/definitions/Container",
+ "description": "Reference to the container to which this container network interface is attached."
+ },
+ "ipConfigurations": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ContainerNetworkInterfaceIpConfiguration"
+ },
+ "description": "Reference to the ip configuration on this container nic."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the container network interface resource."
+ }
+ },
+ "description": "Properties of container network interface."
+ },
+ "ContainerNetworkInterface": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ContainerNetworkInterfacePropertiesFormat",
+ "description": "Container network interface properties."
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of the resource. This name can be used to access the resource."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Sub Resource type."
+ },
+ "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": "Container network interface child resource."
+ },
+ "ContainerNetworkInterfaceConfigurationPropertiesFormat": {
+ "properties": {
+ "ipConfigurations": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/IPConfigurationProfile"
+ },
+ "description": "A list of ip configurations of the container network interface configuration."
+ },
+ "containerNetworkInterfaces": {
+ "type": "array",
+ "items": {
+ "$ref": "./network.json#/definitions/SubResource"
+ },
+ "description": "A list of container network interfaces created from this container network interface configuration."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the container network interface configuration resource."
+ }
+ },
+ "description": "Container network interface configuration properties."
+ },
+ "ContainerNetworkInterfaceConfiguration": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ContainerNetworkInterfaceConfigurationPropertiesFormat",
+ "description": "Container network interface configuration properties."
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of the resource. This name can be used to access the resource."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Sub Resource type."
+ },
+ "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": "Container network interface configuration child resource."
+ },
+ "IPConfigurationProfilePropertiesFormat": {
+ "properties": {
+ "subnet": {
+ "$ref": "./virtualNetwork.json#/definitions/Subnet",
+ "description": "The reference to the subnet resource to create a container network interface ip configuration."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the IP configuration profile resource."
+ }
+ },
+ "description": "IP configuration profile properties."
+ },
+ "IPConfigurationProfile": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/IPConfigurationProfilePropertiesFormat",
+ "description": "Properties of the IP configuration profile."
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of the resource. This name can be used to access the resource."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Sub Resource type."
+ },
+ "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": "IP configuration profile child resource."
+ },
+ "Container": {
+ "properties": {},
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "Reference to container resource in remote resource provider."
+ },
+ "ContainerNetworkInterfaceIpConfigurationPropertiesFormat": {
+ "properties": {
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the container network interface IP configuration resource."
+ }
+ },
+ "description": "Properties of the container network interface IP configuration."
+ },
+ "ContainerNetworkInterfaceIpConfiguration": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ContainerNetworkInterfaceIpConfigurationPropertiesFormat",
+ "description": "Properties of the container network interface IP configuration."
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of the resource. This name can be used to access the resource."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Sub Resource type."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "description": "The ip configuration for a container network interface."
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/networkSecurityGroup.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/networkSecurityGroup.json
new file mode 100644
index 000000000000..a70e192bb236
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/networkSecurityGroup.json
@@ -0,0 +1,982 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "NetworkManagementClient",
+ "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
+ "version": "2020-07-01"
+ },
+ "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/networkSecurityGroups/{networkSecurityGroupName}": {
+ "delete": {
+ "tags": [
+ "NetworkSecurityGroups"
+ ],
+ "operationId": "NetworkSecurityGroups_Delete",
+ "description": "Deletes the specified network security group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkSecurityGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network security group."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "200": {
+ "description": "Delete successful."
+ },
+ "204": {
+ "description": "Request successful. Resource does not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete network security group": {
+ "$ref": "./examples/NetworkSecurityGroupDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ },
+ "get": {
+ "tags": [
+ "NetworkSecurityGroups"
+ ],
+ "operationId": "NetworkSecurityGroups_Get",
+ "description": "Gets the specified network security group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkSecurityGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network security group."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Expands referenced resources."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting NetworkSecurityGroup resource.",
+ "schema": {
+ "$ref": "#/definitions/NetworkSecurityGroup"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get network security group": {
+ "$ref": "./examples/NetworkSecurityGroupGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "NetworkSecurityGroups"
+ ],
+ "operationId": "NetworkSecurityGroups_CreateOrUpdate",
+ "description": "Creates or updates a network security group in the specified resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkSecurityGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network security group."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/NetworkSecurityGroup"
+ },
+ "description": "Parameters supplied to the create or update network security group operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Create successful. The operation returns the resulting NetworkSecurityGroup resource.",
+ "schema": {
+ "$ref": "#/definitions/NetworkSecurityGroup"
+ }
+ },
+ "200": {
+ "description": "Update successful. The operation returns the resulting NetworkSecurityGroup resource.",
+ "schema": {
+ "$ref": "#/definitions/NetworkSecurityGroup"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create network security group": {
+ "$ref": "./examples/NetworkSecurityGroupCreate.json"
+ },
+ "Create network security group with rule": {
+ "$ref": "./examples/NetworkSecurityGroupCreateWithRule.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ },
+ "patch": {
+ "tags": [
+ "NetworkSecurityGroups"
+ ],
+ "operationId": "NetworkSecurityGroups_UpdateTags",
+ "description": "Updates a network security group tags.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkSecurityGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network security group."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./network.json#/definitions/TagsObject"
+ },
+ "description": "Parameters supplied to update network security group tags."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update successful. The operation returns the resulting NetworkSecurityGroup resource.",
+ "schema": {
+ "$ref": "#/definitions/NetworkSecurityGroup"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update network security group tags": {
+ "$ref": "./examples/NetworkSecurityGroupUpdateTags.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/networkSecurityGroups": {
+ "get": {
+ "tags": [
+ "NetworkSecurityGroups"
+ ],
+ "operationId": "NetworkSecurityGroups_ListAll",
+ "description": "Gets all network security groups in a subscription.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of NetworkSecurityGroup resources.",
+ "schema": {
+ "$ref": "#/definitions/NetworkSecurityGroupListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List all network security groups": {
+ "$ref": "./examples/NetworkSecurityGroupListAll.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups": {
+ "get": {
+ "tags": [
+ "NetworkSecurityGroups"
+ ],
+ "operationId": "NetworkSecurityGroups_List",
+ "description": "Gets all network security groups in a resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of NetworkSecurityGroup resources.",
+ "schema": {
+ "$ref": "#/definitions/NetworkSecurityGroupListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List network security groups in resource group": {
+ "$ref": "./examples/NetworkSecurityGroupList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{networkSecurityGroupName}/securityRules/{securityRuleName}": {
+ "delete": {
+ "tags": [
+ "SecurityRules"
+ ],
+ "operationId": "SecurityRules_Delete",
+ "description": "Deletes the specified network security rule.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkSecurityGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network security group."
+ },
+ {
+ "name": "securityRuleName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the security rule."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Request successful. Resource does not exist."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "200": {
+ "description": "Delete successful."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete network security rule from network security group": {
+ "$ref": "./examples/NetworkSecurityGroupRuleDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ },
+ "get": {
+ "tags": [
+ "SecurityRules"
+ ],
+ "operationId": "SecurityRules_Get",
+ "description": "Get the specified network security rule.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkSecurityGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network security group."
+ },
+ {
+ "name": "securityRuleName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the security rule."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting SecurityRule resource.",
+ "schema": {
+ "$ref": "#/definitions/SecurityRule"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get network security rule in network security group": {
+ "$ref": "./examples/NetworkSecurityGroupRuleGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "SecurityRules"
+ ],
+ "operationId": "SecurityRules_CreateOrUpdate",
+ "description": "Creates or updates a security rule in the specified network security group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkSecurityGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network security group."
+ },
+ {
+ "name": "securityRuleName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the security rule."
+ },
+ {
+ "name": "securityRuleParameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/SecurityRule"
+ },
+ "description": "Parameters supplied to the create or update network security rule operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update successful. The operation returns the resulting SecurityRule resource.",
+ "schema": {
+ "$ref": "#/definitions/SecurityRule"
+ }
+ },
+ "201": {
+ "description": "Create successful. The operation returns the resulting SecurityRule resource.",
+ "schema": {
+ "$ref": "#/definitions/SecurityRule"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create security rule": {
+ "$ref": "./examples/NetworkSecurityGroupRuleCreate.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{networkSecurityGroupName}/securityRules": {
+ "get": {
+ "tags": [
+ "SecurityRules"
+ ],
+ "operationId": "SecurityRules_List",
+ "description": "Gets all security rules in a network security group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkSecurityGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network security group."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of SecurityRule resources.",
+ "schema": {
+ "$ref": "#/definitions/SecurityRuleListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List network security rules in network security group": {
+ "$ref": "./examples/NetworkSecurityGroupRuleList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{networkSecurityGroupName}/defaultSecurityRules": {
+ "get": {
+ "tags": [
+ "SecurityRules"
+ ],
+ "operationId": "DefaultSecurityRules_List",
+ "description": "Gets all default security rules in a network security group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkSecurityGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network security group."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of SecurityRule resources.",
+ "schema": {
+ "$ref": "#/definitions/SecurityRuleListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "DefaultSecurityRuleList": {
+ "$ref": "./examples/DefaultSecurityRuleList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{networkSecurityGroupName}/defaultSecurityRules/{defaultSecurityRuleName}": {
+ "get": {
+ "tags": [
+ "SecurityRules"
+ ],
+ "operationId": "DefaultSecurityRules_Get",
+ "description": "Get the specified default network security rule.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkSecurityGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network security group."
+ },
+ {
+ "name": "defaultSecurityRuleName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the default security rule."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting SecurityRule resource.",
+ "schema": {
+ "$ref": "#/definitions/SecurityRule"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "DefaultSecurityRuleGet": {
+ "$ref": "./examples/DefaultSecurityRuleGet.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "SecurityRulePropertiesFormat": {
+ "properties": {
+ "description": {
+ "type": "string",
+ "description": "A description for this rule. Restricted to 140 chars."
+ },
+ "protocol": {
+ "type": "string",
+ "description": "Network protocol this rule applies to.",
+ "enum": [
+ "Tcp",
+ "Udp",
+ "Icmp",
+ "Esp",
+ "*",
+ "Ah"
+ ],
+ "x-ms-enum": {
+ "name": "SecurityRuleProtocol",
+ "modelAsString": true
+ }
+ },
+ "sourcePortRange": {
+ "type": "string",
+ "description": "The source port or range. Integer or range between 0 and 65535. Asterisk '*' can also be used to match all ports."
+ },
+ "destinationPortRange": {
+ "type": "string",
+ "description": "The destination port or range. Integer or range between 0 and 65535. Asterisk '*' can also be used to match all ports."
+ },
+ "sourceAddressPrefix": {
+ "type": "string",
+ "description": "The CIDR or source IP range. Asterisk '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used. If this is an ingress rule, specifies where network traffic originates from."
+ },
+ "sourceAddressPrefixes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The CIDR or source IP ranges."
+ },
+ "sourceApplicationSecurityGroups": {
+ "type": "array",
+ "items": {
+ "$ref": "./applicationSecurityGroup.json#/definitions/ApplicationSecurityGroup"
+ },
+ "description": "The application security group specified as source."
+ },
+ "destinationAddressPrefix": {
+ "type": "string",
+ "description": "The destination address prefix. CIDR or destination IP range. Asterisk '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used."
+ },
+ "destinationAddressPrefixes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The destination address prefixes. CIDR or destination IP ranges."
+ },
+ "destinationApplicationSecurityGroups": {
+ "type": "array",
+ "items": {
+ "$ref": "./applicationSecurityGroup.json#/definitions/ApplicationSecurityGroup"
+ },
+ "description": "The application security group specified as destination."
+ },
+ "sourcePortRanges": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "description": "The source port."
+ },
+ "description": "The source port ranges."
+ },
+ "destinationPortRanges": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "description": "The destination port."
+ },
+ "description": "The destination port ranges."
+ },
+ "access": {
+ "$ref": "#/definitions/SecurityRuleAccess",
+ "description": "The network traffic is allowed or denied."
+ },
+ "priority": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The priority of the rule. The value can be between 100 and 4096. The priority number must be unique for each rule in the collection. The lower the priority number, the higher the priority of the rule."
+ },
+ "direction": {
+ "$ref": "#/definitions/SecurityRuleDirection",
+ "description": "The direction of the rule. The direction specifies if rule will be evaluated on incoming or outgoing traffic."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the security rule resource."
+ }
+ },
+ "required": [
+ "protocol",
+ "access",
+ "direction"
+ ],
+ "description": "Security rule resource."
+ },
+ "SecurityRule": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/SecurityRulePropertiesFormat",
+ "description": "Properties of the security rule."
+ },
+ "name": {
+ "type": "string",
+ "description": "The 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": "Network security rule."
+ },
+ "SecurityRuleListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SecurityRule"
+ },
+ "description": "The security rules in a network security group."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for ListSecurityRule API service call. Retrieves all security rules that belongs to a network security group."
+ },
+ "NetworkSecurityGroupPropertiesFormat": {
+ "properties": {
+ "securityRules": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SecurityRule"
+ },
+ "description": "A collection of security rules of the network security group."
+ },
+ "defaultSecurityRules": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SecurityRule"
+ },
+ "description": "The default security rules of network security group."
+ },
+ "networkInterfaces": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "./networkInterface.json#/definitions/NetworkInterface"
+ },
+ "description": "A collection of references to network interfaces."
+ },
+ "subnets": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "./virtualNetwork.json#/definitions/Subnet"
+ },
+ "description": "A collection of references to subnets."
+ },
+ "flowLogs": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "./networkWatcher.json#/definitions/FlowLog"
+ },
+ "description": "A collection of references to flow log resources."
+ },
+ "resourceGuid": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource GUID property of the network security group resource."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the network security group resource."
+ }
+ },
+ "description": "Network Security Group resource."
+ },
+ "NetworkSecurityGroup": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/NetworkSecurityGroupPropertiesFormat",
+ "description": "Properties of the network security group."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "description": "NetworkSecurityGroup resource."
+ },
+ "NetworkSecurityGroupListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NetworkSecurityGroup"
+ },
+ "description": "A list of NetworkSecurityGroup resources."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for ListNetworkSecurityGroups API service call."
+ },
+ "SecurityRuleAccess": {
+ "type": "string",
+ "description": "Whether network traffic is allowed or denied.",
+ "enum": [
+ "Allow",
+ "Deny"
+ ],
+ "x-ms-enum": {
+ "name": "SecurityRuleAccess",
+ "modelAsString": true
+ }
+ },
+ "SecurityRuleDirection": {
+ "type": "string",
+ "description": "The direction of the rule. The direction specifies if rule will be evaluated on incoming or outgoing traffic.",
+ "enum": [
+ "Inbound",
+ "Outbound"
+ ],
+ "x-ms-enum": {
+ "name": "SecurityRuleDirection",
+ "modelAsString": true
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/networkVirtualAppliance.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/networkVirtualAppliance.json
new file mode 100644
index 000000000000..0911a8f8b60f
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/networkVirtualAppliance.json
@@ -0,0 +1,1170 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "NetworkManagementClient",
+ "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
+ "version": "2020-07-01"
+ },
+ "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/networkVirtualAppliances/{networkVirtualApplianceName}": {
+ "delete": {
+ "tags": [
+ "NetworkVirtualAppliances"
+ ],
+ "operationId": "NetworkVirtualAppliances_Delete",
+ "description": "Deletes the specified Network Virtual Appliance.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkVirtualApplianceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of Network Virtual Appliance."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Delete successful."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "204": {
+ "description": "Request successful. Resource with the specified name does not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete NetworkVirtualAppliance": {
+ "$ref": "./examples/NetworkVirtualApplianceDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ },
+ "get": {
+ "tags": [
+ "NetworkVirtualAppliances"
+ ],
+ "operationId": "NetworkVirtualAppliances_Get",
+ "description": "Gets the specified Network Virtual Appliance.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkVirtualApplianceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of Network Virtual Appliance."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Expands referenced resources."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a Network Virtual Appliance resource.",
+ "schema": {
+ "$ref": "#/definitions/NetworkVirtualAppliance"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get NetworkVirtualAppliance": {
+ "$ref": "./examples/NetworkVirtualApplianceGet.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "NetworkVirtualAppliances"
+ ],
+ "operationId": "NetworkVirtualAppliances_UpdateTags",
+ "description": "Updates a Network Virtual Appliance.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of Network Virtual Appliance."
+ },
+ {
+ "name": "networkVirtualApplianceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of Network Virtual Appliance being updated."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./network.json#/definitions/TagsObject"
+ },
+ "description": "Parameters supplied to Update Network Virtual Appliance Tags."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of Network Virtual Appliance updated.",
+ "schema": {
+ "$ref": "#/definitions/NetworkVirtualAppliance"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update NetworkVirtualAppliance": {
+ "$ref": "./examples/NetworkVirtualApplianceUpdateTags.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "NetworkVirtualAppliances"
+ ],
+ "operationId": "NetworkVirtualAppliances_CreateOrUpdate",
+ "description": "Creates or updates the specified Network Virtual Appliance.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkVirtualApplianceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of Network Virtual Appliance."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/NetworkVirtualAppliance"
+ },
+ "description": "Parameters supplied to the create or update Network Virtual Appliance."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting Network Virtual Appliance resource.",
+ "schema": {
+ "$ref": "#/definitions/NetworkVirtualAppliance"
+ }
+ },
+ "201": {
+ "description": "Request received successfully. The operation returns the resulting Network Virtual Appliance resource.",
+ "schema": {
+ "$ref": "#/definitions/NetworkVirtualAppliance"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create NetworkVirtualAppliance": {
+ "$ref": "./examples/NetworkVirtualAppliancePut.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkVirtualAppliances": {
+ "get": {
+ "tags": [
+ "NetworkVirtualAppliances"
+ ],
+ "operationId": "NetworkVirtualAppliances_ListByResourceGroup",
+ "description": "Lists all Network Virtual Appliances in a resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The operation returns a list of Network Virtual Appliance resources.",
+ "schema": {
+ "$ref": "#/definitions/NetworkVirtualApplianceListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List all Network Virtual Appliance for a given resource group": {
+ "$ref": "./examples/NetworkVirtualApplianceListByResourceGroup.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/networkVirtualAppliances": {
+ "get": {
+ "tags": [
+ "NetworkVirtualAppliances"
+ ],
+ "operationId": "NetworkVirtualAppliances_List",
+ "description": "Gets all Network Virtual Appliances in a subscription.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The operation returns a list of Network Virtual Appliance resources.",
+ "schema": {
+ "$ref": "#/definitions/NetworkVirtualApplianceListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List all Network Virtual Appliances for a given subscription": {
+ "$ref": "./examples/NetworkVirtualApplianceListBySubscription.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkVirtualAppliances/{networkVirtualApplianceName}/virtualApplianceSites/{siteName}": {
+ "delete": {
+ "tags": [
+ "VirtualApplianceSites"
+ ],
+ "operationId": "VirtualApplianceSites_Delete",
+ "description": "Deletes the specified site from a Virtual Appliance.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkVirtualApplianceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Network Virtual Appliance."
+ },
+ {
+ "name": "siteName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the site."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Delete successful."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "204": {
+ "description": "Request successful. Resource with the specified name does not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete Network Virtual Appliance Site": {
+ "$ref": "./examples/NetworkVirtualApplianceSiteDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ },
+ "get": {
+ "tags": [
+ "VirtualApplianceSites"
+ ],
+ "operationId": "VirtualApplianceSites_Get",
+ "description": "Gets the specified Virtual Appliance Site.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkVirtualApplianceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Network Virtual Appliance."
+ },
+ {
+ "name": "siteName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the site."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a Network Virtual Appliance Site resource.",
+ "schema": {
+ "$ref": "#/definitions/VirtualApplianceSite"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "GetNetwork Virtual Appliance Site": {
+ "$ref": "./examples/NetworkVirtualApplianceSiteGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "VirtualApplianceSites"
+ ],
+ "operationId": "VirtualApplianceSites_CreateOrUpdate",
+ "description": "Creates or updates the specified Network Virtual Appliance Site.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkVirtualApplianceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Network Virtual Appliance."
+ },
+ {
+ "name": "siteName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the site."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/VirtualApplianceSite"
+ },
+ "description": "Parameters supplied to the create or update Network Virtual Appliance Site operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting Network Virtual Appliance Site resource.",
+ "schema": {
+ "$ref": "#/definitions/VirtualApplianceSite"
+ }
+ },
+ "201": {
+ "description": "Request received successfully. The operation returns the resulting Network Virtual Appliance Site resource.",
+ "schema": {
+ "$ref": "#/definitions/VirtualApplianceSite"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create Network Virtual Appliance Site": {
+ "$ref": "./examples/NetworkVirtualApplianceSitePut.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkVirtualAppliances/{networkVirtualApplianceName}/virtualApplianceSites": {
+ "get": {
+ "tags": [
+ "VirtualApplianceSites"
+ ],
+ "operationId": "VirtualApplianceSites_List",
+ "description": "Lists all Network Virtual Appliance Sites in a Network Virtual Appliance resource.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkVirtualApplianceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Network Virtual Appliance."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The operation returns a list of Network Virtual Appliance site resources.",
+ "schema": {
+ "$ref": "#/definitions/NetworkVirtualApplianceSiteListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List all Network Virtual Appliance sites for a given Network Virtual Appliance": {
+ "$ref": "./examples/NetworkVirtualApplianceSiteList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/networkVirtualApplianceSkus": {
+ "get": {
+ "tags": [
+ "VirtualApplianceSkus"
+ ],
+ "operationId": "VirtualApplianceSkus_List",
+ "description": "List all SKUs available for a virtual appliance.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the list of all virtual appliance skus.",
+ "schema": {
+ "$ref": "#/definitions/NetworkVirtualApplianceSkuListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "NetworkVirtualApplianceSkuListResult": {
+ "$ref": "./examples/NetworkVirtualApplianceSkuList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/networkVirtualApplianceSkus/{skuName}": {
+ "get": {
+ "tags": [
+ "VirtualApplianceSkus"
+ ],
+ "operationId": "VirtualApplianceSkus_Get",
+ "description": "Retrieves a single available sku for network virtual appliance.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "skuName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of the Sku."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the requested NetworkVirtualAppliance sku information.",
+ "schema": {
+ "$ref": "#/definitions/NetworkVirtualApplianceSku"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "NetworkVirtualApplianceSkuGet": {
+ "$ref": "./examples/NetworkVirtualApplianceSkuGet.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkVirtualAppliances/{networkVirtualApplianceName}/inboundSecurityRules/{ruleCollectionName}": {
+ "put": {
+ "operationId": "InboundSecurityRule_CreateOrUpdate",
+ "description": "Creates or updates the specified Network Virtual Appliance Inbound Security Rules.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkVirtualApplianceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Network Virtual Appliance."
+ },
+ {
+ "name": "ruleCollectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of security rule collection."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/InboundSecurityRule"
+ },
+ "description": "Parameters supplied to the create or update Network Virtual Appliance Inbound Security Rules operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting Network Virtual Appliance Inbound Security Rules resource.",
+ "schema": {
+ "$ref": "#/definitions/InboundSecurityRule"
+ }
+ },
+ "201": {
+ "description": "Request received successfully. The operation returns the resulting Network Virtual Appliance Inbound Security Rules resource.",
+ "schema": {
+ "$ref": "#/definitions/InboundSecurityRule"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create Network Virtual Appliance Inbound Security Rules": {
+ "$ref": "./examples/InboundSecurityRulePut.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "NetworkVirtualAppliance": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/NetworkVirtualAppliancePropertiesFormat",
+ "description": "Properties of the Network Virtual Appliance."
+ },
+ "identity": {
+ "$ref": "./network.json#/definitions/ManagedServiceIdentity",
+ "description": "The service principal that has read access to cloud-init and config blob."
+ },
+ "etag": {
+ "type": "string",
+ "readOnly": true,
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "description": "NetworkVirtualAppliance Resource."
+ },
+ "NetworkVirtualAppliancePropertiesFormat": {
+ "properties": {
+ "nvaSku": {
+ "readOnly": false,
+ "description": "Network Virtual Appliance SKU.",
+ "$ref": "#/definitions/VirtualApplianceSkuProperties"
+ },
+ "addressPrefix": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Address Prefix."
+ },
+ "bootStrapConfigurationBlobs": {
+ "type": "array",
+ "readOnly": false,
+ "description": "BootStrapConfigurationBlobs storage URLs.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "virtualHub": {
+ "readOnly": false,
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "The Virtual Hub where Network Virtual Appliance is being deployed."
+ },
+ "cloudInitConfigurationBlobs": {
+ "type": "array",
+ "readOnly": false,
+ "description": "CloudInitConfigurationBlob storage URLs.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "cloudInitConfiguration": {
+ "type": "string",
+ "readOnly": false,
+ "description": "CloudInitConfiguration string in plain text."
+ },
+ "virtualApplianceAsn": {
+ "type": "integer",
+ "readOnly": false,
+ "format": "int64",
+ "minimum": 0,
+ "maximum": 4294967295,
+ "description": "VirtualAppliance ASN."
+ },
+ "virtualApplianceNics": {
+ "type": "array",
+ "readOnly": true,
+ "description": "List of Virtual Appliance Network Interfaces.",
+ "items": {
+ "$ref": "#/definitions/VirtualApplianceNicProperties"
+ }
+ },
+ "virtualApplianceSites": {
+ "type": "array",
+ "readOnly": true,
+ "description": "List of references to VirtualApplianceSite.",
+ "items": {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ },
+ "inboundSecurityRules": {
+ "type": "array",
+ "readOnly": true,
+ "description": "List of references to InboundSecurityRules.",
+ "items": {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ },
+ "provisioningState": {
+ "description": "The provisioning state of the resource.",
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState"
+ }
+ },
+ "description": "Network Virtual Appliance definition."
+ },
+ "VirtualApplianceSkuProperties": {
+ "properties": {
+ "vendor": {
+ "type": "string",
+ "readOnly": false,
+ "description": "Virtual Appliance Vendor."
+ },
+ "bundledScaleUnit": {
+ "type": "string",
+ "readOnly": false,
+ "description": "Virtual Appliance Scale Unit."
+ },
+ "marketPlaceVersion": {
+ "type": "string",
+ "readOnly": false,
+ "description": "Virtual Appliance Version."
+ }
+ },
+ "description": "Network Virtual Appliance Sku Properties."
+ },
+ "VirtualApplianceNicProperties": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "NIC name."
+ },
+ "publicIpAddress": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Public IP address."
+ },
+ "privateIpAddress": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Private IP address."
+ }
+ },
+ "description": "Network Virtual Appliance NIC properties."
+ },
+ "VirtualApplianceSite": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/VirtualApplianceSiteProperties",
+ "description": "The properties of the Virtual Appliance Sites."
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the virtual appliance site."
+ },
+ "etag": {
+ "type": "string",
+ "readOnly": true,
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Site type."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "Virtual Appliance Site resource."
+ },
+ "VirtualApplianceSiteProperties": {
+ "properties": {
+ "addressPrefix": {
+ "type": "string",
+ "readOnly": false,
+ "description": "Address Prefix."
+ },
+ "o365Policy": {
+ "readOnly": false,
+ "description": "Office 365 Policy.",
+ "$ref": "#/definitions/Office365PolicyProperties"
+ },
+ "provisioningState": {
+ "description": "The provisioning state of the resource.",
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState"
+ }
+ },
+ "description": "Properties of the rule group."
+ },
+ "Office365PolicyProperties": {
+ "properties": {
+ "breakOutCategories": {
+ "readOnly": false,
+ "description": "Office 365 breakout categories.",
+ "$ref": "#/definitions/BreakOutCategoryPolicies"
+ }
+ },
+ "description": "Network Virtual Appliance Sku Properties."
+ },
+ "BreakOutCategoryPolicies": {
+ "properties": {
+ "allow": {
+ "type": "boolean",
+ "readOnly": false,
+ "description": "Flag to control breakout of o365 allow category."
+ },
+ "optimize": {
+ "type": "boolean",
+ "readOnly": false,
+ "description": "Flag to control breakout of o365 optimize category."
+ },
+ "default": {
+ "type": "boolean",
+ "readOnly": false,
+ "description": "Flag to control breakout of o365 default category."
+ }
+ },
+ "description": "Network Virtual Appliance Sku Properties."
+ },
+ "NetworkVirtualApplianceSku": {
+ "title": "Available NetworkVirtualApplianceSkus",
+ "description": "Definition of the NetworkVirtualApplianceSkus resource.",
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/NetworkVirtualApplianceSkuPropertiesFormat",
+ "description": "NetworkVirtualApplianceSku properties."
+ },
+ "etag": {
+ "type": "string",
+ "readOnly": true,
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ]
+ },
+ "NetworkVirtualApplianceSkuPropertiesFormat": {
+ "title": "Network Virtual Appliance Sku Properties",
+ "description": "Properties specific to NetworkVirtualApplianceSkus.",
+ "properties": {
+ "vendor": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Network Virtual Appliance Sku vendor."
+ },
+ "availableVersions": {
+ "type": "array",
+ "readOnly": true,
+ "description": "Available Network Virtual Appliance versions.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "availableScaleUnits": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NetworkVirtualApplianceSkuInstances"
+ },
+ "description": "The list of scale units available."
+ }
+ }
+ },
+ "NetworkVirtualApplianceSkuInstances": {
+ "title": "Network Virtual Appliance Sku Instances",
+ "description": "List of available Sku and instances.",
+ "properties": {
+ "scaleUnit": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Scale Unit."
+ },
+ "instanceCount": {
+ "type": "integer",
+ "format": "int32",
+ "readOnly": true,
+ "description": "Instance Count."
+ }
+ }
+ },
+ "NetworkVirtualApplianceListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NetworkVirtualAppliance"
+ },
+ "description": "List of Network Virtual Appliances."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of results."
+ }
+ },
+ "description": "Response for ListNetworkVirtualAppliances API service call."
+ },
+ "NetworkVirtualApplianceSiteListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualApplianceSite"
+ },
+ "description": "List of Network Virtual Appliance sites."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of results."
+ }
+ },
+ "description": "Response for ListNetworkVirtualApplianceSites API service call."
+ },
+ "NetworkVirtualApplianceSkuListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NetworkVirtualApplianceSku"
+ },
+ "description": "List of Network Virtual Appliance Skus that are available."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of results."
+ }
+ },
+ "description": "Response for ListNetworkVirtualApplianceSkus API service call."
+ },
+ "InboundSecurityRule": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/InboundSecurityRuleProperties",
+ "description": "The properties of the Inbound Security Rules."
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of security rule collection."
+ },
+ "etag": {
+ "type": "string",
+ "readOnly": true,
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "NVA inbound security rule type."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "NVA Inbound Security Rule resource."
+ },
+ "InboundSecurityRuleProperties": {
+ "properties": {
+ "rules": {
+ "type": "array",
+ "readOnly": false,
+ "description": "List of allowed rules.",
+ "items": {
+ "$ref": "#/definitions/InboundSecurityRules"
+ }
+ },
+ "provisioningState": {
+ "description": "The provisioning state of the resource.",
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState"
+ }
+ },
+ "description": "Properties of the Inbound Security Rules resource."
+ },
+ "InboundSecurityRules": {
+ "properties": {
+ "protocol": {
+ "type": "string",
+ "enum": [
+ "TCP",
+ "UDP"
+ ],
+ "x-ms-enum": {
+ "name": "InboundSecurityRulesProtocol",
+ "modelAsString": true
+ },
+ "description": "Protocol. This should be either TCP or UDP."
+ },
+ "sourceAddressPrefix": {
+ "type": "string",
+ "description": "The CIDR or source IP range. Only /30, /31 and /32 Ip ranges are allowed."
+ },
+ "destinationPortRange": {
+ "type": "integer",
+ "format": "int32",
+ "minimum": 0,
+ "maximum": 65535,
+ "description": "NVA port ranges to be opened up. One needs to provide specific ports."
+ }
+ },
+ "description": "Properties of the Inbound Security Rules resource."
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/networkWatcher.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/networkWatcher.json
new file mode 100644
index 000000000000..050b6f2fb4bd
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/networkWatcher.json
@@ -0,0 +1,4744 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "NetworkManagementClient",
+ "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
+ "version": "2020-07-01"
+ },
+ "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/networkWatchers/{networkWatcherName}": {
+ "put": {
+ "tags": [
+ "NetworkWatchers"
+ ],
+ "operationId": "NetworkWatchers_CreateOrUpdate",
+ "description": "Creates or updates a network watcher in the specified resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkWatcherName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network watcher."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/NetworkWatcher"
+ },
+ "description": "Parameters that define the network watcher resource."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update successful. The operation returns the resulting network watcher resource.",
+ "schema": {
+ "$ref": "#/definitions/NetworkWatcher"
+ }
+ },
+ "201": {
+ "description": "Create successful. The operation returns the resulting network watcher resource.",
+ "schema": {
+ "$ref": "#/definitions/NetworkWatcher"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create network watcher": {
+ "$ref": "./examples/NetworkWatcherCreate.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "NetworkWatchers"
+ ],
+ "operationId": "NetworkWatchers_Get",
+ "description": "Gets the specified network watcher by resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkWatcherName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network watcher."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a network watcher resource.",
+ "schema": {
+ "$ref": "#/definitions/NetworkWatcher"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get network watcher": {
+ "$ref": "./examples/NetworkWatcherGet.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "NetworkWatchers"
+ ],
+ "operationId": "NetworkWatchers_Delete",
+ "description": "Deletes the specified network watcher resource.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkWatcherName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network watcher."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "204": {
+ "description": "Delete successful."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete network watcher": {
+ "$ref": "./examples/NetworkWatcherDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ },
+ "patch": {
+ "tags": [
+ "NetworkWatchers"
+ ],
+ "operationId": "NetworkWatchers_UpdateTags",
+ "description": "Updates a network watcher tags.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkWatcherName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network watcher."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./network.json#/definitions/TagsObject"
+ },
+ "description": "Parameters supplied to update network watcher tags."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update successful. The operation returns the resulting network watcher resource.",
+ "schema": {
+ "$ref": "#/definitions/NetworkWatcher"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update network watcher tags": {
+ "$ref": "./examples/NetworkWatcherUpdateTags.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers": {
+ "get": {
+ "tags": [
+ "NetworkWatchers"
+ ],
+ "operationId": "NetworkWatchers_List",
+ "description": "Gets all network watchers by resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of network watcher resources.",
+ "schema": {
+ "$ref": "#/definitions/NetworkWatcherListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "x-ms-examples": {
+ "List network watchers": {
+ "$ref": "./examples/NetworkWatcherList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/networkWatchers": {
+ "get": {
+ "tags": [
+ "NetworkWatchers"
+ ],
+ "operationId": "NetworkWatchers_ListAll",
+ "description": "Gets all network watchers by subscription.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of network watcher resources.",
+ "schema": {
+ "$ref": "#/definitions/NetworkWatcherListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "x-ms-examples": {
+ "List all network watchers": {
+ "$ref": "./examples/NetworkWatcherListAll.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/topology": {
+ "post": {
+ "tags": [
+ "NetworkWatchers"
+ ],
+ "operationId": "NetworkWatchers_GetTopology",
+ "description": "Gets the current network topology by resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkWatcherName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network watcher."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/TopologyParameters"
+ },
+ "description": "Parameters that define the representation of topology."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the topology of resource group.",
+ "schema": {
+ "$ref": "#/definitions/Topology"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Topology": {
+ "$ref": "./examples/NetworkWatcherTopologyGet.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/ipFlowVerify": {
+ "post": {
+ "tags": [
+ "NetworkWatchers"
+ ],
+ "operationId": "NetworkWatchers_VerifyIPFlow",
+ "description": "Verify IP flow from the specified VM to a location given the currently configured NSG rules.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkWatcherName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network watcher."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/VerificationIPFlowParameters"
+ },
+ "description": "Parameters that define the IP flow to be verified."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the result of IP flow verification.",
+ "schema": {
+ "$ref": "#/definitions/VerificationIPFlowResult"
+ }
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously.",
+ "schema": {
+ "$ref": "#/definitions/VerificationIPFlowResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Ip flow verify": {
+ "$ref": "./examples/NetworkWatcherIpFlowVerify.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/nextHop": {
+ "post": {
+ "tags": [
+ "NetworkWatchers"
+ ],
+ "operationId": "NetworkWatchers_GetNextHop",
+ "description": "Gets the next hop from the specified VM.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkWatcherName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network watcher."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/NextHopParameters"
+ },
+ "description": "Parameters that define the source and destination endpoint."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the next hop from the VM.",
+ "schema": {
+ "$ref": "#/definitions/NextHopResult"
+ }
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously.",
+ "schema": {
+ "$ref": "#/definitions/NextHopResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get next hop": {
+ "$ref": "./examples/NetworkWatcherNextHopGet.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/securityGroupView": {
+ "post": {
+ "tags": [
+ "NetworkWatchers"
+ ],
+ "operationId": "NetworkWatchers_GetVMSecurityRules",
+ "description": "Gets the configured and effective security group rules on the specified VM.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkWatcherName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network watcher."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/SecurityGroupViewParameters"
+ },
+ "description": "Parameters that define the VM to check security groups for."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns security group rules on the VM.",
+ "schema": {
+ "$ref": "#/definitions/SecurityGroupViewResult"
+ }
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously.",
+ "schema": {
+ "$ref": "#/definitions/SecurityGroupViewResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get security group view": {
+ "$ref": "./examples/NetworkWatcherSecurityGroupViewGet.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/packetCaptures/{packetCaptureName}": {
+ "put": {
+ "tags": [
+ "PacketCaptures"
+ ],
+ "operationId": "PacketCaptures_Create",
+ "description": "Create and start a packet capture on the specified VM.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkWatcherName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network watcher."
+ },
+ {
+ "name": "packetCaptureName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the packet capture session."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/PacketCapture"
+ },
+ "description": "Parameters that define the create packet capture operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Request successful. The operation returns the resulting packet capture session.",
+ "schema": {
+ "$ref": "#/definitions/PacketCaptureResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create packet capture": {
+ "$ref": "./examples/NetworkWatcherPacketCaptureCreate.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ },
+ "get": {
+ "tags": [
+ "PacketCaptures"
+ ],
+ "operationId": "PacketCaptures_Get",
+ "description": "Gets a packet capture session by name.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkWatcherName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network watcher."
+ },
+ {
+ "name": "packetCaptureName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the packet capture session."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a packet capture session.",
+ "schema": {
+ "$ref": "#/definitions/PacketCaptureResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get packet capture": {
+ "$ref": "./examples/NetworkWatcherPacketCaptureGet.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "PacketCaptures"
+ ],
+ "operationId": "PacketCaptures_Delete",
+ "description": "Deletes the specified packet capture session.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkWatcherName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network watcher."
+ },
+ {
+ "name": "packetCaptureName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the packet capture session."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Delete successful."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete packet capture": {
+ "$ref": "./examples/NetworkWatcherPacketCaptureDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/packetCaptures/{packetCaptureName}/stop": {
+ "post": {
+ "tags": [
+ "PacketCaptures"
+ ],
+ "operationId": "PacketCaptures_Stop",
+ "description": "Stops a specified packet capture session.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkWatcherName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network watcher."
+ },
+ {
+ "name": "packetCaptureName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the packet capture session."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation stops the packet capture session."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Stop packet capture": {
+ "$ref": "./examples/NetworkWatcherPacketCaptureStop.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/packetCaptures/{packetCaptureName}/queryStatus": {
+ "post": {
+ "tags": [
+ "PacketCaptures"
+ ],
+ "operationId": "PacketCaptures_GetStatus",
+ "description": "Query the status of a running packet capture session.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkWatcherName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Network Watcher resource."
+ },
+ {
+ "name": "packetCaptureName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name given to the packet capture session."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful query of packet capture status.",
+ "schema": {
+ "$ref": "#/definitions/PacketCaptureQueryStatusResult"
+ }
+ },
+ "202": {
+ "description": "Accepted query status of packet capture.",
+ "schema": {
+ "$ref": "#/definitions/PacketCaptureQueryStatusResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Query packet capture status": {
+ "$ref": "./examples/NetworkWatcherPacketCaptureQueryStatus.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/packetCaptures": {
+ "get": {
+ "tags": [
+ "PacketCaptures"
+ ],
+ "operationId": "PacketCaptures_List",
+ "description": "Lists all packet capture sessions within the specified resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkWatcherName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Network Watcher resource."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful packet capture enumeration request.",
+ "schema": {
+ "$ref": "#/definitions/PacketCaptureListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "x-ms-examples": {
+ "List packet captures": {
+ "$ref": "./examples/NetworkWatcherPacketCapturesList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/troubleshoot": {
+ "post": {
+ "tags": [
+ "NetworkWatchers"
+ ],
+ "operationId": "NetworkWatchers_GetTroubleshooting",
+ "description": "Initiate troubleshooting on a specified resource.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkWatcherName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network watcher resource."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/TroubleshootingParameters"
+ },
+ "description": "Parameters that define the resource to troubleshoot."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful troubleshooting request.",
+ "schema": {
+ "$ref": "#/definitions/TroubleshootingResult"
+ }
+ },
+ "202": {
+ "description": "Accepted get troubleshooting request.",
+ "schema": {
+ "$ref": "#/definitions/TroubleshootingResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get troubleshooting": {
+ "$ref": "./examples/NetworkWatcherTroubleshootGet.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/queryTroubleshootResult": {
+ "post": {
+ "tags": [
+ "NetworkWatchers"
+ ],
+ "operationId": "NetworkWatchers_GetTroubleshootingResult",
+ "description": "Get the last completed troubleshooting result on a specified resource.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkWatcherName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network watcher resource."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/QueryTroubleshootingParameters"
+ },
+ "description": "Parameters that define the resource to query the troubleshooting result."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful get troubleshooting result request.",
+ "schema": {
+ "$ref": "#/definitions/TroubleshootingResult"
+ }
+ },
+ "202": {
+ "description": "Accepted get troubleshooting result request.",
+ "schema": {
+ "$ref": "#/definitions/TroubleshootingResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get troubleshoot result": {
+ "$ref": "./examples/NetworkWatcherTroubleshootResultQuery.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/configureFlowLog": {
+ "post": {
+ "tags": [
+ "NetworkWatchers",
+ "TrafficAnalytics"
+ ],
+ "operationId": "NetworkWatchers_SetFlowLogConfiguration",
+ "description": "Configures flow log and traffic analytics (optional) on a specified resource.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network watcher resource group."
+ },
+ {
+ "name": "networkWatcherName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network watcher resource."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/FlowLogInformation"
+ },
+ "description": "Parameters that define the configuration of flow log."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful request for setting flow log and traffic analytics (optional) configuration.",
+ "schema": {
+ "$ref": "#/definitions/FlowLogInformation"
+ }
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously.",
+ "schema": {
+ "$ref": "#/definitions/FlowLogInformation"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Configure flow log": {
+ "$ref": "./examples/NetworkWatcherFlowLogConfigure.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/queryFlowLogStatus": {
+ "post": {
+ "tags": [
+ "NetworkWatchers",
+ "TrafficAnalytics"
+ ],
+ "operationId": "NetworkWatchers_GetFlowLogStatus",
+ "description": "Queries status of flow log and traffic analytics (optional) on a specified resource.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network watcher resource group."
+ },
+ {
+ "name": "networkWatcherName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network watcher resource."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/FlowLogStatusParameters"
+ },
+ "description": "Parameters that define a resource to query flow log and traffic analytics (optional) status."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful request for query flow log and traffic analytics (optional) status.",
+ "schema": {
+ "$ref": "#/definitions/FlowLogInformation"
+ }
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously.",
+ "schema": {
+ "$ref": "#/definitions/FlowLogInformation"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get flow log status": {
+ "$ref": "./examples/NetworkWatcherFlowLogStatusQuery.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/connectivityCheck": {
+ "post": {
+ "tags": [
+ "NetworkWatchers"
+ ],
+ "operationId": "NetworkWatchers_CheckConnectivity",
+ "description": "Verifies the possibility of establishing a direct TCP connection from a virtual machine to a given endpoint including another VM or an arbitrary remote server.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network watcher resource group."
+ },
+ {
+ "name": "networkWatcherName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network watcher resource."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ConnectivityParameters"
+ },
+ "description": "Parameters that determine how the connectivity check will be performed."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful request for checking connectivity.",
+ "schema": {
+ "$ref": "#/definitions/ConnectivityInformation"
+ }
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously.",
+ "schema": {
+ "$ref": "#/definitions/ConnectivityInformation"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Check connectivity": {
+ "$ref": "./examples/NetworkWatcherConnectivityCheck.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/azureReachabilityReport": {
+ "post": {
+ "tags": [
+ "NetworkWatchers"
+ ],
+ "operationId": "NetworkWatchers_GetAzureReachabilityReport",
+ "description": "NOTE: This feature is currently in preview and still being tested for stability. Gets the relative latency score for internet service providers from a specified location to Azure regions.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network watcher resource group."
+ },
+ {
+ "name": "networkWatcherName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network watcher resource."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/AzureReachabilityReportParameters"
+ },
+ "description": "Parameters that determine Azure reachability report configuration."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful request for Azure reachability report.",
+ "schema": {
+ "$ref": "#/definitions/AzureReachabilityReport"
+ }
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously.",
+ "schema": {
+ "$ref": "#/definitions/AzureReachabilityReport"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Azure Reachability Report": {
+ "$ref": "./examples/NetworkWatcherAzureReachabilityReportGet.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/availableProvidersList": {
+ "post": {
+ "tags": [
+ "NetworkWatchers"
+ ],
+ "operationId": "NetworkWatchers_ListAvailableProviders",
+ "description": "NOTE: This feature is currently in preview and still being tested for stability. Lists all available internet service providers for a specified Azure region.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network watcher resource group."
+ },
+ {
+ "name": "networkWatcherName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network watcher resource."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/AvailableProvidersListParameters"
+ },
+ "description": "Parameters that scope the list of available providers."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful request for list of available providers.",
+ "schema": {
+ "$ref": "#/definitions/AvailableProvidersList"
+ }
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously.",
+ "schema": {
+ "$ref": "#/definitions/AvailableProvidersList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Available Providers List": {
+ "$ref": "./examples/NetworkWatcherAvailableProvidersListGet.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/networkConfigurationDiagnostic": {
+ "post": {
+ "tags": [
+ "NetworkWatchers"
+ ],
+ "operationId": "NetworkWatchers_GetNetworkConfigurationDiagnostic",
+ "description": "Gets Network Configuration Diagnostic data to help customers understand and debug network behavior. It provides detailed information on what security rules were applied to a specified traffic flow and the result of evaluating these rules. Customers must provide details of a flow like source, destination, protocol, etc. The API returns whether traffic was allowed or denied, the rules evaluated for the specified flow and the evaluation results.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkWatcherName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network watcher."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/NetworkConfigurationDiagnosticParameters"
+ },
+ "description": "Parameters to get network configuration diagnostic."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the result of network configuration diagnostic.",
+ "schema": {
+ "$ref": "#/definitions/NetworkConfigurationDiagnosticResponse"
+ }
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously.",
+ "schema": {
+ "$ref": "#/definitions/NetworkConfigurationDiagnosticResponse"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Network configuration diagnostic": {
+ "$ref": "./examples/NetworkWatcherNetworkConfigurationDiagnostic.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/connectionMonitors/{connectionMonitorName}": {
+ "put": {
+ "tags": [
+ "ConnectionMonitors"
+ ],
+ "operationId": "ConnectionMonitors_CreateOrUpdate",
+ "description": "Create or update a connection monitor.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group containing Network Watcher."
+ },
+ {
+ "name": "networkWatcherName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Network Watcher resource."
+ },
+ {
+ "name": "connectionMonitorName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the connection monitor."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ConnectionMonitor"
+ },
+ "description": "Parameters that define the operation to create a connection monitor."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "migrate",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Value indicating whether connection monitor V1 should be migrated to V2 format."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update successful. The operation returns the resulting network watcher resource.",
+ "schema": {
+ "$ref": "#/definitions/ConnectionMonitorResult"
+ }
+ },
+ "201": {
+ "description": "Create successful. The operation returns the resulting network watcher resource.",
+ "schema": {
+ "$ref": "#/definitions/ConnectionMonitorResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./networkWatcher.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create connection monitor V1": {
+ "$ref": "./examples/NetworkWatcherConnectionMonitorCreate.json"
+ },
+ "Create connection monitor V2": {
+ "$ref": "./examples/NetworkWatcherConnectionMonitorV2Create.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ },
+ "get": {
+ "tags": [
+ "ConnectionMonitors"
+ ],
+ "operationId": "ConnectionMonitors_Get",
+ "description": "Gets a connection monitor by name.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group containing Network Watcher."
+ },
+ {
+ "name": "networkWatcherName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Network Watcher resource."
+ },
+ {
+ "name": "connectionMonitorName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the connection monitor."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a connection monitor.",
+ "schema": {
+ "$ref": "#/definitions/ConnectionMonitorResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./networkWatcher.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get connection monitor": {
+ "$ref": "./examples/NetworkWatcherConnectionMonitorGet.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "ConnectionMonitors"
+ ],
+ "operationId": "ConnectionMonitors_Delete",
+ "description": "Deletes the specified connection monitor.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group containing Network Watcher."
+ },
+ {
+ "name": "networkWatcherName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Network Watcher resource."
+ },
+ {
+ "name": "connectionMonitorName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the connection monitor."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Delete successful."
+ },
+ "202": {
+ "description": "Accepted. The operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./networkWatcher.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete connection monitor": {
+ "$ref": "./examples/NetworkWatcherConnectionMonitorDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ },
+ "patch": {
+ "tags": [
+ "ConnectionMonitors"
+ ],
+ "operationId": "ConnectionMonitors_UpdateTags",
+ "description": "Update tags of the specified connection monitor.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkWatcherName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network watcher."
+ },
+ {
+ "name": "connectionMonitorName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the connection monitor."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./network.json#/definitions/TagsObject"
+ },
+ "description": "Parameters supplied to update connection monitor tags."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns updated connection monitor.",
+ "schema": {
+ "$ref": "#/definitions/ConnectionMonitorResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./networkWatcher.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update connection monitor tags": {
+ "$ref": "./examples/NetworkWatcherConnectionMonitorUpdateTags.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/connectionMonitors/{connectionMonitorName}/stop": {
+ "post": {
+ "tags": [
+ "ConnectionMonitors"
+ ],
+ "operationId": "ConnectionMonitors_Stop",
+ "description": "Stops the specified connection monitor.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group containing Network Watcher."
+ },
+ {
+ "name": "networkWatcherName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Network Watcher resource."
+ },
+ {
+ "name": "connectionMonitorName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the connection monitor."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation stops the connection monitor."
+ },
+ "202": {
+ "description": "Accepted. The operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./networkWatcher.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Stop connection monitor": {
+ "$ref": "./examples/NetworkWatcherConnectionMonitorStop.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/connectionMonitors/{connectionMonitorName}/start": {
+ "post": {
+ "tags": [
+ "ConnectionMonitors"
+ ],
+ "operationId": "ConnectionMonitors_Start",
+ "description": "Starts the specified connection monitor.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group containing Network Watcher."
+ },
+ {
+ "name": "networkWatcherName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Network Watcher resource."
+ },
+ {
+ "name": "connectionMonitorName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the connection monitor."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation starts the connection monitor."
+ },
+ "202": {
+ "description": "Accepted. The operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./networkWatcher.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Start connection monitor": {
+ "$ref": "./examples/NetworkWatcherConnectionMonitorStart.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/connectionMonitors/{connectionMonitorName}/query": {
+ "post": {
+ "tags": [
+ "ConnectionMonitors"
+ ],
+ "operationId": "ConnectionMonitors_Query",
+ "description": "Query a snapshot of the most recent connection states.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group containing Network Watcher."
+ },
+ {
+ "name": "networkWatcherName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Network Watcher resource."
+ },
+ {
+ "name": "connectionMonitorName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name given to the connection monitor."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful query of connection states.",
+ "schema": {
+ "$ref": "#/definitions/ConnectionMonitorQueryResult"
+ }
+ },
+ "202": {
+ "description": "Accepted query of connection states.",
+ "schema": {
+ "$ref": "#/definitions/ConnectionMonitorQueryResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./networkWatcher.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Query connection monitor": {
+ "$ref": "./examples/NetworkWatcherConnectionMonitorQuery.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/connectionMonitors": {
+ "get": {
+ "tags": [
+ "ConnectionMonitors"
+ ],
+ "operationId": "ConnectionMonitors_List",
+ "description": "Lists all connection monitors for the specified Network Watcher.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group containing Network Watcher."
+ },
+ {
+ "name": "networkWatcherName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Network Watcher resource."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful connection monitor enumeration request.",
+ "schema": {
+ "$ref": "#/definitions/ConnectionMonitorListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./networkWatcher.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "x-ms-examples": {
+ "List connection monitors": {
+ "$ref": "./examples/NetworkWatcherConnectionMonitorList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/flowLogs/{flowLogName}": {
+ "put": {
+ "tags": [
+ "FlowLogs"
+ ],
+ "operationId": "FlowLogs_CreateOrUpdate",
+ "description": "Create or update a flow log for the specified network security group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkWatcherName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network watcher."
+ },
+ {
+ "name": "flowLogName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the flow log."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/FlowLog"
+ },
+ "description": "Parameters that define the create or update flow log resource."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Request successful. The operation returns the resulting flow log resource.",
+ "schema": {
+ "$ref": "#/definitions/FlowLog"
+ }
+ },
+ "200": {
+ "description": "Update successful. The operation returns the resulting flow log resource.",
+ "schema": {
+ "$ref": "#/definitions/FlowLog"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create or update flow log": {
+ "$ref": "./examples/NetworkWatcherFlowLogCreate.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ },
+ "patch": {
+ "tags": [
+ "FlowLogs"
+ ],
+ "operationId": "FlowLogs_UpdateTags",
+ "description": "Update tags of the specified flow log.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkWatcherName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network watcher."
+ },
+ {
+ "name": "flowLogName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the flow log."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./network.json#/definitions/TagsObject"
+ },
+ "description": "Parameters supplied to update flow log tags."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns updated flow log.",
+ "schema": {
+ "$ref": "#/definitions/FlowLog"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./networkWatcher.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update flow log tags": {
+ "$ref": "./examples/NetworkWatcherFlowLogUpdateTags.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "FlowLogs"
+ ],
+ "operationId": "FlowLogs_Get",
+ "description": "Gets a flow log resource by name.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkWatcherName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network watcher."
+ },
+ {
+ "name": "flowLogName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the flow log resource."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a flow log resource.",
+ "schema": {
+ "$ref": "#/definitions/FlowLog"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get flow log": {
+ "$ref": "./examples/NetworkWatcherFlowLogGet.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "FlowLogs"
+ ],
+ "operationId": "FlowLogs_Delete",
+ "description": "Deletes the specified flow log resource.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "networkWatcherName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network watcher."
+ },
+ {
+ "name": "flowLogName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the flow log resource."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Delete successful."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete flow log": {
+ "$ref": "./examples/NetworkWatcherFlowLogDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/flowLogs": {
+ "get": {
+ "tags": [
+ "FlowLogs"
+ ],
+ "operationId": "FlowLogs_List",
+ "description": "Lists all flow log resources for the specified Network Watcher.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group containing Network Watcher."
+ },
+ {
+ "name": "networkWatcherName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Network Watcher resource."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful flow log enumeration request.",
+ "schema": {
+ "$ref": "#/definitions/FlowLogListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./networkWatcher.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "List connection monitors": {
+ "$ref": "./examples/NetworkWatcherFlowLogList.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "ErrorResponse": {
+ "description": "The error object.",
+ "properties": {
+ "error": {
+ "title": "Error",
+ "$ref": "./network.json#/definitions/ErrorDetails",
+ "description": "The error details object."
+ }
+ }
+ },
+ "NetworkWatcher": {
+ "properties": {
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/NetworkWatcherPropertiesFormat",
+ "description": "Properties of the network watcher."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "description": "Network watcher in a resource group."
+ },
+ "NetworkWatcherPropertiesFormat": {
+ "properties": {
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the network watcher resource."
+ }
+ },
+ "description": "The network watcher properties."
+ },
+ "NetworkWatcherListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NetworkWatcher"
+ },
+ "description": "List of network watcher resources."
+ }
+ },
+ "description": "Response for ListNetworkWatchers API service call."
+ },
+ "TopologyParameters": {
+ "properties": {
+ "targetResourceGroupName": {
+ "type": "string",
+ "description": "The name of the target resource group to perform topology on."
+ },
+ "targetVirtualNetwork": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "The reference to the Virtual Network resource."
+ },
+ "targetSubnet": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "The reference to the Subnet resource."
+ }
+ },
+ "description": "Parameters that define the representation of topology."
+ },
+ "Topology": {
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "GUID representing the operation id."
+ },
+ "createdDateTime": {
+ "readOnly": true,
+ "type": "string",
+ "format": "date-time",
+ "description": "The datetime when the topology was initially created for the resource group."
+ },
+ "lastModified": {
+ "readOnly": true,
+ "type": "string",
+ "format": "date-time",
+ "description": "The datetime when the topology was last modified."
+ },
+ "resources": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/TopologyResource"
+ },
+ "description": "A list of topology resources."
+ }
+ },
+ "description": "Topology of the specified resource group."
+ },
+ "TopologyResource": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name of the resource."
+ },
+ "id": {
+ "type": "string",
+ "description": "ID of the resource."
+ },
+ "location": {
+ "type": "string",
+ "description": "Resource location."
+ },
+ "associations": {
+ "type": "array",
+ "description": "Holds the associations the resource has with other resources in the resource group.",
+ "items": {
+ "$ref": "#/definitions/TopologyAssociation"
+ }
+ }
+ },
+ "description": "The network resource topology information for the given resource group."
+ },
+ "TopologyAssociation": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the resource that is associated with the parent resource."
+ },
+ "resourceId": {
+ "type": "string",
+ "description": "The ID of the resource that is associated with the parent resource."
+ },
+ "associationType": {
+ "type": "string",
+ "enum": [
+ "Associated",
+ "Contains"
+ ],
+ "x-ms-enum": {
+ "name": "AssociationType",
+ "modelAsString": true
+ },
+ "description": "The association type of the child resource to the parent resource."
+ }
+ },
+ "description": "Resources that have an association with the parent resource."
+ },
+ "VerificationIPFlowParameters": {
+ "description": "Parameters that define the IP flow to be verified.",
+ "required": [
+ "targetResourceId",
+ "direction",
+ "protocol",
+ "localPort",
+ "remotePort",
+ "localIPAddress",
+ "remoteIPAddress"
+ ],
+ "properties": {
+ "targetResourceId": {
+ "type": "string",
+ "description": "The ID of the target resource to perform next-hop on."
+ },
+ "direction": {
+ "$ref": "#/definitions/Direction",
+ "description": "The direction of the packet represented as a 5-tuple."
+ },
+ "protocol": {
+ "type": "string",
+ "enum": [
+ "TCP",
+ "UDP"
+ ],
+ "x-ms-enum": {
+ "name": "IpFlowProtocol",
+ "modelAsString": true
+ },
+ "description": "Protocol to be verified on."
+ },
+ "localPort": {
+ "type": "string",
+ "description": "The local port. Acceptable values are a single integer in the range (0-65535). Support for * for the source port, which depends on the direction."
+ },
+ "remotePort": {
+ "type": "string",
+ "description": "The remote port. Acceptable values are a single integer in the range (0-65535). Support for * for the source port, which depends on the direction."
+ },
+ "localIPAddress": {
+ "type": "string",
+ "description": "The local IP address. Acceptable values are valid IPv4 addresses."
+ },
+ "remoteIPAddress": {
+ "type": "string",
+ "description": "The remote IP address. Acceptable values are valid IPv4 addresses."
+ },
+ "targetNicResourceId": {
+ "type": "string",
+ "description": "The NIC ID. (If VM has multiple NICs and IP forwarding is enabled on any of them, then this parameter must be specified. Otherwise optional)."
+ }
+ }
+ },
+ "VerificationIPFlowResult": {
+ "description": "Results of IP flow verification on the target resource.",
+ "properties": {
+ "access": {
+ "$ref": "./network.json#/definitions/Access",
+ "description": "Indicates whether the traffic is allowed or denied."
+ },
+ "ruleName": {
+ "type": "string",
+ "description": "Name of the rule. If input is not matched against any security rule, it is not displayed."
+ }
+ }
+ },
+ "NextHopParameters": {
+ "description": "Parameters that define the source and destination endpoint.",
+ "required": [
+ "targetResourceId",
+ "sourceIPAddress",
+ "destinationIPAddress"
+ ],
+ "properties": {
+ "targetResourceId": {
+ "type": "string",
+ "description": "The resource identifier of the target resource against which the action is to be performed."
+ },
+ "sourceIPAddress": {
+ "type": "string",
+ "description": "The source IP address."
+ },
+ "destinationIPAddress": {
+ "type": "string",
+ "description": "The destination IP address."
+ },
+ "targetNicResourceId": {
+ "type": "string",
+ "description": "The NIC ID. (If VM has multiple NICs and IP forwarding is enabled on any of the nics, then this parameter must be specified. Otherwise optional)."
+ }
+ }
+ },
+ "NextHopResult": {
+ "description": "The information about next hop from the specified VM.",
+ "properties": {
+ "nextHopType": {
+ "type": "string",
+ "enum": [
+ "Internet",
+ "VirtualAppliance",
+ "VirtualNetworkGateway",
+ "VnetLocal",
+ "HyperNetGateway",
+ "None"
+ ],
+ "x-ms-enum": {
+ "name": "NextHopType",
+ "modelAsString": true
+ },
+ "description": "Next hop type."
+ },
+ "nextHopIpAddress": {
+ "type": "string",
+ "description": "Next hop IP Address."
+ },
+ "routeTableId": {
+ "type": "string",
+ "description": "The resource identifier for the route table associated with the route being returned. If the route being returned does not correspond to any user created routes then this field will be the string 'System Route'."
+ }
+ }
+ },
+ "SecurityGroupViewParameters": {
+ "description": "Parameters that define the VM to check security groups for.",
+ "required": [
+ "targetResourceId"
+ ],
+ "properties": {
+ "targetResourceId": {
+ "type": "string",
+ "description": "ID of the target VM."
+ }
+ }
+ },
+ "SecurityGroupViewResult": {
+ "description": "The information about security rules applied to the specified VM.",
+ "properties": {
+ "networkInterfaces": {
+ "type": "array",
+ "description": "List of network interfaces on the specified VM.",
+ "items": {
+ "$ref": "#/definitions/SecurityGroupNetworkInterface"
+ }
+ }
+ }
+ },
+ "SecurityGroupNetworkInterface": {
+ "description": "Network interface and all its associated security rules.",
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "ID of the network interface."
+ },
+ "securityRuleAssociations": {
+ "$ref": "#/definitions/SecurityRuleAssociations",
+ "description": "All security rules associated with the network interface."
+ }
+ }
+ },
+ "SecurityRuleAssociations": {
+ "description": "All security rules associated with the network interface.",
+ "properties": {
+ "networkInterfaceAssociation": {
+ "$ref": "#/definitions/NetworkInterfaceAssociation",
+ "description": "Network interface and it's custom security rules."
+ },
+ "subnetAssociation": {
+ "$ref": "#/definitions/SubnetAssociation",
+ "description": "Subnet and it's custom security rules."
+ },
+ "defaultSecurityRules": {
+ "type": "array",
+ "items": {
+ "$ref": "./networkSecurityGroup.json#/definitions/SecurityRule"
+ },
+ "description": "Collection of default security rules of the network security group."
+ },
+ "effectiveSecurityRules": {
+ "type": "array",
+ "items": {
+ "$ref": "./networkInterface.json#/definitions/EffectiveNetworkSecurityRule"
+ },
+ "description": "Collection of effective security rules."
+ }
+ }
+ },
+ "NetworkInterfaceAssociation": {
+ "description": "Network interface and its custom security rules.",
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Network interface ID."
+ },
+ "securityRules": {
+ "type": "array",
+ "description": "Collection of custom security rules.",
+ "items": {
+ "$ref": "./networkSecurityGroup.json#/definitions/SecurityRule"
+ }
+ }
+ }
+ },
+ "SubnetAssociation": {
+ "description": "Subnet and it's custom security rules.",
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Subnet ID."
+ },
+ "securityRules": {
+ "type": "array",
+ "description": "Collection of custom security rules.",
+ "items": {
+ "$ref": "./networkSecurityGroup.json#/definitions/SecurityRule"
+ }
+ }
+ }
+ },
+ "PacketCapture": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/PacketCaptureParameters",
+ "description": "Properties of the packet capture."
+ }
+ },
+ "required": [
+ "properties"
+ ],
+ "description": "Parameters that define the create packet capture operation."
+ },
+ "PacketCaptureParameters": {
+ "properties": {
+ "target": {
+ "type": "string",
+ "description": "The ID of the targeted resource, only VM is currently supported."
+ },
+ "bytesToCapturePerPacket": {
+ "type": "integer",
+ "format": "int64",
+ "minimum": 0,
+ "maximum": 4294967295,
+ "default": 0,
+ "description": "Number of bytes captured per packet, the remaining bytes are truncated."
+ },
+ "totalBytesPerSession": {
+ "type": "integer",
+ "format": "int64",
+ "minimum": 0,
+ "maximum": 4294967295,
+ "default": 1073741824,
+ "description": "Maximum size of the capture output."
+ },
+ "timeLimitInSeconds": {
+ "type": "integer",
+ "format": "int32",
+ "minimum": 0,
+ "maximum": 18000,
+ "default": 18000,
+ "description": "Maximum duration of the capture session in seconds."
+ },
+ "storageLocation": {
+ "$ref": "#/definitions/PacketCaptureStorageLocation",
+ "description": "The storage location for a packet capture session."
+ },
+ "filters": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PacketCaptureFilter"
+ },
+ "description": "A list of packet capture filters."
+ }
+ },
+ "required": [
+ "target",
+ "storageLocation"
+ ],
+ "description": "Parameters that define the create packet capture operation."
+ },
+ "PacketCaptureStorageLocation": {
+ "properties": {
+ "storageId": {
+ "type": "string",
+ "description": "The ID of the storage account to save the packet capture session. Required if no local file path is provided."
+ },
+ "storagePath": {
+ "type": "string",
+ "description": "The URI of the storage path to save the packet capture. Must be a well-formed URI describing the location to save the packet capture."
+ },
+ "filePath": {
+ "type": "string",
+ "description": "A valid local path on the targeting VM. Must include the name of the capture file (*.cap). For linux virtual machine it must start with /var/captures. Required if no storage ID is provided, otherwise optional."
+ }
+ },
+ "description": "The storage location for a packet capture session."
+ },
+ "PacketCaptureFilter": {
+ "properties": {
+ "protocol": {
+ "type": "string",
+ "enum": [
+ "TCP",
+ "UDP",
+ "Any"
+ ],
+ "x-ms-enum": {
+ "name": "PcProtocol",
+ "modelAsString": true
+ },
+ "default": "Any",
+ "description": "Protocol to be filtered on."
+ },
+ "localIPAddress": {
+ "type": "string",
+ "description": "Local IP Address to be filtered on. Notation: \"127.0.0.1\" for single address entry. \"127.0.0.1-127.0.0.255\" for range. \"127.0.0.1;127.0.0.5\"? for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null."
+ },
+ "remoteIPAddress": {
+ "type": "string",
+ "description": "Local IP Address to be filtered on. Notation: \"127.0.0.1\" for single address entry. \"127.0.0.1-127.0.0.255\" for range. \"127.0.0.1;127.0.0.5;\" for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null."
+ },
+ "localPort": {
+ "type": "string",
+ "description": "Local port to be filtered on. Notation: \"80\" for single port entry.\"80-85\" for range. \"80;443;\" for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null."
+ },
+ "remotePort": {
+ "type": "string",
+ "description": "Remote port to be filtered on. Notation: \"80\" for single port entry.\"80-85\" for range. \"80;443;\" for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null."
+ }
+ },
+ "description": "Filter that is applied to packet capture request. Multiple filters can be applied."
+ },
+ "PacketCaptureListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PacketCaptureResult"
+ },
+ "description": "Information about packet capture sessions."
+ }
+ },
+ "description": "List of packet capture sessions."
+ },
+ "PacketCaptureResult": {
+ "properties": {
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Name of the packet capture session."
+ },
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "ID of the packet capture operation."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/PacketCaptureResultProperties",
+ "description": "Properties of the packet capture result."
+ }
+ },
+ "description": "Information about packet capture session."
+ },
+ "PacketCaptureResultProperties": {
+ "properties": {
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the packet capture session."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/PacketCaptureParameters"
+ }
+ ],
+ "description": "The properties of a packet capture session."
+ },
+ "PacketCaptureQueryStatusResult": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the packet capture resource."
+ },
+ "id": {
+ "type": "string",
+ "description": "The ID of the packet capture resource."
+ },
+ "captureStartTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The start time of the packet capture session."
+ },
+ "packetCaptureStatus": {
+ "type": "string",
+ "enum": [
+ "NotStarted",
+ "Running",
+ "Stopped",
+ "Error",
+ "Unknown"
+ ],
+ "x-ms-enum": {
+ "name": "PcStatus",
+ "modelAsString": true
+ },
+ "description": "The status of the packet capture session."
+ },
+ "stopReason": {
+ "type": "string",
+ "description": "The reason the current packet capture session was stopped."
+ },
+ "packetCaptureError": {
+ "type": "array",
+ "description": "List of errors of packet capture session.",
+ "items": {
+ "type": "string",
+ "enum": [
+ "InternalError",
+ "AgentStopped",
+ "CaptureFailed",
+ "LocalFileFailed",
+ "StorageFailed"
+ ],
+ "x-ms-enum": {
+ "name": "PcError",
+ "modelAsString": true
+ }
+ }
+ }
+ },
+ "description": "Status of packet capture session."
+ },
+ "TroubleshootingParameters": {
+ "description": "Parameters that define the resource to troubleshoot.",
+ "required": [
+ "targetResourceId",
+ "properties"
+ ],
+ "properties": {
+ "targetResourceId": {
+ "description": "The target resource to troubleshoot.",
+ "type": "string"
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/TroubleshootingProperties",
+ "description": "Properties of the troubleshooting resource."
+ }
+ }
+ },
+ "QueryTroubleshootingParameters": {
+ "description": "Parameters that define the resource to query the troubleshooting result.",
+ "required": [
+ "targetResourceId"
+ ],
+ "properties": {
+ "targetResourceId": {
+ "description": "The target resource ID to query the troubleshooting result.",
+ "type": "string"
+ }
+ }
+ },
+ "TroubleshootingProperties": {
+ "description": "Storage location provided for troubleshoot.",
+ "required": [
+ "storageId",
+ "storagePath"
+ ],
+ "properties": {
+ "storageId": {
+ "description": "The ID for the storage account to save the troubleshoot result.",
+ "type": "string"
+ },
+ "storagePath": {
+ "description": "The path to the blob to save the troubleshoot result in.",
+ "type": "string"
+ }
+ }
+ },
+ "TroubleshootingResult": {
+ "description": "Troubleshooting information gained from specified resource.",
+ "properties": {
+ "startTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The start time of the troubleshooting."
+ },
+ "endTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The end time of the troubleshooting."
+ },
+ "code": {
+ "type": "string",
+ "description": "The result code of the troubleshooting."
+ },
+ "results": {
+ "type": "array",
+ "description": "Information from troubleshooting.",
+ "items": {
+ "$ref": "#/definitions/TroubleshootingDetails"
+ }
+ }
+ }
+ },
+ "TroubleshootingDetails": {
+ "description": "Information gained from troubleshooting of specified resource.",
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "The id of the get troubleshoot operation."
+ },
+ "reasonType": {
+ "type": "string",
+ "description": "Reason type of failure."
+ },
+ "summary": {
+ "type": "string",
+ "description": "A summary of troubleshooting."
+ },
+ "detail": {
+ "type": "string",
+ "description": "Details on troubleshooting results."
+ },
+ "recommendedActions": {
+ "type": "array",
+ "description": "List of recommended actions.",
+ "items": {
+ "$ref": "#/definitions/TroubleshootingRecommendedActions"
+ }
+ }
+ }
+ },
+ "TroubleshootingRecommendedActions": {
+ "description": "Recommended actions based on discovered issues.",
+ "properties": {
+ "actionId": {
+ "description": "ID of the recommended action.",
+ "type": "string"
+ },
+ "actionText": {
+ "description": "Description of recommended actions.",
+ "type": "string"
+ },
+ "actionUri": {
+ "description": "The uri linking to a documentation for the recommended troubleshooting actions.",
+ "type": "string"
+ },
+ "actionUriText": {
+ "description": "The information from the URI for the recommended troubleshooting actions.",
+ "type": "string"
+ }
+ }
+ },
+ "FlowLogListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/FlowLog"
+ },
+ "description": "Information about flow log resource."
+ },
+ "nextLink": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "List of flow logs."
+ },
+ "FlowLog": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/FlowLogPropertiesFormat",
+ "description": "Properties of the flow log."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "description": "A flow log resource."
+ },
+ "FlowLogPropertiesFormat": {
+ "description": "Parameters that define the configuration of flow log.",
+ "required": [
+ "targetResourceId",
+ "storageId"
+ ],
+ "properties": {
+ "targetResourceId": {
+ "description": "ID of network security group to which flow log will be applied.",
+ "type": "string"
+ },
+ "targetResourceGuid": {
+ "readOnly": true,
+ "description": "Guid of network security group to which flow log will be applied.",
+ "type": "string"
+ },
+ "storageId": {
+ "description": "ID of the storage account which is used to store the flow log.",
+ "type": "string"
+ },
+ "enabled": {
+ "description": "Flag to enable/disable flow logging.",
+ "type": "boolean"
+ },
+ "retentionPolicy": {
+ "$ref": "#/definitions/RetentionPolicyParameters",
+ "description": "Parameters that define the retention policy for flow log."
+ },
+ "format": {
+ "$ref": "#/definitions/FlowLogFormatParameters",
+ "description": "Parameters that define the flow log format."
+ },
+ "flowAnalyticsConfiguration": {
+ "$ref": "#/definitions/TrafficAnalyticsProperties",
+ "description": "Parameters that define the configuration of traffic analytics."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the flow log."
+ }
+ }
+ },
+ "FlowLogProperties": {
+ "description": "Parameters that define the configuration of flow log.",
+ "required": [
+ "storageId",
+ "enabled"
+ ],
+ "properties": {
+ "storageId": {
+ "description": "ID of the storage account which is used to store the flow log.",
+ "type": "string"
+ },
+ "enabled": {
+ "description": "Flag to enable/disable flow logging.",
+ "type": "boolean"
+ },
+ "retentionPolicy": {
+ "$ref": "#/definitions/RetentionPolicyParameters",
+ "description": "Parameters that define the retention policy for flow log."
+ },
+ "format": {
+ "$ref": "#/definitions/FlowLogFormatParameters",
+ "description": "Parameters that define the flow log format."
+ }
+ }
+ },
+ "FlowLogStatusParameters": {
+ "description": "Parameters that define a resource to query flow log and traffic analytics (optional) status.",
+ "required": [
+ "targetResourceId"
+ ],
+ "properties": {
+ "targetResourceId": {
+ "description": "The target resource where getting the flow log and traffic analytics (optional) status.",
+ "type": "string"
+ }
+ }
+ },
+ "RetentionPolicyParameters": {
+ "description": "Parameters that define the retention policy for flow log.",
+ "properties": {
+ "days": {
+ "description": "Number of days to retain flow log records.",
+ "type": "integer",
+ "format": "int32",
+ "default": 0
+ },
+ "enabled": {
+ "description": "Flag to enable/disable retention.",
+ "type": "boolean",
+ "default": false
+ }
+ }
+ },
+ "FlowLogFormatParameters": {
+ "description": "Parameters that define the flow log format.",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "The file type of flow log.",
+ "enum": [
+ "JSON"
+ ],
+ "x-ms-enum": {
+ "name": "FlowLogFormatType",
+ "modelAsString": true
+ }
+ },
+ "version": {
+ "description": "The version (revision) of the flow log.",
+ "type": "integer",
+ "format": "int32",
+ "default": 0
+ }
+ }
+ },
+ "FlowLogInformation": {
+ "description": "Information on the configuration of flow log and traffic analytics (optional) .",
+ "required": [
+ "targetResourceId",
+ "properties"
+ ],
+ "properties": {
+ "targetResourceId": {
+ "description": "The ID of the resource to configure for flow log and traffic analytics (optional) .",
+ "type": "string"
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/FlowLogProperties",
+ "description": "Properties of the flow log."
+ },
+ "flowAnalyticsConfiguration": {
+ "$ref": "#/definitions/TrafficAnalyticsProperties",
+ "description": "Parameters that define the configuration of traffic analytics."
+ }
+ }
+ },
+ "TrafficAnalyticsProperties": {
+ "description": "Parameters that define the configuration of traffic analytics.",
+ "properties": {
+ "networkWatcherFlowAnalyticsConfiguration": {
+ "$ref": "#/definitions/TrafficAnalyticsConfigurationProperties",
+ "description": "Parameters that define the configuration of traffic analytics."
+ }
+ }
+ },
+ "TrafficAnalyticsConfigurationProperties": {
+ "description": "Parameters that define the configuration of traffic analytics.",
+ "properties": {
+ "enabled": {
+ "description": "Flag to enable/disable traffic analytics.",
+ "type": "boolean"
+ },
+ "workspaceId": {
+ "description": "The resource guid of the attached workspace.",
+ "type": "string"
+ },
+ "workspaceRegion": {
+ "description": "The location of the attached workspace.",
+ "type": "string"
+ },
+ "workspaceResourceId": {
+ "description": "Resource Id of the attached workspace.",
+ "type": "string"
+ },
+ "trafficAnalyticsInterval": {
+ "description": "The interval in minutes which would decide how frequently TA service should do flow analytics.",
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ },
+ "ConnectivityParameters": {
+ "description": "Parameters that determine how the connectivity check will be performed.",
+ "required": [
+ "source",
+ "destination"
+ ],
+ "properties": {
+ "source": {
+ "$ref": "#/definitions/ConnectivitySource",
+ "description": "The source of the connection."
+ },
+ "destination": {
+ "$ref": "#/definitions/ConnectivityDestination",
+ "description": "The destination of connection."
+ },
+ "protocol": {
+ "type": "string",
+ "description": "Network protocol.",
+ "enum": [
+ "Tcp",
+ "Http",
+ "Https",
+ "Icmp"
+ ],
+ "x-ms-enum": {
+ "name": "Protocol",
+ "modelAsString": true
+ }
+ },
+ "protocolConfiguration": {
+ "$ref": "#/definitions/ProtocolConfiguration",
+ "description": "Configuration of the protocol."
+ },
+ "preferredIPVersion": {
+ "$ref": "./network.json#/definitions/IPVersion",
+ "description": "Preferred IP version of the connection."
+ }
+ }
+ },
+ "ConnectivitySource": {
+ "description": "Parameters that define the source of the connection.",
+ "required": [
+ "resourceId"
+ ],
+ "properties": {
+ "resourceId": {
+ "description": "The ID of the resource from which a connectivity check will be initiated.",
+ "type": "string"
+ },
+ "port": {
+ "description": "The source port from which a connectivity check will be performed.",
+ "type": "integer",
+ "format": "int32",
+ "minimum": 0,
+ "maximum": 65535
+ }
+ }
+ },
+ "ConnectivityDestination": {
+ "description": "Parameters that define destination of connection.",
+ "properties": {
+ "resourceId": {
+ "description": "The ID of the resource to which a connection attempt will be made.",
+ "type": "string"
+ },
+ "address": {
+ "description": "The IP address or URI the resource to which a connection attempt will be made.",
+ "type": "string"
+ },
+ "port": {
+ "description": "Port on which check connectivity will be performed.",
+ "type": "integer",
+ "format": "int32",
+ "minimum": 0,
+ "maximum": 65535
+ }
+ }
+ },
+ "ConnectivityInformation": {
+ "description": "Information on the connectivity status.",
+ "properties": {
+ "hops": {
+ "readOnly": true,
+ "type": "array",
+ "description": "List of hops between the source and the destination.",
+ "items": {
+ "$ref": "#/definitions/ConnectivityHop"
+ }
+ },
+ "connectionStatus": {
+ "readOnly": true,
+ "type": "string",
+ "enum": [
+ "Unknown",
+ "Connected",
+ "Disconnected",
+ "Degraded"
+ ],
+ "x-ms-enum": {
+ "name": "ConnectionStatus",
+ "modelAsString": true
+ },
+ "description": "The connection status."
+ },
+ "avgLatencyInMs": {
+ "description": "Average latency in milliseconds.",
+ "readOnly": true,
+ "type": "integer",
+ "format": "int32"
+ },
+ "minLatencyInMs": {
+ "description": "Minimum latency in milliseconds.",
+ "readOnly": true,
+ "type": "integer",
+ "format": "int32"
+ },
+ "maxLatencyInMs": {
+ "description": "Maximum latency in milliseconds.",
+ "readOnly": true,
+ "type": "integer",
+ "format": "int32"
+ },
+ "probesSent": {
+ "description": "Total number of probes sent.",
+ "readOnly": true,
+ "type": "integer",
+ "format": "int32"
+ },
+ "probesFailed": {
+ "description": "Number of failed probes.",
+ "readOnly": true,
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ },
+ "ConnectivityHop": {
+ "description": "Information about a hop between the source and the destination.",
+ "properties": {
+ "type": {
+ "description": "The type of the hop.",
+ "readOnly": true,
+ "type": "string"
+ },
+ "id": {
+ "description": "The ID of the hop.",
+ "readOnly": true,
+ "type": "string"
+ },
+ "address": {
+ "description": "The IP address of the hop.",
+ "readOnly": true,
+ "type": "string"
+ },
+ "resourceId": {
+ "description": "The ID of the resource corresponding to this hop.",
+ "readOnly": true,
+ "type": "string"
+ },
+ "nextHopIds": {
+ "readOnly": true,
+ "type": "array",
+ "description": "List of next hop identifiers.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "previousHopIds": {
+ "readOnly": true,
+ "type": "array",
+ "description": "List of previous hop identifiers.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "links": {
+ "readOnly": true,
+ "type": "array",
+ "description": "List of hop links.",
+ "items": {
+ "$ref": "#/definitions/HopLink"
+ }
+ },
+ "previousLinks": {
+ "readOnly": true,
+ "type": "array",
+ "description": "List of previous hop links.",
+ "items": {
+ "$ref": "#/definitions/HopLink"
+ }
+ },
+ "issues": {
+ "readOnly": true,
+ "type": "array",
+ "description": "List of issues.",
+ "items": {
+ "$ref": "#/definitions/ConnectivityIssue"
+ }
+ }
+ }
+ },
+ "HopLink": {
+ "description": "Hop link.",
+ "properties": {
+ "nextHopId": {
+ "description": "The ID of the next hop.",
+ "readOnly": true,
+ "type": "string"
+ },
+ "linkType": {
+ "description": "Link type.",
+ "readOnly": true,
+ "type": "string"
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/HopLinkProperties",
+ "description": "Hop link properties."
+ },
+ "issues": {
+ "readOnly": true,
+ "type": "array",
+ "description": "List of issues.",
+ "items": {
+ "$ref": "#/definitions/ConnectivityIssue"
+ }
+ },
+ "context": {
+ "readOnly": true,
+ "type": "object",
+ "description": "Provides additional context on links.",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "resourceId": {
+ "description": "Resource ID.",
+ "readOnly": true,
+ "type": "string"
+ }
+ }
+ },
+ "HopLinkProperties": {
+ "description": "Hop link properties.",
+ "properties": {
+ "roundTripTimeMin": {
+ "description": "Minimum roundtrip time in milliseconds.",
+ "readOnly": true,
+ "type": "integer",
+ "format": "int64",
+ "minimum": 0,
+ "maximum": 4294967295
+ },
+ "roundTripTimeAvg": {
+ "description": "Average roundtrip time in milliseconds.",
+ "readOnly": true,
+ "type": "integer",
+ "format": "int64",
+ "minimum": 0,
+ "maximum": 4294967295
+ },
+ "roundTripTimeMax": {
+ "description": "Maximum roundtrip time in milliseconds.",
+ "readOnly": true,
+ "type": "integer",
+ "format": "int64",
+ "minimum": 0,
+ "maximum": 4294967295
+ }
+ }
+ },
+ "ConnectivityIssue": {
+ "description": "Information about an issue encountered in the process of checking for connectivity.",
+ "properties": {
+ "origin": {
+ "readOnly": true,
+ "type": "string",
+ "enum": [
+ "Local",
+ "Inbound",
+ "Outbound"
+ ],
+ "x-ms-enum": {
+ "name": "Origin",
+ "modelAsString": true
+ },
+ "description": "The origin of the issue."
+ },
+ "severity": {
+ "readOnly": true,
+ "type": "string",
+ "enum": [
+ "Error",
+ "Warning"
+ ],
+ "x-ms-enum": {
+ "name": "Severity",
+ "modelAsString": true
+ },
+ "description": "The severity of the issue."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "enum": [
+ "Unknown",
+ "AgentStopped",
+ "GuestFirewall",
+ "DnsResolution",
+ "SocketBind",
+ "NetworkSecurityRule",
+ "UserDefinedRoute",
+ "PortThrottled",
+ "Platform"
+ ],
+ "x-ms-enum": {
+ "name": "IssueType",
+ "modelAsString": true
+ },
+ "description": "The type of issue."
+ },
+ "context": {
+ "readOnly": true,
+ "type": "array",
+ "description": "Provides additional context on the issue.",
+ "items": {
+ "$ref": "#/definitions/IssueContext"
+ }
+ }
+ }
+ },
+ "IssueContext": {
+ "description": "A key-value pair that provides additional context on the issue.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "ProtocolConfiguration": {
+ "description": "Configuration of the protocol.",
+ "properties": {
+ "HTTPConfiguration": {
+ "$ref": "#/definitions/HTTPConfiguration",
+ "description": "HTTP configuration of the connectivity check."
+ }
+ }
+ },
+ "HTTPConfiguration": {
+ "properties": {
+ "method": {
+ "type": "string",
+ "description": "HTTP method.",
+ "enum": [
+ "Get"
+ ],
+ "x-ms-enum": {
+ "name": "HTTPMethod",
+ "modelAsString": true
+ }
+ },
+ "headers": {
+ "type": "array",
+ "description": "List of HTTP headers.",
+ "items": {
+ "$ref": "#/definitions/HTTPHeader"
+ }
+ },
+ "validStatusCodes": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "description": "Valid status codes."
+ }
+ },
+ "description": "HTTP configuration of the connectivity check."
+ },
+ "HTTPHeader": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name in HTTP header."
+ },
+ "value": {
+ "type": "string",
+ "description": "The value in HTTP header."
+ }
+ },
+ "description": "The HTTP header."
+ },
+ "AzureReachabilityReportParameters": {
+ "properties": {
+ "providerLocation": {
+ "$ref": "#/definitions/AzureReachabilityReportLocation",
+ "description": "Parameters that define a geographic location."
+ },
+ "providers": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of Internet service providers."
+ },
+ "azureLocations": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Optional Azure regions to scope the query to."
+ },
+ "startTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The start time for the Azure reachability report."
+ },
+ "endTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The end time for the Azure reachability report."
+ }
+ },
+ "required": [
+ "providerLocation",
+ "startTime",
+ "endTime"
+ ],
+ "description": "Geographic and time constraints for Azure reachability report."
+ },
+ "AzureReachabilityReportLocation": {
+ "properties": {
+ "country": {
+ "type": "string",
+ "description": "The name of the country."
+ },
+ "state": {
+ "type": "string",
+ "description": "The name of the state."
+ },
+ "city": {
+ "type": "string",
+ "description": "The name of the city or town."
+ }
+ },
+ "required": [
+ "country"
+ ],
+ "description": "Parameters that define a geographic location."
+ },
+ "AzureReachabilityReport": {
+ "properties": {
+ "aggregationLevel": {
+ "type": "string",
+ "description": "The aggregation level of Azure reachability report. Can be Country, State or City."
+ },
+ "providerLocation": {
+ "$ref": "#/definitions/AzureReachabilityReportLocation",
+ "description": "Parameters that define a geographic location."
+ },
+ "reachabilityReport": {
+ "type": "array",
+ "description": "List of Azure reachability report items.",
+ "items": {
+ "$ref": "#/definitions/AzureReachabilityReportItem"
+ }
+ }
+ },
+ "required": [
+ "aggregationLevel",
+ "providerLocation",
+ "reachabilityReport"
+ ],
+ "description": "Azure reachability report details."
+ },
+ "AzureReachabilityReportItem": {
+ "properties": {
+ "provider": {
+ "type": "string",
+ "description": "The Internet service provider."
+ },
+ "azureLocation": {
+ "type": "string",
+ "description": "The Azure region."
+ },
+ "latencies": {
+ "type": "array",
+ "description": "List of latency details for each of the time series.",
+ "items": {
+ "$ref": "#/definitions/AzureReachabilityReportLatencyInfo"
+ }
+ }
+ },
+ "description": "Azure reachability report details for a given provider location."
+ },
+ "AzureReachabilityReportLatencyInfo": {
+ "properties": {
+ "timeStamp": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The time stamp."
+ },
+ "score": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The relative latency score between 1 and 100, higher values indicating a faster connection.",
+ "minimum": 1,
+ "maximum": 100
+ }
+ },
+ "description": "Details on latency for a time series."
+ },
+ "AvailableProvidersListParameters": {
+ "properties": {
+ "azureLocations": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "A list of Azure regions."
+ },
+ "country": {
+ "type": "string",
+ "description": "The country for available providers list."
+ },
+ "state": {
+ "type": "string",
+ "description": "The state for available providers list."
+ },
+ "city": {
+ "type": "string",
+ "description": "The city or town for available providers list."
+ }
+ },
+ "description": "Constraints that determine the list of available Internet service providers."
+ },
+ "AvailableProvidersList": {
+ "properties": {
+ "countries": {
+ "type": "array",
+ "description": "List of available countries.",
+ "items": {
+ "$ref": "#/definitions/AvailableProvidersListCountry"
+ }
+ }
+ },
+ "required": [
+ "countries"
+ ],
+ "description": "List of available countries with details."
+ },
+ "AvailableProvidersListCountry": {
+ "properties": {
+ "countryName": {
+ "type": "string",
+ "description": "The country name."
+ },
+ "providers": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "A list of Internet service providers."
+ },
+ "states": {
+ "type": "array",
+ "description": "List of available states in the country.",
+ "items": {
+ "$ref": "#/definitions/AvailableProvidersListState"
+ }
+ }
+ },
+ "description": "Country details."
+ },
+ "AvailableProvidersListState": {
+ "properties": {
+ "stateName": {
+ "type": "string",
+ "description": "The state name."
+ },
+ "providers": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "A list of Internet service providers."
+ },
+ "cities": {
+ "type": "array",
+ "description": "List of available cities or towns in the state.",
+ "items": {
+ "$ref": "#/definitions/AvailableProvidersListCity"
+ }
+ }
+ },
+ "description": "State details."
+ },
+ "AvailableProvidersListCity": {
+ "properties": {
+ "cityName": {
+ "type": "string",
+ "description": "The city or town name."
+ },
+ "providers": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "A list of Internet service providers."
+ }
+ },
+ "description": "City or town details."
+ },
+ "NetworkConfigurationDiagnosticParameters": {
+ "description": "Parameters to get network configuration diagnostic.",
+ "required": [
+ "targetResourceId",
+ "profiles"
+ ],
+ "properties": {
+ "targetResourceId": {
+ "type": "string",
+ "description": "The ID of the target resource to perform network configuration diagnostic. Valid options are VM, NetworkInterface, VMSS/NetworkInterface and Application Gateway."
+ },
+ "verbosityLevel": {
+ "type": "string",
+ "enum": [
+ "Normal",
+ "Minimum",
+ "Full"
+ ],
+ "x-ms-enum": {
+ "name": "VerbosityLevel",
+ "modelAsString": true
+ },
+ "description": "Verbosity level."
+ },
+ "profiles": {
+ "type": "array",
+ "description": "List of network configuration diagnostic profiles.",
+ "items": {
+ "$ref": "#/definitions/NetworkConfigurationDiagnosticProfile"
+ }
+ }
+ }
+ },
+ "NetworkConfigurationDiagnosticProfile": {
+ "description": "Parameters to compare with network configuration.",
+ "required": [
+ "direction",
+ "protocol",
+ "source",
+ "destination",
+ "destinationPort"
+ ],
+ "properties": {
+ "direction": {
+ "$ref": "#/definitions/Direction",
+ "description": "The direction of the traffic."
+ },
+ "protocol": {
+ "type": "string",
+ "description": "Protocol to be verified on. Accepted values are '*', TCP, UDP."
+ },
+ "source": {
+ "type": "string",
+ "description": "Traffic source. Accepted values are '*', IP Address/CIDR, Service Tag."
+ },
+ "destination": {
+ "type": "string",
+ "description": "Traffic destination. Accepted values are: '*', IP Address/CIDR, Service Tag."
+ },
+ "destinationPort": {
+ "type": "string",
+ "description": "Traffic destination port. Accepted values are '*' and a single port in the range (0 - 65535)."
+ }
+ }
+ },
+ "NetworkConfigurationDiagnosticResponse": {
+ "description": "Results of network configuration diagnostic on the target resource.",
+ "properties": {
+ "results": {
+ "readOnly": true,
+ "type": "array",
+ "description": "List of network configuration diagnostic results.",
+ "items": {
+ "$ref": "#/definitions/NetworkConfigurationDiagnosticResult"
+ }
+ }
+ }
+ },
+ "NetworkConfigurationDiagnosticResult": {
+ "description": "Network configuration diagnostic result corresponded to provided traffic query.",
+ "properties": {
+ "profile": {
+ "$ref": "#/definitions/NetworkConfigurationDiagnosticProfile",
+ "description": "Network configuration diagnostic profile."
+ },
+ "networkSecurityGroupResult": {
+ "$ref": "#/definitions/NetworkSecurityGroupResult",
+ "description": "Network security group result."
+ }
+ }
+ },
+ "NetworkSecurityGroupResult": {
+ "description": "Network configuration diagnostic result corresponded provided traffic query.",
+ "properties": {
+ "securityRuleAccessResult": {
+ "$ref": "./networkSecurityGroup.json#/definitions/SecurityRuleAccess",
+ "description": "The network traffic is allowed or denied."
+ },
+ "evaluatedNetworkSecurityGroups": {
+ "readOnly": true,
+ "type": "array",
+ "description": "List of results network security groups diagnostic.",
+ "items": {
+ "$ref": "#/definitions/EvaluatedNetworkSecurityGroup"
+ }
+ }
+ }
+ },
+ "EvaluatedNetworkSecurityGroup": {
+ "description": "Results of network security group evaluation.",
+ "properties": {
+ "networkSecurityGroupId": {
+ "type": "string",
+ "description": "Network security group ID."
+ },
+ "appliedTo": {
+ "type": "string",
+ "description": "Resource ID of nic or subnet to which network security group is applied."
+ },
+ "matchedRule": {
+ "$ref": "#/definitions/MatchedRule",
+ "description": "Matched network security rule."
+ },
+ "rulesEvaluationResult": {
+ "readOnly": true,
+ "type": "array",
+ "description": "List of network security rules evaluation results.",
+ "items": {
+ "$ref": "#/definitions/NetworkSecurityRulesEvaluationResult"
+ }
+ }
+ }
+ },
+ "MatchedRule": {
+ "description": "Matched rule.",
+ "properties": {
+ "ruleName": {
+ "type": "string",
+ "description": "Name of the matched network security rule."
+ },
+ "action": {
+ "type": "string",
+ "description": "The network traffic is allowed or denied. Possible values are 'Allow' and 'Deny'."
+ }
+ }
+ },
+ "NetworkSecurityRulesEvaluationResult": {
+ "description": "Network security rules evaluation result.",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name of the network security rule."
+ },
+ "protocolMatched": {
+ "type": "boolean",
+ "description": "Value indicating whether protocol is matched."
+ },
+ "sourceMatched": {
+ "type": "boolean",
+ "description": "Value indicating whether source is matched."
+ },
+ "sourcePortMatched": {
+ "type": "boolean",
+ "description": "Value indicating whether source port is matched."
+ },
+ "destinationMatched": {
+ "type": "boolean",
+ "description": "Value indicating whether destination is matched."
+ },
+ "destinationPortMatched": {
+ "type": "boolean",
+ "description": "Value indicating whether destination port is matched."
+ }
+ }
+ },
+ "Direction": {
+ "type": "string",
+ "description": "The direction of the traffic.",
+ "enum": [
+ "Inbound",
+ "Outbound"
+ ],
+ "x-ms-enum": {
+ "name": "Direction",
+ "modelAsString": true
+ }
+ },
+ "ConnectionMonitor": {
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "Connection monitor location."
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Connection monitor tags."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ConnectionMonitorParameters",
+ "description": "Properties of the connection monitor."
+ }
+ },
+ "required": [
+ "properties"
+ ],
+ "description": "Parameters that define the operation to create a connection monitor."
+ },
+ "ConnectionMonitorParameters": {
+ "properties": {
+ "source": {
+ "$ref": "#/definitions/ConnectionMonitorSource",
+ "description": "Describes the source of connection monitor."
+ },
+ "destination": {
+ "$ref": "#/definitions/ConnectionMonitorDestination",
+ "description": "Describes the destination of connection monitor."
+ },
+ "autoStart": {
+ "type": "boolean",
+ "default": true,
+ "description": "Determines if the connection monitor will start automatically once created."
+ },
+ "monitoringIntervalInSeconds": {
+ "type": "integer",
+ "format": "int32",
+ "minimum": 30,
+ "maximum": 1800,
+ "default": 60,
+ "description": "Monitoring interval in seconds."
+ },
+ "endpoints": {
+ "type": "array",
+ "description": "List of connection monitor endpoints.",
+ "items": {
+ "$ref": "#/definitions/ConnectionMonitorEndpoint"
+ }
+ },
+ "testConfigurations": {
+ "type": "array",
+ "description": "List of connection monitor test configurations.",
+ "items": {
+ "$ref": "#/definitions/ConnectionMonitorTestConfiguration"
+ }
+ },
+ "testGroups": {
+ "type": "array",
+ "description": "List of connection monitor test groups.",
+ "items": {
+ "$ref": "#/definitions/ConnectionMonitorTestGroup"
+ }
+ },
+ "outputs": {
+ "type": "array",
+ "description": "List of connection monitor outputs.",
+ "items": {
+ "$ref": "#/definitions/ConnectionMonitorOutput"
+ }
+ },
+ "notes": {
+ "type": "string",
+ "description": "Optional notes to be associated with the connection monitor."
+ }
+ },
+ "description": "Parameters that define the operation to create a connection monitor."
+ },
+ "ConnectionMonitorSource": {
+ "properties": {
+ "resourceId": {
+ "type": "string",
+ "description": "The ID of the resource used as the source by connection monitor."
+ },
+ "port": {
+ "type": "integer",
+ "format": "int32",
+ "minimum": 0,
+ "maximum": 65535,
+ "description": "The source port used by connection monitor."
+ }
+ },
+ "required": [
+ "resourceId"
+ ],
+ "description": "Describes the source of connection monitor."
+ },
+ "ConnectionMonitorDestination": {
+ "properties": {
+ "resourceId": {
+ "type": "string",
+ "description": "The ID of the resource used as the destination by connection monitor."
+ },
+ "address": {
+ "type": "string",
+ "description": "Address of the connection monitor destination (IP or domain name)."
+ },
+ "port": {
+ "type": "integer",
+ "format": "int32",
+ "minimum": 0,
+ "maximum": 65535,
+ "description": "The destination port used by connection monitor."
+ }
+ },
+ "description": "Describes the destination of connection monitor."
+ },
+ "ConnectionMonitorEndpoint": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the connection monitor endpoint."
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "AzureVM",
+ "AzureVNet",
+ "AzureSubnet",
+ "ExternalAddress",
+ "MMAWorkspaceMachine",
+ "MMAWorkspaceNetwork"
+ ],
+ "x-ms-enum": {
+ "name": "EndpointType",
+ "modelAsString": true
+ },
+ "description": "The endpoint type."
+ },
+ "resourceId": {
+ "type": "string",
+ "description": "Resource ID of the connection monitor endpoint."
+ },
+ "address": {
+ "type": "string",
+ "description": "Address of the connection monitor endpoint (IP or domain name)."
+ },
+ "filter": {
+ "$ref": "#/definitions/ConnectionMonitorEndpointFilter",
+ "description": "Filter for sub-items within the endpoint."
+ },
+ "scope": {
+ "$ref": "#/definitions/ConnectionMonitorEndpointScope",
+ "description": "Endpoint scope."
+ },
+ "coverageLevel": {
+ "type": "string",
+ "enum": [
+ "Default",
+ "Low",
+ "BelowAverage",
+ "Average",
+ "AboveAverage",
+ "Full"
+ ],
+ "x-ms-enum": {
+ "name": "CoverageLevel",
+ "modelAsString": true
+ },
+ "description": "Test coverage for the endpoint."
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "description": "Describes the connection monitor endpoint."
+ },
+ "ConnectionMonitorEndpointScope": {
+ "properties": {
+ "include": {
+ "type": "array",
+ "description": "List of items which needs to be included to the endpoint scope.",
+ "items": {
+ "$ref": "#/definitions/ConnectionMonitorEndpointScopeItem"
+ }
+ },
+ "exclude": {
+ "type": "array",
+ "description": "List of items which needs to be excluded from the endpoint scope.",
+ "items": {
+ "$ref": "#/definitions/ConnectionMonitorEndpointScopeItem"
+ }
+ }
+ },
+ "description": "Describes the connection monitor endpoint scope."
+ },
+ "ConnectionMonitorEndpointScopeItem": {
+ "properties": {
+ "address": {
+ "type": "string",
+ "description": "The address of the endpoint item. Supported types are IPv4/IPv6 subnet mask or IPv4/IPv6 IP address."
+ }
+ },
+ "description": "Describes the connection monitor endpoint scope item."
+ },
+ "ConnectionMonitorEndpointFilter": {
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "Include"
+ ],
+ "x-ms-enum": {
+ "name": "ConnectionMonitorEndpointFilterType",
+ "modelAsString": true
+ },
+ "description": "The behavior of the endpoint filter. Currently only 'Include' is supported."
+ },
+ "items": {
+ "type": "array",
+ "description": "List of items in the filter.",
+ "items": {
+ "$ref": "#/definitions/ConnectionMonitorEndpointFilterItem"
+ }
+ }
+ },
+ "description": "Describes the connection monitor endpoint filter."
+ },
+ "ConnectionMonitorEndpointFilterItem": {
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "AgentAddress"
+ ],
+ "x-ms-enum": {
+ "name": "ConnectionMonitorEndpointFilterItemType",
+ "modelAsString": true
+ },
+ "description": "The type of item included in the filter. Currently only 'AgentAddress' is supported."
+ },
+ "address": {
+ "type": "string",
+ "description": "The address of the filter item."
+ }
+ },
+ "description": "Describes the connection monitor endpoint filter item."
+ },
+ "ConnectionMonitorTestGroup": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the connection monitor test group."
+ },
+ "disable": {
+ "type": "boolean",
+ "description": "Value indicating whether test group is disabled."
+ },
+ "testConfigurations": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of test configuration names."
+ },
+ "sources": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of source endpoint names."
+ },
+ "destinations": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of destination endpoint names."
+ }
+ },
+ "required": [
+ "name",
+ "testConfigurations",
+ "sources",
+ "destinations"
+ ],
+ "description": "Describes the connection monitor test group."
+ },
+ "ConnectionMonitorTestConfiguration": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the connection monitor test configuration."
+ },
+ "testFrequencySec": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The frequency of test evaluation, in seconds."
+ },
+ "protocol": {
+ "type": "string",
+ "enum": [
+ "Tcp",
+ "Http",
+ "Icmp"
+ ],
+ "x-ms-enum": {
+ "name": "ConnectionMonitorTestConfigurationProtocol",
+ "modelAsString": true
+ },
+ "description": "The protocol to use in test evaluation."
+ },
+ "preferredIPVersion": {
+ "type": "string",
+ "enum": [
+ "IPv4",
+ "IPv6"
+ ],
+ "x-ms-enum": {
+ "name": "PreferredIPVersion",
+ "modelAsString": true
+ },
+ "description": "The preferred IP version to use in test evaluation. The connection monitor may choose to use a different version depending on other parameters."
+ },
+ "httpConfiguration": {
+ "$ref": "#/definitions/ConnectionMonitorHttpConfiguration",
+ "description": "The parameters used to perform test evaluation over HTTP."
+ },
+ "tcpConfiguration": {
+ "$ref": "#/definitions/ConnectionMonitorTcpConfiguration",
+ "description": "The parameters used to perform test evaluation over TCP."
+ },
+ "icmpConfiguration": {
+ "$ref": "#/definitions/ConnectionMonitorIcmpConfiguration",
+ "description": "The parameters used to perform test evaluation over ICMP."
+ },
+ "successThreshold": {
+ "$ref": "#/definitions/ConnectionMonitorSuccessThreshold",
+ "description": "The threshold for declaring a test successful."
+ }
+ },
+ "required": [
+ "name",
+ "protocol"
+ ],
+ "description": "Describes a connection monitor test configuration."
+ },
+ "ConnectionMonitorHttpConfiguration": {
+ "properties": {
+ "port": {
+ "type": "integer",
+ "format": "int32",
+ "minimum": 0,
+ "maximum": 65535,
+ "description": "The port to connect to."
+ },
+ "method": {
+ "type": "string",
+ "description": "The HTTP method to use.",
+ "enum": [
+ "Get",
+ "Post"
+ ],
+ "x-ms-enum": {
+ "name": "HTTPConfigurationMethod",
+ "modelAsString": true
+ }
+ },
+ "path": {
+ "type": "string",
+ "description": "The path component of the URI. For instance, \"/dir1/dir2\"."
+ },
+ "requestHeaders": {
+ "type": "array",
+ "description": "The HTTP headers to transmit with the request.",
+ "items": {
+ "$ref": "#/definitions/HTTPHeader"
+ }
+ },
+ "validStatusCodeRanges": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "HTTP status codes to consider successful. For instance, \"2xx,301-304,418\"."
+ },
+ "preferHTTPS": {
+ "type": "boolean",
+ "description": "Value indicating whether HTTPS is preferred over HTTP in cases where the choice is not explicit."
+ }
+ },
+ "description": "Describes the HTTP configuration."
+ },
+ "ConnectionMonitorTcpConfiguration": {
+ "properties": {
+ "port": {
+ "type": "integer",
+ "format": "int32",
+ "minimum": 0,
+ "maximum": 65535,
+ "description": "The port to connect to."
+ },
+ "disableTraceRoute": {
+ "type": "boolean",
+ "description": "Value indicating whether path evaluation with trace route should be disabled."
+ },
+ "destinationPortBehavior": {
+ "type": "string",
+ "description": "Destination port behavior.",
+ "enum": [
+ "None",
+ "ListenIfAvailable"
+ ],
+ "x-ms-enum": {
+ "name": "DestinationPortBehavior",
+ "modelAsString": true
+ }
+ }
+ },
+ "description": "Describes the TCP configuration."
+ },
+ "ConnectionMonitorIcmpConfiguration": {
+ "properties": {
+ "disableTraceRoute": {
+ "type": "boolean",
+ "description": "Value indicating whether path evaluation with trace route should be disabled."
+ }
+ },
+ "description": "Describes the ICMP configuration."
+ },
+ "ConnectionMonitorSuccessThreshold": {
+ "properties": {
+ "checksFailedPercent": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The maximum percentage of failed checks permitted for a test to evaluate as successful."
+ },
+ "roundTripTimeMs": {
+ "type": "number",
+ "description": "The maximum round-trip time in milliseconds permitted for a test to evaluate as successful."
+ }
+ },
+ "description": "Describes the threshold for declaring a test successful."
+ },
+ "ConnectionMonitorOutput": {
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "Connection monitor output destination type. Currently, only \"Workspace\" is supported.",
+ "enum": [
+ "Workspace"
+ ],
+ "x-ms-enum": {
+ "name": "OutputType",
+ "modelAsString": true
+ }
+ },
+ "workspaceSettings": {
+ "$ref": "#/definitions/ConnectionMonitorWorkspaceSettings",
+ "description": "Describes the settings for producing output into a log analytics workspace."
+ }
+ },
+ "description": "Describes a connection monitor output destination."
+ },
+ "ConnectionMonitorWorkspaceSettings": {
+ "properties": {
+ "workspaceResourceId": {
+ "type": "string",
+ "description": "Log analytics workspace resource ID."
+ }
+ },
+ "description": "Describes the settings for producing output into a log analytics workspace."
+ },
+ "ConnectionStateSnapshot": {
+ "properties": {
+ "connectionState": {
+ "type": "string",
+ "enum": [
+ "Reachable",
+ "Unreachable",
+ "Unknown"
+ ],
+ "x-ms-enum": {
+ "name": "ConnectionState",
+ "modelAsString": true
+ },
+ "description": "The connection state."
+ },
+ "startTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The start time of the connection snapshot."
+ },
+ "endTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The end time of the connection snapshot."
+ },
+ "evaluationState": {
+ "type": "string",
+ "enum": [
+ "NotStarted",
+ "InProgress",
+ "Completed"
+ ],
+ "x-ms-enum": {
+ "name": "EvaluationState",
+ "modelAsString": true
+ },
+ "description": "Connectivity analysis evaluation state."
+ },
+ "avgLatencyInMs": {
+ "type": "integer",
+ "format": "int64",
+ "minimum": 0,
+ "maximum": 4294967295,
+ "description": "Average latency in ms."
+ },
+ "minLatencyInMs": {
+ "type": "integer",
+ "format": "int64",
+ "minimum": 0,
+ "maximum": 4294967295,
+ "description": "Minimum latency in ms."
+ },
+ "maxLatencyInMs": {
+ "type": "integer",
+ "format": "int64",
+ "minimum": 0,
+ "maximum": 4294967295,
+ "description": "Maximum latency in ms."
+ },
+ "probesSent": {
+ "type": "integer",
+ "format": "int64",
+ "minimum": 0,
+ "maximum": 4294967295,
+ "description": "The number of sent probes."
+ },
+ "probesFailed": {
+ "type": "integer",
+ "format": "int64",
+ "minimum": 0,
+ "maximum": 4294967295,
+ "description": "The number of failed probes."
+ },
+ "hops": {
+ "readOnly": true,
+ "type": "array",
+ "description": "List of hops between the source and the destination.",
+ "items": {
+ "$ref": "./networkWatcher.json#/definitions/ConnectivityHop"
+ }
+ }
+ },
+ "description": "Connection state snapshot."
+ },
+ "ConnectionMonitorListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ConnectionMonitorResult"
+ },
+ "description": "Information about connection monitors."
+ }
+ },
+ "description": "List of connection monitors."
+ },
+ "ConnectionMonitorResult": {
+ "x-ms-azure-resource": true,
+ "properties": {
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Name of the connection monitor."
+ },
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "ID of the connection monitor."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Connection monitor type."
+ },
+ "location": {
+ "type": "string",
+ "description": "Connection monitor location."
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Connection monitor tags."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ConnectionMonitorResultProperties",
+ "description": "Properties of the connection monitor result."
+ }
+ },
+ "description": "Information about the connection monitor."
+ },
+ "ConnectionMonitorResultProperties": {
+ "properties": {
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the connection monitor."
+ },
+ "startTime": {
+ "readOnly": true,
+ "type": "string",
+ "format": "date-time",
+ "description": "The date and time when the connection monitor was started."
+ },
+ "monitoringStatus": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The monitoring status of the connection monitor."
+ },
+ "connectionMonitorType": {
+ "readOnly": true,
+ "type": "string",
+ "enum": [
+ "MultiEndpoint",
+ "SingleSourceDestination"
+ ],
+ "x-ms-enum": {
+ "name": "ConnectionMonitorType",
+ "modelAsString": true
+ },
+ "description": "Type of connection monitor."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/ConnectionMonitorParameters"
+ }
+ ],
+ "description": "Describes the properties of a connection monitor."
+ },
+ "ConnectionMonitorQueryResult": {
+ "properties": {
+ "sourceStatus": {
+ "type": "string",
+ "enum": [
+ "Unknown",
+ "Active",
+ "Inactive"
+ ],
+ "x-ms-enum": {
+ "name": "ConnectionMonitorSourceStatus",
+ "modelAsString": true
+ },
+ "description": "Status of connection monitor source."
+ },
+ "states": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ConnectionStateSnapshot"
+ },
+ "description": "Information about connection states."
+ }
+ },
+ "description": "List of connection states snapshots."
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/operation.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/operation.json
new file mode 100644
index 000000000000..9eb326e1be14
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/operation.json
@@ -0,0 +1,271 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "NetworkManagementClient",
+ "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
+ "version": "2020-07-01"
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "security": [
+ {
+ "azure_auth": [
+ "user_impersonation"
+ ]
+ }
+ ],
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Azure Active Directory OAuth2 Flow.",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
+ "paths": {
+ "/providers/Microsoft.Network/operations": {
+ "get": {
+ "operationId": "Operations_List",
+ "description": "Lists all of the available Network Rest API operations.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/OperationListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Get a list of operations for a resource provider": {
+ "$ref": "./examples/OperationList.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "OperationListResult": {
+ "description": "Result of the request to list Network operations. It contains a list of operations and a URL link to get the next set of results.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Operation"
+ },
+ "description": "List of Network operations supported by the Network resource provider."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of operation list results if there are any."
+ }
+ }
+ },
+ "Operation": {
+ "description": "Network REST API operation definition.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Operation name: {provider}/{resource}/{operation}.",
+ "type": "string"
+ },
+ "display": {
+ "description": "Display metadata associated with the operation.",
+ "properties": {
+ "provider": {
+ "description": "Service provider: Microsoft Network.",
+ "type": "string"
+ },
+ "resource": {
+ "description": "Resource on which the operation is performed.",
+ "type": "string"
+ },
+ "operation": {
+ "description": "Type of the operation: get, read, delete, etc.",
+ "type": "string"
+ },
+ "description": {
+ "description": "Description of the operation.",
+ "type": "string"
+ }
+ }
+ },
+ "origin": {
+ "description": "Origin of the operation.",
+ "type": "string"
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/OperationPropertiesFormat",
+ "description": "Operation properties format."
+ }
+ }
+ },
+ "OperationPropertiesFormat": {
+ "description": "Description of operation properties format.",
+ "properties": {
+ "serviceSpecification": {
+ "description": "Specification of the service.",
+ "properties": {
+ "metricSpecifications": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MetricSpecification"
+ },
+ "description": "Operation service specification."
+ },
+ "logSpecifications": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/LogSpecification"
+ },
+ "description": "Operation log specification."
+ }
+ }
+ }
+ }
+ },
+ "LogSpecification": {
+ "description": "Description of logging specification.",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the specification."
+ },
+ "displayName": {
+ "type": "string",
+ "description": "The display name of the specification."
+ },
+ "blobDuration": {
+ "type": "string",
+ "description": "Duration of the blob."
+ }
+ }
+ },
+ "MetricSpecification": {
+ "description": "Description of metrics specification.",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the metric."
+ },
+ "displayName": {
+ "type": "string",
+ "description": "The display name of the metric."
+ },
+ "displayDescription": {
+ "type": "string",
+ "description": "The description of the metric."
+ },
+ "unit": {
+ "type": "string",
+ "description": "Units the metric to be displayed in."
+ },
+ "aggregationType": {
+ "type": "string",
+ "description": "The aggregation type."
+ },
+ "availabilities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Availability"
+ },
+ "description": "List of availability."
+ },
+ "enableRegionalMdmAccount": {
+ "type": "boolean",
+ "description": "Whether regional MDM account enabled."
+ },
+ "fillGapWithZero": {
+ "type": "boolean",
+ "description": "Whether gaps would be filled with zeros."
+ },
+ "metricFilterPattern": {
+ "type": "string",
+ "description": "Pattern for the filter of the metric."
+ },
+ "dimensions": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Dimension"
+ },
+ "description": "List of dimensions."
+ },
+ "isInternal": {
+ "type": "boolean",
+ "description": "Whether the metric is internal."
+ },
+ "sourceMdmAccount": {
+ "type": "string",
+ "description": "The source MDM account."
+ },
+ "sourceMdmNamespace": {
+ "type": "string",
+ "description": "The source MDM namespace."
+ },
+ "resourceIdDimensionNameOverride": {
+ "type": "string",
+ "description": "The resource Id dimension name override."
+ }
+ }
+ },
+ "Dimension": {
+ "description": "Dimension of the metric.",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the dimension."
+ },
+ "displayName": {
+ "type": "string",
+ "description": "The display name of the dimension."
+ },
+ "internalName": {
+ "type": "string",
+ "description": "The internal name of the dimension."
+ }
+ }
+ },
+ "Availability": {
+ "description": "Availability of the metric.",
+ "properties": {
+ "timeGrain": {
+ "type": "string",
+ "description": "The time grain of the availability."
+ },
+ "retention": {
+ "type": "string",
+ "description": "The retention of the availability."
+ },
+ "blobDuration": {
+ "type": "string",
+ "description": "Duration of the availability blob."
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/privateEndpoint.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/privateEndpoint.json
new file mode 100644
index 000000000000..5d748c145bfa
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/privateEndpoint.json
@@ -0,0 +1,963 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "NetworkManagementClient",
+ "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
+ "version": "2020-07-01"
+ },
+ "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/privateEndpoints/{privateEndpointName}": {
+ "delete": {
+ "tags": [
+ "PrivateEndpoints"
+ ],
+ "operationId": "PrivateEndpoints_Delete",
+ "description": "Deletes the specified private endpoint.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "privateEndpointName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the private endpoint."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "204": {
+ "description": "Delete successful."
+ },
+ "200": {
+ "description": "Delete successful."
+ },
+ "default": {
+ "description": "Error.",
+ "schema": {
+ "$ref": "./network.json#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "x-ms-examples": {
+ "Delete private endpoint": {
+ "$ref": "./examples/PrivateEndpointDelete.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "PrivateEndpoints"
+ ],
+ "operationId": "PrivateEndpoints_Get",
+ "description": "Gets the specified private endpoint by resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "privateEndpointName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the private endpoint."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Expands referenced resources."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting private endpoint resource.",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpoint"
+ }
+ },
+ "default": {
+ "description": "Error.",
+ "schema": {
+ "$ref": "./network.json#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get private endpoint": {
+ "$ref": "./examples/PrivateEndpointGet.json"
+ },
+ "Get private endpoint with manual approval connection": {
+ "$ref": "./examples/PrivateEndpointGetForManualApproval.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "PrivateEndpoints"
+ ],
+ "operationId": "PrivateEndpoints_CreateOrUpdate",
+ "description": "Creates or updates an private endpoint in the specified resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "privateEndpointName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the private endpoint."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpoint"
+ },
+ "description": "Parameters supplied to the create or update private endpoint operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update successful. The operation returns the resulting private endpoint resource.",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpoint"
+ }
+ },
+ "201": {
+ "description": "Create successful. The operation returns the resulting private endpoint resource.",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpoint"
+ }
+ },
+ "default": {
+ "description": "Error.",
+ "schema": {
+ "$ref": "./network.json#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ },
+ "x-ms-examples": {
+ "Create private endpoint": {
+ "$ref": "./examples/PrivateEndpointCreate.json"
+ },
+ "Create private endpoint with manual approval connection": {
+ "$ref": "./examples/PrivateEndpointCreateForManualApproval.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/privateEndpoints": {
+ "get": {
+ "tags": [
+ "PrivateEndpoints"
+ ],
+ "operationId": "PrivateEndpoints_List",
+ "description": "Gets all private endpoints in a resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of private endpoint resources.",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointListResult"
+ }
+ },
+ "default": {
+ "description": "Error.",
+ "schema": {
+ "$ref": "./network.json#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List private endpoints in resource group": {
+ "$ref": "./examples/PrivateEndpointList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/privateEndpoints": {
+ "get": {
+ "tags": [
+ "PrivateEndpoints"
+ ],
+ "operationId": "PrivateEndpoints_ListBySubscription",
+ "description": "Gets all private endpoints in a subscription.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of private endpoint resources.",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointListResult"
+ }
+ },
+ "default": {
+ "description": "Error.",
+ "schema": {
+ "$ref": "./network.json#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List all private endpoints": {
+ "$ref": "./examples/PrivateEndpointListAll.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/locations/{location}/availablePrivateEndpointTypes": {
+ "get": {
+ "operationId": "AvailablePrivateEndpointTypes_List",
+ "description": "Returns all of the resource types that can be linked to a Private Endpoint in this subscription in this region.",
+ "parameters": [
+ {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The location of the domain name."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns all of the resource types that can be linked to a Private Endpoint in this subscription in this region.",
+ "schema": {
+ "$ref": "#/definitions/AvailablePrivateEndpointTypesResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get available PrivateEndpoint types": {
+ "$ref": "./examples/AvailablePrivateEndpointTypesGet.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/locations/{location}/availablePrivateEndpointTypes": {
+ "get": {
+ "operationId": "AvailablePrivateEndpointTypes_ListByResourceGroup",
+ "description": "Returns all of the resource types that can be linked to a Private Endpoint in this subscription in this region.",
+ "parameters": [
+ {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The location of the domain name."
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns all of the resource types that can be linked to a Private Endpoint in this subscription in this region.",
+ "schema": {
+ "$ref": "#/definitions/AvailablePrivateEndpointTypesResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get available PrivateEndpoint types in the resource group": {
+ "$ref": "./examples/AvailablePrivateEndpointTypesResourceGroupGet.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/privateEndpoints/{privateEndpointName}/privateDnsZoneGroups/{privateDnsZoneGroupName}": {
+ "delete": {
+ "tags": [
+ "PrivateDnsZoneGroups"
+ ],
+ "operationId": "PrivateDnsZoneGroups_Delete",
+ "description": "Deletes the specified private dns zone group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "privateEndpointName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the private endpoint."
+ },
+ {
+ "name": "privateDnsZoneGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the private dns zone group."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "204": {
+ "description": "Request successful. Resource does not exist."
+ },
+ "200": {
+ "description": "Delete successful."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "x-ms-examples": {
+ "Delete private dns zone group": {
+ "$ref": "./examples/PrivateEndpointDnsZoneGroupDelete.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "PrivateDnsZoneGroups"
+ ],
+ "operationId": "PrivateDnsZoneGroups_Get",
+ "description": "Gets the private dns zone group resource by specified private dns zone group name.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "privateEndpointName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the private endpoint."
+ },
+ {
+ "name": "privateDnsZoneGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the private dns zone group."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting privateDnsZoneGroup resource.",
+ "schema": {
+ "$ref": "#/definitions/PrivateDnsZoneGroup"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get private dns zone group": {
+ "$ref": "./examples/PrivateEndpointDnsZoneGroupGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "PrivateDnsZoneGroups"
+ ],
+ "operationId": "PrivateDnsZoneGroups_CreateOrUpdate",
+ "description": "Creates or updates a private dns zone group in the specified private endpoint.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "privateEndpointName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the private endpoint."
+ },
+ {
+ "name": "privateDnsZoneGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the private dns zone group."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/PrivateDnsZoneGroup"
+ },
+ "description": "Parameters supplied to the create or update private dns zone group operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update successful. The operation returns the resulting PrivateDnsZoneGroup resource.",
+ "schema": {
+ "$ref": "#/definitions/PrivateDnsZoneGroup"
+ }
+ },
+ "201": {
+ "description": "Create successful. The operation returns the resulting PrivateDnsZoneGroup resource.",
+ "schema": {
+ "$ref": "#/definitions/PrivateDnsZoneGroup"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ },
+ "x-ms-examples": {
+ "Create private dns zone group": {
+ "$ref": "./examples/PrivateEndpointDnsZoneGroupCreate.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/privateEndpoints/{privateEndpointName}/privateDnsZoneGroups": {
+ "get": {
+ "tags": [
+ "PrivateDnsZoneGroups"
+ ],
+ "operationId": "PrivateDnsZoneGroups_List",
+ "description": "Gets all private dns zone groups in a private endpoint.",
+ "parameters": [
+ {
+ "name": "privateEndpointName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the private endpoint."
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of private dns zone group resources.",
+ "schema": {
+ "$ref": "#/definitions/PrivateDnsZoneGroupListResult"
+ }
+ },
+ "default": {
+ "description": "Error.",
+ "schema": {
+ "$ref": "./network.json#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List private endpoints in resource group": {
+ "$ref": "./examples/PrivateEndpointDnsZoneGroupList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "PrivateEndpoint": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/PrivateEndpointProperties",
+ "description": "Properties of the private endpoint."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "description": "Private endpoint resource."
+ },
+ "PrivateEndpointProperties": {
+ "properties": {
+ "subnet": {
+ "$ref": "./virtualNetwork.json#/definitions/Subnet",
+ "description": "The ID of the subnet from which the private IP will be allocated."
+ },
+ "networkInterfaces": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "./networkInterface.json#/definitions/NetworkInterface"
+ },
+ "description": "An array of references to the network interfaces created for this private endpoint."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the private endpoint resource."
+ },
+ "privateLinkServiceConnections": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PrivateLinkServiceConnection"
+ },
+ "description": "A grouping of information about the connection to the remote resource."
+ },
+ "manualPrivateLinkServiceConnections": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PrivateLinkServiceConnection"
+ },
+ "description": "A grouping of information about the connection to the remote resource. Used when the network admin does not have access to approve connections to the remote resource."
+ },
+ "customDnsConfigs": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CustomDnsConfigPropertiesFormat"
+ },
+ "description": "An array of custom dns configurations."
+ }
+ },
+ "description": "Properties of the private endpoint."
+ },
+ "CustomDnsConfigPropertiesFormat": {
+ "properties": {
+ "fqdn": {
+ "type": "string",
+ "description": "Fqdn that resolves to private endpoint ip address."
+ },
+ "ipAddresses": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "A list of private ip addresses of the private endpoint."
+ }
+ },
+ "description": "Contains custom Dns resolution configuration from customer."
+ },
+ "PrivateLinkServiceConnection": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/PrivateLinkServiceConnectionProperties",
+ "description": "Properties of the private link service connection."
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of the resource that is unique within a resource group. This name can be used to access the resource."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource type."
+ },
+ "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": "PrivateLinkServiceConnection resource."
+ },
+ "PrivateLinkServiceConnectionProperties": {
+ "properties": {
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the private link service connection resource."
+ },
+ "privateLinkServiceId": {
+ "type": "string",
+ "description": "The resource id of private link service."
+ },
+ "groupIds": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The ID(s) of the group(s) obtained from the remote resource that this private endpoint should connect to."
+ },
+ "requestMessage": {
+ "type": "string",
+ "description": "A message passed to the owner of the remote resource with this connection request. Restricted to 140 chars."
+ },
+ "privateLinkServiceConnectionState": {
+ "$ref": "./privateLinkService.json#/definitions/PrivateLinkServiceConnectionState",
+ "description": "A collection of read-only information about the state of the connection to the remote resource."
+ }
+ },
+ "description": "Properties of the PrivateLinkServiceConnection."
+ },
+ "PrivateEndpointListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PrivateEndpoint"
+ },
+ "description": "A list of private endpoint resources in a resource group."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of results.",
+ "readOnly": true
+ }
+ },
+ "description": "Response for the ListPrivateEndpoints API service call."
+ },
+ "PrivateDnsZoneGroupListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PrivateDnsZoneGroup"
+ },
+ "description": "A list of private dns zone group resources in a private endpoint."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of results.",
+ "readOnly": true
+ }
+ },
+ "description": "Response for the ListPrivateDnsZoneGroups API service call."
+ },
+ "AvailablePrivateEndpointTypesResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AvailablePrivateEndpointType"
+ },
+ "description": "An array of available privateEndpoint type."
+ },
+ "nextLink": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "An array of available PrivateEndpoint types."
+ },
+ "AvailablePrivateEndpointType": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the service and resource."
+ },
+ "id": {
+ "type": "string",
+ "description": "A unique identifier of the AvailablePrivateEndpoint Type resource."
+ },
+ "type": {
+ "type": "string",
+ "description": "Resource type."
+ },
+ "resourceName": {
+ "type": "string",
+ "description": "The name of the service and resource."
+ }
+ },
+ "description": "The information of an AvailablePrivateEndpointType."
+ },
+ "PrivateDnsZoneGroup": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "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."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/PrivateDnsZoneGroupPropertiesFormat",
+ "description": "Properties of the private dns zone group."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "Private dns zone group resource."
+ },
+ "PrivateDnsZoneGroupPropertiesFormat": {
+ "properties": {
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the private dns zone group resource."
+ },
+ "privateDnsZoneConfigs": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PrivateDnsZoneConfig"
+ },
+ "description": "A collection of private dns zone configurations of the private dns zone group."
+ }
+ },
+ "description": "Properties of the private dns zone group."
+ },
+ "PrivateDnsZoneConfig": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name of the resource that is unique within a resource group. This name can be used to access the resource."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/PrivateDnsZonePropertiesFormat",
+ "description": "Properties of the private dns zone configuration."
+ }
+ },
+ "description": "PrivateDnsZoneConfig resource."
+ },
+ "PrivateDnsZonePropertiesFormat": {
+ "properties": {
+ "privateDnsZoneId": {
+ "type": "string",
+ "description": "The resource id of the private dns zone."
+ },
+ "recordSets": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/RecordSet"
+ },
+ "description": "A collection of information regarding a recordSet, holding information to identify private resources."
+ }
+ },
+ "description": "Properties of the private dns zone configuration resource."
+ },
+ "RecordSet": {
+ "properties": {
+ "recordType": {
+ "type": "string",
+ "description": "Resource record type."
+ },
+ "recordSetName": {
+ "type": "string",
+ "description": "Recordset name."
+ },
+ "fqdn": {
+ "type": "string",
+ "description": "Fqdn that resolves to private endpoint ip address."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the recordset."
+ },
+ "ttl": {
+ "type": "integer",
+ "description": "Recordset time to live."
+ },
+ "ipAddresses": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The private ip address of the private endpoint."
+ }
+ },
+ "description": "A collective group of information about the record set information."
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/privateLinkService.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/privateLinkService.json
new file mode 100644
index 000000000000..6fc908c0fd68
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/privateLinkService.json
@@ -0,0 +1,1082 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "NetworkManagementClient",
+ "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
+ "version": "2020-07-01"
+ },
+ "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/privateLinkServices/{serviceName}": {
+ "delete": {
+ "tags": [
+ "PrivateLinkServices"
+ ],
+ "operationId": "PrivateLinkServices_Delete",
+ "description": "Deletes the specified private link service.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "serviceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the private link service."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "204": {
+ "description": "Delete successful."
+ },
+ "200": {
+ "description": "Delete successful."
+ },
+ "default": {
+ "description": "Error.",
+ "schema": {
+ "$ref": "./network.json#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "x-ms-examples": {
+ "Delete private link service": {
+ "$ref": "./examples/PrivateLinkServiceDelete.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "PrivateLinkServices"
+ ],
+ "operationId": "PrivateLinkServices_Get",
+ "description": "Gets the specified private link service by resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "serviceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the private link service."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Expands referenced resources."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting PrivateLinkService resource.",
+ "schema": {
+ "$ref": "#/definitions/PrivateLinkService"
+ }
+ },
+ "default": {
+ "description": "Error.",
+ "schema": {
+ "$ref": "./network.json#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get private link service": {
+ "$ref": "./examples/PrivateLinkServiceGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "PrivateLinkService"
+ ],
+ "operationId": "PrivateLinkServices_CreateOrUpdate",
+ "description": "Creates or updates an private link service in the specified resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "serviceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the private link service."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/PrivateLinkService"
+ },
+ "description": "Parameters supplied to the create or update private link service operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update successful. The operation returns the resulting privateLinkService resource.",
+ "schema": {
+ "$ref": "#/definitions/PrivateLinkService"
+ }
+ },
+ "201": {
+ "description": "Create successful. The operation returns the resulting privateLinkService resource.",
+ "schema": {
+ "$ref": "#/definitions/PrivateLinkService"
+ }
+ },
+ "default": {
+ "description": "Error.",
+ "schema": {
+ "$ref": "./network.json#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ },
+ "x-ms-examples": {
+ "Create private link service": {
+ "$ref": "./examples/PrivateLinkServiceCreate.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/privateLinkServices": {
+ "get": {
+ "tags": [
+ "PrivateLinkServices"
+ ],
+ "operationId": "PrivateLinkServices_List",
+ "description": "Gets all private link services in a resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of privateLinkService resources.",
+ "schema": {
+ "$ref": "#/definitions/PrivateLinkServiceListResult"
+ }
+ },
+ "default": {
+ "description": "Error.",
+ "schema": {
+ "$ref": "./network.json#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List private link service in resource group": {
+ "$ref": "./examples/PrivateLinkServiceList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/privateLinkServices": {
+ "get": {
+ "tags": [
+ "PrivateLinkServices"
+ ],
+ "operationId": "PrivateLinkServices_ListBySubscription",
+ "description": "Gets all private link service in a subscription.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of PrivateLinkService resources.",
+ "schema": {
+ "$ref": "#/definitions/PrivateLinkServiceListResult"
+ }
+ },
+ "default": {
+ "description": "Error.",
+ "schema": {
+ "$ref": "./network.json#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List all private list service": {
+ "$ref": "./examples/PrivateLinkServiceListAll.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/privateLinkServices/{serviceName}/privateEndpointConnections/{peConnectionName}": {
+ "get": {
+ "tags": [
+ "PrivateLinkServices"
+ ],
+ "operationId": "PrivateLinkServices_GetPrivateEndpointConnection",
+ "description": "Get the specific private end point connection by specific private link service in the resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "serviceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the private link service."
+ },
+ {
+ "name": "peConnectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the private end point connection."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Expands referenced resources."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting private end point connection resource.",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "default": {
+ "description": "Error.",
+ "schema": {
+ "$ref": "./network.json#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get private end point connection": {
+ "$ref": "./examples/PrivateLinkServiceGetPrivateEndpointConnection.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "PrivateLinkServices"
+ ],
+ "operationId": "PrivateLinkServices_UpdatePrivateEndpointConnection",
+ "description": "Approve or reject private end point connection for a private link service in a subscription.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "serviceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the private link service."
+ },
+ {
+ "name": "peConnectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the private end point connection."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ },
+ "description": "Parameters supplied to approve or reject the private end point connection."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update successful. The operation returns the resulting PrivateEndpointConnection resource.",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "default": {
+ "description": "Error.",
+ "schema": {
+ "$ref": "./network.json#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "approve or reject private end point connection for a private link service": {
+ "$ref": "./examples/PrivateLinkServiceUpdatePrivateEndpointConnection.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "PrivateLinkServices"
+ ],
+ "operationId": "PrivateLinkServices_DeletePrivateEndpointConnection",
+ "description": "Delete private end point connection for a private link service in a subscription.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "serviceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the private link service."
+ },
+ {
+ "name": "peConnectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the private end point connection."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "204": {
+ "description": "Delete successful."
+ },
+ "200": {
+ "description": "Delete successful."
+ },
+ "default": {
+ "description": "Error.",
+ "schema": {
+ "$ref": "./network.json#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "delete private end point connection for a private link service": {
+ "$ref": "./examples/PrivateLinkServiceDeletePrivateEndpointConnection.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/privateLinkServices/{serviceName}/privateEndpointConnections": {
+ "get": {
+ "tags": [
+ "PrivateLinkServices"
+ ],
+ "operationId": "PrivateLinkServices_ListPrivateEndpointConnections",
+ "description": "Gets all private end point connections for a specific private link service.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "serviceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the private link service."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of private end point connection resources.",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnectionListResult"
+ }
+ },
+ "default": {
+ "description": "Error.",
+ "schema": {
+ "$ref": "./network.json#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List private link service in resource group": {
+ "$ref": "./examples/PrivateLinkServiceListPrivateEndpointConnection.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/locations/{location}/checkPrivateLinkServiceVisibility": {
+ "post": {
+ "tags": [
+ "PrivateLinkServices"
+ ],
+ "operationId": "PrivateLinkServices_CheckPrivateLinkServiceVisibility",
+ "description": "Checks whether the subscription is visible to private link service.",
+ "parameters": [
+ {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The location of the domain name."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CheckPrivateLinkServiceVisibilityRequest"
+ },
+ "description": "The request body of CheckPrivateLinkService API call."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns whether the subscription is visible to private link service.",
+ "schema": {
+ "$ref": "#/definitions/PrivateLinkServiceVisibility"
+ }
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "x-ms-examples": {
+ "Check private link service visibility": {
+ "$ref": "./examples/CheckPrivateLinkServiceVisibility.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/locations/{location}/checkPrivateLinkServiceVisibility": {
+ "post": {
+ "tags": [
+ "PrivateLinkServices"
+ ],
+ "operationId": "PrivateLinkServices_CheckPrivateLinkServiceVisibilityByResourceGroup",
+ "description": "Checks whether the subscription is visible to private link service in the specified resource group.",
+ "parameters": [
+ {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The location of the domain name."
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CheckPrivateLinkServiceVisibilityRequest"
+ },
+ "description": "The request body of CheckPrivateLinkService API call."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns whether the subscription is visible to private link service.",
+ "schema": {
+ "$ref": "#/definitions/PrivateLinkServiceVisibility"
+ }
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "x-ms-examples": {
+ "Check private link service visibility": {
+ "$ref": "./examples/CheckPrivateLinkServiceVisibilityByResourceGroup.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/locations/{location}/autoApprovedPrivateLinkServices": {
+ "get": {
+ "tags": [
+ "PrivateLinkServices"
+ ],
+ "operationId": "PrivateLinkServices_ListAutoApprovedPrivateLinkServices",
+ "description": "Returns all of the private link service ids that can be linked to a Private Endpoint with auto approved in this subscription in this region.",
+ "parameters": [
+ {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The location of the domain name."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns all of the private link service ids that can be linked to a Private Endpoint with auto approved in this subscription in this region.",
+ "schema": {
+ "$ref": "#/definitions/AutoApprovedPrivateLinkServicesResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get list of private link service id that can be linked to a private end point with auto approved": {
+ "$ref": "./examples/AutoApprovedPrivateLinkServicesGet.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/locations/{location}/autoApprovedPrivateLinkServices": {
+ "get": {
+ "tags": [
+ "PrivateLinkServices"
+ ],
+ "operationId": "PrivateLinkServices_ListAutoApprovedPrivateLinkServicesByResourceGroup",
+ "description": "Returns all of the private link service ids that can be linked to a Private Endpoint with auto approved in this subscription in this region.",
+ "parameters": [
+ {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The location of the domain name."
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns all of the private link service ids that can be linked to a Private Endpoint with auto approved in this subscription in this region.",
+ "schema": {
+ "$ref": "#/definitions/AutoApprovedPrivateLinkServicesResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get list of private link service id that can be linked to a private end point with auto approved": {
+ "$ref": "./examples/AutoApprovedPrivateLinkServicesResourceGroupGet.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "PrivateLinkService": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/PrivateLinkServiceProperties",
+ "description": "Properties of the private link service."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "description": "Private link service resource."
+ },
+ "PrivateLinkServiceProperties": {
+ "properties": {
+ "loadBalancerFrontendIpConfigurations": {
+ "type": "array",
+ "items": {
+ "$ref": "./loadBalancer.json#/definitions/FrontendIPConfiguration"
+ },
+ "description": "An array of references to the load balancer IP configurations."
+ },
+ "ipConfigurations": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PrivateLinkServiceIpConfiguration"
+ },
+ "description": "An array of private link service IP configurations."
+ },
+ "networkInterfaces": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "./networkInterface.json#/definitions/NetworkInterface"
+ },
+ "description": "An array of references to the network interfaces created for this private link service."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the private link service resource."
+ },
+ "privateEndpointConnections": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ },
+ "description": "An array of list about connections to the private endpoint."
+ },
+ "visibility": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/ResourceSet"
+ }
+ ],
+ "description": "The visibility list of the private link service."
+ },
+ "autoApproval": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/ResourceSet"
+ }
+ ],
+ "description": "The auto-approval list of the private link service."
+ },
+ "fqdns": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The list of Fqdn."
+ },
+ "alias": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The alias of the private link service."
+ },
+ "enableProxyProtocol": {
+ "type": "boolean",
+ "description": "Whether the private link service is enabled for proxy protocol or not."
+ }
+ },
+ "description": "Properties of the private link service."
+ },
+ "ResourceSet": {
+ "properties": {
+ "subscriptions": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The list of subscriptions."
+ }
+ },
+ "description": "The base resource set for visibility and auto-approval."
+ },
+ "PrivateLinkServiceIpConfiguration": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/PrivateLinkServiceIpConfigurationProperties",
+ "description": "Properties of the private link service ip configuration."
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of private link service ip configuration."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource type."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "The private link service ip configuration."
+ },
+ "PrivateLinkServiceIpConfigurationProperties": {
+ "properties": {
+ "privateIPAddress": {
+ "type": "string",
+ "description": "The private IP address of the IP configuration."
+ },
+ "privateIPAllocationMethod": {
+ "$ref": "./network.json#/definitions/IPAllocationMethod",
+ "description": "The private IP address allocation method."
+ },
+ "subnet": {
+ "$ref": "./virtualNetwork.json#/definitions/Subnet",
+ "description": "The reference to the subnet resource."
+ },
+ "primary": {
+ "type": "boolean",
+ "description": "Whether the ip configuration is primary or not."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the private link service IP configuration resource."
+ },
+ "privateIPAddressVersion": {
+ "$ref": "./network.json#/definitions/IPVersion",
+ "description": "Whether the specific IP configuration is IPv4 or IPv6. Default is IPv4."
+ }
+ },
+ "description": "Properties of private link service IP configuration."
+ },
+ "PrivateEndpointConnection": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/PrivateEndpointConnectionProperties",
+ "description": "Properties of the private end point connection."
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of the resource that is unique within a resource group. This name can be used to access the resource."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource type."
+ },
+ "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": "PrivateEndpointConnection resource."
+ },
+ "PrivateEndpointConnectionProperties": {
+ "properties": {
+ "privateEndpoint": {
+ "readOnly": true,
+ "$ref": "./privateEndpoint.json#/definitions/PrivateEndpoint",
+ "description": "The resource of private end point."
+ },
+ "privateLinkServiceConnectionState": {
+ "$ref": "#/definitions/PrivateLinkServiceConnectionState",
+ "description": "A collection of information about the state of the connection between service consumer and provider."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the private endpoint connection resource."
+ },
+ "linkIdentifier": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The consumer link id."
+ }
+ },
+ "description": "Properties of the PrivateEndpointConnectProperties."
+ },
+ "PrivateLinkServiceConnectionState": {
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service."
+ },
+ "description": {
+ "type": "string",
+ "description": "The reason for approval/rejection of the connection."
+ },
+ "actionsRequired": {
+ "type": "string",
+ "description": "A message indicating if changes on the service provider require any updates on the consumer."
+ }
+ },
+ "description": "A collection of information about the state of the connection between service consumer and provider."
+ },
+ "PrivateLinkServiceListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PrivateLinkService"
+ },
+ "description": "A list of PrivateLinkService resources in a resource group."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of results.",
+ "readOnly": true
+ }
+ },
+ "description": "Response for the ListPrivateLinkService API service call."
+ },
+ "PrivateEndpointConnectionListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ },
+ "description": "A list of PrivateEndpointConnection resources for a specific private link service."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of results.",
+ "readOnly": true
+ }
+ },
+ "description": "Response for the ListPrivateEndpointConnection API service call."
+ },
+ "CheckPrivateLinkServiceVisibilityRequest": {
+ "properties": {
+ "privateLinkServiceAlias": {
+ "type": "string",
+ "description": "The alias of the private link service."
+ }
+ },
+ "description": "Request body of the CheckPrivateLinkServiceVisibility API service call."
+ },
+ "PrivateLinkServiceVisibility": {
+ "properties": {
+ "visible": {
+ "type": "boolean",
+ "description": "Private Link Service Visibility (True/False)."
+ }
+ },
+ "description": "Response for the CheckPrivateLinkServiceVisibility API service call."
+ },
+ "AutoApprovedPrivateLinkServicesResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AutoApprovedPrivateLinkService"
+ },
+ "description": "An array of auto approved private link service."
+ },
+ "nextLink": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "An array of private link service id that can be linked to a private end point with auto approved."
+ },
+ "AutoApprovedPrivateLinkService": {
+ "properties": {
+ "privateLinkService": {
+ "type": "string",
+ "description": "The id of the private link service resource."
+ }
+ },
+ "description": "The information of an AutoApprovedPrivateLinkService."
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/publicIpAddress.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/publicIpAddress.json
new file mode 100644
index 000000000000..032b26c7649c
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/publicIpAddress.json
@@ -0,0 +1,561 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "NetworkManagementClient",
+ "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
+ "version": "2020-07-01"
+ },
+ "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/publicIPAddresses/{publicIpAddressName}": {
+ "delete": {
+ "tags": [
+ "PublicIPAddresses"
+ ],
+ "operationId": "PublicIPAddresses_Delete",
+ "description": "Deletes the specified public IP address.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "publicIpAddressName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the public IP address."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Request successful. Resource does not exist."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "200": {
+ "description": "Delete successful."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete public IP address": {
+ "$ref": "./examples/PublicIpAddressDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ },
+ "get": {
+ "tags": [
+ "PublicIPAddresses"
+ ],
+ "operationId": "PublicIPAddresses_Get",
+ "description": "Gets the specified public IP address in a specified resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "publicIpAddressName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the public IP address."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Expands referenced resources."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting PublicIPAddress resource.",
+ "schema": {
+ "$ref": "#/definitions/PublicIPAddress"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get public IP address": {
+ "$ref": "./examples/PublicIpAddressGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "PublicIPAddresses"
+ ],
+ "operationId": "PublicIPAddresses_CreateOrUpdate",
+ "description": "Creates or updates a static or dynamic public IP address.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "publicIpAddressName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the public IP address."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/PublicIPAddress"
+ },
+ "description": "Parameters supplied to the create or update public IP address operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Create successful. The operation returns the resulting PublicIPAddress resource.",
+ "schema": {
+ "$ref": "#/definitions/PublicIPAddress"
+ }
+ },
+ "200": {
+ "description": "Update successful. The operation returns the resulting PublicIPAddress resource.",
+ "schema": {
+ "$ref": "#/definitions/PublicIPAddress"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create public IP address defaults": {
+ "$ref": "./examples/PublicIpAddressCreateDefaults.json"
+ },
+ "Create public IP address allocation method": {
+ "$ref": "./examples/PublicIpAddressCreateCustomizedValues.json"
+ },
+ "Create public IP address DNS": {
+ "$ref": "./examples/PublicIpAddressCreateDns.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ },
+ "patch": {
+ "tags": [
+ "PublicIPAddresses"
+ ],
+ "operationId": "PublicIPAddresses_UpdateTags",
+ "description": "Updates public IP address tags.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "publicIpAddressName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the public IP address."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./network.json#/definitions/TagsObject"
+ },
+ "description": "Parameters supplied to update public IP address tags."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update successful. The operation returns the resulting PublicIPAddress resource.",
+ "schema": {
+ "$ref": "#/definitions/PublicIPAddress"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update public IP address tags": {
+ "$ref": "./examples/PublicIpAddressUpdateTags.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/publicIPAddresses": {
+ "get": {
+ "tags": [
+ "PublicIPAddresses"
+ ],
+ "operationId": "PublicIPAddresses_ListAll",
+ "description": "Gets all the public IP addresses in a subscription.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of PublicIPAddress resources.",
+ "schema": {
+ "$ref": "#/definitions/PublicIPAddressListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List all public IP addresses": {
+ "$ref": "./examples/PublicIpAddressListAll.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPAddresses": {
+ "get": {
+ "tags": [
+ "PublicIPAddresses"
+ ],
+ "operationId": "PublicIPAddresses_List",
+ "description": "Gets all public IP addresses in a resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of PublicIPAddress resources.",
+ "schema": {
+ "$ref": "#/definitions/PublicIPAddressListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List resource group public IP addresses": {
+ "$ref": "./examples/PublicIpAddressList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "PublicIPAddressSku": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name of a public IP address SKU.",
+ "enum": [
+ "Basic",
+ "Standard"
+ ],
+ "x-ms-enum": {
+ "name": "PublicIPAddressSkuName",
+ "modelAsString": true
+ }
+ },
+ "tier": {
+ "type": "string",
+ "description": "Tier of a public IP address SKU.",
+ "enum": [
+ "Regional",
+ "Global"
+ ],
+ "x-ms-enum": {
+ "name": "PublicIPAddressSkuTier",
+ "modelAsString": true
+ }
+ }
+ },
+ "description": "SKU of a public IP address."
+ },
+ "PublicIPAddressPropertiesFormat": {
+ "properties": {
+ "publicIPAllocationMethod": {
+ "$ref": "./network.json#/definitions/IPAllocationMethod",
+ "description": "The public IP address allocation method."
+ },
+ "publicIPAddressVersion": {
+ "$ref": "./network.json#/definitions/IPVersion",
+ "description": "The public IP address version."
+ },
+ "ipConfiguration": {
+ "readOnly": true,
+ "$ref": "./networkInterface.json#/definitions/IPConfiguration",
+ "description": "The IP configuration associated with the public IP address."
+ },
+ "dnsSettings": {
+ "$ref": "#/definitions/PublicIPAddressDnsSettings",
+ "description": "The FQDN of the DNS record associated with the public IP address."
+ },
+ "ddosSettings": {
+ "$ref": "#/definitions/DdosSettings",
+ "description": "The DDoS protection custom policy associated with the public IP address."
+ },
+ "ipTags": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/IpTag"
+ },
+ "description": "The list of tags associated with the public IP address."
+ },
+ "ipAddress": {
+ "type": "string",
+ "description": "The IP address associated with the public IP address resource."
+ },
+ "publicIPPrefix": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "The Public IP Prefix this Public IP Address should be allocated from."
+ },
+ "idleTimeoutInMinutes": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The idle timeout of the public IP address."
+ },
+ "resourceGuid": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource GUID property of the public IP address resource."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the public IP address resource."
+ }
+ },
+ "description": "Public IP address properties."
+ },
+ "PublicIPAddress": {
+ "properties": {
+ "extendedLocation": {
+ "$ref": "./network.json#/definitions/ExtendedLocation",
+ "description": "The extended location of the public ip address."
+ },
+ "sku": {
+ "$ref": "#/definitions/PublicIPAddressSku",
+ "description": "The public IP address SKU."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/PublicIPAddressPropertiesFormat",
+ "description": "Public IP address properties."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ },
+ "zones": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "A list of availability zones denoting the IP allocated for the resource needs to come from."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "description": "Public IP address resource."
+ },
+ "PublicIPAddressListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PublicIPAddress"
+ },
+ "description": "A list of public IP addresses that exists in a resource group."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for ListPublicIpAddresses API service call."
+ },
+ "PublicIPAddressDnsSettings": {
+ "properties": {
+ "domainNameLabel": {
+ "type": "string",
+ "description": "The domain name label. The concatenation of the domain name label and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address. If a domain name label is specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system."
+ },
+ "fqdn": {
+ "type": "string",
+ "description": "The Fully Qualified Domain Name of the A DNS record associated with the public IP. This is the concatenation of the domainNameLabel and the regionalized DNS zone."
+ },
+ "reverseFqdn": {
+ "type": "string",
+ "description": "The reverse FQDN. A user-visible, fully qualified domain name that resolves to this public IP address. If the reverseFqdn is specified, then a PTR DNS record is created pointing from the IP address in the in-addr.arpa domain to the reverse FQDN."
+ }
+ },
+ "description": "Contains FQDN of the DNS record associated with the public IP address."
+ },
+ "DdosSettings": {
+ "properties": {
+ "ddosCustomPolicy": {
+ "readOnly": false,
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "The DDoS custom policy associated with the public IP."
+ },
+ "protectionCoverage": {
+ "readOnly": false,
+ "type": "string",
+ "enum": [
+ "Basic",
+ "Standard"
+ ],
+ "x-ms-enum": {
+ "name": "DdosSettingsProtectionCoverage",
+ "modelAsString": true
+ },
+ "description": "The DDoS protection policy customizability of the public IP. Only standard coverage will have the ability to be customized."
+ },
+ "protectedIP": {
+ "readOnly": false,
+ "type": "boolean",
+ "description": "Enables DDoS protection on the public IP."
+ }
+ },
+ "description": "Contains the DDoS protection settings of the public IP."
+ },
+ "IpTag": {
+ "properties": {
+ "ipTagType": {
+ "type": "string",
+ "description": "The IP tag type. Example: FirstPartyUsage."
+ },
+ "tag": {
+ "type": "string",
+ "description": "The value of the IP tag associated with the public IP. Example: SQL."
+ }
+ },
+ "description": "Contains the IpTag associated with the object."
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/publicIpPrefix.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/publicIpPrefix.json
new file mode 100644
index 000000000000..fd04cfb3a839
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/publicIpPrefix.json
@@ -0,0 +1,505 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "NetworkManagementClient",
+ "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
+ "version": "2020-07-01"
+ },
+ "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/publicIPPrefixes/{publicIpPrefixName}": {
+ "delete": {
+ "tags": [
+ "PublicIPPrefixes"
+ ],
+ "operationId": "PublicIPPrefixes_Delete",
+ "description": "Deletes the specified public IP prefix.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "publicIpPrefixName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the PublicIpPrefix."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Request successful. Resource does not exist."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "200": {
+ "description": "Delete successful."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete public IP prefix": {
+ "$ref": "./examples/PublicIpPrefixDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ },
+ "get": {
+ "tags": [
+ "PublicIPPrefixes"
+ ],
+ "operationId": "PublicIPPrefixes_Get",
+ "description": "Gets the specified public IP prefix in a specified resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "publicIpPrefixName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the public IP prefix."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Expands referenced resources."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting PublicIPPrefix resource.",
+ "schema": {
+ "$ref": "#/definitions/PublicIPPrefix"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get public IP prefix": {
+ "$ref": "./examples/PublicIpPrefixGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "PublicIPPrefixes"
+ ],
+ "operationId": "PublicIPPrefixes_CreateOrUpdate",
+ "description": "Creates or updates a static or dynamic public IP prefix.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "publicIpPrefixName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the public IP prefix."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/PublicIPPrefix"
+ },
+ "description": "Parameters supplied to the create or update public IP prefix operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Create successful. The operation returns the resulting PublicIPPrefix resource.",
+ "schema": {
+ "$ref": "#/definitions/PublicIPPrefix"
+ }
+ },
+ "200": {
+ "description": "Update successful. The operation returns the resulting PublicIPPrefix resource.",
+ "schema": {
+ "$ref": "#/definitions/PublicIPPrefix"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create public IP prefix defaults": {
+ "$ref": "./examples/PublicIpPrefixCreateDefaults.json"
+ },
+ "Create public IP prefix allocation method": {
+ "$ref": "./examples/PublicIpPrefixCreateCustomizedValues.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ },
+ "patch": {
+ "tags": [
+ "PublicIPPrefixes"
+ ],
+ "operationId": "PublicIPPrefixes_UpdateTags",
+ "description": "Updates public IP prefix tags.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "publicIpPrefixName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the public IP prefix."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./network.json#/definitions/TagsObject"
+ },
+ "description": "Parameters supplied to update public IP prefix tags."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update successful. The operation returns the resulting PublicIPPrefix resource.",
+ "schema": {
+ "$ref": "#/definitions/PublicIPPrefix"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update public IP prefix tags": {
+ "$ref": "./examples/PublicIpPrefixUpdateTags.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/publicIPPrefixes": {
+ "get": {
+ "tags": [
+ "PublicIPPrefixes"
+ ],
+ "operationId": "PublicIPPrefixes_ListAll",
+ "description": "Gets all the public IP prefixes in a subscription.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of PublicIPPrefix resources.",
+ "schema": {
+ "$ref": "#/definitions/PublicIPPrefixListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List all public IP prefixes": {
+ "$ref": "./examples/PublicIpPrefixListAll.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes": {
+ "get": {
+ "tags": [
+ "PublicIPPrefixes"
+ ],
+ "operationId": "PublicIPPrefixes_List",
+ "description": "Gets all public IP prefixes in a resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of PublicIPPrefix resources.",
+ "schema": {
+ "$ref": "#/definitions/PublicIPPrefixListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List resource group public IP prefixes": {
+ "$ref": "./examples/PublicIpPrefixList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "PublicIPPrefixSku": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name of a public IP prefix SKU.",
+ "enum": [
+ "Standard"
+ ],
+ "x-ms-enum": {
+ "name": "PublicIPPrefixSkuName",
+ "modelAsString": true
+ }
+ },
+ "tier": {
+ "type": "string",
+ "description": "Tier of a public IP prefix SKU.",
+ "enum": [
+ "Regional",
+ "Global"
+ ],
+ "x-ms-enum": {
+ "name": "PublicIPPrefixSkuTier",
+ "modelAsString": true
+ }
+ }
+ },
+ "description": "SKU of a public IP prefix."
+ },
+ "PublicIPPrefixPropertiesFormat": {
+ "properties": {
+ "publicIPAddressVersion": {
+ "$ref": "./network.json#/definitions/IPVersion",
+ "description": "The public IP address version."
+ },
+ "ipTags": {
+ "type": "array",
+ "items": {
+ "$ref": "./publicIpAddress.json#/definitions/IpTag"
+ },
+ "description": "The list of tags associated with the public IP prefix."
+ },
+ "prefixLength": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The Length of the Public IP Prefix."
+ },
+ "ipPrefix": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The allocated Prefix."
+ },
+ "publicIPAddresses": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ReferencedPublicIpAddress"
+ },
+ "description": "The list of all referenced PublicIPAddresses."
+ },
+ "loadBalancerFrontendIpConfiguration": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "The reference to load balancer frontend IP configuration associated with the public IP prefix."
+ },
+ "customIPPrefix": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "The customIpPrefix that this prefix is associated with."
+ },
+ "resourceGuid": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource GUID property of the public IP prefix resource."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the public IP prefix resource."
+ }
+ },
+ "description": "Public IP prefix properties."
+ },
+ "PublicIPPrefix": {
+ "properties": {
+ "extendedLocation": {
+ "$ref": "./network.json#/definitions/ExtendedLocation",
+ "description": "The extended location of the public ip address."
+ },
+ "sku": {
+ "$ref": "#/definitions/PublicIPPrefixSku",
+ "description": "The public IP prefix SKU."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/PublicIPPrefixPropertiesFormat",
+ "description": "Public IP prefix properties."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ },
+ "zones": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "A list of availability zones denoting the IP allocated for the resource needs to come from."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "description": "Public IP prefix resource."
+ },
+ "PublicIPPrefixListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PublicIPPrefix"
+ },
+ "description": "A list of public IP prefixes that exists in a resource group."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for ListPublicIpPrefixes API service call."
+ },
+ "ReferencedPublicIpAddress": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "The PublicIPAddress Reference."
+ }
+ },
+ "description": "Reference to a public IP address."
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/routeFilter.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/routeFilter.json
new file mode 100644
index 000000000000..ac88ca243a32
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/routeFilter.json
@@ -0,0 +1,822 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "NetworkManagementClient",
+ "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
+ "version": "2020-07-01"
+ },
+ "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/routeFilters/{routeFilterName}": {
+ "delete": {
+ "tags": [
+ "RouteFilters"
+ ],
+ "operationId": "RouteFilters_Delete",
+ "x-ms-examples": {
+ "RouteFilterDelete": {
+ "$ref": "./examples/RouteFilterDelete.json"
+ }
+ },
+ "description": "Deletes the specified route filter.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "routeFilterName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the route filter."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "200": {
+ "description": "Delete successful."
+ },
+ "204": {
+ "description": "Delete successful."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ },
+ "get": {
+ "tags": [
+ "RouteFilters"
+ ],
+ "operationId": "RouteFilters_Get",
+ "x-ms-examples": {
+ "RouteFilterGet": {
+ "$ref": "./examples/RouteFilterGet.json"
+ }
+ },
+ "description": "Gets the specified route filter.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "routeFilterName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the route filter."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Expands referenced express route bgp peering resources."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting Route Filter resource.",
+ "schema": {
+ "$ref": "#/definitions/RouteFilter"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "RouteFilters"
+ ],
+ "operationId": "RouteFilters_CreateOrUpdate",
+ "x-ms-examples": {
+ "RouteFilterCreate": {
+ "$ref": "./examples/RouteFilterCreate.json"
+ }
+ },
+ "description": "Creates or updates a route filter in a specified resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "routeFilterName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the route filter."
+ },
+ {
+ "name": "routeFilterParameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/RouteFilter"
+ },
+ "description": "Parameters supplied to the create or update route filter operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting Route Filter resource.",
+ "schema": {
+ "$ref": "#/definitions/RouteFilter"
+ }
+ },
+ "201": {
+ "description": "Create successful. The operation returns the resulting Route Filter resource.",
+ "schema": {
+ "$ref": "#/definitions/RouteFilter"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ },
+ "patch": {
+ "tags": [
+ "RouteFilters"
+ ],
+ "operationId": "RouteFilters_UpdateTags",
+ "description": "Updates tags of a route filter.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "routeFilterName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the route filter."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./network.json#/definitions/TagsObject"
+ },
+ "description": "Parameters supplied to update route filter tags."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting Route Filter resource.",
+ "schema": {
+ "$ref": "#/definitions/RouteFilter"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update route filter tags": {
+ "$ref": "./examples/RouteFilterUpdateTags.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/routeFilters": {
+ "get": {
+ "tags": [
+ "RouteFilters"
+ ],
+ "operationId": "RouteFilters_ListByResourceGroup",
+ "x-ms-examples": {
+ "RouteFilterListByResourceGroup": {
+ "$ref": "./examples/RouteFilterListByResourceGroup.json"
+ }
+ },
+ "description": "Gets all route filters in a resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of Route Filter resources.",
+ "schema": {
+ "$ref": "#/definitions/RouteFilterListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/routeFilters": {
+ "get": {
+ "tags": [
+ "RouteFilters"
+ ],
+ "operationId": "RouteFilters_List",
+ "x-ms-examples": {
+ "RouteFilterList": {
+ "$ref": "./examples/RouteFilterList.json"
+ }
+ },
+ "description": "Gets all route filters in a subscription.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of Route Filter resources.",
+ "schema": {
+ "$ref": "#/definitions/RouteFilterListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/routeFilters/{routeFilterName}/routeFilterRules/{ruleName}": {
+ "delete": {
+ "tags": [
+ "RouteFilterRules"
+ ],
+ "operationId": "RouteFilterRules_Delete",
+ "x-ms-examples": {
+ "RouteFilterRuleDelete": {
+ "$ref": "./examples/RouteFilterRuleDelete.json"
+ }
+ },
+ "description": "Deletes the specified rule from a route filter.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "routeFilterName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the route filter."
+ },
+ {
+ "name": "ruleName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the rule."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "200": {
+ "description": "Accepted."
+ },
+ "204": {
+ "description": "Rule was deleted or not found."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ },
+ "get": {
+ "tags": [
+ "RouteFilterRules"
+ ],
+ "operationId": "RouteFilterRules_Get",
+ "x-ms-examples": {
+ "RouteFilterRuleGet": {
+ "$ref": "./examples/RouteFilterRuleGet.json"
+ }
+ },
+ "description": "Gets the specified rule from a route filter.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "routeFilterName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the route filter."
+ },
+ {
+ "name": "ruleName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the rule."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting Route Filter Rule resource.",
+ "schema": {
+ "$ref": "#/definitions/RouteFilterRule"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "RouteFilterRules"
+ ],
+ "operationId": "RouteFilterRules_CreateOrUpdate",
+ "x-ms-examples": {
+ "RouteFilterRuleCreate": {
+ "$ref": "./examples/RouteFilterRuleCreate.json"
+ }
+ },
+ "description": "Creates or updates a route in the specified route filter.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "routeFilterName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the route filter."
+ },
+ {
+ "name": "ruleName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the route filter rule."
+ },
+ {
+ "name": "routeFilterRuleParameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/RouteFilterRule"
+ },
+ "description": "Parameters supplied to the create or update route filter rule operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update successful. The operation returns the resulting Route Filter Rule resource.",
+ "schema": {
+ "$ref": "#/definitions/RouteFilterRule"
+ }
+ },
+ "201": {
+ "description": "Create successful. The operation returns the resulting Route Filter Rule resource.",
+ "schema": {
+ "$ref": "#/definitions/RouteFilterRule"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/routeFilters/{routeFilterName}/routeFilterRules": {
+ "get": {
+ "tags": [
+ "RouteFilterRules"
+ ],
+ "operationId": "RouteFilterRules_ListByRouteFilter",
+ "x-ms-examples": {
+ "RouteFilterRuleListByRouteFilter": {
+ "$ref": "./examples/RouteFilterRuleListByRouteFilter.json"
+ }
+ },
+ "description": "Gets all RouteFilterRules in a route filter.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "routeFilterName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the route filter."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of Route Filter Rule resources.",
+ "schema": {
+ "$ref": "#/definitions/RouteFilterRuleListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "RouteFilterRulePropertiesFormat": {
+ "required": [
+ "access",
+ "routeFilterRuleType",
+ "communities"
+ ],
+ "properties": {
+ "access": {
+ "$ref": "./network.json#/definitions/Access",
+ "description": "The access type of the rule."
+ },
+ "routeFilterRuleType": {
+ "type": "string",
+ "description": "The rule type of the rule.",
+ "enum": [
+ "Community"
+ ],
+ "x-ms-enum": {
+ "name": "RouteFilterRuleType",
+ "modelAsString": true
+ }
+ },
+ "communities": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The collection for bgp community values to filter on. e.g. ['12076:5010','12076:5020']."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the route filter rule resource."
+ }
+ },
+ "description": "Route Filter Rule Resource."
+ },
+ "RouteFilterRule": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/RouteFilterRulePropertiesFormat",
+ "description": "Properties of the route filter rule."
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of the resource that is unique within a resource group. This name can be used to access the resource."
+ },
+ "location": {
+ "type": "string",
+ "description": "Resource location."
+ },
+ "etag": {
+ "type": "string",
+ "readOnly": true,
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "Route Filter Rule Resource."
+ },
+ "PatchRouteFilterRule": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/RouteFilterRulePropertiesFormat",
+ "description": "Properties of the route filter rule."
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The name of the resource that is unique within a resource group. This name can be used to access the resource."
+ },
+ "etag": {
+ "type": "string",
+ "readOnly": true,
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "Route Filter Rule Resource."
+ },
+ "RouteFilterPropertiesFormat": {
+ "properties": {
+ "rules": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RouteFilterRule"
+ },
+ "description": "Collection of RouteFilterRules contained within a route filter."
+ },
+ "peerings": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "./expressRouteCircuit.json#/definitions/ExpressRouteCircuitPeering"
+ },
+ "description": "A collection of references to express route circuit peerings."
+ },
+ "ipv6Peerings": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "./expressRouteCircuit.json#/definitions/ExpressRouteCircuitPeering"
+ },
+ "description": "A collection of references to express route circuit ipv6 peerings."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the route filter resource."
+ }
+ },
+ "description": "Route Filter Resource."
+ },
+ "RouteFilter": {
+ "required": [
+ "location"
+ ],
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/RouteFilterPropertiesFormat",
+ "description": "Properties of the route filter."
+ },
+ "etag": {
+ "type": "string",
+ "readOnly": true,
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "description": "Route Filter Resource."
+ },
+ "PatchRouteFilter": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/RouteFilterPropertiesFormat",
+ "description": "Properties of the route filter."
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The name of the resource that is unique within a resource group. This name can be used to access the resource."
+ },
+ "etag": {
+ "type": "string",
+ "readOnly": true,
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource type."
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "Route Filter Resource."
+ },
+ "RouteFilterListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RouteFilter"
+ },
+ "description": "A list of route filters in a resource group."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for the ListRouteFilters API service call."
+ },
+ "RouteFilterRuleListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RouteFilterRule"
+ },
+ "description": "A list of RouteFilterRules in a resource group."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for the ListRouteFilterRules API service call."
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/routeTable.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/routeTable.json
new file mode 100644
index 000000000000..fe0c699c5233
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/routeTable.json
@@ -0,0 +1,755 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "NetworkManagementClient",
+ "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
+ "version": "2020-07-01"
+ },
+ "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/routeTables/{routeTableName}": {
+ "delete": {
+ "tags": [
+ "RouteTables"
+ ],
+ "operationId": "RouteTables_Delete",
+ "description": "Deletes the specified route table.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "routeTableName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the route table."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Request successful. Resource does not exist."
+ },
+ "200": {
+ "description": "Request successful. Operation to delete was accepted."
+ },
+ "202": {
+ "description": "Accepted. If route table not found returned synchronously, otherwise if found returned asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "x-ms-examples": {
+ "Delete route table": {
+ "$ref": "./examples/RouteTableDelete.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "RouteTables"
+ ],
+ "operationId": "RouteTables_Get",
+ "description": "Gets the specified route table.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "routeTableName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the route table."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Expands referenced resources."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting RouteTable resource.",
+ "schema": {
+ "$ref": "#/definitions/RouteTable"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get route table": {
+ "$ref": "./examples/RouteTableGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "RouteTables"
+ ],
+ "operationId": "RouteTables_CreateOrUpdate",
+ "description": "Create or updates a route table in a specified resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "routeTableName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the route table."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/RouteTable"
+ },
+ "description": "Parameters supplied to the create or update route table operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting RouteTable resource.",
+ "schema": {
+ "$ref": "#/definitions/RouteTable"
+ }
+ },
+ "201": {
+ "description": "Create successful. The operation returns the resulting RouteTable resource.",
+ "schema": {
+ "$ref": "#/definitions/RouteTable"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create route table": {
+ "$ref": "./examples/RouteTableCreate.json"
+ },
+ "Create route table with route": {
+ "$ref": "./examples/RouteTableCreateWithRoute.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ },
+ "patch": {
+ "tags": [
+ "RouteTables"
+ ],
+ "operationId": "RouteTables_UpdateTags",
+ "description": "Updates a route table tags.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "routeTableName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the route table."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./network.json#/definitions/TagsObject"
+ },
+ "description": "Parameters supplied to update route table tags."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting RouteTable resource.",
+ "schema": {
+ "$ref": "#/definitions/RouteTable"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update route table tags": {
+ "$ref": "./examples/RouteTableUpdateTags.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/routeTables": {
+ "get": {
+ "tags": [
+ "RouteTables"
+ ],
+ "operationId": "RouteTables_List",
+ "description": "Gets all route tables in a resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of RouteTable resources.",
+ "schema": {
+ "$ref": "#/definitions/RouteTableListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List route tables in resource group": {
+ "$ref": "./examples/RouteTableList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/routeTables": {
+ "get": {
+ "tags": [
+ "RouteTables"
+ ],
+ "operationId": "RouteTables_ListAll",
+ "description": "Gets all route tables in a subscription.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of RouteTable resources.",
+ "schema": {
+ "$ref": "#/definitions/RouteTableListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List all route tables": {
+ "$ref": "./examples/RouteTableListAll.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/routeTables/{routeTableName}/routes/{routeName}": {
+ "delete": {
+ "tags": [
+ "Routes"
+ ],
+ "operationId": "Routes_Delete",
+ "description": "Deletes the specified route from a route table.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "routeTableName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the route table."
+ },
+ {
+ "name": "routeName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the route."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "200": {
+ "description": "Accepted."
+ },
+ "204": {
+ "description": "Route was deleted or not found."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete route": {
+ "$ref": "./examples/RouteTableRouteDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ },
+ "get": {
+ "tags": [
+ "Routes"
+ ],
+ "operationId": "Routes_Get",
+ "description": "Gets the specified route from a route table.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "routeTableName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the route table."
+ },
+ {
+ "name": "routeName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the route."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting Route resource.",
+ "schema": {
+ "$ref": "#/definitions/Route"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get route": {
+ "$ref": "./examples/RouteTableRouteGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Routes"
+ ],
+ "operationId": "Routes_CreateOrUpdate",
+ "description": "Creates or updates a route in the specified route table.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "routeTableName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the route table."
+ },
+ {
+ "name": "routeName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the route."
+ },
+ {
+ "name": "routeParameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/Route"
+ },
+ "description": "Parameters supplied to the create or update route operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update successful. The operation returns the resulting Route resource.",
+ "schema": {
+ "$ref": "#/definitions/Route"
+ }
+ },
+ "201": {
+ "description": "Create successful. The operation returns the resulting Route resource.",
+ "schema": {
+ "$ref": "#/definitions/Route"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create route": {
+ "$ref": "./examples/RouteTableRouteCreate.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/routeTables/{routeTableName}/routes": {
+ "get": {
+ "tags": [
+ "Routes"
+ ],
+ "operationId": "Routes_List",
+ "description": "Gets all routes in a route table.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "routeTableName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the route table."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of Route resources.",
+ "schema": {
+ "$ref": "#/definitions/RouteListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "List routes": {
+ "$ref": "./examples/RouteTableRouteList.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "RoutePropertiesFormat": {
+ "properties": {
+ "addressPrefix": {
+ "type": "string",
+ "description": "The destination CIDR to which the route applies."
+ },
+ "nextHopType": {
+ "$ref": "#/definitions/RouteNextHopType",
+ "description": "The type of Azure hop the packet should be sent to."
+ },
+ "nextHopIpAddress": {
+ "type": "string",
+ "description": "The IP address packets should be forwarded to. Next hop values are only allowed in routes where the next hop type is VirtualAppliance."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the route resource."
+ }
+ },
+ "required": [
+ "nextHopType"
+ ],
+ "description": "Route resource."
+ },
+ "Route": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/RoutePropertiesFormat",
+ "description": "Properties of the route."
+ },
+ "name": {
+ "type": "string",
+ "description": "The 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": "Route resource."
+ },
+ "RouteTablePropertiesFormat": {
+ "properties": {
+ "routes": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Route"
+ },
+ "description": "Collection of routes contained within a route table."
+ },
+ "subnets": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "./virtualNetwork.json#/definitions/Subnet"
+ },
+ "description": "A collection of references to subnets."
+ },
+ "disableBgpRoutePropagation": {
+ "type": "boolean",
+ "description": "Whether to disable the routes learned by BGP on that route table. True means disable."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the route table resource."
+ }
+ },
+ "description": "Route Table resource."
+ },
+ "RouteTable": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/RouteTablePropertiesFormat",
+ "description": "Properties of the route table."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "description": "Route table resource."
+ },
+ "RouteTableListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RouteTable"
+ },
+ "description": "A list of route tables in a resource group."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for the ListRouteTable API service call."
+ },
+ "RouteListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Route"
+ },
+ "description": "A list of routes in a resource group."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for the ListRoute API service call."
+ },
+ "RouteNextHopType": {
+ "type": "string",
+ "description": "The type of Azure hop the packet should be sent to.",
+ "enum": [
+ "VirtualNetworkGateway",
+ "VnetLocal",
+ "Internet",
+ "VirtualAppliance",
+ "None"
+ ],
+ "x-ms-enum": {
+ "name": "RouteNextHopType",
+ "modelAsString": true
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/securityPartnerProvider.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/securityPartnerProvider.json
new file mode 100644
index 000000000000..b306c783e9c4
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/securityPartnerProvider.json
@@ -0,0 +1,441 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "NetworkManagementClient",
+ "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
+ "version": "2020-07-01"
+ },
+ "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/securityPartnerProviders/{securityPartnerProviderName}": {
+ "delete": {
+ "tags": [
+ "SecurityPartnerProviders"
+ ],
+ "operationId": "SecurityPartnerProviders_Delete",
+ "description": "Deletes the specified Security Partner Provider.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "securityPartnerProviderName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Security Partner Provider."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "204": {
+ "description": "Request successful. Resource with the specified name does not exist."
+ },
+ "200": {
+ "description": "Delete successful."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete Security Partner Provider": {
+ "$ref": "./examples/SecurityPartnerProviderDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ },
+ "get": {
+ "tags": [
+ "SecurityPartnerProviders"
+ ],
+ "operationId": "SecurityPartnerProviders_Get",
+ "description": "Gets the specified Security Partner Provider.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "securityPartnerProviderName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Security Partner Provider."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a SecurityPartnerProvider resource.",
+ "schema": {
+ "$ref": "#/definitions/SecurityPartnerProvider"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Security Partner Provider": {
+ "$ref": "./examples/SecurityPartnerProviderGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "SecurityPartnerProviders"
+ ],
+ "operationId": "SecurityPartnerProviders_CreateOrUpdate",
+ "description": "Creates or updates the specified Security Partner Provider.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "securityPartnerProviderName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Security Partner Provider."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/SecurityPartnerProvider"
+ },
+ "description": "Parameters supplied to the create or update Security Partner Provider operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Create successful. The operation returns the resulting SecurityPartnerProvider resource.",
+ "schema": {
+ "$ref": "#/definitions/SecurityPartnerProvider"
+ }
+ },
+ "200": {
+ "description": "Update successful. The operation returns the resulting SecurityPartnerProvider resource.",
+ "schema": {
+ "$ref": "#/definitions/SecurityPartnerProvider"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create Security Partner Provider": {
+ "$ref": "./examples/SecurityPartnerProviderPut.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ },
+ "patch": {
+ "tags": [
+ "SecurityPartnerProviders"
+ ],
+ "operationId": "SecurityPartnerProviders_UpdateTags",
+ "description": "Updates tags of a Security Partner Provider resource.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "securityPartnerProviderName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Security Partner Provider."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./network.json#/definitions/TagsObject"
+ },
+ "description": "Parameters supplied to update Security Partner Provider tags."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update successful. The operation returns the resulting SecurityPartnerProvider resource.",
+ "schema": {
+ "$ref": "#/definitions/SecurityPartnerProvider"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update Security Partner Provider Tags": {
+ "$ref": "./examples/SecurityPartnerProviderUpdateTags.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/securityPartnerProviders": {
+ "get": {
+ "tags": [
+ "SecurityPartnerProviders"
+ ],
+ "operationId": "SecurityPartnerProviders_ListByResourceGroup",
+ "description": "Lists all Security Partner Providers in a resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The operation returns a list of SecurityPartnerProvider resources.",
+ "schema": {
+ "$ref": "#/definitions/SecurityPartnerProviderListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List all Security Partner Providers for a given resource group": {
+ "$ref": "./examples/SecurityPartnerProviderListByResourceGroup.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/securityPartnerProviders": {
+ "get": {
+ "tags": [
+ "SecurityPartnerProviders"
+ ],
+ "operationId": "SecurityPartnerProviders_List",
+ "description": "Gets all the Security Partner Providers in a subscription.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The operation returns a list of SecurityPartnerProvider resources.",
+ "schema": {
+ "$ref": "#/definitions/SecurityPartnerProviderListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List all Security Partner Providers for a given subscription": {
+ "$ref": "./examples/SecurityPartnerProviderListBySubscription.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "SecurityPartnerProviderPropertiesFormat": {
+ "properties": {
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the Security Partner Provider resource."
+ },
+ "securityProviderName": {
+ "description": "The security provider name.",
+ "$ref": "#/definitions/SecurityPartnerProvidersecurityProviderName"
+ },
+ "connectionStatus": {
+ "readOnly": true,
+ "description": "The connection status with the Security Partner Provider.",
+ "$ref": "#/definitions/SecurityPartnerProviderConnectionStatus"
+ },
+ "virtualHub": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "The virtualHub to which the Security Partner Provider belongs."
+ }
+ },
+ "description": "Properties of the Security Partner Provider."
+ },
+ "SecurityPartnerProvider": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/SecurityPartnerProviderPropertiesFormat",
+ "description": "Properties of the Security Partner Provider."
+ },
+ "etag": {
+ "type": "string",
+ "readOnly": true,
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "description": "Security Partner Provider resource."
+ },
+ "SecurityPartnerProviderListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SecurityPartnerProvider"
+ },
+ "description": "List of Security Partner Providers in a resource group."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of results."
+ }
+ },
+ "description": "Response for ListSecurityPartnerProviders API service call."
+ },
+ "SecurityPartnerProvidersecurityProviderName": {
+ "type": "string",
+ "description": "The Security Providers.",
+ "enum": [
+ "ZScaler",
+ "IBoss",
+ "Checkpoint"
+ ],
+ "x-ms-enum": {
+ "name": "SecurityProviderName",
+ "modelAsString": true
+ }
+ },
+ "SecurityPartnerProviderConnectionStatus": {
+ "type": "string",
+ "description": "The current state of the connection with Security Partner Provider.",
+ "readOnly": true,
+ "enum": [
+ "Unknown",
+ "PartiallyConnected",
+ "Connected",
+ "NotConnected"
+ ],
+ "x-ms-enum": {
+ "name": "SecurityPartnerProviderConnectionStatus",
+ "modelAsString": true
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/serviceCommunity.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/serviceCommunity.json
new file mode 100644
index 000000000000..25bb347ecb2b
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/serviceCommunity.json
@@ -0,0 +1,158 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "NetworkManagementClient",
+ "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
+ "version": "2020-07-01"
+ },
+ "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}/providers/Microsoft.Network/bgpServiceCommunities": {
+ "get": {
+ "tags": [
+ "BgpServiceCommunities"
+ ],
+ "operationId": "BgpServiceCommunities_List",
+ "x-ms-examples": {
+ "ServiceCommunityList": {
+ "$ref": "./examples/ServiceCommunityList.json"
+ }
+ },
+ "description": "Gets all the available bgp service communities.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of BgpServiceCommunity resources.",
+ "schema": {
+ "$ref": "#/definitions/BgpServiceCommunityListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "BGPCommunity": {
+ "properties": {
+ "serviceSupportedRegion": {
+ "type": "string",
+ "description": "The region which the service support. e.g. For O365, region is Global."
+ },
+ "communityName": {
+ "type": "string",
+ "description": "The name of the bgp community. e.g. Skype."
+ },
+ "communityValue": {
+ "type": "string",
+ "description": "The value of the bgp community. For more information: https://docs.microsoft.com/en-us/azure/expressroute/expressroute-routing."
+ },
+ "communityPrefixes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The prefixes that the bgp community contains."
+ },
+ "isAuthorizedToUse": {
+ "type": "boolean",
+ "description": "Customer is authorized to use bgp community or not."
+ },
+ "serviceGroup": {
+ "type": "string",
+ "description": "The service group of the bgp community contains."
+ }
+ },
+ "description": "Contains bgp community information offered in Service Community resources."
+ },
+ "BgpServiceCommunityPropertiesFormat": {
+ "properties": {
+ "serviceName": {
+ "type": "string",
+ "description": "The name of the bgp community. e.g. Skype."
+ },
+ "bgpCommunities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/BGPCommunity"
+ },
+ "description": "A list of bgp communities."
+ }
+ },
+ "description": "Properties of Service Community."
+ },
+ "BgpServiceCommunity": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/BgpServiceCommunityPropertiesFormat",
+ "description": "Properties of the BGP service community."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "description": "Service Community Properties."
+ },
+ "BgpServiceCommunityListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/BgpServiceCommunity"
+ },
+ "description": "A list of service community resources."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for the ListServiceCommunity API service call."
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/serviceEndpointPolicy.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/serviceEndpointPolicy.json
new file mode 100644
index 000000000000..b4d725300fcf
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/serviceEndpointPolicy.json
@@ -0,0 +1,742 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "NetworkManagementClient",
+ "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
+ "version": "2020-07-01"
+ },
+ "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/serviceEndpointPolicies/{serviceEndpointPolicyName}": {
+ "delete": {
+ "tags": [
+ "ServiceEndpointPolicies"
+ ],
+ "operationId": "ServiceEndpointPolicies_Delete",
+ "description": "Deletes the specified service endpoint policy.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "serviceEndpointPolicyName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the service endpoint policy."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "200": {
+ "description": "Delete successful."
+ },
+ "204": {
+ "description": "Request successful. Resource does not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete service endpoint policy": {
+ "$ref": "./examples/ServiceEndpointPolicyDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ },
+ "get": {
+ "tags": [
+ "ServiceEndpointPolicies"
+ ],
+ "operationId": "ServiceEndpointPolicies_Get",
+ "description": "Gets the specified service Endpoint Policies in a specified resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "serviceEndpointPolicyName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the service endpoint policy."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Expands referenced resources."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting ServiceEndpointPolicy resource.",
+ "schema": {
+ "$ref": "#/definitions/ServiceEndpointPolicy"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get service endPoint Policy": {
+ "$ref": "./examples/ServiceEndpointPolicyGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "ServiceEndpointPolicies"
+ ],
+ "operationId": "ServiceEndpointPolicies_CreateOrUpdate",
+ "description": "Creates or updates a service Endpoint Policies.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "serviceEndpointPolicyName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the service endpoint policy."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ServiceEndpointPolicy"
+ },
+ "description": "Parameters supplied to the create or update service endpoint policy operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Create successful. The operation returns the resulting ServiceEndpointPolicy resource.",
+ "schema": {
+ "$ref": "#/definitions/ServiceEndpointPolicy"
+ }
+ },
+ "200": {
+ "description": "Update successful. The operation returns the resulting ServiceEndpointPolicy resource.",
+ "schema": {
+ "$ref": "#/definitions/ServiceEndpointPolicy"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create service endpoint policy": {
+ "$ref": "./examples/ServiceEndpointPolicyCreate.json"
+ },
+ "Create service endpoint policy with definition": {
+ "$ref": "./examples/ServiceEndpointPolicyCreateWithDefinition.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ },
+ "patch": {
+ "tags": [
+ "ServiceEndpointPolicies"
+ ],
+ "operationId": "ServiceEndpointPolicies_UpdateTags",
+ "description": "Updates tags of a service endpoint policy.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "serviceEndpointPolicyName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the service endpoint policy."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./network.json#/definitions/TagsObject"
+ },
+ "description": "Parameters supplied to update service endpoint policy tags."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update successful. The operation returns the resulting ServiceEndpointPolicy resource.",
+ "schema": {
+ "$ref": "#/definitions/ServiceEndpointPolicy"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update service endpoint policy tags": {
+ "$ref": "./examples/ServiceEndpointPolicyUpdateTags.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/ServiceEndpointPolicies": {
+ "get": {
+ "tags": [
+ "ServiceEndpointPolicies"
+ ],
+ "operationId": "ServiceEndpointPolicies_List",
+ "description": "Gets all the service endpoint policies in a subscription.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of ServiceEndpointPolicy resources.",
+ "schema": {
+ "$ref": "#/definitions/ServiceEndpointPolicyListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List all service endpoint policy": {
+ "$ref": "./examples/ServiceEndpointPolicyListAll.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/serviceEndpointPolicies": {
+ "get": {
+ "tags": [
+ "ServiceEndpointPolicies"
+ ],
+ "operationId": "ServiceEndpointPolicies_ListByResourceGroup",
+ "description": "Gets all service endpoint Policies in a resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of ServiceEndpointPolicy resources.",
+ "schema": {
+ "$ref": "#/definitions/ServiceEndpointPolicyListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List resource group service endpoint policies": {
+ "$ref": "./examples/ServiceEndpointPolicyList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/serviceEndpointPolicies/{serviceEndpointPolicyName}/serviceEndpointPolicyDefinitions/{serviceEndpointPolicyDefinitionName}": {
+ "delete": {
+ "tags": [
+ "ServiceEndpointPolicyDefinitions"
+ ],
+ "operationId": "ServiceEndpointPolicyDefinitions_Delete",
+ "description": "Deletes the specified ServiceEndpoint policy definitions.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "serviceEndpointPolicyName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Service Endpoint Policy."
+ },
+ {
+ "name": "serviceEndpointPolicyDefinitionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the service endpoint policy definition."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Request successful. Resource does not exist."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "200": {
+ "description": "Delete successful."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete service endpoint policy definitions from service endpoint policy": {
+ "$ref": "./examples/ServiceEndpointPolicyDefinitionDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ },
+ "get": {
+ "tags": [
+ "serviceEndpointPolicyDefinitions"
+ ],
+ "operationId": "ServiceEndpointPolicyDefinitions_Get",
+ "description": "Get the specified service endpoint policy definitions from service endpoint policy.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "serviceEndpointPolicyName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the service endpoint policy name."
+ },
+ {
+ "name": "serviceEndpointPolicyDefinitionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the service endpoint policy definition name."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting ServiceEndpointPolicyDefinition resource.",
+ "schema": {
+ "$ref": "#/definitions/ServiceEndpointPolicyDefinition"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get service endpoint definition in service endpoint policy": {
+ "$ref": "./examples/ServiceEndpointPolicyDefinitionGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "serviceEndpointPolicyDefinitions"
+ ],
+ "operationId": "ServiceEndpointPolicyDefinitions_CreateOrUpdate",
+ "description": "Creates or updates a service endpoint policy definition in the specified service endpoint policy.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "serviceEndpointPolicyName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the service endpoint policy."
+ },
+ {
+ "name": "serviceEndpointPolicyDefinitionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the service endpoint policy definition name."
+ },
+ {
+ "name": "ServiceEndpointPolicyDefinitions",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ServiceEndpointPolicyDefinition"
+ },
+ "description": "Parameters supplied to the create or update service endpoint policy operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update successful. The operation returns the resulting ServiceEndpointPolicyDefinition resource.",
+ "schema": {
+ "$ref": "#/definitions/ServiceEndpointPolicyDefinition"
+ }
+ },
+ "201": {
+ "description": "Create successful. The operation returns the resulting ServiceEndpointPolicyDefinition resource.",
+ "schema": {
+ "$ref": "#/definitions/ServiceEndpointPolicyDefinition"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create service endpoint policy definition": {
+ "$ref": "./examples/ServiceEndpointPolicyDefinitionCreate.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/serviceEndpointPolicies/{serviceEndpointPolicyName}/serviceEndpointPolicyDefinitions": {
+ "get": {
+ "tags": [
+ "ServiceEndpointPolicyDefinitions"
+ ],
+ "operationId": "ServiceEndpointPolicyDefinitions_ListByResourceGroup",
+ "description": "Gets all service endpoint policy definitions in a service end point policy.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "serviceEndpointPolicyName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the service endpoint policy name."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of ServiceEndpointPolicyDefinition resources.",
+ "schema": {
+ "$ref": "#/definitions/ServiceEndpointPolicyDefinitionListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List service endpoint definitions in service end point policy": {
+ "$ref": "./examples/ServiceEndpointPolicyDefinitionList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "ServiceEndpointPolicyDefinitionPropertiesFormat": {
+ "properties": {
+ "description": {
+ "type": "string",
+ "description": "A description for this rule. Restricted to 140 chars."
+ },
+ "service": {
+ "type": "string",
+ "description": "Service endpoint name."
+ },
+ "serviceResources": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "A list of service resources."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the service endpoint policy definition resource."
+ }
+ },
+ "description": "Service Endpoint policy definition resource."
+ },
+ "ServiceEndpointPolicyDefinition": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ServiceEndpointPolicyDefinitionPropertiesFormat",
+ "description": "Properties of the service endpoint policy definition."
+ },
+ "name": {
+ "type": "string",
+ "description": "The 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": "Service Endpoint policy definitions."
+ },
+ "ServiceEndpointPolicyDefinitionListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ServiceEndpointPolicyDefinition"
+ },
+ "description": "The service endpoint policy definition in a service endpoint policy."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for ListServiceEndpointPolicyDefinition API service call. Retrieves all service endpoint policy definition that belongs to a service endpoint policy."
+ },
+ "ServiceEndpointPolicyPropertiesFormat": {
+ "properties": {
+ "serviceEndpointPolicyDefinitions": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ServiceEndpointPolicyDefinition"
+ },
+ "description": "A collection of service endpoint policy definitions of the service endpoint policy."
+ },
+ "subnets": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "./virtualNetwork.json#/definitions/Subnet"
+ },
+ "description": "A collection of references to subnets."
+ },
+ "resourceGuid": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The resource GUID property of the service endpoint policy resource."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the service endpoint policy resource."
+ }
+ },
+ "description": "Service Endpoint Policy resource."
+ },
+ "ServiceEndpointPolicy": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ServiceEndpointPolicyPropertiesFormat",
+ "description": "Properties of the service end point policy."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "description": "Service End point policy resource."
+ },
+ "ServiceEndpointPolicyListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ServiceEndpointPolicy"
+ },
+ "description": "A list of ServiceEndpointPolicy resources."
+ },
+ "nextLink": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for ListServiceEndpointPolicies API service call."
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/serviceTags.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/serviceTags.json
new file mode 100644
index 000000000000..06abc2a9f12e
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/serviceTags.json
@@ -0,0 +1,171 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "NetworkManagementClient",
+ "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
+ "version": "2020-07-01"
+ },
+ "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}/providers/Microsoft.Network/locations/{location}/serviceTags": {
+ "get": {
+ "operationId": "ServiceTags_List",
+ "description": "Gets a list of service tag information resources.",
+ "parameters": [
+ {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The location that will be used as a reference for version (not as a filter based on location, you will get the list of service tags with prefix details across all regions but limited to the cloud that your subscription belongs to)."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns a list of service tag information resources.",
+ "schema": {
+ "$ref": "#/definitions/ServiceTagsListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get list of service tags": {
+ "$ref": "./examples/ServiceTagsList.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "ServiceTagsListResult": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The name of the cloud."
+ },
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The ID of the cloud."
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The azure resource type."
+ },
+ "changeNumber": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The iteration number."
+ },
+ "cloud": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The name of the cloud."
+ },
+ "values": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ServiceTagInformation"
+ },
+ "readOnly": true,
+ "description": "The list of service tag information resources."
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The URL to get next page of service tag information resources."
+ }
+ },
+ "description": "Response for the ListServiceTags API service call."
+ },
+ "ServiceTagInformation": {
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/ServiceTagInformationPropertiesFormat",
+ "readOnly": true,
+ "description": "Properties of the service tag information."
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The name of service tag."
+ },
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The ID of service tag."
+ }
+ },
+ "description": "The service tag information."
+ },
+ "ServiceTagInformationPropertiesFormat": {
+ "properties": {
+ "changeNumber": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The iteration number of service tag."
+ },
+ "region": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The region of service tag."
+ },
+ "systemService": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The name of system service."
+ },
+ "addressPrefixes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "readOnly": true,
+ "description": "The list of IP address prefixes."
+ }
+ },
+ "description": "Properties of the service tag information."
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/usage.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/usage.json
new file mode 100644
index 000000000000..32bfbe79b73c
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/usage.json
@@ -0,0 +1,160 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "NetworkManagementClient",
+ "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
+ "version": "2020-07-01"
+ },
+ "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}/providers/Microsoft.Network/locations/{location}/usages": {
+ "get": {
+ "tags": [
+ "Usages"
+ ],
+ "operationId": "Usages_List",
+ "description": "List network usages for a subscription.",
+ "parameters": [
+ {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The location where resource usage is queried.",
+ "pattern": "^[-\\w\\._ ]+$"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of Usage resources.",
+ "schema": {
+ "$ref": "#/definitions/UsagesListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List usages": {
+ "$ref": "./examples/UsageList.json"
+ },
+ "List usages spaced location": {
+ "$ref": "./examples/UsageListSpacedLocation.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "UsageName": {
+ "properties": {
+ "value": {
+ "type": "string",
+ "description": "A string describing the resource name."
+ },
+ "localizedValue": {
+ "type": "string",
+ "description": "A localized string describing the resource name."
+ }
+ },
+ "description": "The usage names."
+ },
+ "Usage": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource identifier."
+ },
+ "unit": {
+ "type": "string",
+ "description": "An enum describing the unit of measurement.",
+ "enum": [
+ "Count"
+ ],
+ "x-ms-enum": {
+ "name": "UsageUnit",
+ "modelAsString": true
+ }
+ },
+ "currentValue": {
+ "type": "integer",
+ "format": "int64",
+ "description": "The current value of the usage."
+ },
+ "limit": {
+ "type": "integer",
+ "format": "int64",
+ "description": "The limit of usage."
+ },
+ "name": {
+ "$ref": "#/definitions/UsageName",
+ "description": "The name of the type of usage."
+ }
+ },
+ "required": [
+ "unit",
+ "currentValue",
+ "limit",
+ "name"
+ ],
+ "description": "The network resource usage."
+ },
+ "UsagesListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Usage"
+ },
+ "description": "The list network resource usages."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of results."
+ }
+ },
+ "description": "The list usages operation response."
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/virtualNetwork.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/virtualNetwork.json
new file mode 100644
index 000000000000..91ca76e75d9b
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/virtualNetwork.json
@@ -0,0 +1,1997 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "NetworkManagementClient",
+ "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
+ "version": "2020-07-01"
+ },
+ "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/virtualNetworks/{virtualNetworkName}": {
+ "delete": {
+ "tags": [
+ "VirtualNetworks"
+ ],
+ "operationId": "VirtualNetworks_Delete",
+ "description": "Deletes the specified virtual network.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualNetworkName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual network."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "204": {
+ "description": "Delete successful."
+ },
+ "200": {
+ "description": "Delete successful."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "x-ms-examples": {
+ "Delete virtual network": {
+ "$ref": "./examples/VirtualNetworkDelete.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "VirtualNetworks"
+ ],
+ "operationId": "VirtualNetworks_Get",
+ "description": "Gets the specified virtual network by resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualNetworkName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual network."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Expands referenced resources."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting VirtualNetwork resource.",
+ "schema": {
+ "$ref": "#/definitions/VirtualNetwork"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get virtual network": {
+ "$ref": "./examples/VirtualNetworkGet.json"
+ },
+ "Get virtual network with a delegated subnet": {
+ "$ref": "./examples/VirtualNetworkGetWithSubnetDelegation.json"
+ },
+ "Get virtual network with service association links": {
+ "$ref": "./examples/VirtualNetworkGetWithServiceAssociationLink.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "VirtualNetworks"
+ ],
+ "operationId": "VirtualNetworks_CreateOrUpdate",
+ "description": "Creates or updates a virtual network in the specified resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualNetworkName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual network."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/VirtualNetwork"
+ },
+ "description": "Parameters supplied to the create or update virtual network operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update successful. The operation returns the resulting VirtualNetwork resource.",
+ "schema": {
+ "$ref": "#/definitions/VirtualNetwork"
+ }
+ },
+ "201": {
+ "description": "Create successful. The operation returns the resulting VirtualNetwork resource.",
+ "schema": {
+ "$ref": "#/definitions/VirtualNetwork"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ },
+ "x-ms-examples": {
+ "Create virtual network": {
+ "$ref": "./examples/VirtualNetworkCreate.json"
+ },
+ "Create virtual network with subnet": {
+ "$ref": "./examples/VirtualNetworkCreateSubnet.json"
+ },
+ "Create virtual network with subnet containing address prefixes": {
+ "$ref": "./examples/VirtualNetworkCreateSubnetWithAddressPrefixes.json"
+ },
+ "Create virtual network with Bgp Communities": {
+ "$ref": "./examples/VirtualNetworkCreateWithBgpCommunities.json"
+ },
+ "Create virtual network with service endpoints": {
+ "$ref": "./examples/VirtualNetworkCreateServiceEndpoints.json"
+ },
+ "Create virtual network with service endpoints and service endpoint policy": {
+ "$ref": "./examples/VirtualNetworkCreateServiceEndpointPolicy.json"
+ },
+ "Create virtual network with delegated subnets": {
+ "$ref": "./examples/VirtualNetworkCreateSubnetWithDelegation.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "VirtualNetworks"
+ ],
+ "operationId": "VirtualNetworks_UpdateTags",
+ "description": "Updates a virtual network tags.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualNetworkName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual network."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./network.json#/definitions/TagsObject"
+ },
+ "description": "Parameters supplied to update virtual network tags."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update successful. The operation returns the resulting VirtualNetwork resource.",
+ "schema": {
+ "$ref": "#/definitions/VirtualNetwork"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update virtual network tags": {
+ "$ref": "./examples/VirtualNetworkUpdateTags.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/virtualNetworks": {
+ "get": {
+ "tags": [
+ "VirtualNetworks"
+ ],
+ "operationId": "VirtualNetworks_ListAll",
+ "description": "Gets all virtual networks in a subscription.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of VirtualNetwork resources.",
+ "schema": {
+ "$ref": "#/definitions/VirtualNetworkListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List all virtual networks": {
+ "$ref": "./examples/VirtualNetworkListAll.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks": {
+ "get": {
+ "tags": [
+ "VirtualNetworks"
+ ],
+ "operationId": "VirtualNetworks_List",
+ "description": "Gets all virtual networks in a resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of VirtualNetwork resources.",
+ "schema": {
+ "$ref": "#/definitions/VirtualNetworkListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List virtual networks in resource group": {
+ "$ref": "./examples/VirtualNetworkList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}": {
+ "delete": {
+ "tags": [
+ "Subnets"
+ ],
+ "operationId": "Subnets_Delete",
+ "description": "Deletes the specified subnet.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualNetworkName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual network."
+ },
+ {
+ "name": "subnetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the subnet."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Delete successful."
+ },
+ "204": {
+ "description": "Request successful. Resource does not exist."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete subnet": {
+ "$ref": "./examples/SubnetDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ },
+ "get": {
+ "tags": [
+ "Subnets"
+ ],
+ "operationId": "Subnets_Get",
+ "description": "Gets the specified subnet by virtual network and resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualNetworkName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual network."
+ },
+ {
+ "name": "subnetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the subnet."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Expands referenced resources."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting Subnet resource.",
+ "schema": {
+ "$ref": "#/definitions/Subnet"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get subnet": {
+ "$ref": "./examples/SubnetGet.json"
+ },
+ "Get subnet with a delegation": {
+ "$ref": "./examples/SubnetGetWithDelegation.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Subnets"
+ ],
+ "operationId": "Subnets_CreateOrUpdate",
+ "description": "Creates or updates a subnet in the specified virtual network.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualNetworkName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual network."
+ },
+ {
+ "name": "subnetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the subnet."
+ },
+ {
+ "name": "subnetParameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/Subnet"
+ },
+ "description": "Parameters supplied to the create or update subnet operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update successful. The operation returns the resulting Subnet resource.",
+ "schema": {
+ "$ref": "#/definitions/Subnet"
+ }
+ },
+ "201": {
+ "description": "Create successful. The operation returns the resulting Subnet resource.",
+ "schema": {
+ "$ref": "#/definitions/Subnet"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ },
+ "x-ms-examples": {
+ "Create subnet": {
+ "$ref": "./examples/SubnetCreate.json"
+ },
+ "Create subnet with service endpoints": {
+ "$ref": "./examples/SubnetCreateServiceEndpoint.json"
+ },
+ "Create subnet with a delegation": {
+ "$ref": "./examples/SubnetCreateWithDelegation.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}/PrepareNetworkPolicies": {
+ "post": {
+ "operationId": "Subnets_PrepareNetworkPolicies",
+ "description": "Prepares a subnet by applying network intent policies.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualNetworkName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual network."
+ },
+ {
+ "name": "subnetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the subnet."
+ },
+ {
+ "name": "prepareNetworkPoliciesRequestParameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/PrepareNetworkPoliciesRequest"
+ },
+ "description": "Parameters supplied to prepare subnet by applying network intent policies."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Preparing subnet by applying network intent policies is successful."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "x-ms-examples": {
+ "Prepare Network Policies": {
+ "$ref": "./examples/SubnetPrepareNetworkPolicies.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}/UnprepareNetworkPolicies": {
+ "post": {
+ "operationId": "Subnets_UnprepareNetworkPolicies",
+ "description": "Unprepares a subnet by removing network intent policies.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualNetworkName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual network."
+ },
+ {
+ "name": "subnetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the subnet."
+ },
+ {
+ "name": "unprepareNetworkPoliciesRequestParameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/UnprepareNetworkPoliciesRequest"
+ },
+ "description": "Parameters supplied to unprepare subnet to remove network intent policies."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Unpreparing subnet by removing network intent policies is successful."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "x-ms-examples": {
+ "Unprepare Network Policies": {
+ "$ref": "./examples/SubnetUnprepareNetworkPolicies.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}/ResourceNavigationLinks": {
+ "get": {
+ "operationId": "ResourceNavigationLinks_List",
+ "description": "Gets a list of resource navigation links for a subnet.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualNetworkName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual network."
+ },
+ {
+ "name": "subnetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the subnet."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of resource navigation links for the subnet.",
+ "schema": {
+ "$ref": "#/definitions/ResourceNavigationLinksListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Resource Navigation Links": {
+ "$ref": "./examples/VirtualNetworkGetResourceNavigationLinks.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}/ServiceAssociationLinks": {
+ "get": {
+ "operationId": "ServiceAssociationLinks_List",
+ "description": "Gets a list of service association links for a subnet.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualNetworkName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual network."
+ },
+ {
+ "name": "subnetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the subnet."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of service association links for the subnet.",
+ "schema": {
+ "$ref": "#/definitions/ServiceAssociationLinksListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Service Association Links": {
+ "$ref": "./examples/VirtualNetworkGetServiceAssociationLinks.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets": {
+ "get": {
+ "tags": [
+ "Subnets"
+ ],
+ "operationId": "Subnets_List",
+ "description": "Gets all subnets in a virtual network.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualNetworkName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual network."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of Subnet resources.",
+ "schema": {
+ "$ref": "#/definitions/SubnetListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "List subnets": {
+ "$ref": "./examples/SubnetList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/virtualNetworkPeerings/{virtualNetworkPeeringName}": {
+ "delete": {
+ "tags": [
+ "VirtualNetworkPeerings"
+ ],
+ "operationId": "VirtualNetworkPeerings_Delete",
+ "description": "Deletes the specified virtual network peering.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualNetworkName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual network."
+ },
+ {
+ "name": "virtualNetworkPeeringName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual network peering."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Delete successful."
+ },
+ "204": {
+ "description": "Delete successful."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete peering": {
+ "$ref": "./examples/VirtualNetworkPeeringDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ },
+ "get": {
+ "tags": [
+ "VirtualNetworkPeerings"
+ ],
+ "operationId": "VirtualNetworkPeerings_Get",
+ "description": "Gets the specified virtual network peering.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualNetworkName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual network."
+ },
+ {
+ "name": "virtualNetworkPeeringName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual network peering."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting VirtualNetworkPeering resource.",
+ "schema": {
+ "$ref": "#/definitions/VirtualNetworkPeering"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get peering": {
+ "$ref": "./examples/VirtualNetworkPeeringGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "VirtualNetworkPeerings"
+ ],
+ "operationId": "VirtualNetworkPeerings_CreateOrUpdate",
+ "description": "Creates or updates a peering in the specified virtual network.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualNetworkName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual network."
+ },
+ {
+ "name": "virtualNetworkPeeringName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the peering."
+ },
+ {
+ "name": "VirtualNetworkPeeringParameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/VirtualNetworkPeering"
+ },
+ "description": "Parameters supplied to the create or update virtual network peering operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update successful. The operation returns the resulting VirtualNetworkPeering resource.",
+ "schema": {
+ "$ref": "#/definitions/VirtualNetworkPeering"
+ }
+ },
+ "201": {
+ "description": "Create successful. The operation returns the resulting VirtualNetworkPeering resource.",
+ "schema": {
+ "$ref": "#/definitions/VirtualNetworkPeering"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create peering": {
+ "$ref": "./examples/VirtualNetworkPeeringCreate.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/virtualNetworkPeerings": {
+ "get": {
+ "tags": [
+ "VirtualNetworkPeerings"
+ ],
+ "operationId": "VirtualNetworkPeerings_List",
+ "description": "Gets all virtual network peerings in a virtual network.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualNetworkName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual network."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of VirtualNetworkPeering resources.",
+ "schema": {
+ "$ref": "#/definitions/VirtualNetworkPeeringListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "List peerings": {
+ "$ref": "./examples/VirtualNetworkPeeringList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/CheckIPAddressAvailability": {
+ "get": {
+ "operationId": "VirtualNetworks_CheckIPAddressAvailability",
+ "description": "Checks whether a private IP address is available for use.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualNetworkName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual network."
+ },
+ {
+ "name": "ipAddress",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "The private IP address to be verified."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Private IP address availability and list of other free addresses if the requested one is not available.",
+ "schema": {
+ "$ref": "#/definitions/IPAddressAvailabilityResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Check IP address availability": {
+ "$ref": "./examples/VirtualNetworkCheckIPAddressAvailability.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/usages": {
+ "get": {
+ "operationId": "VirtualNetworks_ListUsage",
+ "description": "Lists usage stats.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualNetworkName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual network."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Usage stats for vnet.",
+ "schema": {
+ "$ref": "#/definitions/VirtualNetworkListUsageResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "VnetGetUsage": {
+ "$ref": "./examples/VirtualNetworkListUsage.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "ServiceAssociationLinkPropertiesFormat": {
+ "properties": {
+ "linkedResourceType": {
+ "type": "string",
+ "description": "Resource type of the linked resource."
+ },
+ "link": {
+ "type": "string",
+ "description": "Link to the external resource."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the service association link resource."
+ },
+ "allowDelete": {
+ "type": "boolean",
+ "description": "If true, the resource can be deleted."
+ },
+ "locations": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "A list of locations."
+ }
+ },
+ "description": "Properties of ServiceAssociationLink."
+ },
+ "ServiceAssociationLink": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ServiceAssociationLinkPropertiesFormat",
+ "description": "Resource navigation link properties format."
+ },
+ "name": {
+ "type": "string",
+ "description": "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."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource type."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "ServiceAssociationLink resource."
+ },
+ "ResourceNavigationLinkFormat": {
+ "properties": {
+ "linkedResourceType": {
+ "type": "string",
+ "description": "Resource type of the linked resource."
+ },
+ "link": {
+ "type": "string",
+ "description": "Link to the external resource."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the resource navigation link resource."
+ }
+ },
+ "description": "Properties of ResourceNavigationLink."
+ },
+ "ResourceNavigationLink": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ResourceNavigationLinkFormat",
+ "description": "Resource navigation link properties format."
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the resource that is unique within a resource group. This name can be used to access the resource."
+ },
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource navigation link identifier."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource type."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "ResourceNavigationLink resource."
+ },
+ "ServiceDelegationPropertiesFormat": {
+ "properties": {
+ "serviceName": {
+ "type": "string",
+ "description": "The name of the service to whom the subnet should be delegated (e.g. Microsoft.Sql/servers)."
+ },
+ "actions": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The actions permitted to the service upon delegation."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the service delegation resource."
+ }
+ },
+ "description": "Properties of a service delegation."
+ },
+ "Delegation": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ServiceDelegationPropertiesFormat",
+ "description": "Properties of the subnet."
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of the resource that is unique within a subnet. 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": "Details the service to which the subnet is delegated."
+ },
+ "SubnetPropertiesFormat": {
+ "properties": {
+ "addressPrefix": {
+ "type": "string",
+ "description": "The address prefix for the subnet."
+ },
+ "addressPrefixes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of address prefixes for the subnet."
+ },
+ "networkSecurityGroup": {
+ "$ref": "./networkSecurityGroup.json#/definitions/NetworkSecurityGroup",
+ "description": "The reference to the NetworkSecurityGroup resource."
+ },
+ "routeTable": {
+ "$ref": "./routeTable.json#/definitions/RouteTable",
+ "description": "The reference to the RouteTable resource."
+ },
+ "natGateway": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "Nat gateway associated with this subnet."
+ },
+ "serviceEndpoints": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ServiceEndpointPropertiesFormat"
+ },
+ "description": "An array of service endpoints."
+ },
+ "serviceEndpointPolicies": {
+ "type": "array",
+ "items": {
+ "$ref": "./serviceEndpointPolicy.json#/definitions/ServiceEndpointPolicy"
+ },
+ "description": "An array of service endpoint policies."
+ },
+ "privateEndpoints": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "./privateEndpoint.json#/definitions/PrivateEndpoint"
+ },
+ "description": "An array of references to private endpoints."
+ },
+ "ipConfigurations": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "./networkInterface.json#/definitions/IPConfiguration"
+ },
+ "description": "An array of references to the network interface IP configurations using subnet."
+ },
+ "ipConfigurationProfiles": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "./networkProfile.json#/definitions/IPConfigurationProfile"
+ },
+ "description": "Array of IP configuration profiles which reference this subnet."
+ },
+ "ipAllocations": {
+ "type": "array",
+ "items": {
+ "$ref": "./network.json#/definitions/SubResource"
+ },
+ "description": "Array of IpAllocation which reference this subnet."
+ },
+ "resourceNavigationLinks": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ResourceNavigationLink"
+ },
+ "description": "An array of references to the external resources using subnet."
+ },
+ "serviceAssociationLinks": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ServiceAssociationLink"
+ },
+ "description": "An array of references to services injecting into this subnet."
+ },
+ "delegations": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Delegation"
+ },
+ "description": "An array of references to the delegations on the subnet."
+ },
+ "purpose": {
+ "type": "string",
+ "readOnly": true,
+ "description": "A read-only string identifying the intention of use for this subnet based on delegations and other user-defined properties."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the subnet resource."
+ },
+ "privateEndpointNetworkPolicies": {
+ "type": "string",
+ "description": "Enable or Disable apply network policies on private end point in the subnet."
+ },
+ "privateLinkServiceNetworkPolicies": {
+ "type": "string",
+ "description": "Enable or Disable apply network policies on private link service in the subnet."
+ }
+ },
+ "description": "Properties of the subnet."
+ },
+ "ServiceEndpointPropertiesFormat": {
+ "properties": {
+ "service": {
+ "type": "string",
+ "description": "The type of the endpoint service."
+ },
+ "locations": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "A list of locations."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the service endpoint resource."
+ }
+ },
+ "description": "The service endpoint properties."
+ },
+ "VirtualNetworkPeeringPropertiesFormat": {
+ "properties": {
+ "allowVirtualNetworkAccess": {
+ "type": "boolean",
+ "description": "Whether the VMs in the local virtual network space would be able to access the VMs in remote virtual network space."
+ },
+ "allowForwardedTraffic": {
+ "type": "boolean",
+ "description": "Whether the forwarded traffic from the VMs in the local virtual network will be allowed/disallowed in remote virtual network."
+ },
+ "allowGatewayTransit": {
+ "type": "boolean",
+ "description": "If gateway links can be used in remote virtual networking to link to this virtual network."
+ },
+ "useRemoteGateways": {
+ "type": "boolean",
+ "description": "If remote gateways can be used on this virtual network. If the flag is set to true, and allowGatewayTransit on remote peering is also true, virtual network will use gateways of remote virtual network for transit. Only one peering can have this flag set to true. This flag cannot be set if virtual network already has a gateway."
+ },
+ "remoteVirtualNetwork": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "The reference to the remote virtual network. The remote virtual network can be in the same or different region (preview). See here to register for the preview and learn more (https://docs.microsoft.com/en-us/azure/virtual-network/virtual-network-create-peering)."
+ },
+ "remoteAddressSpace": {
+ "$ref": "#/definitions/AddressSpace",
+ "description": "The reference to the address space peered with the remote virtual network."
+ },
+ "remoteVirtualNetworkAddressSpace": {
+ "$ref": "#/definitions/AddressSpace",
+ "description": "The reference to the current address space of the remote virtual network."
+ },
+ "remoteBgpCommunities": {
+ "$ref": "#/definitions/VirtualNetworkBgpCommunities",
+ "default": null,
+ "description": "The reference to the remote virtual network's Bgp Communities."
+ },
+ "peeringState": {
+ "type": "string",
+ "description": "The status of the virtual network peering.",
+ "enum": [
+ "Initiated",
+ "Connected",
+ "Disconnected"
+ ],
+ "x-ms-enum": {
+ "name": "VirtualNetworkPeeringState",
+ "modelAsString": true
+ }
+ },
+ "peeringSyncLevel": {
+ "type": "string",
+ "description": "The peering sync status of the virtual network peering.",
+ "enum": [
+ "FullySynced",
+ "RemoteUnsynced",
+ "LocalUnsynced",
+ "LocalAndRemoteUnsynced"
+ ],
+ "x-ms-enum": {
+ "name": "VirtualNetworkPeeringLevel",
+ "modelAsString": true
+ }
+ },
+ "syncRemoteAddressSpace": {
+ "type": "boolean",
+ "default": false,
+ "description": "Provided when user wants to sync the peering with address space on the remote virtual network after the address space is updated."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the virtual network peering resource."
+ }
+ },
+ "description": "Properties of the virtual network peering."
+ },
+ "Subnet": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/SubnetPropertiesFormat",
+ "description": "Properties of the subnet."
+ },
+ "name": {
+ "type": "string",
+ "description": "The 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": "Subnet in a virtual network resource."
+ },
+ "VirtualNetworkPeering": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/VirtualNetworkPeeringPropertiesFormat",
+ "description": "Properties of the virtual network peering."
+ },
+ "name": {
+ "type": "string",
+ "description": "The 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": "Peerings in a virtual network resource."
+ },
+ "SubnetListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Subnet"
+ },
+ "description": "The subnets in a virtual network."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for ListSubnets API service callRetrieves all subnet that belongs to a virtual network."
+ },
+ "ResourceNavigationLinksListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ResourceNavigationLink"
+ },
+ "description": "The resource navigation links in a subnet."
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for ResourceNavigationLinks_List operation."
+ },
+ "ServiceAssociationLinksListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ServiceAssociationLink"
+ },
+ "description": "The service association links in a subnet."
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for ServiceAssociationLinks_List operation."
+ },
+ "VirtualNetworkPeeringListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualNetworkPeering"
+ },
+ "description": "The peerings in a virtual network."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for ListSubnets API service call. Retrieves all subnets that belong to a virtual network."
+ },
+ "VirtualNetworkPropertiesFormat": {
+ "properties": {
+ "addressSpace": {
+ "$ref": "#/definitions/AddressSpace",
+ "description": "The AddressSpace that contains an array of IP address ranges that can be used by subnets."
+ },
+ "dhcpOptions": {
+ "$ref": "#/definitions/DhcpOptions",
+ "description": "The dhcpOptions that contains an array of DNS servers available to VMs deployed in the virtual network."
+ },
+ "subnets": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Subnet"
+ },
+ "description": "A list of subnets in a Virtual Network."
+ },
+ "virtualNetworkPeerings": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualNetworkPeering"
+ },
+ "description": "A list of peerings in a Virtual Network."
+ },
+ "resourceGuid": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resourceGuid property of the Virtual Network resource."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the virtual network resource."
+ },
+ "enableDdosProtection": {
+ "type": "boolean",
+ "default": false,
+ "description": "Indicates if DDoS protection is enabled for all the protected resources in the virtual network. It requires a DDoS protection plan associated with the resource."
+ },
+ "enableVmProtection": {
+ "type": "boolean",
+ "default": false,
+ "description": "Indicates if VM protection is enabled for all the subnets in the virtual network."
+ },
+ "ddosProtectionPlan": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "default": null,
+ "description": "The DDoS protection plan associated with the virtual network."
+ },
+ "bgpCommunities": {
+ "$ref": "#/definitions/VirtualNetworkBgpCommunities",
+ "default": null,
+ "description": "Bgp Communities sent over ExpressRoute with each route corresponding to a prefix in this VNET."
+ },
+ "ipAllocations": {
+ "type": "array",
+ "items": {
+ "$ref": "./network.json#/definitions/SubResource"
+ },
+ "description": "Array of IpAllocation which reference this VNET."
+ }
+ },
+ "description": "Properties of the virtual network."
+ },
+ "VirtualNetwork": {
+ "properties": {
+ "extendedLocation": {
+ "$ref": "./network.json#/definitions/ExtendedLocation",
+ "description": "The extended location of the virtual network."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/VirtualNetworkPropertiesFormat",
+ "description": "Properties of the virtual network."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "description": "Virtual Network resource."
+ },
+ "VirtualNetworkListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualNetwork"
+ },
+ "description": "A list of VirtualNetwork resources in a resource group."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for the ListVirtualNetworks API service call."
+ },
+ "AddressSpace": {
+ "properties": {
+ "addressPrefixes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "A list of address blocks reserved for this virtual network in CIDR notation."
+ }
+ },
+ "description": "AddressSpace contains an array of IP address ranges that can be used by subnets of the virtual network."
+ },
+ "DhcpOptions": {
+ "properties": {
+ "dnsServers": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The list of DNS servers IP addresses."
+ }
+ },
+ "description": "DhcpOptions contains an array of DNS servers available to VMs deployed in the virtual network. Standard DHCP option for a subnet overrides VNET DHCP options."
+ },
+ "VirtualNetworkBgpCommunities": {
+ "properties": {
+ "virtualNetworkCommunity": {
+ "type": "string",
+ "description": "The BGP community associated with the virtual network."
+ },
+ "regionalCommunity": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The BGP community associated with the region of the virtual network."
+ }
+ },
+ "required": [
+ "virtualNetworkCommunity"
+ ],
+ "description": "Bgp Communities sent over ExpressRoute with each route corresponding to a prefix in this VNET."
+ },
+ "IPAddressAvailabilityResult": {
+ "properties": {
+ "available": {
+ "type": "boolean",
+ "description": "Private IP address availability."
+ },
+ "availableIPAddresses": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Contains other available private IP addresses if the asked for address is taken."
+ }
+ },
+ "description": "Response for CheckIPAddressAvailability API service call."
+ },
+ "VirtualNetworkListUsageResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/VirtualNetworkUsage"
+ },
+ "description": "VirtualNetwork usage stats."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for the virtual networks GetUsage API service call."
+ },
+ "VirtualNetworkUsage": {
+ "properties": {
+ "currentValue": {
+ "type": "number",
+ "format": "double",
+ "readOnly": true,
+ "description": "Indicates number of IPs used from the Subnet."
+ },
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Subnet identifier."
+ },
+ "limit": {
+ "type": "number",
+ "format": "double",
+ "readOnly": true,
+ "description": "Indicates the size of the subnet."
+ },
+ "name": {
+ "$ref": "#/definitions/VirtualNetworkUsageName",
+ "readOnly": true,
+ "description": "The name containing common and localized value for usage."
+ },
+ "unit": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Usage units. Returns 'Count'."
+ }
+ },
+ "description": "Usage details for subnet."
+ },
+ "VirtualNetworkUsageName": {
+ "properties": {
+ "localizedValue": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Localized subnet size and usage string."
+ },
+ "value": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Subnet size and usage string."
+ }
+ },
+ "description": "Usage strings container."
+ },
+ "PrepareNetworkPoliciesRequest": {
+ "properties": {
+ "serviceName": {
+ "type": "string",
+ "description": "The name of the service for which subnet is being prepared for."
+ },
+ "networkIntentPolicyConfigurations": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NetworkIntentPolicyConfiguration"
+ },
+ "description": "A list of NetworkIntentPolicyConfiguration."
+ }
+ },
+ "description": "Details of PrepareNetworkPolicies for Subnet."
+ },
+ "UnprepareNetworkPoliciesRequest": {
+ "properties": {
+ "serviceName": {
+ "type": "string",
+ "description": "The name of the service for which subnet is being unprepared for."
+ }
+ },
+ "description": "Details of UnprepareNetworkPolicies for Subnet."
+ },
+ "NetworkIntentPolicyConfiguration": {
+ "properties": {
+ "networkIntentPolicyName": {
+ "type": "string",
+ "description": "The name of the Network Intent Policy for storing in target subscription."
+ },
+ "sourceNetworkIntentPolicy": {
+ "$ref": "#/definitions/NetworkIntentPolicy",
+ "description": "Source network intent policy."
+ }
+ },
+ "description": "Details of NetworkIntentPolicyConfiguration for PrepareNetworkPoliciesRequest."
+ },
+ "NetworkIntentPolicy": {
+ "properties": {
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "description": "Network Intent Policy resource."
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/virtualNetworkGateway.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/virtualNetworkGateway.json
new file mode 100644
index 000000000000..7d654252fb57
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/virtualNetworkGateway.json
@@ -0,0 +1,3747 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "NetworkManagementClient",
+ "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
+ "version": "2020-07-01"
+ },
+ "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/virtualNetworkGateways/{virtualNetworkGatewayName}": {
+ "put": {
+ "tags": [
+ "VirtualNetworkGateways"
+ ],
+ "operationId": "VirtualNetworkGateways_CreateOrUpdate",
+ "description": "Creates or updates a virtual network gateway in the specified resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualNetworkGatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual network gateway."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/VirtualNetworkGateway"
+ },
+ "description": "Parameters supplied to create or update virtual network gateway operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update successful. The operation returns the resulting VirtualNetworkGateway resource.",
+ "schema": {
+ "$ref": "#/definitions/VirtualNetworkGateway"
+ }
+ },
+ "201": {
+ "description": "Create successful. The operation returns the resulting VirtualNetworkGateway resource.",
+ "schema": {
+ "$ref": "#/definitions/VirtualNetworkGateway"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "UpdateVirtualNetworkGateway": {
+ "$ref": "./examples/VirtualNetworkGatewayUpdate.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ },
+ "get": {
+ "tags": [
+ "VirtualNetworkGateways"
+ ],
+ "operationId": "VirtualNetworkGateways_Get",
+ "description": "Gets the specified virtual network gateway by resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualNetworkGatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual network gateway."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a VirtualNetworkGateway resource.",
+ "schema": {
+ "$ref": "#/definitions/VirtualNetworkGateway"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "GetVirtualNetworkGateway": {
+ "$ref": "./examples/VirtualNetworkGatewayGet.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "VirtualNetworkGateways"
+ ],
+ "operationId": "VirtualNetworkGateways_Delete",
+ "description": "Deletes the specified virtual network gateway.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualNetworkGatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual network gateway."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Delete successful."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "200": {
+ "description": "Delete successful."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "DeleteVirtualNetworkGateway": {
+ "$ref": "./examples/VirtualNetworkGatewayDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ },
+ "patch": {
+ "tags": [
+ "VirtualNetworkGateways"
+ ],
+ "operationId": "VirtualNetworkGateways_UpdateTags",
+ "description": "Updates a virtual network gateway tags.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualNetworkGatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual network gateway."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./network.json#/definitions/TagsObject"
+ },
+ "description": "Parameters supplied to update virtual network gateway tags."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "200": {
+ "description": "Update successful. The operation returns the resulting VirtualNetworkGateway resource.",
+ "schema": {
+ "$ref": "#/definitions/VirtualNetworkGateway"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "UpdateVirtualNetworkGatewayTags": {
+ "$ref": "./examples/VirtualNetworkGatewayUpdateTags.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways": {
+ "get": {
+ "tags": [
+ "VirtualNetworkGateways"
+ ],
+ "operationId": "VirtualNetworkGateways_List",
+ "description": "Gets all virtual network gateways by resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of VirtualNetworkGateway resources.",
+ "schema": {
+ "$ref": "#/definitions/VirtualNetworkGatewayListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ListVirtualNetworkGatewaysinResourceGroup": {
+ "$ref": "./examples/VirtualNetworkGatewayList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{virtualNetworkGatewayName}/connections": {
+ "get": {
+ "tags": [
+ "VirtualNetworkGateways"
+ ],
+ "operationId": "VirtualNetworkGateways_ListConnections",
+ "description": "Gets all the connections in a virtual network gateway.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualNetworkGatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual network gateway."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of VirtualNetworkGatewayConnection resource.",
+ "schema": {
+ "$ref": "#/definitions/VirtualNetworkGatewayListConnectionsResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "VirtualNetworkGatewaysListConnections": {
+ "$ref": "./examples/VirtualNetworkGatewaysListConnections.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{virtualNetworkGatewayName}/reset": {
+ "post": {
+ "tags": [
+ "VirtualNetworkGateways"
+ ],
+ "operationId": "VirtualNetworkGateways_Reset",
+ "description": "Resets the primary of the virtual network gateway in the specified resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualNetworkGatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual network gateway."
+ },
+ {
+ "name": "gatewayVip",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Virtual network gateway vip address supplied to the begin reset of the active-active feature enabled gateway."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "200": {
+ "description": "Request successful. The operation reset the primary of the virtual network gateway.",
+ "schema": {
+ "$ref": "#/definitions/VirtualNetworkGateway"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ResetVirtualNetworkGateway": {
+ "$ref": "./examples/VirtualNetworkGatewayReset.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{virtualNetworkGatewayName}/resetvpnclientsharedkey": {
+ "post": {
+ "tags": [
+ "VirtualNetworkGateways"
+ ],
+ "operationId": "VirtualNetworkGateways_ResetVpnClientSharedKey",
+ "description": "Resets the VPN client shared key of the virtual network gateway in the specified resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualNetworkGatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual network gateway."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation reset the vpn client shared key of the virtual network gateway."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ResetVpnClientSharedKey": {
+ "$ref": "./examples/VirtualNetworkGatewayResetVpnClientSharedKey.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{virtualNetworkGatewayName}/generatevpnclientpackage": {
+ "post": {
+ "tags": [
+ "VirtualNetworkGateways"
+ ],
+ "operationId": "VirtualNetworkGateways_Generatevpnclientpackage",
+ "description": "Generates VPN client package for P2S client of the virtual network gateway in the specified resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualNetworkGatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual network gateway."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/VpnClientParameters"
+ },
+ "description": "Parameters supplied to the generate virtual network gateway VPN client package operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "VPN client package URL.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "GenerateVPNClientPackage": {
+ "$ref": "./examples/VirtualNetworkGatewayGenerateVpnClientPackage.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{virtualNetworkGatewayName}/generatevpnprofile": {
+ "post": {
+ "tags": [
+ "VirtualNetworkGateways"
+ ],
+ "operationId": "VirtualNetworkGateways_GenerateVpnProfile",
+ "description": "Generates VPN profile for P2S client of the virtual network gateway in the specified resource group. Used for IKEV2 and radius based authentication.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualNetworkGatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual network gateway."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/VpnClientParameters"
+ },
+ "description": "Parameters supplied to the generate virtual network gateway VPN client package operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "VPN profile package URL.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "GenerateVirtualNetworkGatewayVPNProfile": {
+ "$ref": "./examples/VirtualNetworkGatewayGenerateVpnProfile.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{virtualNetworkGatewayName}/getvpnprofilepackageurl": {
+ "post": {
+ "tags": [
+ "VirtualNetworkGateways"
+ ],
+ "operationId": "VirtualNetworkGateways_GetVpnProfilePackageUrl",
+ "description": "Gets pre-generated VPN profile for P2S client of the virtual network gateway in the specified resource group. The profile needs to be generated first using generateVpnProfile.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualNetworkGatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual network gateway."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "VPN profile package URL.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "GetVirtualNetworkGatewayVPNProfilePackageURL": {
+ "$ref": "./examples/VirtualNetworkGatewayGetVpnProfilePackageUrl.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{virtualNetworkGatewayName}/getBgpPeerStatus": {
+ "post": {
+ "tags": [
+ "VirtualNetworkGateways"
+ ],
+ "operationId": "VirtualNetworkGateways_GetBgpPeerStatus",
+ "description": "The GetBgpPeerStatus operation retrieves the status of all BGP peers.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualNetworkGatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual network gateway."
+ },
+ {
+ "name": "peer",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "The IP address of the peer to retrieve the status of."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "List of BGP peer statuses.",
+ "schema": {
+ "$ref": "#/definitions/BgpPeerStatusListResult"
+ }
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "GetVirtualNetworkGatewayBGPPeerStatus": {
+ "$ref": "./examples/VirtualNetworkGatewayGetBGPPeerStatus.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{virtualNetworkGatewayName}/supportedvpndevices": {
+ "post": {
+ "tags": [
+ "VirtualNetworkGateways"
+ ],
+ "operationId": "VirtualNetworkGateways_SupportedVpnDevices",
+ "description": "Gets a xml format representation for supported vpn devices.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualNetworkGatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual network gateway."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Xml format representation for supported vpn devices.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ListVirtualNetworkGatewaySupportedVPNDevices": {
+ "$ref": "./examples/VirtualNetworkGatewaySupportedVpnDevice.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{virtualNetworkGatewayName}/getLearnedRoutes": {
+ "post": {
+ "tags": [
+ "VirtualNetworkGateways"
+ ],
+ "operationId": "VirtualNetworkGateways_GetLearnedRoutes",
+ "description": "This operation retrieves a list of routes the virtual network gateway has learned, including routes learned from BGP peers.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualNetworkGatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual network gateway."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "List of advertised BGP routes.",
+ "schema": {
+ "$ref": "#/definitions/GatewayRouteListResult"
+ }
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "GetVirtualNetworkGatewayLearnedRoutes": {
+ "$ref": "./examples/VirtualNetworkGatewayLearnedRoutes.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{virtualNetworkGatewayName}/getAdvertisedRoutes": {
+ "post": {
+ "tags": [
+ "VirtualNetworkGateways"
+ ],
+ "operationId": "VirtualNetworkGateways_GetAdvertisedRoutes",
+ "description": "This operation retrieves a list of routes the virtual network gateway is advertising to the specified peer.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualNetworkGatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual network gateway."
+ },
+ {
+ "name": "peer",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "The IP address of the peer."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "List of learned BGP routes.",
+ "schema": {
+ "$ref": "#/definitions/GatewayRouteListResult"
+ }
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "GetVirtualNetworkGatewayAdvertisedRoutes": {
+ "$ref": "./examples/VirtualNetworkGatewayGetAdvertisedRoutes.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{virtualNetworkGatewayName}/setvpnclientipsecparameters": {
+ "post": {
+ "tags": [
+ "VirtualNetworkGateways"
+ ],
+ "operationId": "VirtualNetworkGateways_SetVpnclientIpsecParameters",
+ "description": "The Set VpnclientIpsecParameters operation sets the vpnclient ipsec policy for P2S client of virtual network gateway in the specified resource group through Network resource provider.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualNetworkGatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual network gateway."
+ },
+ {
+ "name": "vpnclientIpsecParams",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/VpnClientIPsecParameters"
+ },
+ "description": "Parameters supplied to the Begin Set vpnclient ipsec parameters of Virtual Network Gateway P2S client operation through Network resource provider."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "200": {
+ "description": "Request successful. The operation sets the specified vpnclient ipsec parameters for P2S client of the virtual network gateway.",
+ "schema": {
+ "$ref": "#/definitions/VpnClientIPsecParameters"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "x-ms-examples": {
+ "Set VirtualNetworkGateway VpnClientIpsecParameters": {
+ "$ref": "./examples/VirtualNetworkGatewaySetVpnClientIpsecParameters.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{virtualNetworkGatewayName}/getvpnclientipsecparameters": {
+ "post": {
+ "tags": [
+ "VirtualNetworkGateways"
+ ],
+ "operationId": "VirtualNetworkGateways_GetVpnclientIpsecParameters",
+ "description": "The Get VpnclientIpsecParameters operation retrieves information about the vpnclient ipsec policy for P2S client of virtual network gateway in the specified resource group through Network resource provider.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualNetworkGatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The virtual network gateway name."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the set vpnclient ipsec parameters for P2S client of VirtualNetworkGateway resource.",
+ "schema": {
+ "$ref": "#/definitions/VpnClientIPsecParameters"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "x-ms-examples": {
+ "Get VirtualNetworkGateway VpnClientIpsecParameters": {
+ "$ref": "./examples/VirtualNetworkGatewayGetVpnClientIpsecParameters.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/connections/{virtualNetworkGatewayConnectionName}/vpndeviceconfigurationscript": {
+ "post": {
+ "tags": [
+ "VirtualNetworkGateways"
+ ],
+ "operationId": "VirtualNetworkGateways_VpnDeviceConfigurationScript",
+ "description": "Gets a xml format representation for vpn device configuration script.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualNetworkGatewayConnectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual network gateway connection for which the configuration script is generated."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/VpnDeviceScriptParameters"
+ },
+ "description": "Parameters supplied to the generate vpn device script operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Xml format representation for vpn device configuration script.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "GetVPNDeviceConfigurationScript": {
+ "$ref": "./examples/VirtualNetworkGatewayVpnDeviceConfigurationScript.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{virtualNetworkGatewayName}/startPacketCapture": {
+ "post": {
+ "tags": [
+ "VirtualNetworkGateways"
+ ],
+ "operationId": "VirtualNetworkGateways_StartPacketCapture",
+ "description": "Starts packet capture on virtual network gateway in the specified resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualNetworkGatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual network gateway."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/VpnPacketCaptureStartParameters"
+ },
+ "description": "Virtual network gateway packet capture parameters supplied to start packet capture on gateway."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "200": {
+ "description": "Request successful. The operation packet capture started on virtual network gateway.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Start packet capture on virtual network gateway without filter": {
+ "$ref": "./examples/VirtualNetworkGatewayStartPacketCapture.json"
+ },
+ "Start packet capture on virtual network gateway with filter": {
+ "$ref": "./examples/VirtualNetworkGatewayStartPacketCaptureFilterData.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{virtualNetworkGatewayName}/stopPacketCapture": {
+ "post": {
+ "tags": [
+ "VirtualNetworkGateways"
+ ],
+ "operationId": "VirtualNetworkGateways_StopPacketCapture",
+ "description": "Stops packet capture on virtual network gateway in the specified resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualNetworkGatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual network gateway."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/VpnPacketCaptureStopParameters"
+ },
+ "description": "Virtual network gateway packet capture parameters supplied to stop packet capture on gateway."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "200": {
+ "description": "Request successful. The operation packet capture stopped on virtual network gateway.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Stop packet capture on virtual network gateway": {
+ "$ref": "./examples/VirtualNetworkGatewayStopPacketCapture.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/connections/{virtualNetworkGatewayConnectionName}": {
+ "put": {
+ "tags": [
+ "VirtualNetworkGatewayConnections"
+ ],
+ "operationId": "VirtualNetworkGatewayConnections_CreateOrUpdate",
+ "description": "Creates or updates a virtual network gateway connection in the specified resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualNetworkGatewayConnectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual network gateway connection."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/VirtualNetworkGatewayConnection"
+ },
+ "description": "Parameters supplied to the create or update virtual network gateway connection operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update successful. The operation returns the resulting VirtualNetworkGatewayConnection resource.",
+ "schema": {
+ "$ref": "#/definitions/VirtualNetworkGatewayConnection"
+ }
+ },
+ "201": {
+ "description": "Create successful. The operation returns the resulting VirtualNetworkGatewayConnection resource.",
+ "schema": {
+ "$ref": "#/definitions/VirtualNetworkGatewayConnection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "CreateVirtualNetworkGatewayConnection_S2S": {
+ "$ref": "./examples/VirtualNetworkGatewayConnectionCreate.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ },
+ "get": {
+ "tags": [
+ "VirtualNetworkGatewayConnections"
+ ],
+ "operationId": "VirtualNetworkGatewayConnections_Get",
+ "description": "Gets the specified virtual network gateway connection by resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualNetworkGatewayConnectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual network gateway connection."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting VirtualNetworkGatewayConnection resource.",
+ "schema": {
+ "$ref": "#/definitions/VirtualNetworkGatewayConnection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "GetVirtualNetworkGatewayConnection": {
+ "$ref": "./examples/VirtualNetworkGatewayConnectionGet.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "VirtualNetworkGatewayConnections"
+ ],
+ "operationId": "VirtualNetworkGatewayConnections_Delete",
+ "description": "Deletes the specified virtual network Gateway connection.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualNetworkGatewayConnectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual network gateway connection."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Delete successful."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "204": {
+ "description": "Delete successful."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "DeleteVirtualNetworkGatewayConnection": {
+ "$ref": "./examples/VirtualNetworkGatewayConnectionDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ },
+ "patch": {
+ "tags": [
+ "VirtualNetworkGatewayConnections"
+ ],
+ "operationId": "VirtualNetworkGatewayConnections_UpdateTags",
+ "description": "Updates a virtual network gateway connection tags.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualNetworkGatewayConnectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual network gateway connection."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./network.json#/definitions/TagsObject"
+ },
+ "description": "Parameters supplied to update virtual network gateway connection tags."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "200": {
+ "description": "Update successful. The operation returns the resulting VirtualNetworkGatewayConnection resource.",
+ "schema": {
+ "$ref": "#/definitions/VirtualNetworkGatewayConnection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "UpdateVirtualNetworkGatewayConnectionTags": {
+ "$ref": "./examples/VirtualNetworkGatewayConnectionUpdateTags.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/connections/{virtualNetworkGatewayConnectionName}/sharedkey": {
+ "put": {
+ "tags": [
+ "VirtualNetworkGatewayConnections"
+ ],
+ "operationId": "VirtualNetworkGatewayConnections_SetSharedKey",
+ "description": "The Put VirtualNetworkGatewayConnectionSharedKey operation sets the virtual network gateway connection shared key for passed virtual network gateway connection in the specified resource group through Network resource provider.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualNetworkGatewayConnectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The virtual network gateway connection name."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ConnectionSharedKey"
+ },
+ "description": "Parameters supplied to the Begin Set Virtual Network Gateway connection Shared key operation throughNetwork resource provider."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Request successful. The operation returns the resulting ConnectionSharedKey resource.",
+ "schema": {
+ "$ref": "#/definitions/ConnectionSharedKey"
+ }
+ },
+ "200": {
+ "description": "Request successful. The operation returns the resulting ConnectionSharedKey resource.",
+ "schema": {
+ "$ref": "#/definitions/ConnectionSharedKey"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "SetVirtualNetworkGatewayConnectionSharedKey": {
+ "$ref": "./examples/VirtualNetworkGatewayConnectionSetSharedKey.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ },
+ "get": {
+ "tags": [
+ "VirtualNetworkGatewayConnections"
+ ],
+ "operationId": "VirtualNetworkGatewayConnections_GetSharedKey",
+ "description": "The Get VirtualNetworkGatewayConnectionSharedKey operation retrieves information about the specified virtual network gateway connection shared key through Network resource provider.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualNetworkGatewayConnectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The virtual network gateway connection shared key name."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of VirtualNetworkGatewayConnection resources.",
+ "schema": {
+ "$ref": "#/definitions/ConnectionSharedKey"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "GetVirtualNetworkGatewayConnectionSharedKey": {
+ "$ref": "./examples/VirtualNetworkGatewayConnectionGetSharedKey.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/connections": {
+ "get": {
+ "tags": [
+ "VirtualNetworkGatewayConnections"
+ ],
+ "operationId": "VirtualNetworkGatewayConnections_List",
+ "description": "The List VirtualNetworkGatewayConnections operation retrieves all the virtual network gateways connections created.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation resets the virtual network gateway connection shared key.",
+ "schema": {
+ "$ref": "#/definitions/VirtualNetworkGatewayConnectionListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ListVirtualNetworkGatewayConnectionsinResourceGroup": {
+ "$ref": "./examples/VirtualNetworkGatewayConnectionsList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/connections/{virtualNetworkGatewayConnectionName}/sharedkey/reset": {
+ "post": {
+ "tags": [
+ "VirtualNetworkGatewayConnections"
+ ],
+ "operationId": "VirtualNetworkGatewayConnections_ResetSharedKey",
+ "description": "The VirtualNetworkGatewayConnectionResetSharedKey operation resets the virtual network gateway connection shared key for passed virtual network gateway connection in the specified resource group through Network resource provider.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualNetworkGatewayConnectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The virtual network gateway connection reset shared key Name."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ConnectionResetSharedKey"
+ },
+ "description": "Parameters supplied to the begin reset virtual network gateway connection shared key operation through network resource provider."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation sets the virtual network gateway connection shared key.",
+ "schema": {
+ "$ref": "#/definitions/ConnectionResetSharedKey"
+ }
+ },
+ "202": {
+ "description": "Request successful. The operation sets the virtual network gateway connection shared key."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ResetVirtualNetworkGatewayConnectionSharedKey": {
+ "$ref": "./examples/VirtualNetworkGatewayConnectionResetSharedKey.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/connections/{virtualNetworkGatewayConnectionName}/startPacketCapture": {
+ "post": {
+ "tags": [
+ "VirtualNetworkGatewayConnections"
+ ],
+ "operationId": "VirtualNetworkGatewayConnections_StartPacketCapture",
+ "description": "Starts packet capture on virtual network gateway connection in the specified resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualNetworkGatewayConnectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual network gateway connection."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/VpnPacketCaptureStartParameters"
+ },
+ "description": "Virtual network gateway packet capture parameters supplied to start packet capture on gateway connection."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "200": {
+ "description": "Request successful. The operation packet capture started on virtual network gateway connection.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Start packet capture on virtual network gateway connection without filter": {
+ "$ref": "./examples/VirtualNetworkGatewayConnectionStartPacketCapture.json"
+ },
+ "Start packet capture on virtual network gateway connection with filter": {
+ "$ref": "./examples/VirtualNetworkGatewayConnectionStartPacketCaptureFilterData.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/connections/{virtualNetworkGatewayConnectionName}/stopPacketCapture": {
+ "post": {
+ "tags": [
+ "VirtualNetworkGatewayConnections"
+ ],
+ "operationId": "VirtualNetworkGatewayConnections_StopPacketCapture",
+ "description": "Stops packet capture on virtual network gateway connection in the specified resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualNetworkGatewayConnectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual network gateway Connection."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/VpnPacketCaptureStopParameters"
+ },
+ "description": "Virtual network gateway packet capture parameters supplied to stop packet capture on gateway connection."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "200": {
+ "description": "Request successful. The operation packet capture stopped on virtual network gateway connection.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Stop packet capture on virtual network gateway connection": {
+ "$ref": "./examples/VirtualNetworkGatewayConnectionStopPacketCapture.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/localNetworkGateways/{localNetworkGatewayName}": {
+ "put": {
+ "tags": [
+ "LocalNetworkGateways"
+ ],
+ "operationId": "LocalNetworkGateways_CreateOrUpdate",
+ "description": "Creates or updates a local network gateway in the specified resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "localNetworkGatewayName",
+ "in": "path",
+ "required": true,
+ "minLength": 1,
+ "type": "string",
+ "description": "The name of the local network gateway."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/LocalNetworkGateway"
+ },
+ "description": "Parameters supplied to the create or update local network gateway operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Create successful. The operation returns the resulting LocalNetworkGateway resource.",
+ "schema": {
+ "$ref": "#/definitions/LocalNetworkGateway"
+ }
+ },
+ "200": {
+ "description": "Update successful. The operation returns the resulting LocalNetworkGateway resource.",
+ "schema": {
+ "$ref": "#/definitions/LocalNetworkGateway"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "CreateLocalNetworkGateway": {
+ "$ref": "./examples/LocalNetworkGatewayCreate.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ },
+ "get": {
+ "tags": [
+ "LocalNetworkGateways"
+ ],
+ "operationId": "LocalNetworkGateways_Get",
+ "description": "Gets the specified local network gateway in a resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "localNetworkGatewayName",
+ "in": "path",
+ "required": true,
+ "minLength": 1,
+ "type": "string",
+ "description": "The name of the local network gateway."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting LocalNetworkGateway resource.",
+ "schema": {
+ "$ref": "#/definitions/LocalNetworkGateway"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "GetLocalNetworkGateway": {
+ "$ref": "./examples/LocalNetworkGatewayGet.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "LocalNetworkGateways"
+ ],
+ "operationId": "LocalNetworkGateways_Delete",
+ "description": "Deletes the specified local network gateway.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "localNetworkGatewayName",
+ "in": "path",
+ "required": true,
+ "minLength": 1,
+ "type": "string",
+ "description": "The name of the local network gateway."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Delete successful."
+ },
+ "200": {
+ "description": "Delete successful."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "DeleteLocalNetworkGateway": {
+ "$ref": "./examples/LocalNetworkGatewayDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ },
+ "patch": {
+ "tags": [
+ "LocalNetworkGateways"
+ ],
+ "operationId": "LocalNetworkGateways_UpdateTags",
+ "description": "Updates a local network gateway tags.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "localNetworkGatewayName",
+ "in": "path",
+ "required": true,
+ "minLength": 1,
+ "type": "string",
+ "description": "The name of the local network gateway."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./network.json#/definitions/TagsObject"
+ },
+ "description": "Parameters supplied to update local network gateway tags."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update successful. The operation returns the resulting LocalNetworkGateway resource.",
+ "schema": {
+ "$ref": "#/definitions/LocalNetworkGateway"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "UpdateLocalNetworkGatewayTags": {
+ "$ref": "./examples/LocalNetworkGatewayUpdateTags.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/localNetworkGateways": {
+ "get": {
+ "tags": [
+ "LocalNetworkGateways"
+ ],
+ "operationId": "LocalNetworkGateways_List",
+ "description": "Gets all the local network gateways in a resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of LocalNetworkGateway resources.",
+ "schema": {
+ "$ref": "#/definitions/LocalNetworkGatewayListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ListLocalNetworkGateways": {
+ "$ref": "./examples/LocalNetworkGatewayList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{virtualNetworkGatewayName}/getVpnClientConnectionHealth": {
+ "post": {
+ "tags": [
+ "VirtualNetworkGateways"
+ ],
+ "operationId": "VirtualNetworkGateways_GetVpnclientConnectionHealth",
+ "description": "Get VPN client connection health detail per P2S client connection of the virtual network gateway in the specified resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualNetworkGatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual network gateway."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "List of VPN client connection health details.",
+ "schema": {
+ "$ref": "#/definitions/VpnClientConnectionHealthDetailListResult"
+ }
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "GetVirtualNetworkGatewayVpnclientConnectionHealth": {
+ "$ref": "./examples/VirtualNetworkGatewayGetVpnclientConnectionHealth.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{virtualNetworkGatewayName}/disconnectVirtualNetworkGatewayVpnConnections": {
+ "post": {
+ "tags": [
+ "VirtualNetworkGateways"
+ ],
+ "operationId": "VirtualNetworkGateways_DisconnectVirtualNetworkGatewayVpnConnections",
+ "description": "Disconnect vpn connections of virtual network gateway in the specified resource group.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualNetworkGatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual network gateway."
+ },
+ {
+ "name": "request",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./virtualWan.json#/definitions/P2SVpnConnectionRequest"
+ },
+ "description": "The parameters are supplied to disconnect vpn connections."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation disconnects the requested vpn connections."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Disconnect VpnConnections from Virtual Network Gateway": {
+ "$ref": "./examples/VirtualNetworkGatewaysDisconnectP2sVpnConnections.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "VirtualNetworkGatewayIPConfigurationPropertiesFormat": {
+ "properties": {
+ "privateIPAllocationMethod": {
+ "$ref": "./network.json#/definitions/IPAllocationMethod",
+ "description": "The private IP address allocation method."
+ },
+ "subnet": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "The reference to the subnet resource."
+ },
+ "publicIPAddress": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "The reference to the public IP resource."
+ },
+ "privateIPAddress": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Private IP Address for this gateway."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the virtual network gateway IP configuration resource."
+ }
+ },
+ "description": "Properties of VirtualNetworkGatewayIPConfiguration."
+ },
+ "VirtualNetworkGatewayIPConfiguration": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/VirtualNetworkGatewayIPConfigurationPropertiesFormat",
+ "description": "Properties of the virtual network gateway ip configuration."
+ },
+ "name": {
+ "type": "string",
+ "description": "The 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": "IP configuration for virtual network gateway."
+ },
+ "VirtualNetworkGatewayPropertiesFormat": {
+ "properties": {
+ "ipConfigurations": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualNetworkGatewayIPConfiguration"
+ },
+ "description": "IP configurations for virtual network gateway."
+ },
+ "gatewayType": {
+ "type": "string",
+ "description": "The type of this virtual network gateway.",
+ "enum": [
+ "Vpn",
+ "ExpressRoute",
+ "LocalGateway"
+ ],
+ "x-ms-enum": {
+ "name": "VirtualNetworkGatewayType",
+ "modelAsString": true
+ }
+ },
+ "vpnType": {
+ "type": "string",
+ "description": "The type of this virtual network gateway.",
+ "enum": [
+ "PolicyBased",
+ "RouteBased"
+ ],
+ "x-ms-enum": {
+ "name": "VpnType",
+ "modelAsString": true
+ }
+ },
+ "vpnGatewayGeneration": {
+ "type": "string",
+ "description": "The generation for this VirtualNetworkGateway. Must be None if gatewayType is not VPN.",
+ "enum": [
+ "None",
+ "Generation1",
+ "Generation2"
+ ],
+ "x-ms-enum": {
+ "name": "VpnGatewayGeneration",
+ "modelAsString": true
+ }
+ },
+ "enableBgp": {
+ "type": "boolean",
+ "description": "Whether BGP is enabled for this virtual network gateway or not."
+ },
+ "enablePrivateIpAddress": {
+ "type": "boolean",
+ "description": "Whether private IP needs to be enabled on this gateway for connections or not."
+ },
+ "activeActive": {
+ "type": "boolean",
+ "description": "ActiveActive flag."
+ },
+ "gatewayDefaultSite": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "The reference to the LocalNetworkGateway resource which represents local network site having default routes. Assign Null value in case of removing existing default site setting."
+ },
+ "sku": {
+ "$ref": "#/definitions/VirtualNetworkGatewaySku",
+ "description": "The reference to the VirtualNetworkGatewaySku resource which represents the SKU selected for Virtual network gateway."
+ },
+ "vpnClientConfiguration": {
+ "$ref": "#/definitions/VpnClientConfiguration",
+ "description": "The reference to the VpnClientConfiguration resource which represents the P2S VpnClient configurations."
+ },
+ "bgpSettings": {
+ "$ref": "#/definitions/BgpSettings",
+ "description": "Virtual network gateway's BGP speaker settings."
+ },
+ "customRoutes": {
+ "$ref": "./virtualNetwork.json#/definitions/AddressSpace",
+ "description": "The reference to the address space resource which represents the custom routes address space specified by the customer for virtual network gateway and VpnClient."
+ },
+ "resourceGuid": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource GUID property of the virtual network gateway resource."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the virtual network gateway resource."
+ },
+ "enableDnsForwarding": {
+ "type": "boolean",
+ "description": "Whether dns forwarding is enabled or not."
+ },
+ "inboundDnsForwardingEndpoint": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The IP address allocated by the gateway to which dns requests can be sent."
+ },
+ "virtualNetworkExtendedLocationResourceId": {
+ "type": "string",
+ "description": "MAS FIJI customer vnet resource id. VirtualNetworkGateway of type local gateway is associated with the customer vnet."
+ },
+ "extendedLocation": {
+ "description": "The extended location of type local virtual network gateway.",
+ "$ref": "./network.json#/definitions/ExtendedLocation"
+ }
+ },
+ "description": "VirtualNetworkGateway properties."
+ },
+ "VpnClientRootCertificatePropertiesFormat": {
+ "properties": {
+ "publicCertData": {
+ "type": "string",
+ "description": "The certificate public data."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the VPN client root certificate resource."
+ }
+ },
+ "required": [
+ "publicCertData"
+ ],
+ "description": "Properties of SSL certificates of application gateway."
+ },
+ "VpnClientRootCertificate": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/VpnClientRootCertificatePropertiesFormat",
+ "description": "Properties of the vpn client root certificate."
+ },
+ "name": {
+ "type": "string",
+ "description": "The 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"
+ }
+ ],
+ "required": [
+ "properties"
+ ],
+ "description": "VPN client root certificate of virtual network gateway."
+ },
+ "VpnClientRevokedCertificatePropertiesFormat": {
+ "properties": {
+ "thumbprint": {
+ "type": "string",
+ "description": "The revoked VPN client certificate thumbprint."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the VPN client revoked certificate resource."
+ }
+ },
+ "description": "Properties of the revoked VPN client certificate of virtual network gateway."
+ },
+ "VpnClientRevokedCertificate": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/VpnClientRevokedCertificatePropertiesFormat",
+ "description": "Properties of the vpn client revoked certificate."
+ },
+ "name": {
+ "type": "string",
+ "description": "The 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": "VPN client revoked certificate of virtual network gateway."
+ },
+ "RadiusServer": {
+ "properties": {
+ "radiusServerAddress": {
+ "type": "string",
+ "description": "The address of this radius server."
+ },
+ "radiusServerScore": {
+ "type": "integer",
+ "format": "int64",
+ "description": "The initial score assigned to this radius server."
+ },
+ "radiusServerSecret": {
+ "type": "string",
+ "description": "The secret used for this radius server."
+ }
+ },
+ "required": [
+ "radiusServerAddress"
+ ],
+ "description": "Radius Server Settings."
+ },
+ "VpnClientConfiguration": {
+ "properties": {
+ "vpnClientAddressPool": {
+ "$ref": "./virtualNetwork.json#/definitions/AddressSpace",
+ "description": "The reference to the address space resource which represents Address space for P2S VpnClient."
+ },
+ "vpnClientRootCertificates": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VpnClientRootCertificate"
+ },
+ "description": "VpnClientRootCertificate for virtual network gateway."
+ },
+ "vpnClientRevokedCertificates": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VpnClientRevokedCertificate"
+ },
+ "description": "VpnClientRevokedCertificate for Virtual network gateway."
+ },
+ "vpnClientProtocols": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "description": "VPN client protocol enabled for the virtual network gateway.",
+ "enum": [
+ "IkeV2",
+ "SSTP",
+ "OpenVPN"
+ ],
+ "x-ms-enum": {
+ "name": "VpnClientProtocol",
+ "modelAsString": true
+ }
+ },
+ "description": "VpnClientProtocols for Virtual network gateway."
+ },
+ "vpnClientIpsecPolicies": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/IpsecPolicy"
+ },
+ "description": "VpnClientIpsecPolicies for virtual network gateway P2S client."
+ },
+ "radiusServerAddress": {
+ "type": "string",
+ "description": "The radius server address property of the VirtualNetworkGateway resource for vpn client connection."
+ },
+ "radiusServerSecret": {
+ "type": "string",
+ "description": "The radius secret property of the VirtualNetworkGateway resource for vpn client connection."
+ },
+ "radiusServers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RadiusServer"
+ },
+ "description": "The radiusServers property for multiple radius server configuration."
+ },
+ "aadTenant": {
+ "type": "string",
+ "description": "The AADTenant property of the VirtualNetworkGateway resource for vpn client connection used for AAD authentication."
+ },
+ "aadAudience": {
+ "type": "string",
+ "description": "The AADAudience property of the VirtualNetworkGateway resource for vpn client connection used for AAD authentication."
+ },
+ "aadIssuer": {
+ "type": "string",
+ "description": "The AADIssuer property of the VirtualNetworkGateway resource for vpn client connection used for AAD authentication."
+ }
+ },
+ "description": "VpnClientConfiguration for P2S client."
+ },
+ "VirtualNetworkGatewaySku": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Gateway SKU name.",
+ "enum": [
+ "Basic",
+ "HighPerformance",
+ "Standard",
+ "UltraPerformance",
+ "VpnGw1",
+ "VpnGw2",
+ "VpnGw3",
+ "VpnGw4",
+ "VpnGw5",
+ "VpnGw1AZ",
+ "VpnGw2AZ",
+ "VpnGw3AZ",
+ "VpnGw4AZ",
+ "VpnGw5AZ",
+ "ErGw1AZ",
+ "ErGw2AZ",
+ "ErGw3AZ"
+ ],
+ "x-ms-enum": {
+ "name": "VirtualNetworkGatewaySkuName",
+ "modelAsString": true
+ }
+ },
+ "tier": {
+ "type": "string",
+ "description": "Gateway SKU tier.",
+ "enum": [
+ "Basic",
+ "HighPerformance",
+ "Standard",
+ "UltraPerformance",
+ "VpnGw1",
+ "VpnGw2",
+ "VpnGw3",
+ "VpnGw4",
+ "VpnGw5",
+ "VpnGw1AZ",
+ "VpnGw2AZ",
+ "VpnGw3AZ",
+ "VpnGw4AZ",
+ "VpnGw5AZ",
+ "ErGw1AZ",
+ "ErGw2AZ",
+ "ErGw3AZ"
+ ],
+ "x-ms-enum": {
+ "name": "VirtualNetworkGatewaySkuTier",
+ "modelAsString": true
+ }
+ },
+ "capacity": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int32",
+ "description": "The capacity."
+ }
+ },
+ "description": "VirtualNetworkGatewaySku details."
+ },
+ "BgpSettings": {
+ "properties": {
+ "asn": {
+ "type": "integer",
+ "format": "int64",
+ "minimum": 0,
+ "maximum": 4294967295,
+ "description": "The BGP speaker's ASN."
+ },
+ "bgpPeeringAddress": {
+ "type": "string",
+ "description": "The BGP peering address and BGP identifier of this BGP speaker."
+ },
+ "peerWeight": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The weight added to routes learned from this BGP speaker."
+ },
+ "bgpPeeringAddresses": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/IPConfigurationBgpPeeringAddress"
+ },
+ "description": "BGP peering address with IP configuration ID for virtual network gateway."
+ }
+ },
+ "description": "BGP settings details."
+ },
+ "BgpPeerStatus": {
+ "properties": {
+ "localAddress": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The virtual network gateway's local address."
+ },
+ "neighbor": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The remote BGP peer."
+ },
+ "asn": {
+ "type": "integer",
+ "format": "int64",
+ "readOnly": true,
+ "minimum": 0,
+ "maximum": 4294967295,
+ "description": "The autonomous system number of the remote BGP peer."
+ },
+ "state": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The BGP peer state.",
+ "enum": [
+ "Unknown",
+ "Stopped",
+ "Idle",
+ "Connecting",
+ "Connected"
+ ],
+ "x-ms-enum": {
+ "name": "BgpPeerState",
+ "modelAsString": true
+ }
+ },
+ "connectedDuration": {
+ "type": "string",
+ "readOnly": true,
+ "description": "For how long the peering has been up."
+ },
+ "routesReceived": {
+ "type": "integer",
+ "format": "int64",
+ "readOnly": true,
+ "description": "The number of routes learned from this peer."
+ },
+ "messagesSent": {
+ "type": "integer",
+ "format": "int64",
+ "readOnly": true,
+ "description": "The number of BGP messages sent."
+ },
+ "messagesReceived": {
+ "type": "integer",
+ "format": "int64",
+ "readOnly": true,
+ "description": "The number of BGP messages received."
+ }
+ },
+ "description": "BGP peer status details."
+ },
+ "GatewayRoute": {
+ "properties": {
+ "localAddress": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The gateway's local address."
+ },
+ "network": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The route's network prefix."
+ },
+ "nextHop": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The route's next hop."
+ },
+ "sourcePeer": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The peer this route was learned from."
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The source this route was learned from."
+ },
+ "asPath": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The route's AS path sequence."
+ },
+ "weight": {
+ "type": "integer",
+ "format": "int32",
+ "readOnly": true,
+ "description": "The route's weight."
+ }
+ },
+ "description": "Gateway routing details."
+ },
+ "VirtualNetworkGateway": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/VirtualNetworkGatewayPropertiesFormat",
+ "description": "Properties of the virtual network gateway."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "required": [
+ "properties"
+ ],
+ "description": "A common class for general resource information."
+ },
+ "VpnClientParameters": {
+ "properties": {
+ "processorArchitecture": {
+ "type": "string",
+ "description": "VPN client Processor Architecture.",
+ "enum": [
+ "Amd64",
+ "X86"
+ ],
+ "x-ms-enum": {
+ "name": "ProcessorArchitecture",
+ "modelAsString": true
+ }
+ },
+ "authenticationMethod": {
+ "$ref": "./network.json#/definitions/AuthenticationMethod",
+ "description": "VPN client authentication method."
+ },
+ "radiusServerAuthCertificate": {
+ "type": "string",
+ "description": "The public certificate data for the radius server authentication certificate as a Base-64 encoded string. Required only if external radius authentication has been configured with EAPTLS authentication."
+ },
+ "clientRootCertificates": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "A list of client root certificates public certificate data encoded as Base-64 strings. Optional parameter for external radius based authentication with EAPTLS."
+ }
+ },
+ "description": "Vpn Client Parameters for package generation."
+ },
+ "VirtualNetworkGatewayListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualNetworkGateway"
+ },
+ "description": "A list of VirtualNetworkGateway resources that exists in a resource group."
+ },
+ "nextLink": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for the ListVirtualNetworkGateways API service call."
+ },
+ "BgpPeerStatusListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/BgpPeerStatus"
+ },
+ "description": "List of BGP peers."
+ }
+ },
+ "description": "Response for list BGP peer status API service call."
+ },
+ "GatewayRouteListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/GatewayRoute"
+ },
+ "description": "List of gateway routes."
+ }
+ },
+ "description": "List of virtual network gateway routes."
+ },
+ "TunnelConnectionHealth": {
+ "properties": {
+ "tunnel": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Tunnel name."
+ },
+ "connectionStatus": {
+ "readOnly": true,
+ "$ref": "#/definitions/VirtualNetworkGatewayConnectionStatus",
+ "description": "Virtual Network Gateway connection status."
+ },
+ "ingressBytesTransferred": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int64",
+ "description": "The Ingress Bytes Transferred in this connection."
+ },
+ "egressBytesTransferred": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int64",
+ "description": "The Egress Bytes Transferred in this connection."
+ },
+ "lastConnectionEstablishedUtcTime": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The time at which connection was established in Utc format."
+ }
+ },
+ "description": "VirtualNetworkGatewayConnection properties."
+ },
+ "VirtualNetworkGatewayConnectionPropertiesFormat": {
+ "properties": {
+ "authorizationKey": {
+ "type": "string",
+ "description": "The authorizationKey."
+ },
+ "virtualNetworkGateway1": {
+ "$ref": "#/definitions/VirtualNetworkGateway",
+ "description": "The reference to virtual network gateway resource."
+ },
+ "virtualNetworkGateway2": {
+ "$ref": "#/definitions/VirtualNetworkGateway",
+ "description": "The reference to virtual network gateway resource."
+ },
+ "localNetworkGateway2": {
+ "$ref": "#/definitions/LocalNetworkGateway",
+ "description": "The reference to local network gateway resource."
+ },
+ "connectionType": {
+ "$ref": "#/definitions/VirtualNetworkGatewayConnectionType",
+ "description": "Gateway connection type."
+ },
+ "connectionProtocol": {
+ "$ref": "#/definitions/ConnectionProtocol",
+ "description": "Connection protocol used for this connection."
+ },
+ "routingWeight": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The routing weight."
+ },
+ "dpdTimeoutSeconds": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The dead peer detection timeout of this connection in seconds."
+ },
+ "connectionMode": {
+ "$ref": "#/definitions/VirtualNetworkGatewayConnectionMode",
+ "description": "The connection mode for this connection."
+ },
+ "sharedKey": {
+ "type": "string",
+ "description": "The IPSec shared key."
+ },
+ "connectionStatus": {
+ "readOnly": true,
+ "$ref": "#/definitions/VirtualNetworkGatewayConnectionStatus",
+ "description": "Virtual Network Gateway connection status."
+ },
+ "tunnelConnectionStatus": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/TunnelConnectionHealth"
+ },
+ "description": "Collection of all tunnels' connection health status."
+ },
+ "egressBytesTransferred": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int64",
+ "description": "The egress bytes transferred in this connection."
+ },
+ "ingressBytesTransferred": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int64",
+ "description": "The ingress bytes transferred in this connection."
+ },
+ "peer": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "The reference to peerings resource."
+ },
+ "enableBgp": {
+ "type": "boolean",
+ "description": "EnableBgp flag."
+ },
+ "useLocalAzureIpAddress": {
+ "type": "boolean",
+ "description": "Use private local Azure IP for the connection."
+ },
+ "usePolicyBasedTrafficSelectors": {
+ "type": "boolean",
+ "description": "Enable policy-based traffic selectors."
+ },
+ "ipsecPolicies": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/IpsecPolicy"
+ },
+ "description": "The IPSec Policies to be considered by this connection."
+ },
+ "trafficSelectorPolicies": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/TrafficSelectorPolicy"
+ },
+ "description": "The Traffic Selector Policies to be considered by this connection."
+ },
+ "resourceGuid": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource GUID property of the virtual network gateway connection resource."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the virtual network gateway connection resource."
+ },
+ "expressRouteGatewayBypass": {
+ "type": "boolean",
+ "description": "Bypass ExpressRoute Gateway for data forwarding."
+ }
+ },
+ "required": [
+ "virtualNetworkGateway1",
+ "connectionType"
+ ],
+ "description": "VirtualNetworkGatewayConnection properties."
+ },
+ "VirtualNetworkGatewayConnection": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/VirtualNetworkGatewayConnectionPropertiesFormat",
+ "description": "Properties of the virtual network gateway connection."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "required": [
+ "properties"
+ ],
+ "description": "A common class for general resource information."
+ },
+ "VirtualNetworkGatewayConnectionListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualNetworkGatewayConnection"
+ },
+ "description": "A list of VirtualNetworkGatewayConnection resources that exists in a resource group."
+ },
+ "nextLink": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for the ListVirtualNetworkGatewayConnections API service call."
+ },
+ "ConnectionResetSharedKey": {
+ "properties": {
+ "keyLength": {
+ "type": "integer",
+ "format": "int32",
+ "minimum": 1,
+ "maximum": 128,
+ "description": "The virtual network connection reset shared key length, should between 1 and 128."
+ }
+ },
+ "required": [
+ "keyLength"
+ ],
+ "description": "The virtual network connection reset shared key."
+ },
+ "ConnectionSharedKey": {
+ "properties": {
+ "value": {
+ "type": "string",
+ "description": "The virtual network connection shared key value."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "required": [
+ "value"
+ ],
+ "description": "Response for GetConnectionSharedKey API service call."
+ },
+ "IpsecPolicy": {
+ "properties": {
+ "saLifeTimeSeconds": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The IPSec Security Association (also called Quick Mode or Phase 2 SA) lifetime in seconds for a site to site VPN tunnel."
+ },
+ "saDataSizeKilobytes": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The IPSec Security Association (also called Quick Mode or Phase 2 SA) payload size in KB for a site to site VPN tunnel."
+ },
+ "ipsecEncryption": {
+ "$ref": "#/definitions/IpsecEncryption",
+ "description": "The IPSec encryption algorithm (IKE phase 1)."
+ },
+ "ipsecIntegrity": {
+ "$ref": "#/definitions/IpsecIntegrity",
+ "description": "The IPSec integrity algorithm (IKE phase 1)."
+ },
+ "ikeEncryption": {
+ "$ref": "#/definitions/IkeEncryption",
+ "description": "The IKE encryption algorithm (IKE phase 2)."
+ },
+ "ikeIntegrity": {
+ "$ref": "#/definitions/IkeIntegrity",
+ "description": "The IKE integrity algorithm (IKE phase 2)."
+ },
+ "dhGroup": {
+ "$ref": "#/definitions/DhGroup",
+ "description": "The DH Group used in IKE Phase 1 for initial SA."
+ },
+ "pfsGroup": {
+ "$ref": "#/definitions/PfsGroup",
+ "description": "The Pfs Group used in IKE Phase 2 for new child SA."
+ }
+ },
+ "required": [
+ "saLifeTimeSeconds",
+ "saDataSizeKilobytes",
+ "ipsecEncryption",
+ "ipsecIntegrity",
+ "ikeEncryption",
+ "ikeIntegrity",
+ "dhGroup",
+ "pfsGroup"
+ ],
+ "description": "An IPSec Policy configuration for a virtual network gateway connection."
+ },
+ "TrafficSelectorPolicy": {
+ "properties": {
+ "localAddressRanges": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "A collection of local address spaces in CIDR format."
+ },
+ "remoteAddressRanges": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "A collection of remote address spaces in CIDR format."
+ }
+ },
+ "required": [
+ "localAddressRanges",
+ "remoteAddressRanges"
+ ],
+ "description": "An traffic selector policy for a virtual network gateway connection."
+ },
+ "ConnectionProtocol": {
+ "type": "string",
+ "description": "Gateway connection protocol.",
+ "enum": [
+ "IKEv2",
+ "IKEv1"
+ ],
+ "x-ms-enum": {
+ "name": "VirtualNetworkGatewayConnectionProtocol",
+ "modelAsString": true
+ }
+ },
+ "VpnClientIPsecParameters": {
+ "properties": {
+ "saLifeTimeSeconds": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The IPSec Security Association (also called Quick Mode or Phase 2 SA) lifetime in seconds for P2S client."
+ },
+ "saDataSizeKilobytes": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The IPSec Security Association (also called Quick Mode or Phase 2 SA) payload size in KB for P2S client.."
+ },
+ "ipsecEncryption": {
+ "$ref": "#/definitions/IpsecEncryption",
+ "description": "The IPSec encryption algorithm (IKE phase 1)."
+ },
+ "ipsecIntegrity": {
+ "$ref": "#/definitions/IpsecIntegrity",
+ "description": "The IPSec integrity algorithm (IKE phase 1)."
+ },
+ "ikeEncryption": {
+ "$ref": "#/definitions/IkeEncryption",
+ "description": "The IKE encryption algorithm (IKE phase 2)."
+ },
+ "ikeIntegrity": {
+ "$ref": "#/definitions/IkeIntegrity",
+ "description": "The IKE integrity algorithm (IKE phase 2)."
+ },
+ "dhGroup": {
+ "$ref": "#/definitions/DhGroup",
+ "description": "The DH Group used in IKE Phase 1 for initial SA."
+ },
+ "pfsGroup": {
+ "$ref": "#/definitions/PfsGroup",
+ "description": "The Pfs Group used in IKE Phase 2 for new child SA."
+ }
+ },
+ "required": [
+ "saLifeTimeSeconds",
+ "saDataSizeKilobytes",
+ "ipsecEncryption",
+ "ipsecIntegrity",
+ "ikeEncryption",
+ "ikeIntegrity",
+ "dhGroup",
+ "pfsGroup"
+ ],
+ "description": "An IPSec parameters for a virtual network gateway P2S connection."
+ },
+ "LocalNetworkGatewayPropertiesFormat": {
+ "properties": {
+ "localNetworkAddressSpace": {
+ "$ref": "./virtualNetwork.json#/definitions/AddressSpace",
+ "description": "Local network site address space."
+ },
+ "gatewayIpAddress": {
+ "type": "string",
+ "description": "IP address of local network gateway."
+ },
+ "fqdn": {
+ "type": "string",
+ "description": "FQDN of local network gateway."
+ },
+ "bgpSettings": {
+ "$ref": "#/definitions/BgpSettings",
+ "description": "Local network gateway's BGP speaker settings."
+ },
+ "resourceGuid": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource GUID property of the local network gateway resource."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the local network gateway resource."
+ }
+ },
+ "description": "LocalNetworkGateway properties."
+ },
+ "LocalNetworkGateway": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/LocalNetworkGatewayPropertiesFormat",
+ "description": "Properties of the local network gateway."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "required": [
+ "properties"
+ ],
+ "description": "A common class for general resource information."
+ },
+ "LocalNetworkGatewayListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/LocalNetworkGateway"
+ },
+ "description": "A list of local network gateways that exists in a resource group."
+ },
+ "nextLink": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for ListLocalNetworkGateways API service call."
+ },
+ "VirtualNetworkConnectionGatewayReference": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "The ID of VirtualNetworkGateway or LocalNetworkGateway resource."
+ }
+ },
+ "required": [
+ "id"
+ ],
+ "description": "A reference to VirtualNetworkGateway or LocalNetworkGateway resource."
+ },
+ "VirtualNetworkGatewayConnectionListEntityPropertiesFormat": {
+ "properties": {
+ "authorizationKey": {
+ "type": "string",
+ "description": "The authorizationKey."
+ },
+ "virtualNetworkGateway1": {
+ "$ref": "#/definitions/VirtualNetworkConnectionGatewayReference",
+ "description": "The reference to virtual network gateway resource."
+ },
+ "virtualNetworkGateway2": {
+ "$ref": "#/definitions/VirtualNetworkConnectionGatewayReference",
+ "description": "The reference to virtual network gateway resource."
+ },
+ "localNetworkGateway2": {
+ "$ref": "#/definitions/VirtualNetworkConnectionGatewayReference",
+ "description": "The reference to local network gateway resource."
+ },
+ "connectionType": {
+ "$ref": "#/definitions/VirtualNetworkGatewayConnectionType",
+ "description": "Gateway connection type."
+ },
+ "connectionProtocol": {
+ "$ref": "#/definitions/ConnectionProtocol",
+ "description": "Connection protocol used for this connection."
+ },
+ "routingWeight": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The routing weight."
+ },
+ "connectionMode": {
+ "$ref": "#/definitions/VirtualNetworkGatewayConnectionMode",
+ "description": "The connection mode for this connection."
+ },
+ "sharedKey": {
+ "type": "string",
+ "description": "The IPSec shared key."
+ },
+ "connectionStatus": {
+ "readOnly": true,
+ "$ref": "#/definitions/VirtualNetworkGatewayConnectionStatus",
+ "description": "Virtual Network Gateway connection status."
+ },
+ "tunnelConnectionStatus": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/TunnelConnectionHealth"
+ },
+ "description": "Collection of all tunnels' connection health status."
+ },
+ "egressBytesTransferred": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int64",
+ "description": "The egress bytes transferred in this connection."
+ },
+ "ingressBytesTransferred": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int64",
+ "description": "The ingress bytes transferred in this connection."
+ },
+ "peer": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "The reference to peerings resource."
+ },
+ "enableBgp": {
+ "type": "boolean",
+ "description": "EnableBgp flag."
+ },
+ "usePolicyBasedTrafficSelectors": {
+ "type": "boolean",
+ "description": "Enable policy-based traffic selectors."
+ },
+ "ipsecPolicies": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/IpsecPolicy"
+ },
+ "description": "The IPSec Policies to be considered by this connection."
+ },
+ "trafficSelectorPolicies": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/TrafficSelectorPolicy"
+ },
+ "description": "The Traffic Selector Policies to be considered by this connection."
+ },
+ "resourceGuid": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource GUID property of the virtual network gateway connection resource."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the virtual network gateway connection resource."
+ },
+ "expressRouteGatewayBypass": {
+ "type": "boolean",
+ "description": "Bypass ExpressRoute Gateway for data forwarding."
+ }
+ },
+ "required": [
+ "virtualNetworkGateway1",
+ "connectionType"
+ ],
+ "description": "VirtualNetworkGatewayConnection properties."
+ },
+ "VirtualNetworkGatewayConnectionListEntity": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/VirtualNetworkGatewayConnectionListEntityPropertiesFormat",
+ "description": "Properties of the virtual network gateway connection."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "required": [
+ "properties"
+ ],
+ "description": "A common class for general resource information."
+ },
+ "VirtualNetworkGatewayListConnectionsResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualNetworkGatewayConnectionListEntity"
+ },
+ "description": "A list of VirtualNetworkGatewayConnection resources that exists in a resource group."
+ },
+ "nextLink": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for the VirtualNetworkGatewayListConnections API service call."
+ },
+ "VpnDeviceScriptParameters": {
+ "properties": {
+ "vendor": {
+ "type": "string",
+ "description": "The vendor for the vpn device."
+ },
+ "deviceFamily": {
+ "type": "string",
+ "description": "The device family for the vpn device."
+ },
+ "firmwareVersion": {
+ "type": "string",
+ "description": "The firmware version for the vpn device."
+ }
+ },
+ "description": "Vpn device configuration script generation parameters."
+ },
+ "DhGroup": {
+ "type": "string",
+ "description": "The DH Groups used in IKE Phase 1 for initial SA.",
+ "enum": [
+ "None",
+ "DHGroup1",
+ "DHGroup2",
+ "DHGroup14",
+ "DHGroup2048",
+ "ECP256",
+ "ECP384",
+ "DHGroup24"
+ ],
+ "x-ms-enum": {
+ "name": "DhGroup",
+ "modelAsString": true
+ }
+ },
+ "IkeEncryption": {
+ "type": "string",
+ "description": "The IKE encryption algorithm (IKE phase 2).",
+ "enum": [
+ "DES",
+ "DES3",
+ "AES128",
+ "AES192",
+ "AES256",
+ "GCMAES256",
+ "GCMAES128"
+ ],
+ "x-ms-enum": {
+ "name": "IkeEncryption",
+ "modelAsString": true
+ }
+ },
+ "IkeIntegrity": {
+ "type": "string",
+ "description": "The IKE integrity algorithm (IKE phase 2).",
+ "enum": [
+ "MD5",
+ "SHA1",
+ "SHA256",
+ "SHA384",
+ "GCMAES256",
+ "GCMAES128"
+ ],
+ "x-ms-enum": {
+ "name": "IkeIntegrity",
+ "modelAsString": true
+ }
+ },
+ "IpsecEncryption": {
+ "type": "string",
+ "description": "The IPSec encryption algorithm (IKE phase 1).",
+ "enum": [
+ "None",
+ "DES",
+ "DES3",
+ "AES128",
+ "AES192",
+ "AES256",
+ "GCMAES128",
+ "GCMAES192",
+ "GCMAES256"
+ ],
+ "x-ms-enum": {
+ "name": "IpsecEncryption",
+ "modelAsString": true
+ }
+ },
+ "IpsecIntegrity": {
+ "type": "string",
+ "description": "The IPSec integrity algorithm (IKE phase 1).",
+ "enum": [
+ "MD5",
+ "SHA1",
+ "SHA256",
+ "GCMAES128",
+ "GCMAES192",
+ "GCMAES256"
+ ],
+ "x-ms-enum": {
+ "name": "IpsecIntegrity",
+ "modelAsString": true
+ }
+ },
+ "PfsGroup": {
+ "type": "string",
+ "description": "The Pfs Groups used in IKE Phase 2 for new child SA.",
+ "enum": [
+ "None",
+ "PFS1",
+ "PFS2",
+ "PFS2048",
+ "ECP256",
+ "ECP384",
+ "PFS24",
+ "PFS14",
+ "PFSMM"
+ ],
+ "x-ms-enum": {
+ "name": "PfsGroup",
+ "modelAsString": true
+ }
+ },
+ "VirtualNetworkGatewayConnectionStatus": {
+ "type": "string",
+ "description": "Virtual Network Gateway connection status.",
+ "enum": [
+ "Unknown",
+ "Connecting",
+ "Connected",
+ "NotConnected"
+ ],
+ "x-ms-enum": {
+ "name": "VirtualNetworkGatewayConnectionStatus",
+ "modelAsString": true
+ }
+ },
+ "VirtualNetworkGatewayConnectionType": {
+ "type": "string",
+ "description": "Gateway connection type.",
+ "enum": [
+ "IPsec",
+ "Vnet2Vnet",
+ "ExpressRoute",
+ "VPNClient"
+ ],
+ "x-ms-enum": {
+ "name": "VirtualNetworkGatewayConnectionType",
+ "modelAsString": true
+ }
+ },
+ "VirtualNetworkGatewayConnectionMode": {
+ "type": "string",
+ "description": "Gateway connection type.",
+ "enum": [
+ "Default",
+ "ResponderOnly",
+ "InitiatorOnly"
+ ],
+ "x-ms-enum": {
+ "name": "VirtualNetworkGatewayConnectionMode",
+ "modelAsString": true
+ }
+ },
+ "VpnClientConnectionHealthDetailListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VpnClientConnectionHealthDetail"
+ },
+ "description": "List of vpn client connection health."
+ }
+ },
+ "description": "List of virtual network gateway vpn client connection health."
+ },
+ "VpnClientConnectionHealthDetail": {
+ "properties": {
+ "vpnConnectionId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The vpn client Id."
+ },
+ "vpnConnectionDuration": {
+ "type": "integer",
+ "format": "int64",
+ "readOnly": true,
+ "description": "The duration time of a connected vpn client."
+ },
+ "vpnConnectionTime": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The start time of a connected vpn client."
+ },
+ "publicIpAddress": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The public Ip of a connected vpn client."
+ },
+ "privateIpAddress": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The assigned private Ip of a connected vpn client."
+ },
+ "vpnUserName": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The user name of a connected vpn client."
+ },
+ "maxBandwidth": {
+ "type": "integer",
+ "format": "int64",
+ "readOnly": true,
+ "description": "The max band width."
+ },
+ "egressPacketsTransferred": {
+ "type": "integer",
+ "format": "int64",
+ "readOnly": true,
+ "description": "The egress packets per second."
+ },
+ "egressBytesTransferred": {
+ "type": "integer",
+ "format": "int64",
+ "readOnly": true,
+ "description": "The egress bytes per second."
+ },
+ "ingressPacketsTransferred": {
+ "type": "integer",
+ "format": "int64",
+ "readOnly": true,
+ "description": "The ingress packets per second."
+ },
+ "ingressBytesTransferred": {
+ "type": "integer",
+ "format": "int64",
+ "readOnly": true,
+ "description": "The ingress bytes per second."
+ },
+ "maxPacketsPerSecond": {
+ "type": "integer",
+ "format": "int64",
+ "readOnly": true,
+ "description": "The max packets transferred per second."
+ }
+ },
+ "description": "VPN client connection health detail."
+ },
+ "VpnPacketCaptureStopParameters": {
+ "properties": {
+ "sasUrl": {
+ "type": "string",
+ "description": "SAS url for packet capture on virtual network gateway."
+ }
+ },
+ "description": "Stop packet capture parameters."
+ },
+ "VpnPacketCaptureStartParameters": {
+ "properties": {
+ "filterData": {
+ "type": "string",
+ "description": "Start Packet capture parameters."
+ }
+ },
+ "description": "Start packet capture parameters on virtual network gateway."
+ },
+ "IPConfigurationBgpPeeringAddress": {
+ "properties": {
+ "ipconfigurationId": {
+ "type": "string",
+ "description": "The ID of IP configuration which belongs to gateway."
+ },
+ "defaultBgpIpAddresses": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The list of default BGP peering addresses which belong to IP configuration."
+ },
+ "customBgpIpAddresses": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The list of custom BGP peering addresses which belong to IP configuration."
+ },
+ "tunnelIpAddresses": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The list of tunnel public IP addresses which belong to IP configuration."
+ }
+ },
+ "description": "Properties of IPConfigurationBgpPeeringAddress."
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/virtualNetworkTap.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/virtualNetworkTap.json
new file mode 100644
index 000000000000..34e406382178
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/virtualNetworkTap.json
@@ -0,0 +1,426 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "NetworkManagementClient",
+ "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
+ "version": "2020-07-01"
+ },
+ "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/virtualNetworkTaps/{tapName}": {
+ "delete": {
+ "tags": [
+ "VirtualNetworkTap"
+ ],
+ "operationId": "VirtualNetworkTaps_Delete",
+ "description": "Deletes the specified virtual network tap.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "tapName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual network tap."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Delete successful."
+ },
+ "202": {
+ "description": "Accepted. Sets 'Deleting' provisioningState until the operation completes. Returns an operation URI that can be queried to find the current state of the operation."
+ },
+ "204": {
+ "description": "Request successful. Resource does not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete Virtual Network Tap resource": {
+ "$ref": "./examples/VirtualNetworkTapDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ },
+ "get": {
+ "tags": [
+ "VirtualNetworkTap"
+ ],
+ "operationId": "VirtualNetworkTaps_Get",
+ "description": "Gets information about the specified virtual network tap.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "tapName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of virtual network tap."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting VirtualNetworkTap resource.",
+ "schema": {
+ "$ref": "#/definitions/VirtualNetworkTap"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Virtual Network Tap": {
+ "$ref": "./examples/VirtualNetworkTapGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "VirtualNetworkTap"
+ ],
+ "operationId": "VirtualNetworkTaps_CreateOrUpdate",
+ "description": "Creates or updates a Virtual Network Tap.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "tapName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual network tap."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/VirtualNetworkTap"
+ },
+ "description": "Parameters supplied to the create or update virtual network tap operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update successful. The operation returns the resulting VirtualNetworkTap resource.",
+ "schema": {
+ "$ref": "#/definitions/VirtualNetworkTap"
+ }
+ },
+ "201": {
+ "description": "Create successful. The operation returns the resulting VirtualNetworkTap resource.",
+ "schema": {
+ "$ref": "#/definitions/VirtualNetworkTap"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create Virtual Network Tap": {
+ "$ref": "./examples/VirtualNetworkTapCreate.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ },
+ "patch": {
+ "tags": [
+ "VirtualNetworkTap"
+ ],
+ "operationId": "VirtualNetworkTaps_UpdateTags",
+ "description": "Updates an VirtualNetworkTap tags.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "tapName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the tap."
+ },
+ {
+ "name": "tapParameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./network.json#/definitions/TagsObject"
+ },
+ "description": "Parameters supplied to update VirtualNetworkTap tags."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update successful. The operation returns the resulting VirtualNetworkTap resource.",
+ "schema": {
+ "$ref": "#/definitions/VirtualNetworkTap"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update virtual network tap tags": {
+ "$ref": "./examples/VirtualNetworkTapUpdateTags.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/virtualNetworkTaps": {
+ "get": {
+ "tags": [
+ "VirtualNetworkTaps"
+ ],
+ "operationId": "VirtualNetworkTaps_ListAll",
+ "description": "Gets all the VirtualNetworkTaps in a subscription.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of Virtual Network Tap resources.",
+ "schema": {
+ "$ref": "#/definitions/VirtualNetworkTapListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List all virtual network taps": {
+ "$ref": "./examples/VirtualNetworkTapListAll.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkTaps": {
+ "get": {
+ "tags": [
+ "VirtualNetworkTaps"
+ ],
+ "operationId": "VirtualNetworkTaps_ListByResourceGroup",
+ "description": "Gets all the VirtualNetworkTaps in a subscription.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of Virtual Network Tap resources.",
+ "schema": {
+ "$ref": "#/definitions/VirtualNetworkTapListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List virtual network taps in resource group": {
+ "$ref": "./examples/VirtualNetworkTapList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "VirtualNetworkTap": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/VirtualNetworkTapPropertiesFormat",
+ "description": "Virtual Network Tap Properties."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "description": "Virtual Network Tap resource."
+ },
+ "VirtualNetworkTapPropertiesFormat": {
+ "description": "Virtual Network Tap properties.",
+ "properties": {
+ "networkInterfaceTapConfigurations": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "./networkInterface.json#/definitions/NetworkInterfaceTapConfiguration",
+ "description": "The reference to the Network Interface."
+ },
+ "description": "Specifies the list of resource IDs for the network interface IP configuration that needs to be tapped."
+ },
+ "resourceGuid": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The resource GUID property of the virtual network tap resource."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the virtual network tap resource."
+ },
+ "destinationNetworkInterfaceIPConfiguration": {
+ "$ref": "./networkInterface.json#/definitions/NetworkInterfaceIPConfiguration",
+ "description": "The reference to the private IP Address of the collector nic that will receive the tap."
+ },
+ "destinationLoadBalancerFrontEndIPConfiguration": {
+ "$ref": "./loadBalancer.json#/definitions/FrontendIPConfiguration",
+ "description": "The reference to the private IP address on the internal Load Balancer that will receive the tap."
+ },
+ "destinationPort": {
+ "type": "integer",
+ "description": "The VXLAN destination port that will receive the tapped traffic."
+ }
+ }
+ },
+ "VirtualNetworkTapListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualNetworkTap"
+ },
+ "description": "A list of VirtualNetworkTaps in a resource group."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for ListVirtualNetworkTap API service call."
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/virtualRouter.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/virtualRouter.json
new file mode 100644
index 000000000000..d965d8400116
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/virtualRouter.json
@@ -0,0 +1,698 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "NetworkManagementClient",
+ "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
+ "version": "2020-07-01"
+ },
+ "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/virtualRouters/{virtualRouterName}": {
+ "delete": {
+ "tags": [
+ "VirtualRouters"
+ ],
+ "operationId": "VirtualRouters_Delete",
+ "description": "Deletes the specified Virtual Router.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualRouterName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Virtual Router."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "204": {
+ "description": "Request successful. Resource with the specified name does not exist."
+ },
+ "200": {
+ "description": "Delete successful."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete VirtualRouter": {
+ "$ref": "./examples/VirtualRouterDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ },
+ "get": {
+ "tags": [
+ "VirtualRouters"
+ ],
+ "operationId": "VirtualRouters_Get",
+ "description": "Gets the specified Virtual Router.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualRouterName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Virtual Router."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Expands referenced resources."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a Virtual Router resource.",
+ "schema": {
+ "$ref": "#/definitions/VirtualRouter"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get VirtualRouter": {
+ "$ref": "./examples/VirtualRouterGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "VirtualRouters"
+ ],
+ "operationId": "VirtualRouters_CreateOrUpdate",
+ "description": "Creates or updates the specified Virtual Router.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualRouterName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Virtual Router."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/VirtualRouter"
+ },
+ "description": "Parameters supplied to the create or update Virtual Router."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Request received successfully. The operation returns the resulting Virtual Router resource.",
+ "schema": {
+ "$ref": "#/definitions/VirtualRouter"
+ }
+ },
+ "200": {
+ "description": "Request successful. The operation returns the resulting Virtual Router resource.",
+ "schema": {
+ "$ref": "#/definitions/VirtualRouter"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create VirtualRouter": {
+ "$ref": "./examples/VirtualRouterPut.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualRouters": {
+ "get": {
+ "tags": [
+ "VirtualRouters"
+ ],
+ "operationId": "VirtualRouters_ListByResourceGroup",
+ "description": "Lists all Virtual Routers in a resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The operation returns a list of Virtual Router resources.",
+ "schema": {
+ "$ref": "#/definitions/VirtualRouterListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List all Virtual Router for a given resource group": {
+ "$ref": "./examples/VirtualRouterListByResourceGroup.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/virtualRouters": {
+ "get": {
+ "tags": [
+ "VirtualRouters"
+ ],
+ "operationId": "VirtualRouters_List",
+ "description": "Gets all the Virtual Routers in a subscription.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The operation returns a list of Virtual Router resources.",
+ "schema": {
+ "$ref": "#/definitions/VirtualRouterListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List all Virtual Routers for a given subscription": {
+ "$ref": "./examples/VirtualRouterListBySubscription.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualRouters/{virtualRouterName}/peerings/{peeringName}": {
+ "delete": {
+ "tags": [
+ "VirtualRouterPeerings"
+ ],
+ "operationId": "VirtualRouterPeerings_Delete",
+ "description": "Deletes the specified peering from a Virtual Router.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualRouterName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Virtual Router."
+ },
+ {
+ "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": {
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "204": {
+ "description": "Request successful. Resource with the specified name does not exist."
+ },
+ "200": {
+ "description": "Delete successful."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete VirtualRouterPeering": {
+ "$ref": "./examples/VirtualRouterPeeringDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ },
+ "get": {
+ "tags": [
+ "VirtualRouterPeerings"
+ ],
+ "operationId": "VirtualRouterPeerings_Get",
+ "description": "Gets the specified Virtual Router Peering.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualRouterName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Virtual Router."
+ },
+ {
+ "name": "peeringName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Virtual Router Peering."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a Virtual Router Peering resource.",
+ "schema": {
+ "$ref": "#/definitions/VirtualRouterPeering"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Virtual Router Peering": {
+ "$ref": "./examples/VirtualRouterPeeringGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "VirtualRouterPeerings"
+ ],
+ "operationId": "VirtualRouterPeerings_CreateOrUpdate",
+ "description": "Creates or updates the specified Virtual Router Peering.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualRouterName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Virtual Router."
+ },
+ {
+ "name": "peeringName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Virtual Router Peering."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/VirtualRouterPeering"
+ },
+ "description": "Parameters supplied to the create or update Virtual Router Peering operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Request received successfully. The operation returns the resulting Virtual Router Peering resource.",
+ "schema": {
+ "$ref": "#/definitions/VirtualRouterPeering"
+ }
+ },
+ "200": {
+ "description": "Request successful. The operation returns the resulting Virtual Router Peering resource.",
+ "schema": {
+ "$ref": "#/definitions/VirtualRouterPeering"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create Virtual Router Peering": {
+ "$ref": "./examples/VirtualRouterPeeringPut.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualRouters/{virtualRouterName}/peerings": {
+ "get": {
+ "tags": [
+ "VirtualRouterPeerings"
+ ],
+ "operationId": "VirtualRouterPeerings_List",
+ "description": "Lists all Virtual Router Peerings in a Virtual Router resource.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualRouterName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Virtual Router."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The operation returns a list of Virtual Router Peering resources.",
+ "schema": {
+ "$ref": "#/definitions/VirtualRouterPeeringListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List all Virtual Router Peerings for a given Virtual Router": {
+ "$ref": "./examples/VirtualRouterPeeringList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "VirtualRouter": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/VirtualRouterPropertiesFormat",
+ "description": "Properties of the Virtual Router."
+ },
+ "etag": {
+ "type": "string",
+ "readOnly": true,
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "description": "VirtualRouter Resource."
+ },
+ "VirtualRouterPropertiesFormat": {
+ "properties": {
+ "virtualRouterAsn": {
+ "type": "integer",
+ "readOnly": false,
+ "format": "int64",
+ "minimum": 0,
+ "maximum": 4294967295,
+ "description": "VirtualRouter ASN."
+ },
+ "virtualRouterIps": {
+ "type": "array",
+ "readOnly": false,
+ "description": "VirtualRouter IPs.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "hostedSubnet": {
+ "readOnly": false,
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "The Subnet on which VirtualRouter is hosted."
+ },
+ "hostedGateway": {
+ "readOnly": false,
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "The Gateway on which VirtualRouter is hosted."
+ },
+ "peerings": {
+ "type": "array",
+ "readOnly": true,
+ "description": "List of references to VirtualRouterPeerings.",
+ "items": {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ },
+ "provisioningState": {
+ "description": "The provisioning state of the resource.",
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState"
+ }
+ },
+ "description": "Virtual Router definition."
+ },
+ "VirtualRouterPeering": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/VirtualRouterPeeringProperties",
+ "description": "The properties of the Virtual Router Peering."
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the virtual router peering that is unique within a virtual router."
+ },
+ "etag": {
+ "type": "string",
+ "readOnly": true,
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Peering type."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "Virtual Router Peering resource."
+ },
+ "VirtualRouterPeeringProperties": {
+ "properties": {
+ "peerAsn": {
+ "type": "integer",
+ "readOnly": false,
+ "format": "int64",
+ "minimum": 0,
+ "maximum": 4294967295,
+ "description": "Peer ASN."
+ },
+ "peerIp": {
+ "type": "string",
+ "readOnly": false,
+ "description": "Peer IP."
+ },
+ "provisioningState": {
+ "description": "The provisioning state of the resource.",
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState"
+ }
+ },
+ "description": "Properties of the rule group."
+ },
+ "VirtualRouterListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualRouter"
+ },
+ "description": "List of Virtual Routers."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of results."
+ }
+ },
+ "description": "Response for ListVirtualRouters API service call."
+ },
+ "VirtualRouterPeeringListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualRouterPeering"
+ },
+ "description": "List of VirtualRouterPeerings in a VirtualRouter."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of results."
+ }
+ },
+ "description": "Response for ListVirtualRouterPeerings API service call."
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/virtualWan.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/virtualWan.json
new file mode 100644
index 000000000000..051eb81cb18a
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/virtualWan.json
@@ -0,0 +1,7298 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "VirtualWANAsAServiceManagementClient",
+ "description": "REST API for Azure VirtualWAN As a Service.",
+ "version": "2020-07-01"
+ },
+ "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/virtualWans/{VirtualWANName}": {
+ "get": {
+ "operationId": "VirtualWans_Get",
+ "x-ms-examples": {
+ "VirtualWANGet": {
+ "$ref": "./examples/VirtualWANGet.json"
+ }
+ },
+ "description": "Retrieves the details of a VirtualWAN.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VirtualWan."
+ },
+ {
+ "name": "VirtualWANName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VirtualWAN being retrieved."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of the VirtualWAN retrieved.",
+ "schema": {
+ "$ref": "#/definitions/VirtualWAN"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "put": {
+ "operationId": "VirtualWans_CreateOrUpdate",
+ "x-ms-examples": {
+ "VirtualWANCreate": {
+ "$ref": "./examples/VirtualWANPut.json"
+ }
+ },
+ "description": "Creates a VirtualWAN resource if it doesn't exist else updates the existing VirtualWAN.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VirtualWan."
+ },
+ {
+ "name": "VirtualWANName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VirtualWAN being created or updated."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "WANParameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/VirtualWAN"
+ },
+ "description": "Parameters supplied to create or update VirtualWAN."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of the VirtualWAN created or updated.",
+ "schema": {
+ "$ref": "#/definitions/VirtualWAN"
+ }
+ },
+ "201": {
+ "description": "Create successful. The operation returns the resulting VirtualWAN resource.",
+ "schema": {
+ "$ref": "#/definitions/VirtualWAN"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ },
+ "patch": {
+ "tags": [
+ "VirtualWANs"
+ ],
+ "operationId": "VirtualWans_UpdateTags",
+ "x-ms-examples": {
+ "VirtualWANUpdate": {
+ "$ref": "./examples/VirtualWANUpdateTags.json"
+ }
+ },
+ "description": "Updates a VirtualWAN tags.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VirtualWan."
+ },
+ {
+ "name": "VirtualWANName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VirtualWAN being updated."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "WANParameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./network.json#/definitions/TagsObject"
+ },
+ "description": "Parameters supplied to Update VirtualWAN tags."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of the VirtualWAN updated.",
+ "schema": {
+ "$ref": "#/definitions/VirtualWAN"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "operationId": "VirtualWans_Delete",
+ "x-ms-examples": {
+ "VirtualWANDelete": {
+ "$ref": "./examples/VirtualWANDelete.json"
+ }
+ },
+ "description": "Deletes a VirtualWAN.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VirtualWan."
+ },
+ {
+ "name": "VirtualWANName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VirtualWAN being deleted."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. VirtualWAN deleted."
+ },
+ "202": {
+ "description": "Request received successfully. VirtualWAN deletion is in progress; follow the Location header to poll for final outcome."
+ },
+ "204": {
+ "description": "No VirtualWANs exist by the name provided."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualWans": {
+ "get": {
+ "operationId": "VirtualWans_ListByResourceGroup",
+ "x-ms-examples": {
+ "VirtualWANListByResourceGroup": {
+ "$ref": "./examples/VirtualWANListByResourceGroup.json"
+ }
+ },
+ "description": "Lists all the VirtualWANs in a resource group.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VirtualWan."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of all the VirtualWANs in the resource group.",
+ "schema": {
+ "$ref": "#/definitions/ListVirtualWANsResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/virtualWans": {
+ "get": {
+ "operationId": "VirtualWans_List",
+ "x-ms-examples": {
+ "VirtualWANList": {
+ "$ref": "./examples/VirtualWANList.json"
+ }
+ },
+ "description": "Lists all the VirtualWANs in a subscription.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of all the VirtualWANs in the subscription.",
+ "schema": {
+ "$ref": "#/definitions/ListVirtualWANsResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/vpnSites/{vpnSiteName}": {
+ "get": {
+ "operationId": "VpnSites_Get",
+ "x-ms-examples": {
+ "VpnSiteGet": {
+ "$ref": "./examples/VpnSiteGet.json"
+ }
+ },
+ "description": "Retrieves the details of a VPN site.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VpnSite."
+ },
+ {
+ "name": "vpnSiteName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VpnSite being retrieved."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of the VpnSite retrieved.",
+ "schema": {
+ "$ref": "#/definitions/VpnSite"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "put": {
+ "operationId": "VpnSites_CreateOrUpdate",
+ "x-ms-examples": {
+ "VpnSiteCreate": {
+ "$ref": "./examples/VpnSitePut.json"
+ }
+ },
+ "description": "Creates a VpnSite resource if it doesn't exist else updates the existing VpnSite.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VpnSite."
+ },
+ {
+ "name": "vpnSiteName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VpnSite being created or updated."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "VpnSiteParameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/VpnSite"
+ },
+ "description": "Parameters supplied to create or update VpnSite."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of the VpnSite created or updated.",
+ "schema": {
+ "$ref": "#/definitions/VpnSite"
+ }
+ },
+ "201": {
+ "description": "Request received successfully. Returns the details of the VpnSite created or updated.",
+ "schema": {
+ "$ref": "#/definitions/VpnSite"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ },
+ "patch": {
+ "tags": [
+ "VpnSites"
+ ],
+ "operationId": "VpnSites_UpdateTags",
+ "x-ms-examples": {
+ "VpnSiteUpdate": {
+ "$ref": "./examples/VpnSiteUpdateTags.json"
+ }
+ },
+ "description": "Updates VpnSite tags.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VpnSite."
+ },
+ {
+ "name": "vpnSiteName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VpnSite being updated."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "VpnSiteParameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./network.json#/definitions/TagsObject"
+ },
+ "description": "Parameters supplied to update VpnSite tags."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of the VpnSite updated.",
+ "schema": {
+ "$ref": "#/definitions/VpnSite"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "operationId": "VpnSites_Delete",
+ "x-ms-examples": {
+ "VpnSiteDelete": {
+ "$ref": "./examples/VpnSiteDelete.json"
+ }
+ },
+ "description": "Deletes a VpnSite.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VpnSite."
+ },
+ {
+ "name": "vpnSiteName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VpnSite being deleted."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. VpnSite deleted."
+ },
+ "202": {
+ "description": "Request received successfully. VpnSite deletion is in progress."
+ },
+ "204": {
+ "description": "No VpnSites exist by the name provided."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/vpnSites": {
+ "get": {
+ "operationId": "VpnSites_ListByResourceGroup",
+ "x-ms-examples": {
+ "VpnSiteListByResourceGroup": {
+ "$ref": "./examples/VpnSiteListByResourceGroup.json"
+ }
+ },
+ "description": "Lists all the vpnSites in a resource group.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VpnSite."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of all the vpnSites in the resource group.",
+ "schema": {
+ "$ref": "#/definitions/ListVpnSitesResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/vpnSites/{vpnSiteName}/vpnSiteLinks/{vpnSiteLinkName}": {
+ "get": {
+ "operationId": "VpnSiteLinks_Get",
+ "x-ms-examples": {
+ "VpnSiteGet": {
+ "$ref": "./examples/VpnSiteLinkGet.json"
+ }
+ },
+ "description": "Retrieves the details of a VPN site link.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VpnSite."
+ },
+ {
+ "name": "vpnSiteName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VpnSite."
+ },
+ {
+ "name": "vpnSiteLinkName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VpnSiteLink being retrieved."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of the VpnSiteLink retrieved.",
+ "schema": {
+ "$ref": "#/definitions/VpnSiteLink"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/vpnSites/{vpnSiteName}/vpnSiteLinks": {
+ "get": {
+ "operationId": "VpnSiteLinks_ListByVpnSite",
+ "x-ms-examples": {
+ "VpnSiteLinkListByVpnSite": {
+ "$ref": "./examples/VpnSiteLinkListByVpnSite.json"
+ }
+ },
+ "description": "Lists all the vpnSiteLinks in a resource group for a vpn site.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VpnSite."
+ },
+ {
+ "name": "vpnSiteName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VpnSite."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of all the vpnSites in the resource group.",
+ "schema": {
+ "$ref": "#/definitions/ListVpnSiteLinksResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/vpnSites": {
+ "get": {
+ "operationId": "VpnSites_List",
+ "x-ms-examples": {
+ "VpnSiteList": {
+ "$ref": "./examples/VpnSiteList.json"
+ }
+ },
+ "description": "Lists all the VpnSites in a subscription.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of all the VpnSites in the subscription.",
+ "schema": {
+ "$ref": "#/definitions/ListVpnSitesResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualWans/{virtualWANName}/vpnConfiguration": {
+ "post": {
+ "operationId": "VpnSitesConfiguration_Download",
+ "x-ms-examples": {
+ "VpnSitesConfigurationDownload": {
+ "$ref": "./examples/VpnSitesConfigurationDownload.json"
+ }
+ },
+ "description": "Gives the sas-url to download the configurations for vpn-sites in a resource group.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name."
+ },
+ {
+ "name": "virtualWANName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VirtualWAN for which configuration of all vpn-sites is needed."
+ },
+ {
+ "name": "request",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/GetVpnSitesConfigurationRequest"
+ },
+ "description": "Parameters supplied to download vpn-sites configuration."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Follow the location header for sas-url to output blob."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously. Follow the location header for sas-url to output blob."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualWans/{virtualWANName}/supportedSecurityProviders": {
+ "get": {
+ "operationId": "SupportedSecurityProviders",
+ "x-ms-examples": {
+ "supportedSecurityProviders": {
+ "$ref": "./examples/VirtualWanSupportedSecurityProviders.json"
+ }
+ },
+ "description": "Gives the supported security providers for the virtual wan.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name."
+ },
+ {
+ "name": "virtualWANName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VirtualWAN for which supported security providers are needed."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the object containing supported security providers.",
+ "schema": {
+ "$ref": "#/definitions/VirtualWanSecurityProviders"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/vpnServerConfigurations/{vpnServerConfigurationName}": {
+ "get": {
+ "operationId": "VpnServerConfigurations_Get",
+ "x-ms-examples": {
+ "VpnServerConfigurationGet": {
+ "$ref": "./examples/VpnServerConfigurationGet.json"
+ }
+ },
+ "description": "Retrieves the details of a VpnServerConfiguration.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VpnServerConfiguration."
+ },
+ {
+ "name": "vpnServerConfigurationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VpnServerConfiguration being retrieved."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of the VpnServerConfiguration retrieved.",
+ "schema": {
+ "$ref": "#/definitions/VpnServerConfiguration"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "put": {
+ "operationId": "VpnServerConfigurations_CreateOrUpdate",
+ "x-ms-examples": {
+ "VpnServerConfigurationCreate": {
+ "$ref": "./examples/VpnServerConfigurationPut.json"
+ }
+ },
+ "description": "Creates a VpnServerConfiguration resource if it doesn't exist else updates the existing VpnServerConfiguration.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VpnServerConfiguration."
+ },
+ {
+ "name": "vpnServerConfigurationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VpnServerConfiguration being created or updated."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "VpnServerConfigurationParameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/VpnServerConfiguration"
+ },
+ "description": "Parameters supplied to create or update VpnServerConfiguration."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of the VpnServerConfiguration created or updated.",
+ "schema": {
+ "$ref": "#/definitions/VpnServerConfiguration"
+ }
+ },
+ "201": {
+ "description": "Request received successfully. Returns the details of the VpnServerConfiguration created or updated.",
+ "schema": {
+ "$ref": "#/definitions/VpnServerConfiguration"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ },
+ "patch": {
+ "tags": [
+ "VpnServerConfigurations"
+ ],
+ "operationId": "VpnServerConfigurations_UpdateTags",
+ "x-ms-examples": {
+ "VpnServerConfigurationUpdate": {
+ "$ref": "./examples/VpnServerConfigurationUpdateTags.json"
+ }
+ },
+ "description": "Updates VpnServerConfiguration tags.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VpnServerConfiguration."
+ },
+ {
+ "name": "vpnServerConfigurationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VpnServerConfiguration being updated."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "VpnServerConfigurationParameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./network.json#/definitions/TagsObject"
+ },
+ "description": "Parameters supplied to update VpnServerConfiguration tags."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of the VpnServerConfiguration updated.",
+ "schema": {
+ "$ref": "#/definitions/VpnServerConfiguration"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "operationId": "VpnServerConfigurations_Delete",
+ "x-ms-examples": {
+ "VpnServerConfigurationDelete": {
+ "$ref": "./examples/VpnServerConfigurationDelete.json"
+ }
+ },
+ "description": "Deletes a VpnServerConfiguration.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VpnServerConfiguration."
+ },
+ {
+ "name": "vpnServerConfigurationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VpnServerConfiguration being deleted."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. VpnServerConfiguration deleted."
+ },
+ "202": {
+ "description": "Request received successfully. VpnServerConfiguration deletion is in progress."
+ },
+ "204": {
+ "description": "No VpnServerConfigurations exist by the name provided."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/vpnServerConfigurations": {
+ "get": {
+ "operationId": "VpnServerConfigurations_ListByResourceGroup",
+ "x-ms-examples": {
+ "VpnServerConfigurationListByResourceGroup": {
+ "$ref": "./examples/VpnServerConfigurationListByResourceGroup.json"
+ }
+ },
+ "description": "Lists all the vpnServerConfigurations in a resource group.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VpnServerConfiguration."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of all the vpnServerConfigurations in the resource group.",
+ "schema": {
+ "$ref": "#/definitions/ListVpnServerConfigurationsResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/vpnServerConfigurations": {
+ "get": {
+ "operationId": "VpnServerConfigurations_List",
+ "x-ms-examples": {
+ "VpnServerConfigurationList": {
+ "$ref": "./examples/VpnServerConfigurationList.json"
+ }
+ },
+ "description": "Lists all the VpnServerConfigurations in a subscription.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of all the VpnServerConfigurations in the subscription.",
+ "schema": {
+ "$ref": "#/definitions/ListVpnServerConfigurationsResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualHubs/{virtualHubName}": {
+ "get": {
+ "operationId": "VirtualHubs_Get",
+ "x-ms-examples": {
+ "VirtualHubGet": {
+ "$ref": "./examples/VirtualHubGet.json"
+ }
+ },
+ "description": "Retrieves the details of a VirtualHub.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VirtualHub."
+ },
+ {
+ "name": "virtualHubName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VirtualHub."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of the VirtualHub retrieved.",
+ "schema": {
+ "$ref": "#/definitions/VirtualHub"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "put": {
+ "operationId": "VirtualHubs_CreateOrUpdate",
+ "x-ms-examples": {
+ "VirtualHubPut": {
+ "$ref": "./examples/VirtualHubPut.json"
+ }
+ },
+ "description": "Creates a VirtualHub resource if it doesn't exist else updates the existing VirtualHub.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VirtualHub."
+ },
+ {
+ "name": "virtualHubName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VirtualHub."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "virtualHubParameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/VirtualHub"
+ },
+ "description": "Parameters supplied to create or update VirtualHub."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of the VirtualHub created or updated.",
+ "schema": {
+ "$ref": "#/definitions/VirtualHub"
+ }
+ },
+ "201": {
+ "description": "Request received successfully. Returns the details of the VirtualHub created or updated.",
+ "schema": {
+ "$ref": "#/definitions/VirtualHub"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ },
+ "patch": {
+ "tags": [
+ "VirtualWANs"
+ ],
+ "operationId": "VirtualHubs_UpdateTags",
+ "x-ms-examples": {
+ "VirtualHubUpdate": {
+ "$ref": "./examples/VirtualHubUpdateTags.json"
+ }
+ },
+ "description": "Updates VirtualHub tags.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VirtualHub."
+ },
+ {
+ "name": "virtualHubName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VirtualHub."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "virtualHubParameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./network.json#/definitions/TagsObject"
+ },
+ "description": "Parameters supplied to update VirtualHub tags."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of the VirtualHub updated.",
+ "schema": {
+ "$ref": "#/definitions/VirtualHub"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "operationId": "VirtualHubs_Delete",
+ "x-ms-examples": {
+ "VirtualHubDelete": {
+ "$ref": "./examples/VirtualHubDelete.json"
+ }
+ },
+ "description": "Deletes a VirtualHub.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VirtualHub."
+ },
+ {
+ "name": "virtualHubName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VirtualHub."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. VirtualHub deleted."
+ },
+ "202": {
+ "description": "Request received successfully. VirtualHub deletion is in progress; follow the Location header to poll for final outcome."
+ },
+ "204": {
+ "description": "No VirtualHubs exist by the name provided."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualHubs": {
+ "get": {
+ "operationId": "VirtualHubs_ListByResourceGroup",
+ "x-ms-examples": {
+ "VirtualHubListByResourceGroup": {
+ "$ref": "./examples/VirtualHubListByResourceGroup.json"
+ }
+ },
+ "description": "Lists all the VirtualHubs in a resource group.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VirtualHub."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of all the VirtualHubs in the resource group.",
+ "schema": {
+ "$ref": "#/definitions/ListVirtualHubsResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/virtualHubs": {
+ "get": {
+ "operationId": "VirtualHubs_List",
+ "x-ms-examples": {
+ "VirtualHubList": {
+ "$ref": "./examples/VirtualHubList.json"
+ }
+ },
+ "description": "Lists all the VirtualHubs in a subscription.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of all the VirtualHubs in the subscription.",
+ "schema": {
+ "$ref": "#/definitions/ListVirtualHubsResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualHubs/{virtualHubName}/hubVirtualNetworkConnections/{connectionName}": {
+ "put": {
+ "operationId": "HubVirtualNetworkConnections_CreateOrUpdate",
+ "x-ms-examples": {
+ "HubVirtualNetworkConnectionPut": {
+ "$ref": "./examples/HubVirtualNetworkConnectionPut.json"
+ }
+ },
+ "description": "Creates a hub virtual network connection if it doesn't exist else updates the existing one.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the HubVirtualNetworkConnection."
+ },
+ {
+ "name": "virtualHubName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VirtualHub."
+ },
+ {
+ "name": "connectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the HubVirtualNetworkConnection."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "hubVirtualNetworkConnectionParameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/HubVirtualNetworkConnection"
+ },
+ "description": "Parameters supplied to create or update a hub virtual network connection."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of the hub virtual network connection created or updated.",
+ "schema": {
+ "$ref": "#/definitions/HubVirtualNetworkConnection"
+ }
+ },
+ "201": {
+ "description": "Request successful. Returns the details of the hub virtual network connection retrieved.",
+ "schema": {
+ "$ref": "#/definitions/HubVirtualNetworkConnection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ },
+ "delete": {
+ "operationId": "HubVirtualNetworkConnections_Delete",
+ "x-ms-examples": {
+ "HubVirtualNetworkConnectionDelete": {
+ "$ref": "./examples/HubVirtualNetworkConnectionDelete.json"
+ }
+ },
+ "description": "Deletes a HubVirtualNetworkConnection.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VirtualHub."
+ },
+ {
+ "name": "virtualHubName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VirtualHub."
+ },
+ {
+ "name": "connectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the HubVirtualNetworkConnection."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. HubVirtualNetworkConnection deleted."
+ },
+ "202": {
+ "description": "Request received successfully. HubVirtualNetworkConnection deletion is in progress; follow the Location header to poll for final outcome."
+ },
+ "204": {
+ "description": "No HubVirtualNetworkConnection exist by the name provided."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ },
+ "get": {
+ "operationId": "HubVirtualNetworkConnections_Get",
+ "x-ms-examples": {
+ "HubVirtualNetworkConnectionGet": {
+ "$ref": "./examples/HubVirtualNetworkConnectionGet.json"
+ }
+ },
+ "description": "Retrieves the details of a HubVirtualNetworkConnection.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VirtualHub."
+ },
+ {
+ "name": "virtualHubName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VirtualHub."
+ },
+ {
+ "name": "connectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the vpn connection."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of the HubVirtualNetworkConnection retrieved.",
+ "schema": {
+ "$ref": "#/definitions/HubVirtualNetworkConnection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualHubs/{virtualHubName}/hubVirtualNetworkConnections": {
+ "get": {
+ "operationId": "HubVirtualNetworkConnections_List",
+ "x-ms-examples": {
+ "HubVirtualNetworkConnectionList": {
+ "$ref": "./examples/HubVirtualNetworkConnectionList.json"
+ }
+ },
+ "description": "Retrieves the details of all HubVirtualNetworkConnections.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VirtualHub."
+ },
+ {
+ "name": "virtualHubName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VirtualHub."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of all the HubVirtualNetworkConnections for the VirtualHub.",
+ "schema": {
+ "$ref": "#/definitions/ListHubVirtualNetworkConnectionsResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/vpnGateways/{gatewayName}": {
+ "get": {
+ "operationId": "VpnGateways_Get",
+ "x-ms-examples": {
+ "VpnGatewayGet": {
+ "$ref": "./examples/VpnGatewayGet.json"
+ }
+ },
+ "description": "Retrieves the details of a virtual wan vpn gateway.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VpnGateway."
+ },
+ {
+ "name": "gatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the gateway."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of the virtual wan vpn gateway retrieved.",
+ "schema": {
+ "$ref": "#/definitions/VpnGateway"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "put": {
+ "operationId": "VpnGateways_CreateOrUpdate",
+ "x-ms-examples": {
+ "VpnGatewayPut": {
+ "$ref": "./examples/VpnGatewayPut.json"
+ }
+ },
+ "description": "Creates a virtual wan vpn gateway if it doesn't exist else updates the existing gateway.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VpnGateway."
+ },
+ {
+ "name": "gatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the gateway."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "vpnGatewayParameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/VpnGateway"
+ },
+ "description": "Parameters supplied to create or Update a virtual wan vpn gateway."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of the virtual wan vpn Gateway created or updated.",
+ "schema": {
+ "$ref": "#/definitions/VpnGateway"
+ }
+ },
+ "201": {
+ "description": "Request successful. Returns the details of the virtual wan vpn gateway retrieved.",
+ "schema": {
+ "$ref": "#/definitions/VpnGateway"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ },
+ "patch": {
+ "tags": [
+ "VpnGateways"
+ ],
+ "operationId": "VpnGateways_UpdateTags",
+ "x-ms-examples": {
+ "VpnGatewayUpdate": {
+ "$ref": "./examples/VpnGatewayUpdateTags.json"
+ }
+ },
+ "description": "Updates virtual wan vpn gateway tags.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VpnGateway."
+ },
+ {
+ "name": "gatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the gateway."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "vpnGatewayParameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./network.json#/definitions/TagsObject"
+ },
+ "description": "Parameters supplied to update a virtual wan vpn gateway tags."
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "200": {
+ "description": "Request successful. Returns the details of the updated gateway.",
+ "schema": {
+ "$ref": "#/definitions/VpnGateway"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ },
+ "delete": {
+ "operationId": "VpnGateways_Delete",
+ "x-ms-examples": {
+ "VpnGatewayDelete": {
+ "$ref": "./examples/VpnGatewayDelete.json"
+ }
+ },
+ "description": "Deletes a virtual wan vpn gateway.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VpnGateway."
+ },
+ {
+ "name": "gatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the gateway."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Vpn Gateway deleted."
+ },
+ "202": {
+ "description": "Request received successfully. Vpn Gateway deletion is in progress; follow the Location header to poll for final outcome."
+ },
+ "204": {
+ "description": "No vpn gateways exist by the name provided."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/vpnGateways/{gatewayName}/reset": {
+ "post": {
+ "tags": [
+ "VpnGateways"
+ ],
+ "operationId": "VpnGateways_Reset",
+ "description": "Resets the primary of the vpn gateway in the specified resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VpnGateway."
+ },
+ {
+ "name": "gatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the gateway."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation reset the primary of the VpnGateway.",
+ "schema": {
+ "$ref": "#/definitions/VpnGateway"
+ }
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ResetVpnGateway": {
+ "$ref": "./examples/VpnGatewayReset.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/vpnGateways/{gatewayName}/startpacketcapture": {
+ "post": {
+ "tags": [
+ "VpnGateways"
+ ],
+ "operationId": "VpnGateways_StartPacketCapture",
+ "description": "Starts packet capture on vpn gateway in the specified resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VpnGateway."
+ },
+ {
+ "name": "gatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the gateway."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/VpnGatewayPacketCaptureStartParameters"
+ },
+ "description": "Vpn gateway packet capture parameters supplied to start packet capture on vpn gateway."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation packet capture started on vpn gateway.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Start packet capture on vpn gateway without filter": {
+ "$ref": "./examples/VpnGatewayStartPacketCapture.json"
+ },
+ "Start packet capture on vpn gateway with filter": {
+ "$ref": "./examples/VpnGatewayStartPacketCaptureFilterData.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/vpnGateways/{gatewayName}/stoppacketcapture": {
+ "post": {
+ "tags": [
+ "VpnGateways"
+ ],
+ "operationId": "VpnGateways_StopPacketCapture",
+ "description": "Stops packet capture on vpn gateway in the specified resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VpnGateway."
+ },
+ {
+ "name": "gatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the gateway."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/VpnGatewayPacketCaptureStopParameters"
+ },
+ "description": "Vpn gateway packet capture parameters supplied to stop packet capture on vpn gateway."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation packet capture stopped on vpn gateway.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Stop packet capture on vpn gateway": {
+ "$ref": "./examples/VpnGatewayStopPacketCapture.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/vpnGateways": {
+ "get": {
+ "operationId": "VpnGateways_ListByResourceGroup",
+ "x-ms-examples": {
+ "VpnGatewayListByResourceGroup": {
+ "$ref": "./examples/VpnGatewayListByResourceGroup.json"
+ }
+ },
+ "description": "Lists all the VpnGateways in a resource group.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VpnGateway."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of all the VpnGateways in the resource group.",
+ "schema": {
+ "$ref": "#/definitions/ListVpnGatewaysResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/vpnGateways": {
+ "get": {
+ "operationId": "VpnGateways_List",
+ "x-ms-examples": {
+ "VpnGatewayListBySubscription": {
+ "$ref": "./examples/VpnGatewayList.json"
+ }
+ },
+ "description": "Lists all the VpnGateways in a subscription.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of all the VpnGateways in the subscription.",
+ "schema": {
+ "$ref": "#/definitions/ListVpnGatewaysResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/vpnGateways/{gatewayName}/vpnConnections/{connectionName}": {
+ "get": {
+ "operationId": "VpnConnections_Get",
+ "x-ms-examples": {
+ "VpnConnectionGet": {
+ "$ref": "./examples/VpnConnectionGet.json"
+ }
+ },
+ "description": "Retrieves the details of a vpn connection.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VpnGateway."
+ },
+ {
+ "name": "gatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the gateway."
+ },
+ {
+ "name": "connectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the vpn connection."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of the vpn connection.",
+ "schema": {
+ "$ref": "#/definitions/VpnConnection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "put": {
+ "operationId": "VpnConnections_CreateOrUpdate",
+ "x-ms-examples": {
+ "VpnConnectionPut": {
+ "$ref": "./examples/VpnConnectionPut.json"
+ }
+ },
+ "description": "Creates a vpn connection to a scalable vpn gateway if it doesn't exist else updates the existing connection.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VpnGateway."
+ },
+ {
+ "name": "gatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the gateway."
+ },
+ {
+ "name": "connectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the connection."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "VpnConnectionParameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/VpnConnection"
+ },
+ "description": "Parameters supplied to create or Update a VPN Connection."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of the vpn connection created or updated.",
+ "schema": {
+ "$ref": "#/definitions/VpnConnection"
+ }
+ },
+ "201": {
+ "description": "Request successful. Returns the details of the vpn connection created or updated.",
+ "schema": {
+ "$ref": "#/definitions/VpnConnection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ },
+ "delete": {
+ "operationId": "VpnConnections_Delete",
+ "x-ms-examples": {
+ "VpnConnectionDelete": {
+ "$ref": "./examples/VpnConnectionDelete.json"
+ }
+ },
+ "description": "Deletes a vpn connection.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VpnGateway."
+ },
+ {
+ "name": "gatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the gateway."
+ },
+ {
+ "name": "connectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the connection."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Vpn Connection deleted."
+ },
+ "202": {
+ "description": "Request received successfully. Vpn Connection deletion is in progress; follow the Location header to poll for final outcome."
+ },
+ "204": {
+ "description": "No vpn connections exist by the name provided."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/vpnGateways/{gatewayName}/vpnConnections/{connectionName}/vpnLinkConnections/{linkConnectionName}": {
+ "get": {
+ "operationId": "VpnSiteLinkConnections_Get",
+ "x-ms-examples": {
+ "VpnSiteLinkConnectionGet": {
+ "$ref": "./examples/VpnSiteLinkConnectionGet.json"
+ }
+ },
+ "description": "Retrieves the details of a vpn site link connection.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VpnGateway."
+ },
+ {
+ "name": "gatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the gateway."
+ },
+ {
+ "name": "connectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the vpn connection."
+ },
+ {
+ "name": "linkConnectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the vpn connection."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of the vpn connection.",
+ "schema": {
+ "$ref": "#/definitions/VpnSiteLinkConnection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/vpnGateways/{gatewayName}/vpnConnections/{vpnConnectionName}/startpacketcapture": {
+ "post": {
+ "operationId": "VpnConnections_StartPacketCapture",
+ "description": "Starts packet capture on Vpn connection in the specified resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "gatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the gateway."
+ },
+ {
+ "name": "vpnConnectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the vpn connection."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/VpnConnectionPacketCaptureStartParameters"
+ },
+ "description": "Vpn Connection packet capture parameters supplied to start packet capture on gateway connection."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "200": {
+ "description": "Request successful. The operation packet capture started on vpn connection.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Start packet capture on vpn connection without filter": {
+ "$ref": "./examples/VpnConnectionStartPacketCapture.json"
+ },
+ "Start packet capture on vpn connection with filter": {
+ "$ref": "./examples/VpnConnectionStartPacketCaptureFilterData.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/vpnGateways/{gatewayName}/vpnConnections/{vpnConnectionName}/stoppacketcapture": {
+ "post": {
+ "operationId": "VpnConnections_StopPacketCapture",
+ "description": "Stops packet capture on Vpn connection in the specified resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "gatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the gateway."
+ },
+ {
+ "name": "vpnConnectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the vpn connection."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/VpnConnectionPacketCaptureStopParameters"
+ },
+ "description": "Vpn Connection packet capture parameters supplied to stop packet capture on gateway connection."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "200": {
+ "description": "Request successful. The operation packet capture stopped on vpn connection.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Start packet capture on vpn connection without filter": {
+ "$ref": "./examples/VpnConnectionStopPacketCapture.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/vpnGateways/{gatewayName}/vpnConnections": {
+ "get": {
+ "operationId": "VpnConnections_ListByVpnGateway",
+ "x-ms-examples": {
+ "VpnConnectionList": {
+ "$ref": "./examples/VpnConnectionList.json"
+ }
+ },
+ "description": "Retrieves all vpn connections for a particular virtual wan vpn gateway.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VpnGateway."
+ },
+ {
+ "name": "gatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the gateway."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns all Vpn connections for a virtual wan vpn gateway.",
+ "schema": {
+ "$ref": "#/definitions/ListVpnConnectionsResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/vpnGateways/{gatewayName}/vpnConnections/{connectionName}/vpnLinkConnections": {
+ "get": {
+ "operationId": "VpnLinkConnections_ListByVpnConnection",
+ "x-ms-examples": {
+ "VpnSiteLinkConnectionList": {
+ "$ref": "./examples/VpnSiteLinkConnectionList.json"
+ }
+ },
+ "description": "Retrieves all vpn site link connections for a particular virtual wan vpn gateway vpn connection.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the vpn gateway."
+ },
+ {
+ "name": "gatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the gateway."
+ },
+ {
+ "name": "connectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the vpn connection."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns all Vpn connections for a virtual wan vpn gateway.",
+ "schema": {
+ "$ref": "#/definitions/ListVpnSiteLinkConnectionsResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/p2svpnGateways/{gatewayName}": {
+ "get": {
+ "operationId": "P2sVpnGateways_Get",
+ "x-ms-examples": {
+ "P2SVpnGatewayGet": {
+ "$ref": "./examples/P2SVpnGatewayGet.json"
+ }
+ },
+ "description": "Retrieves the details of a virtual wan p2s vpn gateway.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the P2SVpnGateway."
+ },
+ {
+ "name": "gatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the gateway."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of the virtual wan p2s vpn gateway retrieved.",
+ "schema": {
+ "$ref": "#/definitions/P2SVpnGateway"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "put": {
+ "operationId": "P2sVpnGateways_CreateOrUpdate",
+ "x-ms-examples": {
+ "P2SVpnGatewayPut": {
+ "$ref": "./examples/P2SVpnGatewayPut.json"
+ }
+ },
+ "description": "Creates a virtual wan p2s vpn gateway if it doesn't exist else updates the existing gateway.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the P2SVpnGateway."
+ },
+ {
+ "name": "gatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the gateway."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "p2SVpnGatewayParameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/P2SVpnGateway"
+ },
+ "description": "Parameters supplied to create or Update a virtual wan p2s vpn gateway."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of the virtual wan p2s vpn Gateway created or updated.",
+ "schema": {
+ "$ref": "#/definitions/P2SVpnGateway"
+ }
+ },
+ "201": {
+ "description": "Request successful. Returns the details of the virtual wan p2s vpn gateway retrieved.",
+ "schema": {
+ "$ref": "#/definitions/P2SVpnGateway"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ },
+ "patch": {
+ "tags": [
+ "P2SVpnGateways"
+ ],
+ "operationId": "P2sVpnGateways_UpdateTags",
+ "x-ms-examples": {
+ "P2SVpnGatewayUpdate": {
+ "$ref": "./examples/P2SVpnGatewayUpdateTags.json"
+ }
+ },
+ "description": "Updates virtual wan p2s vpn gateway tags.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the P2SVpnGateway."
+ },
+ {
+ "name": "gatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the gateway."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "p2SVpnGatewayParameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./network.json#/definitions/TagsObject"
+ },
+ "description": "Parameters supplied to update a virtual wan p2s vpn gateway tags."
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "200": {
+ "description": "Request successful. Returns the details of the updated gateway.",
+ "schema": {
+ "$ref": "#/definitions/P2SVpnGateway"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ },
+ "delete": {
+ "operationId": "P2sVpnGateways_Delete",
+ "x-ms-examples": {
+ "P2SVpnGatewayDelete": {
+ "$ref": "./examples/P2SVpnGatewayDelete.json"
+ }
+ },
+ "description": "Deletes a virtual wan p2s vpn gateway.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the P2SVpnGateway."
+ },
+ {
+ "name": "gatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the gateway."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. P2SVpnGateway deleted."
+ },
+ "202": {
+ "description": "Request received successfully. P2SVpnGateway deletion is in progress; follow the Location header to poll for final outcome."
+ },
+ "204": {
+ "description": "No p2s vpn gateways exist by the name provided."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/p2svpnGateways": {
+ "get": {
+ "operationId": "P2sVpnGateways_ListByResourceGroup",
+ "x-ms-examples": {
+ "P2SVpnGatewayListByResourceGroup": {
+ "$ref": "./examples/P2SVpnGatewayListByResourceGroup.json"
+ }
+ },
+ "description": "Lists all the P2SVpnGateways in a resource group.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the P2SVpnGateway."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of all the P2SVpnGateways in the resource group.",
+ "schema": {
+ "$ref": "#/definitions/ListP2SVpnGatewaysResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/p2svpnGateways": {
+ "get": {
+ "operationId": "P2sVpnGateways_List",
+ "x-ms-examples": {
+ "P2SVpnGatewayListBySubscription": {
+ "$ref": "./examples/P2SVpnGatewayList.json"
+ }
+ },
+ "description": "Lists all the P2SVpnGateways in a subscription.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of all the P2SVpnGateways in the subscription.",
+ "schema": {
+ "$ref": "#/definitions/ListP2SVpnGatewaysResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/p2svpnGateways/{gatewayName}/reset": {
+ "post": {
+ "tags": [
+ "P2SVpnGateways"
+ ],
+ "operationId": "P2SVpnGateways_Reset",
+ "description": "Resets the primary of the p2s vpn gateway in the specified resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the P2SVpnGateway."
+ },
+ {
+ "name": "gatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the gateway."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation reset the primary of the P2SVpnGateway.",
+ "schema": {
+ "$ref": "#/definitions/P2SVpnGateway"
+ }
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ResetP2SVpnGateway": {
+ "$ref": "./examples/P2SVpnGatewayReset.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/p2svpnGateways/{gatewayName}/generatevpnprofile": {
+ "post": {
+ "tags": [
+ "P2SVpnGateways"
+ ],
+ "operationId": "P2sVpnGateways_GenerateVpnProfile",
+ "description": "Generates VPN profile for P2S client of the P2SVpnGateway in the specified resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "gatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the P2SVpnGateway."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/P2SVpnProfileParameters"
+ },
+ "description": "Parameters supplied to the generate P2SVpnGateway VPN client package operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "VPN profile package URL.",
+ "schema": {
+ "$ref": "#/definitions/VpnProfileResponse"
+ }
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "GenerateP2SVpnGatewayVPNProfile": {
+ "$ref": "./examples/P2SVpnGatewayGenerateVpnProfile.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/p2svpnGateways/{gatewayName}/getP2sVpnConnectionHealth": {
+ "post": {
+ "tags": [
+ "P2SVpnGateways"
+ ],
+ "operationId": "P2sVpnGateways_GetP2sVpnConnectionHealth",
+ "description": "Gets the connection health of P2S clients of the virtual wan P2SVpnGateway in the specified resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "gatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the P2SVpnGateway."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "P2S Vpn Gateway with P2S connection health details.",
+ "schema": {
+ "$ref": "#/definitions/P2SVpnGateway"
+ }
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "P2SVpnGatewayGetConnectionHealth": {
+ "$ref": "./examples/P2SVpnGatewayGetConnectionHealth.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/p2svpnGateways/{gatewayName}/getP2sVpnConnectionHealthDetailed": {
+ "post": {
+ "tags": [
+ "P2SVpnGateways"
+ ],
+ "operationId": "P2sVpnGateways_GetP2sVpnConnectionHealthDetailed",
+ "description": "Gets the sas url to get the connection health detail of P2S clients of the virtual wan P2SVpnGateway in the specified resource group.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "gatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the P2SVpnGateway."
+ },
+ {
+ "name": "request",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/P2SVpnConnectionHealthRequest"
+ },
+ "description": "Request parameters supplied to get p2s vpn connections detailed health."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "P2S connections detailed health report.",
+ "schema": {
+ "$ref": "#/definitions/P2SVpnConnectionHealth"
+ }
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "P2SVpnGatewayGetConnectionHealthDetailed": {
+ "$ref": "./examples/P2SVpnGatewayGetConnectionHealthDetailed.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualWans/{virtualWANName}/vpnServerConfigurations": {
+ "post": {
+ "operationId": "VpnServerConfigurationsAssociatedWithVirtualWan_List",
+ "x-ms-examples": {
+ "GetVirtualWanVpnServerConfigurations": {
+ "$ref": "./examples/GetVirtualWanVpnServerConfigurations.json"
+ }
+ },
+ "description": "Gives the list of VpnServerConfigurations associated with Virtual Wan in a resource group.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name."
+ },
+ {
+ "name": "virtualWANName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VirtualWAN whose associated VpnServerConfigurations is needed."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "List of associated VpnServerConfigurations list.",
+ "schema": {
+ "$ref": "#/definitions/VpnServerConfigurationsResponse"
+ }
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously. Follow the location header for list of associated VpnServerConfigurations list."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualWans/{virtualWANName}/GenerateVpnProfile": {
+ "post": {
+ "operationId": "generatevirtualwanvpnserverconfigurationvpnprofile",
+ "x-ms-examples": {
+ "GenerateVirtualWanVpnServerConfigurationVpnProfile": {
+ "$ref": "./examples/GenerateVirtualWanVpnServerConfigurationVpnProfile.json"
+ }
+ },
+ "description": "Generates a unique VPN profile for P2S clients for VirtualWan and associated VpnServerConfiguration combination in the specified resource group.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name."
+ },
+ {
+ "name": "virtualWANName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VirtualWAN whose associated VpnServerConfigurations is needed."
+ },
+ {
+ "name": "vpnClientParams",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/VirtualWanVpnProfileParameters"
+ },
+ "description": "Parameters supplied to the generate VirtualWan VPN profile generation operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "VPN profile package URL.",
+ "schema": {
+ "$ref": "#/definitions/VpnProfileResponse"
+ }
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualHubs/{virtualHubName}/routeTables/{routeTableName}": {
+ "get": {
+ "operationId": "VirtualHubRouteTableV2s_Get",
+ "x-ms-examples": {
+ "VirtualHubVirtualHubRouteTableV2Get": {
+ "$ref": "./examples/VirtualHubRouteTableV2Get.json"
+ }
+ },
+ "description": "Retrieves the details of a VirtualHubRouteTableV2.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VirtualHubRouteTableV2."
+ },
+ {
+ "name": "virtualHubName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VirtualHub."
+ },
+ {
+ "name": "routeTableName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VirtualHubRouteTableV2."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of the VirtualHubRouteTableV2 retrieved.",
+ "schema": {
+ "$ref": "#/definitions/VirtualHubRouteTableV2"
+ }
+ },
+ "default": {
+ "description": "Error.",
+ "schema": {
+ "$ref": "./network.json#/definitions/Error"
+ }
+ }
+ }
+ },
+ "put": {
+ "operationId": "VirtualHubRouteTableV2s_CreateOrUpdate",
+ "x-ms-examples": {
+ "VirtualHubRouteTableV2Put": {
+ "$ref": "./examples/VirtualHubRouteTableV2Put.json"
+ }
+ },
+ "description": "Creates a VirtualHubRouteTableV2 resource if it doesn't exist else updates the existing VirtualHubRouteTableV2.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VirtualHub."
+ },
+ {
+ "name": "virtualHubName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VirtualHub."
+ },
+ {
+ "name": "routeTableName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VirtualHubRouteTableV2."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "virtualHubRouteTableV2Parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/VirtualHubRouteTableV2"
+ },
+ "description": "Parameters supplied to create or update VirtualHubRouteTableV2."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of the VirtualHubRouteTableV2 created or updated.",
+ "schema": {
+ "$ref": "#/definitions/VirtualHubRouteTableV2"
+ }
+ },
+ "201": {
+ "description": "Request received successfully. Returns the details of the VirtualHubRouteTableV2 created or updated.",
+ "schema": {
+ "$ref": "#/definitions/VirtualHubRouteTableV2"
+ }
+ },
+ "default": {
+ "description": "Error.",
+ "schema": {
+ "$ref": "./network.json#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ },
+ "delete": {
+ "operationId": "VirtualHubRouteTableV2s_Delete",
+ "x-ms-examples": {
+ "VirtualHubRouteTableV2Delete": {
+ "$ref": "./examples/VirtualHubRouteTableV2Delete.json"
+ }
+ },
+ "description": "Deletes a VirtualHubRouteTableV2.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VirtualHubRouteTableV2."
+ },
+ {
+ "name": "virtualHubName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VirtualHub."
+ },
+ {
+ "name": "routeTableName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VirtualHubRouteTableV2."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. VirtualHubRouteTableV2 deleted."
+ },
+ "202": {
+ "description": "Request received successfully. VirtualHubRouteTableV2 deletion is in progress; follow the Location header to poll for final outcome."
+ },
+ "204": {
+ "description": "No VirtualHubRouteTableV2s exist by the name provided."
+ },
+ "default": {
+ "description": "Error.",
+ "schema": {
+ "$ref": "./network.json#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualHubs/{virtualHubName}/routeTables": {
+ "get": {
+ "operationId": "VirtualHubRouteTableV2s_List",
+ "x-ms-examples": {
+ "VirtualHubRouteTableV2List": {
+ "$ref": "./examples/VirtualHubRouteTableV2List.json"
+ }
+ },
+ "description": "Retrieves the details of all VirtualHubRouteTableV2s.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VirtualHub."
+ },
+ {
+ "name": "virtualHubName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VirtualHub."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of all the VirtualHubRouteTableV2s for the VirtualHub.",
+ "schema": {
+ "$ref": "#/definitions/ListVirtualHubRouteTableV2sResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/p2svpnGateways/{p2sVpnGatewayName}/disconnectP2sVpnConnections": {
+ "post": {
+ "tags": [
+ "P2SVpnGateways"
+ ],
+ "operationId": "P2sVpnGateways_DisconnectP2sVpnConnections",
+ "description": "Disconnect P2S vpn connections of the virtual wan P2SVpnGateway in the specified resource group.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "p2sVpnGatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the P2S Vpn Gateway."
+ },
+ {
+ "name": "request",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/P2SVpnConnectionRequest"
+ },
+ "description": "The parameters are supplied to disconnect p2s vpn connections."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation disconnects the requested vpn connections."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Disconnect VpnConnections from P2sVpn Gateway": {
+ "$ref": "./examples/P2sVpnGatewaysDisconnectP2sVpnConnections.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/expressRouteGateways": {
+ "get": {
+ "tags": [
+ "ExpressRouteGateways"
+ ],
+ "operationId": "ExpressRouteGateways_ListBySubscription",
+ "x-ms-examples": {
+ "ExpressRouteGatewayListBySubscription": {
+ "$ref": "./examples/ExpressRouteGatewayListBySubscription.json"
+ }
+ },
+ "description": "Lists ExpressRoute gateways under a given subscription.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteGatewayList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteGateways": {
+ "get": {
+ "tags": [
+ "ExpressRouteGateways"
+ ],
+ "operationId": "ExpressRouteGateways_ListByResourceGroup",
+ "x-ms-examples": {
+ "ExpressRouteGatewayListByResourceGroup": {
+ "$ref": "./examples/ExpressRouteGatewayListByResourceGroup.json"
+ }
+ },
+ "description": "Lists ExpressRoute gateways in a given resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Operation successful.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteGatewayList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteGateways/{expressRouteGatewayName}": {
+ "put": {
+ "tags": [
+ "ExpressRouteGateways"
+ ],
+ "operationId": "ExpressRouteGateways_CreateOrUpdate",
+ "x-ms-examples": {
+ "ExpressRouteGatewayCreate": {
+ "$ref": "./examples/ExpressRouteGatewayCreate.json"
+ }
+ },
+ "description": "Creates or updates a ExpressRoute gateway in a specified resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "expressRouteGatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the ExpressRoute gateway."
+ },
+ {
+ "name": "putExpressRouteGatewayParameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteGateway"
+ },
+ "description": "Parameters required in an ExpressRoute gateway PUT operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update successful. The operation returns the resulting ExpressRoute gateway resource.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteGateway"
+ }
+ },
+ "201": {
+ "description": "Create successful. The operation returns the resulting ExpressRoute gateway resource.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteGateway"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ },
+ "get": {
+ "tags": [
+ "ExpressRouteGateways"
+ ],
+ "operationId": "ExpressRouteGateways_Get",
+ "x-ms-examples": {
+ "ExpressRouteGatewayGet": {
+ "$ref": "./examples/ExpressRouteGatewayGet.json"
+ }
+ },
+ "description": "Fetches the details of a ExpressRoute gateway in a resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "expressRouteGatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the ExpressRoute gateway."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Operation succeeded. The operation returns the ExpressRoute gateway.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteGateway"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "ExpressRouteGateways"
+ ],
+ "operationId": "ExpressRouteGateways_Delete",
+ "x-ms-examples": {
+ "ExpressRouteGatewayDelete": {
+ "$ref": "./examples/ExpressRouteGatewayDelete.json"
+ }
+ },
+ "description": "Deletes the specified ExpressRoute gateway in a resource group. An ExpressRoute gateway resource can only be deleted when there are no connection subresources.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "expressRouteGatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the ExpressRoute gateway."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Delete successful."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "204": {
+ "description": "Delete successful."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteGateways/{expressRouteGatewayName}/expressRouteConnections/{connectionName}": {
+ "put": {
+ "tags": [
+ "ExpressRouteConnections"
+ ],
+ "operationId": "ExpressRouteConnections_CreateOrUpdate",
+ "x-ms-examples": {
+ "ExpressRouteConnectionCreate": {
+ "$ref": "./examples/ExpressRouteConnectionCreate.json"
+ }
+ },
+ "description": "Creates a connection between an ExpressRoute gateway and an ExpressRoute circuit.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "expressRouteGatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the ExpressRoute gateway."
+ },
+ {
+ "name": "connectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the connection subresource."
+ },
+ {
+ "name": "putExpressRouteConnectionParameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteConnection"
+ },
+ "description": "Parameters required in an ExpressRouteConnection PUT operation."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update successful. The operation returns the ExpressRouteConnection.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteConnection"
+ }
+ },
+ "201": {
+ "description": "Create successful. The operation returns the ExpressRouteConnection.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteConnection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ },
+ "get": {
+ "tags": [
+ "ExpressRouteConnections"
+ ],
+ "operationId": "ExpressRouteConnections_Get",
+ "x-ms-examples": {
+ "ExpressRouteConnectionGet": {
+ "$ref": "./examples/ExpressRouteConnectionGet.json"
+ }
+ },
+ "description": "Gets the specified ExpressRouteConnection.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "expressRouteGatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the ExpressRoute gateway."
+ },
+ {
+ "name": "connectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the ExpressRoute connection."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the ExpressRouteConnection.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteConnection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "ExpressRouteConnections"
+ ],
+ "operationId": "ExpressRouteConnections_Delete",
+ "x-ms-examples": {
+ "ExpressRouteConnectionDelete": {
+ "$ref": "./examples/ExpressRouteConnectionDelete.json"
+ }
+ },
+ "description": "Deletes a connection to a ExpressRoute circuit.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "expressRouteGatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the ExpressRoute gateway."
+ },
+ {
+ "name": "connectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the connection subresource."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Delete successful."
+ },
+ "202": {
+ "description": "Accepted, and the operation will continue asynchronously."
+ },
+ "204": {
+ "description": "Delete successful."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteGateways/{expressRouteGatewayName}/expressRouteConnections": {
+ "get": {
+ "tags": [
+ "ExpressRouteConnections"
+ ],
+ "operationId": "ExpressRouteConnections_List",
+ "x-ms-examples": {
+ "ExpressRouteConnectionList": {
+ "$ref": "./examples/ExpressRouteConnectionList.json"
+ }
+ },
+ "description": "Lists ExpressRouteConnections.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "expressRouteGatewayName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the ExpressRoute gateway."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful.",
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteConnectionList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualHubs/{virtualHubName}/bgpConnections/{connectionName}": {
+ "get": {
+ "operationId": "VirtualHubBgpConnection_Get",
+ "x-ms-examples": {
+ "VirtualHubVirtualHubRouteTableV2Get": {
+ "$ref": "./examples/VirtualHubBgpConnectionGet.json"
+ }
+ },
+ "description": "Retrieves the details of a Virtual Hub Bgp Connection.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VirtualHub."
+ },
+ {
+ "name": "virtualHubName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VirtualHub."
+ },
+ {
+ "name": "connectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the connection."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of the Bgp Connection retrieved.",
+ "schema": {
+ "$ref": "#/definitions/BgpConnection"
+ }
+ },
+ "default": {
+ "description": "Error.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "put": {
+ "operationId": "VirtualHubBgpConnection_CreateOrUpdate",
+ "x-ms-examples": {
+ "VirtualHubRouteTableV2Put": {
+ "$ref": "./examples/VirtualHubBgpConnectionPut.json"
+ }
+ },
+ "description": "Creates a VirtualHubBgpConnection resource if it doesn't exist else updates the existing VirtualHubBgpConnection.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VirtualHub."
+ },
+ {
+ "name": "virtualHubName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VirtualHub."
+ },
+ {
+ "name": "connectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the connection."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/BgpConnection"
+ },
+ "description": "Parameters of Bgp connection."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of the BgpConnection created or updated.",
+ "schema": {
+ "$ref": "#/definitions/BgpConnection"
+ }
+ },
+ "201": {
+ "description": "Request received successfully. Returns the details of the BgpConnection created or updated.",
+ "schema": {
+ "$ref": "#/definitions/BgpConnection"
+ }
+ },
+ "default": {
+ "description": "Error.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ },
+ "delete": {
+ "operationId": "VirtualHubBgpConnection_Delete",
+ "x-ms-examples": {
+ "VirtualHubRouteTableV2Delete": {
+ "$ref": "./examples/VirtualHubBgpConnectionDelete.json"
+ }
+ },
+ "description": "Deletes a VirtualHubBgpConnection.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VirtualHubBgpConnection."
+ },
+ {
+ "name": "virtualHubName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VirtualHub."
+ },
+ {
+ "name": "connectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the connection."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. VirtualHubBgpConnection deleted."
+ },
+ "202": {
+ "description": "Request received successfully. VirtualHubBgpConnection deletion is in progress; follow the Location header to poll for final outcome."
+ },
+ "204": {
+ "description": "No VirtualHubBgpConnection exist by the name provided."
+ },
+ "default": {
+ "description": "Error.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualHubs/{virtualHubName}/bgpConnections": {
+ "get": {
+ "operationId": "VirtualHubBgpConnections_List",
+ "x-ms-examples": {
+ "VirtualHubRouteTableV2List": {
+ "$ref": "./examples/VirtualHubBgpConnectionList.json"
+ }
+ },
+ "description": "Retrieves the details of all VirtualHubBgpConnections.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VirtualHub."
+ },
+ {
+ "name": "virtualHubName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VirtualHub."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of all the VirtualHubBgpConnections for the VirtualHub.",
+ "schema": {
+ "$ref": "#/definitions/ListVirtualHubBgpConnectionResults"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualHubs/{hubName}/bgpConnections/{connectionName}/learnedRoutes": {
+ "post": {
+ "operationId": "VirtualHubBgpConnections_ListLearnedRoutes",
+ "description": "Retrieves a list of routes the virtual hub bgp connection has learned.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "hubName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual hub."
+ },
+ {
+ "name": "connectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual hub bgp connection."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "List of advertised BGP routes.",
+ "schema": {
+ "$ref": "#/definitions/PeerRouteList"
+ }
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "VirtualRouterPeerListLearnedRoutes": {
+ "$ref": "./examples/VirtualRouterPeerListLearnedRoute.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualHubs/{hubName}/bgpConnections/{connectionName}/advertisedRoutes": {
+ "post": {
+ "operationId": "VirtualHubBgpConnections_ListAdvertisedRoutes",
+ "description": "Retrieves a list of routes the virtual hub bgp connection is advertising to the specified peer.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "hubName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual hub."
+ },
+ {
+ "name": "connectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual hub bgp connection."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "List of learned BGP routes.",
+ "schema": {
+ "$ref": "#/definitions/PeerRouteList"
+ }
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "VirtualRouterPeerListAdvertisedRoutes": {
+ "$ref": "./examples/VirtualRouterPeerListAdvertisedRoute.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualHubs/{virtualHubName}/ipConfigurations/{ipConfigName}": {
+ "get": {
+ "operationId": "VirtualHubIpConfiguration_Get",
+ "x-ms-examples": {
+ "VirtualHubVirtualHubRouteTableV2Get": {
+ "$ref": "./examples/VirtualHubIpConfigurationGet.json"
+ }
+ },
+ "description": "Retrieves the details of a Virtual Hub Ip configuration.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VirtualHub."
+ },
+ {
+ "name": "virtualHubName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VirtualHub."
+ },
+ {
+ "name": "ipConfigName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the ipconfig."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of the Bgp Connection retrieved.",
+ "schema": {
+ "$ref": "#/definitions/HubIpConfiguration"
+ }
+ },
+ "default": {
+ "description": "Error.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "put": {
+ "operationId": "VirtualHubIpConfiguration_CreateOrUpdate",
+ "x-ms-examples": {
+ "VirtualHubIpConfigurationPut": {
+ "$ref": "./examples/VirtualHubIpConfigurationPut.json"
+ }
+ },
+ "description": "Creates a VirtualHubIpConfiguration resource if it doesn't exist else updates the existing VirtualHubIpConfiguration.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VirtualHub."
+ },
+ {
+ "name": "virtualHubName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VirtualHub."
+ },
+ {
+ "name": "ipConfigName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the ipconfig."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/HubIpConfiguration"
+ },
+ "description": "Hub Ip Configuration parameters."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of the IpConfiguration created or updated.",
+ "schema": {
+ "$ref": "#/definitions/HubIpConfiguration"
+ }
+ },
+ "201": {
+ "description": "Request received successfully. Returns the details of the IpConfiguration created or updated.",
+ "schema": {
+ "$ref": "#/definitions/HubIpConfiguration"
+ }
+ },
+ "default": {
+ "description": "Error.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ },
+ "delete": {
+ "operationId": "VirtualHubIpConfiguration_Delete",
+ "x-ms-examples": {
+ "VirtualHubIpConfigurationDelete": {
+ "$ref": "./examples/VirtualHubIpConfigurationDelete.json"
+ }
+ },
+ "description": "Deletes a VirtualHubIpConfiguration.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VirtualHubBgpConnection."
+ },
+ {
+ "name": "virtualHubName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VirtualHub."
+ },
+ {
+ "name": "ipConfigName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the ipconfig."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. VirtualHubIpConfiguration deleted."
+ },
+ "202": {
+ "description": "Request received successfully. VirtualHubIpConfiguration deletion is in progress; follow the Location header to poll for final outcome."
+ },
+ "204": {
+ "description": "No VirtualHubIpConfiguration exist by the name provided."
+ },
+ "default": {
+ "description": "Error.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualHubs/{virtualHubName}/ipConfigurations": {
+ "get": {
+ "operationId": "VirtualHubIpConfiguration_List",
+ "x-ms-examples": {
+ "VirtualHubRouteTableV2List": {
+ "$ref": "./examples/VirtualHubIpConfigurationList.json"
+ }
+ },
+ "description": "Retrieves the details of all VirtualHubIpConfigurations.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VirtualHub."
+ },
+ {
+ "name": "virtualHubName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VirtualHub."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of all the VirtualHubIpConfigurations for the VirtualHub.",
+ "schema": {
+ "$ref": "#/definitions/ListVirtualHubIpConfigurationResults"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualHubs/{virtualHubName}/hubRouteTables/{routeTableName}": {
+ "put": {
+ "operationId": "HubRouteTables_CreateOrUpdate",
+ "x-ms-examples": {
+ "RouteTablePut": {
+ "$ref": "./examples/HubRouteTablePut.json"
+ }
+ },
+ "description": "Creates a RouteTable resource if it doesn't exist else updates the existing RouteTable.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VirtualHub."
+ },
+ {
+ "name": "virtualHubName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VirtualHub."
+ },
+ {
+ "name": "routeTableName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the RouteTable."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "routeTableParameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/HubRouteTable"
+ },
+ "description": "Parameters supplied to create or update RouteTable."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of the RouteTable created or updated.",
+ "schema": {
+ "$ref": "#/definitions/HubRouteTable"
+ }
+ },
+ "201": {
+ "description": "Request received successfully. Returns the details of the RouteTable created or updated.",
+ "schema": {
+ "$ref": "#/definitions/HubRouteTable"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ },
+ "get": {
+ "operationId": "HubRouteTables_Get",
+ "x-ms-examples": {
+ "RouteTableGet": {
+ "$ref": "./examples/HubRouteTableGet.json"
+ }
+ },
+ "description": "Retrieves the details of a RouteTable.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VirtualHub."
+ },
+ {
+ "name": "virtualHubName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VirtualHub."
+ },
+ {
+ "name": "routeTableName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the RouteTable."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of the RouteTable retrieved.",
+ "schema": {
+ "$ref": "#/definitions/HubRouteTable"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "operationId": "HubRouteTables_Delete",
+ "x-ms-examples": {
+ "RouteTableDelete": {
+ "$ref": "./examples/HubRouteTableDelete.json"
+ }
+ },
+ "description": "Deletes a RouteTable.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the RouteTable."
+ },
+ {
+ "name": "virtualHubName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VirtualHub."
+ },
+ {
+ "name": "routeTableName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the RouteTable."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. RouteTable deleted."
+ },
+ "202": {
+ "description": "Request received successfully. RouteTable deletion is in progress; follow the Location header to poll for final outcome."
+ },
+ "204": {
+ "description": "No RouteTables exist by the name provided."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualHubs/{virtualHubName}/hubRouteTables": {
+ "get": {
+ "operationId": "HubRouteTables_List",
+ "x-ms-examples": {
+ "RouteTableList": {
+ "$ref": "./examples/HubRouteTableList.json"
+ }
+ },
+ "description": "Retrieves the details of all RouteTables.",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VirtualHub."
+ },
+ {
+ "name": "virtualHubName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VirtualHub."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Returns the details of all the RouteTables for the VirtualHub.",
+ "schema": {
+ "$ref": "#/definitions/ListHubRouteTablesResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualHubs/{virtualHubName}/effectiveRoutes": {
+ "post": {
+ "operationId": "VirtualHubs_GetEffectiveVirtualHubRoutes",
+ "x-ms-examples": {
+ "Effective Routes for the Virtual Hub": {
+ "$ref": "./examples/EffectiveRoutesListForVirtualHub.json"
+ },
+ "Effective Routes for a Route Table resource": {
+ "$ref": "./examples/EffectiveRoutesListForRouteTable.json"
+ },
+ "Effective Routes for a Connection resource": {
+ "$ref": "./examples/EffectiveRoutesListForConnection.json"
+ }
+ },
+ "description": "Gets the effective routes configured for the Virtual Hub resource or the specified resource .",
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The resource group name of the VirtualHub."
+ },
+ {
+ "name": "virtualHubName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VirtualHub."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "effectiveRoutesParameters",
+ "in": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/EffectiveRoutesParameters"
+ },
+ "description": "Parameters supplied to get the effective routes for a specific resource."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. Follow the location header for the effective routes list."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "VirtualWanProperties": {
+ "properties": {
+ "disableVpnEncryption": {
+ "type": "boolean",
+ "description": "Vpn encryption to be disabled or not."
+ },
+ "virtualHubs": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "./network.json#/definitions/SubResource"
+ },
+ "description": "List of VirtualHubs in the VirtualWAN."
+ },
+ "vpnSites": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "./network.json#/definitions/SubResource"
+ },
+ "description": "List of VpnSites in the VirtualWAN."
+ },
+ "allowBranchToBranchTraffic": {
+ "type": "boolean",
+ "description": "True if branch to branch traffic is allowed."
+ },
+ "allowVnetToVnetTraffic": {
+ "type": "boolean",
+ "description": "True if Vnet to Vnet traffic is allowed."
+ },
+ "office365LocalBreakoutCategory": {
+ "description": "The office local breakout category.",
+ "$ref": "#/definitions/OfficeTrafficCategory"
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the virtual WAN resource."
+ },
+ "type": {
+ "type": "string",
+ "description": "The type of the VirtualWAN."
+ }
+ },
+ "description": "Parameters for VirtualWAN."
+ },
+ "VirtualWAN": {
+ "required": [
+ "location"
+ ],
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/VirtualWanProperties",
+ "description": "Properties of the virtual WAN."
+ },
+ "etag": {
+ "type": "string",
+ "readOnly": true,
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "description": "VirtualWAN Resource."
+ },
+ "ListVirtualWANsResult": {
+ "description": "Result of the request to list VirtualWANs. It contains a list of VirtualWANs and a URL nextLink to get the next set of results.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualWAN"
+ },
+ "description": "List of VirtualWANs."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of operation list results if there are any."
+ }
+ }
+ },
+ "VpnSiteProperties": {
+ "properties": {
+ "virtualWan": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "The VirtualWAN to which the vpnSite belongs."
+ },
+ "deviceProperties": {
+ "description": "The device properties.",
+ "$ref": "#/definitions/DeviceProperties"
+ },
+ "ipAddress": {
+ "type": "string",
+ "description": "The ip-address for the vpn-site."
+ },
+ "siteKey": {
+ "type": "string",
+ "description": "The key for vpn-site that can be used for connections."
+ },
+ "addressSpace": {
+ "$ref": "./virtualNetwork.json#/definitions/AddressSpace",
+ "description": "The AddressSpace that contains an array of IP address ranges."
+ },
+ "bgpProperties": {
+ "$ref": "./virtualNetworkGateway.json#/definitions/BgpSettings",
+ "description": "The set of bgp properties."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the VPN site resource."
+ },
+ "isSecuritySite": {
+ "type": "boolean",
+ "description": "IsSecuritySite flag."
+ },
+ "vpnSiteLinks": {
+ "type": "array",
+ "description": "List of all vpn site links.",
+ "items": {
+ "$ref": "#/definitions/VpnSiteLink"
+ }
+ },
+ "o365Policy": {
+ "readOnly": false,
+ "description": "Office365 Policy.",
+ "$ref": "#/definitions/O365PolicyProperties"
+ }
+ },
+ "description": "Parameters for VpnSite."
+ },
+ "VpnSite": {
+ "required": [
+ "location"
+ ],
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/VpnSiteProperties",
+ "description": "Properties of the VPN site."
+ },
+ "etag": {
+ "type": "string",
+ "readOnly": true,
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "description": "VpnSite Resource."
+ },
+ "ListVpnSitesResult": {
+ "description": "Result of the request to list VpnSites. It contains a list of VpnSites and a URL nextLink to get the next set of results.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VpnSite"
+ },
+ "description": "List of VpnSites."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of operation list results if there are any."
+ }
+ }
+ },
+ "VpnSiteLinkProperties": {
+ "properties": {
+ "linkProperties": {
+ "description": "The link provider properties.",
+ "$ref": "#/definitions/VpnLinkProviderProperties"
+ },
+ "ipAddress": {
+ "type": "string",
+ "description": "The ip-address for the vpn-site-link."
+ },
+ "fqdn": {
+ "type": "string",
+ "description": "FQDN of vpn-site-link."
+ },
+ "bgpProperties": {
+ "$ref": "#/definitions/VpnLinkBgpSettings",
+ "description": "The set of bgp properties."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the VPN site link resource."
+ }
+ },
+ "description": "Parameters for VpnSite."
+ },
+ "VpnSiteLink": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/VpnSiteLinkProperties",
+ "description": "Properties of the VPN site link."
+ },
+ "etag": {
+ "type": "string",
+ "readOnly": true,
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of the resource that is unique within a resource group. This name can be used to access the resource."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource type."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "VpnSiteLink Resource."
+ },
+ "ListVpnSiteLinksResult": {
+ "description": "Result of the request to list VpnSiteLinks. It contains a list of VpnSiteLinks and a URL nextLink to get the next set of results.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VpnSiteLink"
+ },
+ "description": "List of VpnSitesLinks."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of operation list results if there are any."
+ }
+ }
+ },
+ "GetVpnSitesConfigurationRequest": {
+ "properties": {
+ "vpnSites": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of resource-ids of the vpn-sites for which config is to be downloaded."
+ },
+ "outputBlobSasUrl": {
+ "type": "string",
+ "description": "The sas-url to download the configurations for vpn-sites."
+ }
+ },
+ "required": [
+ "outputBlobSasUrl"
+ ],
+ "description": "List of Vpn-Sites."
+ },
+ "VirtualHubProperties": {
+ "properties": {
+ "virtualWan": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "The VirtualWAN to which the VirtualHub belongs."
+ },
+ "vpnGateway": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "The VpnGateway associated with this VirtualHub."
+ },
+ "p2SVpnGateway": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "The P2SVpnGateway associated with this VirtualHub."
+ },
+ "expressRouteGateway": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "The expressRouteGateway associated with this VirtualHub."
+ },
+ "azureFirewall": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "The azureFirewall associated with this VirtualHub."
+ },
+ "securityPartnerProvider": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "The securityPartnerProvider associated with this VirtualHub."
+ },
+ "addressPrefix": {
+ "type": "string",
+ "description": "Address-prefix for this VirtualHub."
+ },
+ "routeTable": {
+ "$ref": "#/definitions/VirtualHubRouteTable",
+ "description": "The routeTable associated with this virtual hub."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the virtual hub resource."
+ },
+ "securityProviderName": {
+ "type": "string",
+ "description": "The Security Provider name."
+ },
+ "virtualHubRouteTableV2s": {
+ "type": "array",
+ "description": "List of all virtual hub route table v2s associated with this VirtualHub.",
+ "items": {
+ "$ref": "#/definitions/VirtualHubRouteTableV2"
+ }
+ },
+ "sku": {
+ "type": "string",
+ "description": "The sku of this VirtualHub."
+ },
+ "routingState": {
+ "$ref": "#/definitions/RoutingState",
+ "description": "The routing state."
+ },
+ "bgpConnections": {
+ "type": "array",
+ "readOnly": true,
+ "description": "List of references to Bgp Connections.",
+ "items": {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ },
+ "ipConfigurations": {
+ "type": "array",
+ "readOnly": true,
+ "description": "List of references to IpConfigurations.",
+ "items": {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ },
+ "virtualRouterAsn": {
+ "type": "integer",
+ "readOnly": false,
+ "format": "int64",
+ "minimum": 0,
+ "maximum": 4294967295,
+ "description": "VirtualRouter ASN."
+ },
+ "virtualRouterIps": {
+ "type": "array",
+ "readOnly": false,
+ "description": "VirtualRouter IPs.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "allowBranchToBranchTraffic": {
+ "type": "boolean",
+ "readOnly": false,
+ "description": "Flag to control transit for VirtualRouter hub."
+ }
+ },
+ "description": "Parameters for VirtualHub."
+ },
+ "RoutingState": {
+ "type": "string",
+ "description": "The current routing state of the VirtualHub.",
+ "readOnly": true,
+ "enum": [
+ "None",
+ "Provisioned",
+ "Provisioning",
+ "Failed"
+ ],
+ "x-ms-enum": {
+ "name": "RoutingState",
+ "modelAsString": true
+ }
+ },
+ "BgpConnection": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/BgpConnectionProperties",
+ "description": "The properties of the Bgp connections."
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the connection."
+ },
+ "etag": {
+ "type": "string",
+ "readOnly": true,
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Connection type."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "Virtual Appliance Site resource."
+ },
+ "BgpConnectionProperties": {
+ "properties": {
+ "peerAsn": {
+ "type": "integer",
+ "readOnly": false,
+ "format": "int64",
+ "minimum": 0,
+ "maximum": 4294967295,
+ "description": "Peer ASN."
+ },
+ "peerIp": {
+ "type": "string",
+ "readOnly": false,
+ "description": "Peer IP."
+ },
+ "provisioningState": {
+ "description": "The provisioning state of the resource.",
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState"
+ },
+ "connectionState": {
+ "type": "string",
+ "description": "The current state of the VirtualHub to Peer.",
+ "readOnly": true,
+ "enum": [
+ "Unknown",
+ "Connecting",
+ "Connected",
+ "NotConnected"
+ ],
+ "x-ms-enum": {
+ "name": "HubBgpConnectionStatus",
+ "modelAsString": true
+ }
+ }
+ },
+ "description": "Properties of the bgp connection."
+ },
+ "PeerRoute": {
+ "properties": {
+ "localAddress": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The peer's local address."
+ },
+ "network": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The route's network prefix."
+ },
+ "nextHop": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The route's next hop."
+ },
+ "sourcePeer": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The peer this route was learned from."
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The source this route was learned from."
+ },
+ "asPath": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The route's AS path sequence."
+ },
+ "weight": {
+ "type": "integer",
+ "format": "int32",
+ "readOnly": true,
+ "description": "The route's weight."
+ }
+ },
+ "description": "Peer routing details."
+ },
+ "PeerRouteList": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PeerRoute"
+ },
+ "description": "List of peer routes."
+ }
+ },
+ "description": "List of virtual router peer routes."
+ },
+ "HubIpConfiguration": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/HubIPConfigurationPropertiesFormat",
+ "description": "The properties of the Virtual Hub IPConfigurations."
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the Ip Configuration."
+ },
+ "etag": {
+ "type": "string",
+ "readOnly": true,
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Ipconfiguration type."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "IpConfigurations."
+ },
+ "HubIPConfigurationPropertiesFormat": {
+ "properties": {
+ "privateIPAddress": {
+ "type": "string",
+ "description": "The private IP address of the IP configuration."
+ },
+ "privateIPAllocationMethod": {
+ "$ref": "./network.json#/definitions/IPAllocationMethod",
+ "description": "The private IP address allocation method."
+ },
+ "subnet": {
+ "$ref": "./virtualNetwork.json#/definitions/Subnet",
+ "description": "The reference to the subnet resource."
+ },
+ "publicIPAddress": {
+ "$ref": "./publicIpAddress.json#/definitions/PublicIPAddress",
+ "description": "The reference to the public IP resource."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the IP configuration resource."
+ }
+ },
+ "description": "Properties of IP configuration."
+ },
+ "VirtualHubRouteTable": {
+ "properties": {
+ "routes": {
+ "type": "array",
+ "description": "List of all routes.",
+ "items": {
+ "$ref": "#/definitions/VirtualHubRoute"
+ }
+ }
+ },
+ "description": "VirtualHub route table."
+ },
+ "VirtualHubRoute": {
+ "properties": {
+ "addressPrefixes": {
+ "type": "array",
+ "description": "List of all addressPrefixes.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "nextHopIpAddress": {
+ "type": "string",
+ "description": "NextHop ip address."
+ }
+ },
+ "description": "VirtualHub route."
+ },
+ "VirtualHub": {
+ "required": [
+ "location"
+ ],
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/VirtualHubProperties",
+ "description": "Properties of the virtual hub."
+ },
+ "etag": {
+ "type": "string",
+ "readOnly": true,
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "description": "VirtualHub Resource."
+ },
+ "ListVirtualHubsResult": {
+ "description": "Result of the request to list VirtualHubs. It contains a list of VirtualHubs and a URL nextLink to get the next set of results.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualHub"
+ },
+ "description": "List of VirtualHubs."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of operation list results if there are any."
+ }
+ }
+ },
+ "VpnGatewayProperties": {
+ "properties": {
+ "virtualHub": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "The VirtualHub to which the gateway belongs."
+ },
+ "connections": {
+ "type": "array",
+ "description": "List of all vpn connections to the gateway.",
+ "items": {
+ "$ref": "#/definitions/VpnConnection"
+ }
+ },
+ "bgpSettings": {
+ "$ref": "./virtualNetworkGateway.json#/definitions/BgpSettings",
+ "description": "Local network gateway's BGP speaker settings."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the VPN gateway resource."
+ },
+ "vpnGatewayScaleUnit": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The scale unit for this vpn gateway."
+ },
+ "ipConfigurations": {
+ "type": "array",
+ "readOnly": true,
+ "description": "List of all IPs configured on the gateway.",
+ "items": {
+ "$ref": "#/definitions/VpnGatewayIpConfiguration"
+ }
+ },
+ "isRoutingPreferenceInternet": {
+ "type": "boolean",
+ "description": "Enable Routing Preference property for the Public IP Interface of the VpnGateway."
+ }
+ },
+ "description": "Parameters for VpnGateway."
+ },
+ "VpnGateway": {
+ "required": [
+ "location"
+ ],
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/VpnGatewayProperties",
+ "description": "Properties of the VPN gateway."
+ },
+ "etag": {
+ "type": "string",
+ "readOnly": true,
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "description": "VpnGateway Resource."
+ },
+ "VpnGatewayIpConfiguration": {
+ "description": "IP Configuration of a VPN Gateway Resource.",
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "The identifier of the IP configuration for a VPN Gateway."
+ },
+ "publicIpAddress": {
+ "type": "string",
+ "description": "The public IP address of this IP configuration."
+ },
+ "privateIpAddress": {
+ "type": "string",
+ "description": "The private IP address of this IP configuration."
+ }
+ }
+ },
+ "ListVpnGatewaysResult": {
+ "description": "Result of the request to list VpnGateways. It contains a list of VpnGateways and a URL nextLink to get the next set of results.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VpnGateway"
+ },
+ "description": "List of VpnGateways."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of operation list results if there are any."
+ }
+ }
+ },
+ "VpnConnectionProperties": {
+ "properties": {
+ "remoteVpnSite": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "Id of the connected vpn site."
+ },
+ "routingWeight": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Routing weight for vpn connection."
+ },
+ "dpdTimeoutSeconds": {
+ "type": "integer",
+ "format": "int32",
+ "description": "DPD timeout in seconds for vpn connection."
+ },
+ "connectionStatus": {
+ "description": "The connection status.",
+ "$ref": "#/definitions/VpnConnectionStatus"
+ },
+ "vpnConnectionProtocolType": {
+ "description": "Connection protocol used for this connection.",
+ "$ref": "./virtualNetworkGateway.json#/definitions/ConnectionProtocol"
+ },
+ "ingressBytesTransferred": {
+ "type": "integer",
+ "format": "int64",
+ "readOnly": true,
+ "description": "Ingress bytes transferred."
+ },
+ "egressBytesTransferred": {
+ "type": "integer",
+ "format": "int64",
+ "readOnly": true,
+ "description": "Egress bytes transferred."
+ },
+ "connectionBandwidth": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Expected bandwidth in MBPS."
+ },
+ "sharedKey": {
+ "type": "string",
+ "description": "SharedKey for the vpn connection."
+ },
+ "enableBgp": {
+ "type": "boolean",
+ "description": "EnableBgp flag."
+ },
+ "usePolicyBasedTrafficSelectors": {
+ "type": "boolean",
+ "description": "Enable policy-based traffic selectors."
+ },
+ "ipsecPolicies": {
+ "type": "array",
+ "items": {
+ "$ref": "./virtualNetworkGateway.json#/definitions/IpsecPolicy"
+ },
+ "description": "The IPSec Policies to be considered by this connection."
+ },
+ "enableRateLimiting": {
+ "type": "boolean",
+ "description": "EnableBgp flag."
+ },
+ "enableInternetSecurity": {
+ "type": "boolean",
+ "description": "Enable internet security."
+ },
+ "useLocalAzureIpAddress": {
+ "type": "boolean",
+ "description": "Use local azure ip to initiate connection."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the VPN connection resource."
+ },
+ "vpnLinkConnections": {
+ "type": "array",
+ "description": "List of all vpn site link connections to the gateway.",
+ "items": {
+ "$ref": "#/definitions/VpnSiteLinkConnection"
+ }
+ },
+ "routingConfiguration": {
+ "$ref": "#/definitions/RoutingConfiguration",
+ "description": "The Routing Configuration indicating the associated and propagated route tables on this connection."
+ }
+ },
+ "description": "Parameters for VpnConnection."
+ },
+ "VpnConnection": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/VpnConnectionProperties",
+ "description": "Properties of the VPN connection."
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of the resource that is unique within a resource group. This name can be used to access the resource."
+ },
+ "etag": {
+ "type": "string",
+ "readOnly": true,
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "VpnConnection Resource."
+ },
+ "ListVpnConnectionsResult": {
+ "description": "Result of the request to list all vpn connections to a virtual wan vpn gateway. It contains a list of Vpn Connections and a URL nextLink to get the next set of results.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VpnConnection"
+ },
+ "description": "List of Vpn Connections."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of operation list results if there are any."
+ }
+ }
+ },
+ "VpnConnectionPacketCaptureStartParameters": {
+ "description": "Vpn Connection packet capture parameters supplied to start packet capture on gateway connection.",
+ "properties": {
+ "filterData": {
+ "type": "string",
+ "description": "Start Packet capture parameters on vpn connection."
+ },
+ "linkConnectionNames": {
+ "type": "array",
+ "description": "List of site link connection names.",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "VpnConnectionPacketCaptureStopParameters": {
+ "description": "Vpn Connection packet capture parameters supplied to stop packet capture on gateway connection.",
+ "properties": {
+ "sasUrl": {
+ "type": "string",
+ "description": "SAS url for packet capture on vpn connection."
+ },
+ "linkConnectionNames": {
+ "type": "array",
+ "description": "List of site link connection names.",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "VpnGatewayPacketCaptureStartParameters": {
+ "properties": {
+ "filterData": {
+ "type": "string",
+ "description": "Start Packet capture parameters on vpn gateway."
+ }
+ },
+ "description": "Start packet capture parameters."
+ },
+ "VpnGatewayPacketCaptureStopParameters": {
+ "properties": {
+ "sasUrl": {
+ "type": "string",
+ "description": "SAS url for packet capture on vpn gateway."
+ }
+ },
+ "description": "Stop packet capture parameters."
+ },
+ "VpnSiteLinkConnectionProperties": {
+ "properties": {
+ "vpnSiteLink": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "Id of the connected vpn site link."
+ },
+ "routingWeight": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Routing weight for vpn connection."
+ },
+ "connectionStatus": {
+ "description": "The connection status.",
+ "$ref": "#/definitions/VpnConnectionStatus"
+ },
+ "vpnConnectionProtocolType": {
+ "description": "Connection protocol used for this connection.",
+ "$ref": "./virtualNetworkGateway.json#/definitions/ConnectionProtocol"
+ },
+ "ingressBytesTransferred": {
+ "type": "integer",
+ "format": "int64",
+ "readOnly": true,
+ "description": "Ingress bytes transferred."
+ },
+ "egressBytesTransferred": {
+ "type": "integer",
+ "format": "int64",
+ "readOnly": true,
+ "description": "Egress bytes transferred."
+ },
+ "connectionBandwidth": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Expected bandwidth in MBPS."
+ },
+ "sharedKey": {
+ "type": "string",
+ "description": "SharedKey for the vpn connection."
+ },
+ "enableBgp": {
+ "type": "boolean",
+ "description": "EnableBgp flag."
+ },
+ "usePolicyBasedTrafficSelectors": {
+ "type": "boolean",
+ "description": "Enable policy-based traffic selectors."
+ },
+ "ipsecPolicies": {
+ "type": "array",
+ "items": {
+ "$ref": "./virtualNetworkGateway.json#/definitions/IpsecPolicy"
+ },
+ "description": "The IPSec Policies to be considered by this connection."
+ },
+ "enableRateLimiting": {
+ "type": "boolean",
+ "description": "EnableBgp flag."
+ },
+ "useLocalAzureIpAddress": {
+ "type": "boolean",
+ "description": "Use local azure ip to initiate connection."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the VPN site link connection resource."
+ }
+ },
+ "description": "Parameters for VpnConnection."
+ },
+ "VpnSiteLinkConnection": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/VpnSiteLinkConnectionProperties",
+ "description": "Properties of the VPN site link connection."
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of the resource that is unique within a resource group. This name can be used to access the resource."
+ },
+ "etag": {
+ "type": "string",
+ "readOnly": true,
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource type."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "VpnSiteLinkConnection Resource."
+ },
+ "ListVpnSiteLinkConnectionsResult": {
+ "description": "Result of the request to list all vpn connections to a virtual wan vpn gateway. It contains a list of Vpn Connections and a URL nextLink to get the next set of results.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VpnSiteLinkConnection"
+ },
+ "description": "List of VpnSiteLinkConnections."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of operation list results if there are any."
+ }
+ }
+ },
+ "HubVirtualNetworkConnectionProperties": {
+ "properties": {
+ "remoteVirtualNetwork": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "Reference to the remote virtual network."
+ },
+ "allowHubToRemoteVnetTransit": {
+ "type": "boolean",
+ "description": "Deprecated: VirtualHub to RemoteVnet transit to enabled or not."
+ },
+ "allowRemoteVnetToUseHubVnetGateways": {
+ "type": "boolean",
+ "description": "Deprecated: Allow RemoteVnet to use Virtual Hub's gateways."
+ },
+ "enableInternetSecurity": {
+ "type": "boolean",
+ "description": "Enable internet security."
+ },
+ "routingConfiguration": {
+ "$ref": "#/definitions/RoutingConfiguration",
+ "description": "The Routing Configuration indicating the associated and propagated route tables on this connection."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the hub virtual network connection resource."
+ }
+ },
+ "description": "Parameters for HubVirtualNetworkConnection."
+ },
+ "HubVirtualNetworkConnection": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/HubVirtualNetworkConnectionProperties",
+ "description": "Properties of the hub virtual network connection."
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of the resource that is unique within a resource group. This name can be used to access the resource."
+ },
+ "etag": {
+ "type": "string",
+ "readOnly": true,
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "HubVirtualNetworkConnection Resource."
+ },
+ "ListHubVirtualNetworkConnectionsResult": {
+ "description": "List of HubVirtualNetworkConnections and a URL nextLink to get the next set of results.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/HubVirtualNetworkConnection"
+ },
+ "description": "List of HubVirtualNetworkConnections."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of operation list results if there are any."
+ }
+ }
+ },
+ "HubRouteTableProperties": {
+ "properties": {
+ "routes": {
+ "type": "array",
+ "description": "List of all routes.",
+ "items": {
+ "$ref": "#/definitions/HubRoute"
+ }
+ },
+ "labels": {
+ "type": "array",
+ "description": "List of labels associated with this route table.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "associatedConnections": {
+ "type": "array",
+ "description": "List of all connections associated with this route table.",
+ "readOnly": true,
+ "items": {
+ "type": "string"
+ }
+ },
+ "propagatingConnections": {
+ "type": "array",
+ "description": "List of all connections that advertise to this route table.",
+ "readOnly": true,
+ "items": {
+ "type": "string"
+ }
+ },
+ "provisioningState": {
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "readOnly": true,
+ "description": "The provisioning state of the RouteTable resource."
+ }
+ },
+ "description": "Parameters for RouteTable."
+ },
+ "HubRouteTable": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/HubRouteTableProperties",
+ "description": "Properties of the RouteTable resource."
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of the resource that is unique within a resource group. This name can be used to access the resource."
+ },
+ "etag": {
+ "type": "string",
+ "readOnly": true,
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource type."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "RouteTable resource in a virtual hub."
+ },
+ "HubRoute": {
+ "required": [
+ "name",
+ "destinationType",
+ "destinations",
+ "nextHopType",
+ "nextHop"
+ ],
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the Route that is unique within a RouteTable. This name can be used to access this route."
+ },
+ "destinationType": {
+ "type": "string",
+ "description": "The type of destinations (eg: CIDR, ResourceId, Service)."
+ },
+ "destinations": {
+ "type": "array",
+ "description": "List of all destinations.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "nextHopType": {
+ "type": "string",
+ "description": "The type of next hop (eg: ResourceId)."
+ },
+ "nextHop": {
+ "type": "string",
+ "description": "NextHop resource ID."
+ }
+ },
+ "description": "RouteTable route."
+ },
+ "ListHubRouteTablesResult": {
+ "description": "List of RouteTables and a URL nextLink to get the next set of results.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/HubRouteTable"
+ },
+ "description": "List of RouteTables."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of operation list results if there are any."
+ }
+ }
+ },
+ "VpnSiteId": {
+ "properties": {
+ "vpnSite": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The resource-uri of the vpn-site for which config is to be fetched."
+ }
+ },
+ "description": "VpnSite Resource."
+ },
+ "DeviceProperties": {
+ "properties": {
+ "deviceVendor": {
+ "type": "string",
+ "description": "Name of the device Vendor."
+ },
+ "deviceModel": {
+ "type": "string",
+ "description": "Model of the device."
+ },
+ "linkSpeedInMbps": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Link speed."
+ }
+ },
+ "description": "List of properties of the device."
+ },
+ "VirtualWanSecurityProviders": {
+ "properties": {
+ "supportedProviders": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualWanSecurityProvider"
+ },
+ "description": "List of VirtualWAN security providers."
+ }
+ },
+ "description": "Collection of SecurityProviders."
+ },
+ "VirtualWanSecurityProvider": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name of the security provider."
+ },
+ "url": {
+ "type": "string",
+ "description": "Url of the security provider."
+ },
+ "type": {
+ "$ref": "#/definitions/VirtualWanSecurityProviderType",
+ "description": "Name of the security provider."
+ }
+ },
+ "description": "Collection of SecurityProviders."
+ },
+ "VpnConnectionStatus": {
+ "type": "string",
+ "description": "The current state of the vpn connection.",
+ "readOnly": true,
+ "enum": [
+ "Unknown",
+ "Connecting",
+ "Connected",
+ "NotConnected"
+ ],
+ "x-ms-enum": {
+ "name": "VpnConnectionStatus",
+ "modelAsString": true
+ }
+ },
+ "TunnelConnectionStatus": {
+ "type": "string",
+ "description": "The current state of the tunnel.",
+ "readOnly": true,
+ "enum": [
+ "Unknown",
+ "Connecting",
+ "Connected",
+ "NotConnected"
+ ],
+ "x-ms-enum": {
+ "name": "TunnelConnectionStatus",
+ "modelAsString": true
+ }
+ },
+ "HubVirtualNetworkConnectionStatus": {
+ "type": "string",
+ "description": "The current state of the VirtualHub to vnet connection.",
+ "readOnly": true,
+ "enum": [
+ "Unknown",
+ "Connecting",
+ "Connected",
+ "NotConnected"
+ ],
+ "x-ms-enum": {
+ "name": "HubVirtualNetworkConnectionStatus",
+ "modelAsString": true
+ }
+ },
+ "OfficeTrafficCategory": {
+ "type": "string",
+ "description": "The office traffic category.",
+ "readOnly": true,
+ "enum": [
+ "Optimize",
+ "OptimizeAndAllow",
+ "All",
+ "None"
+ ],
+ "x-ms-enum": {
+ "name": "OfficeTrafficCategory",
+ "modelAsString": true
+ }
+ },
+ "VirtualWanSecurityProviderType": {
+ "type": "string",
+ "description": "The virtual wan security provider type.",
+ "readOnly": true,
+ "enum": [
+ "External",
+ "Native"
+ ],
+ "x-ms-enum": {
+ "name": "VirtualWanSecurityProviderType",
+ "modelAsString": true
+ }
+ },
+ "VpnServerConfigVpnClientRootCertificate": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The certificate name."
+ },
+ "publicCertData": {
+ "type": "string",
+ "description": "The certificate public data."
+ }
+ },
+ "description": "Properties of VPN client root certificate of VpnServerConfiguration."
+ },
+ "VpnServerConfigRadiusServerRootCertificate": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The certificate name."
+ },
+ "publicCertData": {
+ "type": "string",
+ "description": "The certificate public data."
+ }
+ },
+ "description": "Properties of Radius Server root certificate of VpnServerConfiguration."
+ },
+ "VpnServerConfigVpnClientRevokedCertificate": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The certificate name."
+ },
+ "thumbprint": {
+ "type": "string",
+ "description": "The revoked VPN client certificate thumbprint."
+ }
+ },
+ "description": "Properties of the revoked VPN client certificate of VpnServerConfiguration."
+ },
+ "VpnServerConfigRadiusClientRootCertificate": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The certificate name."
+ },
+ "thumbprint": {
+ "type": "string",
+ "description": "The Radius client root certificate thumbprint."
+ }
+ },
+ "description": "Properties of the Radius client root certificate of VpnServerConfiguration."
+ },
+ "AadAuthenticationParameters": {
+ "properties": {
+ "aadTenant": {
+ "type": "string",
+ "description": "AAD Vpn authentication parameter AAD tenant."
+ },
+ "aadAudience": {
+ "type": "string",
+ "description": "AAD Vpn authentication parameter AAD audience."
+ },
+ "aadIssuer": {
+ "type": "string",
+ "description": "AAD Vpn authentication parameter AAD issuer."
+ }
+ },
+ "description": "AAD Vpn authentication type related parameters."
+ },
+ "VpnServerConfigurationProperties": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the VpnServerConfiguration that is unique within a resource group."
+ },
+ "vpnProtocols": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "description": "VPN protocol enabled for the VpnServerConfiguration.",
+ "enum": [
+ "IkeV2",
+ "OpenVPN"
+ ],
+ "x-ms-enum": {
+ "name": "VpnGatewayTunnelingProtocol",
+ "modelAsString": true
+ }
+ },
+ "description": "VPN protocols for the VpnServerConfiguration."
+ },
+ "vpnAuthenticationTypes": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "description": "VPN authentication types enabled for the VpnServerConfiguration.",
+ "enum": [
+ "Certificate",
+ "Radius",
+ "AAD"
+ ],
+ "x-ms-enum": {
+ "name": "VpnAuthenticationType",
+ "modelAsString": true
+ }
+ },
+ "description": "VPN authentication types for the VpnServerConfiguration."
+ },
+ "vpnClientRootCertificates": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VpnServerConfigVpnClientRootCertificate"
+ },
+ "description": "VPN client root certificate of VpnServerConfiguration."
+ },
+ "vpnClientRevokedCertificates": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VpnServerConfigVpnClientRevokedCertificate"
+ },
+ "description": "VPN client revoked certificate of VpnServerConfiguration."
+ },
+ "radiusServerRootCertificates": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VpnServerConfigRadiusServerRootCertificate"
+ },
+ "description": "Radius Server root certificate of VpnServerConfiguration."
+ },
+ "radiusClientRootCertificates": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VpnServerConfigRadiusClientRootCertificate"
+ },
+ "description": "Radius client root certificate of VpnServerConfiguration."
+ },
+ "vpnClientIpsecPolicies": {
+ "type": "array",
+ "items": {
+ "$ref": "./virtualNetworkGateway.json#/definitions/IpsecPolicy"
+ },
+ "description": "VpnClientIpsecPolicies for VpnServerConfiguration."
+ },
+ "radiusServerAddress": {
+ "type": "string",
+ "description": "The radius server address property of the VpnServerConfiguration resource for point to site client connection."
+ },
+ "radiusServerSecret": {
+ "type": "string",
+ "description": "The radius secret property of the VpnServerConfiguration resource for point to site client connection."
+ },
+ "radiusServers": {
+ "type": "array",
+ "items": {
+ "$ref": "./virtualNetworkGateway.json#/definitions/RadiusServer"
+ },
+ "description": "Multiple Radius Server configuration for VpnServerConfiguration."
+ },
+ "aadAuthenticationParameters": {
+ "$ref": "#/definitions/AadAuthenticationParameters",
+ "description": "The set of aad vpn authentication parameters."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The provisioning state of the VpnServerConfiguration resource. Possible values are: 'Updating', 'Deleting', and 'Failed'."
+ },
+ "p2SVpnGateways": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/P2SVpnGateway"
+ },
+ "description": "List of references to P2SVpnGateways."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "description": "Parameters for VpnServerConfiguration."
+ },
+ "VpnServerConfiguration": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/VpnServerConfigurationProperties",
+ "description": "Properties of the P2SVpnServer configuration."
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of the resource that is unique within a resource group. This name can be used to access the resource."
+ },
+ "etag": {
+ "type": "string",
+ "readOnly": true,
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "description": "VpnServerConfiguration Resource."
+ },
+ "ListVpnServerConfigurationsResult": {
+ "description": "Result of the request to list all VpnServerConfigurations. It contains a list of VpnServerConfigurations and a URL nextLink to get the next set of results.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VpnServerConfiguration"
+ },
+ "description": "List of VpnServerConfigurations."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of operation list results if there are any."
+ }
+ }
+ },
+ "VpnClientConnectionHealth": {
+ "properties": {
+ "totalIngressBytesTransferred": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int64",
+ "description": "Total of the Ingress Bytes Transferred in this P2S Vpn connection."
+ },
+ "totalEgressBytesTransferred": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int64",
+ "description": "Total of the Egress Bytes Transferred in this connection."
+ },
+ "vpnClientConnectionsCount": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The total of p2s vpn clients connected at this time to this P2SVpnGateway."
+ },
+ "allocatedIpAddresses": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of allocated ip addresses to the connected p2s vpn clients."
+ }
+ },
+ "description": "VpnClientConnectionHealth properties."
+ },
+ "P2SVpnGatewayProperties": {
+ "properties": {
+ "virtualHub": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "The VirtualHub to which the gateway belongs."
+ },
+ "p2SConnectionConfigurations": {
+ "type": "array",
+ "description": "List of all p2s connection configurations of the gateway.",
+ "items": {
+ "$ref": "#/definitions/P2SConnectionConfiguration"
+ }
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the P2S VPN gateway resource."
+ },
+ "vpnGatewayScaleUnit": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The scale unit for this p2s vpn gateway."
+ },
+ "vpnServerConfiguration": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "The VpnServerConfiguration to which the p2sVpnGateway is attached to."
+ },
+ "vpnClientConnectionHealth": {
+ "readOnly": true,
+ "$ref": "#/definitions/VpnClientConnectionHealth",
+ "description": "All P2S VPN clients' connection health status."
+ },
+ "customDnsServers": {
+ "type": "array",
+ "description": "List of all customer specified DNS servers IP addresses.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "isRoutingPreferenceInternet": {
+ "type": "boolean",
+ "description": "Enable Routing Preference property for the Public IP Interface of the P2SVpnGateway."
+ }
+ },
+ "description": "Parameters for P2SVpnGateway."
+ },
+ "P2SVpnGateway": {
+ "required": [
+ "location"
+ ],
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/P2SVpnGatewayProperties",
+ "description": "Properties of the P2SVpnGateway."
+ },
+ "etag": {
+ "type": "string",
+ "readOnly": true,
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "description": "P2SVpnGateway Resource."
+ },
+ "ListP2SVpnGatewaysResult": {
+ "description": "Result of the request to list P2SVpnGateways. It contains a list of P2SVpnGateways and a URL nextLink to get the next set of results.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/P2SVpnGateway"
+ },
+ "description": "List of P2SVpnGateways."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of operation list results if there are any."
+ }
+ }
+ },
+ "P2SVpnProfileParameters": {
+ "properties": {
+ "authenticationMethod": {
+ "$ref": "./network.json#/definitions/AuthenticationMethod",
+ "description": "VPN client authentication method."
+ }
+ },
+ "description": "Vpn Client Parameters for package generation."
+ },
+ "VpnProfileResponse": {
+ "properties": {
+ "profileUrl": {
+ "type": "string",
+ "description": "URL to the VPN profile."
+ }
+ },
+ "description": "Vpn Profile Response for package generation."
+ },
+ "VpnLinkBgpSettings": {
+ "properties": {
+ "asn": {
+ "type": "integer",
+ "format": "int64",
+ "description": "The BGP speaker's ASN."
+ },
+ "bgpPeeringAddress": {
+ "type": "string",
+ "description": "The BGP peering address and BGP identifier of this BGP speaker."
+ }
+ },
+ "description": "BGP settings details for a link."
+ },
+ "VpnLinkProviderProperties": {
+ "properties": {
+ "linkProviderName": {
+ "type": "string",
+ "description": "Name of the link provider."
+ },
+ "linkSpeedInMbps": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Link speed."
+ }
+ },
+ "description": "List of properties of a link provider."
+ },
+ "VpnServerConfigurationsResponse": {
+ "properties": {
+ "vpnServerConfigurationResourceIds": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "description": "VpnServerConfiguration partial resource uri."
+ },
+ "description": "List of VpnServerConfigurations associated with VirtualWan."
+ }
+ },
+ "description": "VpnServerConfigurations list associated with VirtualWan Response."
+ },
+ "VirtualWanVpnProfileParameters": {
+ "properties": {
+ "vpnServerConfigurationResourceId": {
+ "type": "string",
+ "description": "VpnServerConfiguration partial resource uri with which VirtualWan is associated to."
+ },
+ "authenticationMethod": {
+ "$ref": "./network.json#/definitions/AuthenticationMethod",
+ "description": "VPN client authentication method."
+ }
+ },
+ "description": "Virtual Wan Vpn profile parameters Vpn profile generation."
+ },
+ "P2SVpnConnectionHealthRequest": {
+ "properties": {
+ "vpnUserNamesFilter": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "description": "P2S vpn user name."
+ },
+ "description": "The list of p2s vpn user names whose p2s vpn connection detailed health to retrieve for."
+ },
+ "outputBlobSasUrl": {
+ "type": "string",
+ "description": "The sas-url to download the P2S Vpn connection health detail."
+ }
+ },
+ "description": "List of P2S Vpn connection health request."
+ },
+ "P2SVpnConnectionHealth": {
+ "properties": {
+ "sasUrl": {
+ "type": "string",
+ "description": "Returned sas url of the blob to which the p2s vpn connection detailed health will be written."
+ }
+ },
+ "description": "P2S Vpn connection detailed health written to sas url."
+ },
+ "P2SConnectionConfigurationProperties": {
+ "properties": {
+ "vpnClientAddressPool": {
+ "$ref": "./virtualNetwork.json#/definitions/AddressSpace",
+ "description": "The reference to the address space resource which represents Address space for P2S VpnClient."
+ },
+ "routingConfiguration": {
+ "$ref": "#/definitions/RoutingConfiguration",
+ "description": "The Routing Configuration indicating the associated and propagated route tables on this connection."
+ },
+ "enableInternetSecurity": {
+ "type": "boolean",
+ "description": "Flag indicating whether the enable internet security flag is turned on for the P2S Connections or not."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the P2SConnectionConfiguration resource."
+ }
+ },
+ "description": "Parameters for P2SConnectionConfiguration."
+ },
+ "P2SConnectionConfiguration": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/P2SConnectionConfigurationProperties",
+ "description": "Properties of the P2S connection configuration."
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of the resource that is unique within a resource group. This name can be used to access the resource."
+ },
+ "etag": {
+ "type": "string",
+ "readOnly": true,
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "P2SConnectionConfiguration Resource."
+ },
+ "VirtualHubRouteTableV2Properties": {
+ "properties": {
+ "routes": {
+ "type": "array",
+ "description": "List of all routes.",
+ "items": {
+ "$ref": "#/definitions/VirtualHubRouteV2"
+ }
+ },
+ "attachedConnections": {
+ "type": "array",
+ "description": "List of all connections attached to this route table v2.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "provisioningState": {
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "readOnly": true,
+ "description": "The provisioning state of the virtual hub route table v2 resource."
+ }
+ },
+ "description": "Parameters for VirtualHubRouteTableV2."
+ },
+ "VirtualHubRouteTableV2": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/VirtualHubRouteTableV2Properties",
+ "description": "Properties of the virtual hub route table v2."
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of the resource that is unique within a resource group. This name can be used to access the resource."
+ },
+ "etag": {
+ "type": "string",
+ "readOnly": true,
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "VirtualHubRouteTableV2 Resource."
+ },
+ "VirtualHubRouteV2": {
+ "properties": {
+ "destinationType": {
+ "type": "string",
+ "description": "The type of destinations."
+ },
+ "destinations": {
+ "type": "array",
+ "description": "List of all destinations.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "nextHopType": {
+ "type": "string",
+ "description": "The type of next hops."
+ },
+ "nextHops": {
+ "type": "array",
+ "description": "NextHops ip address.",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "VirtualHubRouteTableV2 route."
+ },
+ "ListVirtualHubRouteTableV2sResult": {
+ "description": "List of VirtualHubRouteTableV2s and a URL nextLink to get the next set of results.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualHubRouteTableV2"
+ },
+ "description": "List of VirtualHubRouteTableV2s."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of operation list results if there are any."
+ }
+ }
+ },
+ "P2SVpnConnectionRequest": {
+ "description": "List of p2s vpn connections to be disconnected.",
+ "properties": {
+ "vpnConnectionIds": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of p2s vpn connection Ids."
+ }
+ }
+ },
+ "VirtualHubId": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "The resource URI for the Virtual Hub where the ExpressRoute gateway is or will be deployed. The Virtual Hub resource and the ExpressRoute gateway resource reside in the same subscription."
+ }
+ },
+ "description": "Virtual Hub identifier."
+ },
+ "ExpressRouteCircuitPeeringId": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "The ID of the ExpressRoute circuit peering."
+ }
+ },
+ "description": "ExpressRoute circuit peering identifier."
+ },
+ "ExpressRouteConnectionId": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The ID of the ExpressRouteConnection."
+ }
+ },
+ "description": "The ID of the ExpressRouteConnection."
+ },
+ "ExpressRouteGatewayProperties": {
+ "required": [
+ "virtualHub"
+ ],
+ "properties": {
+ "autoScaleConfiguration": {
+ "properties": {
+ "bounds": {
+ "properties": {
+ "min": {
+ "type": "integer",
+ "description": "Minimum number of scale units deployed for ExpressRoute gateway."
+ },
+ "max": {
+ "type": "integer",
+ "description": "Maximum number of scale units deployed for ExpressRoute gateway."
+ }
+ },
+ "description": "Minimum and maximum number of scale units to deploy."
+ }
+ },
+ "description": "Configuration for auto scaling."
+ },
+ "expressRouteConnections": {
+ "type": "array",
+ "readOnly": true,
+ "description": "List of ExpressRoute connections to the ExpressRoute gateway.",
+ "items": {
+ "$ref": "#/definitions/ExpressRouteConnection"
+ }
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the express route gateway resource."
+ },
+ "virtualHub": {
+ "$ref": "#/definitions/VirtualHubId",
+ "description": "The Virtual Hub where the ExpressRoute gateway is or will be deployed."
+ }
+ },
+ "description": "ExpressRoute gateway resource properties."
+ },
+ "ExpressRouteGateway": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ExpressRouteGatewayProperties",
+ "description": "Properties of the express route gateway."
+ },
+ "etag": {
+ "type": "string",
+ "readOnly": true,
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/Resource"
+ }
+ ],
+ "description": "ExpressRoute gateway resource."
+ },
+ "ExpressRouteGatewayList": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ExpressRouteGateway"
+ },
+ "description": "List of ExpressRoute gateways."
+ }
+ },
+ "description": "List of ExpressRoute gateways."
+ },
+ "ExpressRouteConnectionProperties": {
+ "required": [
+ "expressRouteCircuitPeering"
+ ],
+ "properties": {
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the express route connection resource."
+ },
+ "expressRouteCircuitPeering": {
+ "$ref": "#/definitions/ExpressRouteCircuitPeeringId",
+ "description": "The ExpressRoute circuit peering."
+ },
+ "authorizationKey": {
+ "type": "string",
+ "description": "Authorization key to establish the connection."
+ },
+ "routingWeight": {
+ "type": "integer",
+ "description": "The routing weight associated to the connection."
+ },
+ "enableInternetSecurity": {
+ "type": "boolean",
+ "description": "Enable internet security."
+ },
+ "routingConfiguration": {
+ "$ref": "#/definitions/RoutingConfiguration",
+ "description": "The Routing Configuration indicating the associated and propagated route tables on this connection."
+ }
+ },
+ "description": "Properties of the ExpressRouteConnection subresource."
+ },
+ "ExpressRouteConnection": {
+ "required": [
+ "name"
+ ],
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ExpressRouteConnectionProperties",
+ "description": "Properties of the express route connection."
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of the resource."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ ],
+ "description": "ExpressRouteConnection resource."
+ },
+ "ExpressRouteConnectionList": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ExpressRouteConnection"
+ },
+ "description": "The list of ExpressRoute connections."
+ }
+ },
+ "description": "ExpressRouteConnection list."
+ },
+ "ListVirtualHubBgpConnectionResults": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/BgpConnection"
+ },
+ "description": "The list of VirtualHubBgpConnections."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of results."
+ }
+ },
+ "description": "VirtualHubBgpConnections list."
+ },
+ "ListVirtualHubIpConfigurationResults": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/HubIpConfiguration"
+ },
+ "description": "The list of VirtualHubIpConfigurations."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of results."
+ }
+ },
+ "description": "VirtualHubIpConfigurations list."
+ },
+ "RoutingConfiguration": {
+ "description": "Routing Configuration indicating the associated and propagated route tables for this connection.",
+ "properties": {
+ "associatedRouteTable": {
+ "$ref": "./network.json#/definitions/SubResource",
+ "description": "The resource id RouteTable associated with this RoutingConfiguration."
+ },
+ "propagatedRouteTables": {
+ "$ref": "#/definitions/PropagatedRouteTable",
+ "description": "The list of RouteTables to advertise the routes to."
+ },
+ "vnetRoutes": {
+ "$ref": "#/definitions/VnetRoute",
+ "description": "List of routes that control routing from VirtualHub into a virtual network connection."
+ }
+ }
+ },
+ "PropagatedRouteTable": {
+ "description": "The list of RouteTables to advertise the routes to.",
+ "properties": {
+ "labels": {
+ "type": "array",
+ "description": "The list of labels.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ids": {
+ "type": "array",
+ "description": "The list of resource ids of all the RouteTables.",
+ "items": {
+ "$ref": "./network.json#/definitions/SubResource"
+ }
+ }
+ }
+ },
+ "VnetRoute": {
+ "description": "List of routes that control routing from VirtualHub into a virtual network connection.",
+ "properties": {
+ "staticRoutes": {
+ "type": "array",
+ "description": "List of all Static Routes.",
+ "items": {
+ "$ref": "#/definitions/StaticRoute"
+ }
+ }
+ }
+ },
+ "StaticRoute": {
+ "description": "List of all Static Routes.",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the StaticRoute that is unique within a VnetRoute."
+ },
+ "addressPrefixes": {
+ "type": "array",
+ "description": "List of all address prefixes.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "nextHopIpAddress": {
+ "type": "string",
+ "description": "The ip address of the next hop."
+ }
+ }
+ },
+ "VirtualHubEffectiveRouteList": {
+ "description": "EffectiveRoutes List.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualHubEffectiveRoute"
+ },
+ "description": "The list of effective routes configured on the virtual hub or the specified resource."
+ }
+ }
+ },
+ "VirtualHubEffectiveRoute": {
+ "description": "The effective route configured on the virtual hub or specified resource.",
+ "properties": {
+ "addressPrefixes": {
+ "description": "The list of address prefixes.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "nextHops": {
+ "description": "The list of next hops.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "nextHopType": {
+ "description": "The type of the next hop.",
+ "type": "string"
+ },
+ "asPath": {
+ "description": "The ASPath of this route.",
+ "type": "string"
+ },
+ "routeOrigin": {
+ "description": "The origin of this route.",
+ "type": "string"
+ }
+ }
+ },
+ "EffectiveRoutesParameters": {
+ "description": "The parameters specifying the resource whose effective routes are being requested.",
+ "properties": {
+ "resourceId": {
+ "type": "string",
+ "description": "The resource whose effective routes are being requested."
+ },
+ "virtualWanResourceType": {
+ "type": "string",
+ "description": "The type of the specified resource like RouteTable, ExpressRouteConnection, HubVirtualNetworkConnection, VpnConnection and P2SConnection."
+ }
+ }
+ },
+ "O365PolicyProperties": {
+ "properties": {
+ "breakOutCategories": {
+ "readOnly": false,
+ "description": "Office365 breakout categories.",
+ "$ref": "#/definitions/O365BreakOutCategoryPolicies"
+ }
+ },
+ "description": "The Office365 breakout policy."
+ },
+ "O365BreakOutCategoryPolicies": {
+ "properties": {
+ "allow": {
+ "type": "boolean",
+ "readOnly": false,
+ "description": "Flag to control allow category."
+ },
+ "optimize": {
+ "type": "boolean",
+ "readOnly": false,
+ "description": "Flag to control optimize category."
+ },
+ "default": {
+ "type": "boolean",
+ "readOnly": false,
+ "description": "Flag to control default category."
+ }
+ },
+ "description": "Office365 breakout categories."
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/vmssNetworkInterface.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/vmssNetworkInterface.json
new file mode 100644
index 000000000000..89562aa3062c
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/vmssNetworkInterface.json
@@ -0,0 +1,374 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "NetworkManagementClient",
+ "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
+ "version": "2018-10-01"
+ },
+ "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.Compute/virtualMachineScaleSets/{virtualMachineScaleSetName}/virtualMachines/{virtualmachineIndex}/networkInterfaces": {
+ "get": {
+ "tags": [
+ "NetworkInterfaces"
+ ],
+ "operationId": "NetworkInterfaces_ListVirtualMachineScaleSetVMNetworkInterfaces",
+ "description": "Gets information about all network interfaces in a virtual machine in a virtual machine scale set.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualMachineScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual machine scale set."
+ },
+ {
+ "name": "virtualmachineIndex",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The virtual machine index."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionVmssParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of NetworkInterface resources.",
+ "schema": {
+ "$ref": "./networkInterface.json#/definitions/NetworkInterfaceListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List virtual machine scale set vm network interfaces": {
+ "$ref": "./examples/VmssVmNetworkInterfaceList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/microsoft.Compute/virtualMachineScaleSets/{virtualMachineScaleSetName}/networkInterfaces": {
+ "get": {
+ "tags": [
+ "NetworkInterfaces"
+ ],
+ "operationId": "NetworkInterfaces_ListVirtualMachineScaleSetNetworkInterfaces",
+ "description": "Gets all network interfaces in a virtual machine scale set.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualMachineScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual machine scale set."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionVmssParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of NetworkInterface resources.",
+ "schema": {
+ "$ref": "./networkInterface.json#/definitions/NetworkInterfaceListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List virtual machine scale set network interfaces": {
+ "$ref": "./examples/VmssNetworkInterfaceList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/microsoft.Compute/virtualMachineScaleSets/{virtualMachineScaleSetName}/virtualMachines/{virtualmachineIndex}/networkInterfaces/{networkInterfaceName}": {
+ "get": {
+ "tags": [
+ "NetworkInterfaces"
+ ],
+ "operationId": "NetworkInterfaces_GetVirtualMachineScaleSetNetworkInterface",
+ "description": "Get the specified network interface in a virtual machine scale set.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualMachineScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual machine scale set."
+ },
+ {
+ "name": "virtualmachineIndex",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The virtual machine index."
+ },
+ {
+ "name": "networkInterfaceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network interface."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionVmssParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Expands referenced resources."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting NetworkInterface resource.",
+ "schema": {
+ "$ref": "./networkInterface.json#/definitions/NetworkInterface"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get virtual machine scale set network interface": {
+ "$ref": "./examples/VmssNetworkInterfaceGet.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/microsoft.Compute/virtualMachineScaleSets/{virtualMachineScaleSetName}/virtualMachines/{virtualmachineIndex}/networkInterfaces/{networkInterfaceName}/ipConfigurations": {
+ "get": {
+ "tags": [
+ "NetworkInterfaces"
+ ],
+ "operationId": "NetworkInterfaces_ListVirtualMachineScaleSetIpConfigurations",
+ "description": "Get the specified network interface ip configuration in a virtual machine scale set.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualMachineScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual machine scale set."
+ },
+ {
+ "name": "virtualmachineIndex",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The virtual machine index."
+ },
+ {
+ "name": "networkInterfaceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network interface."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionVmssParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Expands referenced resources."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the list of resulting NetworkInterfaceIPConfigurations resources.",
+ "schema": {
+ "$ref": "./networkInterface.json#/definitions/NetworkInterfaceIPConfigurationListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List virtual machine scale set network interface ip configurations": {
+ "$ref": "./examples/VmssNetworkInterfaceIpConfigList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/microsoft.Compute/virtualMachineScaleSets/{virtualMachineScaleSetName}/virtualMachines/{virtualmachineIndex}/networkInterfaces/{networkInterfaceName}/ipConfigurations/{ipConfigurationName}": {
+ "get": {
+ "tags": [
+ "NetworkInterfaces"
+ ],
+ "operationId": "NetworkInterfaces_GetVirtualMachineScaleSetIpConfiguration",
+ "description": "Get the specified network interface ip configuration in a virtual machine scale set.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualMachineScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual machine scale set."
+ },
+ {
+ "name": "virtualmachineIndex",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The virtual machine index."
+ },
+ {
+ "name": "networkInterfaceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network interface."
+ },
+ {
+ "name": "ipConfigurationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the ip configuration."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionVmssParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Expands referenced resources."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting NetworkInterfaceIPConfiguration resource.",
+ "schema": {
+ "$ref": "./networkInterface.json#/definitions/NetworkInterfaceIPConfiguration"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get virtual machine scale set network interface": {
+ "$ref": "./examples/VmssNetworkInterfaceIpConfigGet.json"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/vmssPublicIpAddress.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/vmssPublicIpAddress.json
new file mode 100644
index 000000000000..d100152e7711
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/vmssPublicIpAddress.json
@@ -0,0 +1,241 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "NetworkManagementClient",
+ "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
+ "version": "2018-10-01"
+ },
+ "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.Compute/virtualMachineScaleSets/{virtualMachineScaleSetName}/publicipaddresses": {
+ "get": {
+ "operationId": "PublicIPAddresses_ListVirtualMachineScaleSetPublicIPAddresses",
+ "description": "Gets information about all public IP addresses on a virtual machine scale set level.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualMachineScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual machine scale set."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionVmssParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of PublicIPInterface resources.",
+ "schema": {
+ "$ref": "./publicIpAddress.json#/definitions/PublicIPAddressListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ListVMSSPublicIP": {
+ "$ref": "./examples/VmssPublicIpListAll.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{virtualMachineScaleSetName}/virtualMachines/{virtualmachineIndex}/networkInterfaces/{networkInterfaceName}/ipconfigurations/{ipConfigurationName}/publicipaddresses": {
+ "get": {
+ "operationId": "PublicIPAddresses_ListVirtualMachineScaleSetVMPublicIPAddresses",
+ "description": "Gets information about all public IP addresses in a virtual machine IP configuration in a virtual machine scale set.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualMachineScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual machine scale set."
+ },
+ {
+ "name": "virtualmachineIndex",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The virtual machine index."
+ },
+ {
+ "name": "networkInterfaceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The network interface name."
+ },
+ {
+ "name": "ipConfigurationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The IP configuration name."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionVmssParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns a list of PublicIPAddress resources.",
+ "schema": {
+ "$ref": "./publicIpAddress.json#/definitions/PublicIPAddressListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ListVMSSVMPublicIP": {
+ "$ref": "./examples/VmssVmPublicIpList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{virtualMachineScaleSetName}/virtualMachines/{virtualmachineIndex}/networkInterfaces/{networkInterfaceName}/ipconfigurations/{ipConfigurationName}/publicipaddresses/{publicIpAddressName}": {
+ "get": {
+ "operationId": "PublicIPAddresses_GetVirtualMachineScaleSetPublicIPAddress",
+ "description": "Get the specified public IP address in a virtual machine scale set.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualMachineScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual machine scale set."
+ },
+ {
+ "name": "virtualmachineIndex",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The virtual machine index."
+ },
+ {
+ "name": "networkInterfaceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network interface."
+ },
+ {
+ "name": "ipConfigurationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the IP configuration."
+ },
+ {
+ "name": "publicIpAddressName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the public IP Address."
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionVmssParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Expands referenced resources."
+ }
+ ],
+ "x-ms-examples": {
+ "GetVMSSPublicIP": {
+ "$ref": "./examples/VmssPublicIpGet.json"
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "Request successful. The operation returns the resulting PublicIPAddress resource.",
+ "schema": {
+ "$ref": "./publicIpAddress.json#/definitions/PublicIPAddress"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/webapplicationfirewall.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/webapplicationfirewall.json
new file mode 100644
index 000000000000..21163d85abea
--- /dev/null
+++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-07-01/webapplicationfirewall.json
@@ -0,0 +1,743 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2020-07-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": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/WebApplicationFirewallPolicyListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies": {
+ "get": {
+ "tags": [
+ "WebApplicationFirewallPolicies"
+ ],
+ "description": "Gets all the WAF policies in a subscription.",
+ "operationId": "WebApplicationFirewallPolicies_ListAll",
+ "x-ms-examples": {
+ "Lists all WAF policies in a subscription": {
+ "$ref": "./examples/WafListAllPolicies.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/WebApplicationFirewallPolicyListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "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": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/WebApplicationFirewallPolicy"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "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": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "description": "Policy to be created.",
+ "in": "body",
+ "name": "parameters",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/WebApplicationFirewallPolicy"
+ }
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/WebApplicationFirewallPolicy"
+ }
+ },
+ "201": {
+ "description": "Created. The request has been fulfilled and a new protection policy has been created.",
+ "schema": {
+ "$ref": "#/definitions/WebApplicationFirewallPolicy"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "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": "./network.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "./network.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted. The request has been accepted for processing and the operation will complete asynchronously."
+ },
+ "204": {
+ "description": "No Content. The request has been accepted but the policy was not found."
+ },
+ "200": {
+ "description": "Delete successful."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./network.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ }
+ },
+ "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": {
+ "readOnly": true,
+ "type": "string",
+ "description": "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.",
+ "required": [
+ "managedRules"
+ ],
+ "properties": {
+ "policySettings": {
+ "description": "The PolicySettings for policy.",
+ "$ref": "#/definitions/PolicySettings"
+ },
+ "customRules": {
+ "description": "The 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,
+ "$ref": "./network.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the web application firewall policy resource."
+ },
+ "resourceState": {
+ "title": "Resource status of the policy.",
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource status of the policy.",
+ "enum": [
+ "Creating",
+ "Enabling",
+ "Enabled",
+ "Disabling",
+ "Disabled",
+ "Deleting"
+ ],
+ "x-ms-enum": {
+ "name": "WebApplicationFirewallPolicyResourceState",
+ "modelAsString": true
+ }
+ },
+ "managedRules": {
+ "description": "Describes the managedRules structure.",
+ "$ref": "#/definitions/ManagedRulesDefinition"
+ },
+ "httpListeners": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "./network.json#/definitions/SubResource"
+ },
+ "description": "A collection of references to application gateway http listeners."
+ },
+ "pathBasedRules": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "./network.json#/definitions/SubResource"
+ },
+ "description": "A collection of references to application gateway path rules."
+ }
+ }
+ },
+ "WebApplicationFirewallPolicyListResult": {
+ "description": "Result of the request to list WebApplicationFirewallPolicies. It contains a list of WebApplicationFirewallPolicy objects and a URL link to get 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."
+ }
+ }
+ },
+ "ManagedRulesDefinition": {
+ "description": "Allow to exclude some variable satisfy the condition for the WAF check.",
+ "required": [
+ "managedRuleSets"
+ ],
+ "properties": {
+ "exclusions": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/OwaspCrsExclusionEntry"
+ },
+ "description": "The Exclusions that are applied on the policy."
+ },
+ "managedRuleSets": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ManagedRuleSet"
+ },
+ "description": "The managed rule sets that are associated with the policy."
+ }
+ }
+ },
+ "PolicySettings": {
+ "description": "Defines contents of a web application firewall global configuration.",
+ "properties": {
+ "state": {
+ "description": "The state of the policy.",
+ "type": "string",
+ "enum": [
+ "Disabled",
+ "Enabled"
+ ],
+ "x-ms-enum": {
+ "name": "WebApplicationFirewallEnabledState",
+ "modelAsString": true
+ }
+ },
+ "mode": {
+ "description": "The mode of the policy.",
+ "type": "string",
+ "enum": [
+ "Prevention",
+ "Detection"
+ ],
+ "x-ms-enum": {
+ "name": "WebApplicationFirewallMode",
+ "modelAsString": true
+ }
+ },
+ "requestBodyCheck": {
+ "type": "boolean",
+ "description": "Whether to allow WAF to check request Body."
+ },
+ "maxRequestBodySizeInKb": {
+ "type": "integer",
+ "format": "int32",
+ "maximum": 128,
+ "exclusiveMaximum": false,
+ "minimum": 8,
+ "exclusiveMinimum": false,
+ "description": "Maximum request body size in Kb for WAF."
+ },
+ "fileUploadLimitInMb": {
+ "type": "integer",
+ "format": "int32",
+ "minimum": 0,
+ "exclusiveMinimum": false,
+ "description": "Maximum file upload size in Mb for WAF."
+ }
+ }
+ },
+ "WebApplicationFirewallCustomRule": {
+ "description": "Defines contents of a web application rule.",
+ "required": [
+ "priority",
+ "ruleType",
+ "matchConditions",
+ "action"
+ ],
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The 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": "A unique read-only string that changes whenever the resource is updated."
+ },
+ "priority": {
+ "description": "Priority of the rule. Rules with a lower value will be evaluated before rules with a higher value.",
+ "type": "integer"
+ },
+ "ruleType": {
+ "description": "The rule type.",
+ "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": "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": "The selector of match variable.",
+ "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": "The operator to be matched.",
+ "type": "string",
+ "enum": [
+ "IPMatch",
+ "Equal",
+ "Contains",
+ "LessThan",
+ "GreaterThan",
+ "LessThanOrEqual",
+ "GreaterThanOrEqual",
+ "BeginsWith",
+ "EndsWith",
+ "Regex",
+ "GeoMatch"
+ ],
+ "x-ms-enum": {
+ "name": "WebApplicationFirewallOperator",
+ "modelAsString": true
+ }
+ },
+ "negationConditon": {
+ "description": "Whether 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"
+ }
+ }
+ }
+ },
+ "ManagedRuleSet": {
+ "type": "object",
+ "description": "Defines a managed rule set.",
+ "required": [
+ "ruleSetType",
+ "ruleSetVersion"
+ ],
+ "properties": {
+ "ruleSetType": {
+ "description": "Defines the rule set type to use.",
+ "type": "string"
+ },
+ "ruleSetVersion": {
+ "description": "Defines the version of the rule set to use.",
+ "type": "string"
+ },
+ "ruleGroupOverrides": {
+ "description": "Defines the rule group overrides to apply to the rule set.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ManagedRuleGroupOverride"
+ }
+ }
+ }
+ },
+ "ManagedRuleGroupOverride": {
+ "description": "Defines a managed rule group override setting.",
+ "required": [
+ "ruleGroupName"
+ ],
+ "properties": {
+ "ruleGroupName": {
+ "description": "The managed rule group to override.",
+ "type": "string"
+ },
+ "rules": {
+ "description": "List of rules that will be disabled. If none specified, all rules in the group will be disabled.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ManagedRuleOverride"
+ }
+ }
+ }
+ },
+ "ManagedRuleOverride": {
+ "description": "Defines a managed rule group override setting.",
+ "required": [
+ "ruleId"
+ ],
+ "properties": {
+ "ruleId": {
+ "description": "Identifier for the managed rule.",
+ "type": "string"
+ },
+ "state": {
+ "description": "The state of the managed rule. Defaults to Disabled if not specified.",
+ "type": "string",
+ "enum": [
+ "Disabled"
+ ],
+ "x-ms-enum": {
+ "name": "ManagedRuleEnabledState",
+ "modelAsString": true
+ }
+ }
+ }
+ },
+ "OwaspCrsExclusionEntry": {
+ "required": [
+ "matchVariable",
+ "selectorMatchOperator",
+ "selector"
+ ],
+ "description": "Allow to exclude some variable satisfy the condition for the WAF check.",
+ "properties": {
+ "matchVariable": {
+ "type": "string",
+ "enum": [
+ "RequestHeaderNames",
+ "RequestCookieNames",
+ "RequestArgNames"
+ ],
+ "description": "The variable to be excluded.",
+ "x-ms-enum": {
+ "name": "OwaspCrsExclusionEntryMatchVariable",
+ "modelAsString": true
+ }
+ },
+ "selectorMatchOperator": {
+ "type": "string",
+ "enum": [
+ "Equals",
+ "Contains",
+ "StartsWith",
+ "EndsWith",
+ "EqualsAny"
+ ],
+ "description": "When matchVariable is a collection, operate on the selector to specify which elements in the collection this exclusion applies to.",
+ "x-ms-enum": {
+ "name": "OwaspCrsExclusionEntrySelectorMatchOperator",
+ "modelAsString": true
+ }
+ },
+ "selector": {
+ "type": "string",
+ "description": "When matchVariable is a collection, operator used to specify which elements in the collection this exclusion applies to."
+ }
+ }
+ }
+ }
+}
diff --git a/specification/network/resource-manager/readme.csharp.md b/specification/network/resource-manager/readme.csharp.md
index 7add46771d4c..69834cdd64cb 100644
--- a/specification/network/resource-manager/readme.csharp.md
+++ b/specification/network/resource-manager/readme.csharp.md
@@ -70,4 +70,16 @@ output-folder: $(csharp-sdks-folder)/$(csharp-profile)/Network/Management.Networ
batch:
- tag: profile-hybrid-2019-03-01
+ ```
+
+ ### Profile: hybrid_2020_09_01
+
+These settings apply only when `--csharp-profile=hybrid_2020_09_01` is specified on the command line.
+
+``` yaml $(csharp-profile)=='hybrid_2020_09_01'
+namespace: Microsoft.Azure.Management.Profiles.$(csharp-profile).Network
+output-folder: $(csharp-sdks-folder)/$(csharp-profile)/Network/Management.Network/Generated
+
+batch:
+ - tag: profile-hybrid-2020-09-01
```
\ No newline at end of file
diff --git a/specification/network/resource-manager/readme.md b/specification/network/resource-manager/readme.md
index f0097e2c0d0e..ccd63d1c94f2 100644
--- a/specification/network/resource-manager/readme.md
+++ b/specification/network/resource-manager/readme.md
@@ -28,15 +28,72 @@ These are the global settings for the Network API.
title: NetworkManagementClient
description: Network Client
openapi-type: arm
-tag: package-2020-06
+tag: package-2020-07
```
+### Tag: package-2020-07
+
+These settings apply only when `--tag=package-2020-07` is specified on the command line.
+
+```yaml $(tag) == 'package-2020-07'
+input-file:
+ - Microsoft.Network/stable/2020-07-01/applicationGateway.json
+ - Microsoft.Network/stable/2020-07-01/applicationSecurityGroup.json
+ - Microsoft.Network/stable/2020-07-01/availableDelegations.json
+ - Microsoft.Network/stable/2020-07-01/availableServiceAliases.json
+ - Microsoft.Network/stable/2020-07-01/azureFirewall.json
+ - Microsoft.Network/stable/2020-07-01/azureFirewallFqdnTag.json
+ - Microsoft.Network/stable/2020-07-01/azureWebCategory.json
+ - Microsoft.Network/stable/2020-07-01/bastionHost.json
+ - Microsoft.Network/stable/2020-07-01/checkDnsAvailability.json
+ - Microsoft.Network/stable/2020-07-01/customIpPrefix.json
+ - Microsoft.Network/stable/2020-07-01/ddosCustomPolicy.json
+ - Microsoft.Network/stable/2020-07-01/ddosProtectionPlan.json
+ - Microsoft.Network/stable/2020-07-01/dscpConfiguration.json
+ - Microsoft.Network/stable/2020-07-01/endpointService.json
+ - Microsoft.Network/stable/2020-07-01/expressRouteCircuit.json
+ - Microsoft.Network/stable/2020-07-01/expressRouteCrossConnection.json
+ - Microsoft.Network/stable/2020-07-01/expressRoutePort.json
+ - Microsoft.Network/stable/2020-07-01/firewallPolicy.json
+ - Microsoft.Network/stable/2020-07-01/ipAllocation.json
+ - Microsoft.Network/stable/2020-07-01/ipGroups.json
+ - Microsoft.Network/stable/2020-07-01/loadBalancer.json
+ - Microsoft.Network/stable/2020-07-01/natGateway.json
+ - Microsoft.Network/stable/2020-07-01/network.json
+ - Microsoft.Network/stable/2020-07-01/networkInterface.json
+ - Microsoft.Network/stable/2020-07-01/networkProfile.json
+ - Microsoft.Network/stable/2020-07-01/networkSecurityGroup.json
+ - Microsoft.Network/stable/2020-07-01/networkVirtualAppliance.json
+ - Microsoft.Network/stable/2020-07-01/networkWatcher.json
+ - Microsoft.Network/stable/2020-07-01/operation.json
+ - Microsoft.Network/stable/2020-07-01/privateEndpoint.json
+ - Microsoft.Network/stable/2020-07-01/privateLinkService.json
+ - Microsoft.Network/stable/2020-07-01/publicIpAddress.json
+ - Microsoft.Network/stable/2020-07-01/publicIpPrefix.json
+ - Microsoft.Network/stable/2020-07-01/routeFilter.json
+ - Microsoft.Network/stable/2020-07-01/routeTable.json
+ - Microsoft.Network/stable/2020-07-01/securityPartnerProvider.json
+ - Microsoft.Network/stable/2020-07-01/serviceCommunity.json
+ - Microsoft.Network/stable/2020-07-01/serviceEndpointPolicy.json
+ - Microsoft.Network/stable/2020-07-01/serviceTags.json
+ - Microsoft.Network/stable/2020-07-01/usage.json
+ - Microsoft.Network/stable/2020-07-01/virtualNetwork.json
+ - Microsoft.Network/stable/2020-07-01/virtualNetworkGateway.json
+ - Microsoft.Network/stable/2020-07-01/virtualNetworkTap.json
+ - Microsoft.Network/stable/2020-07-01/virtualRouter.json
+ - Microsoft.Network/stable/2020-07-01/virtualWan.json
+ - Microsoft.Network/stable/2020-07-01/vmssNetworkInterface.json
+ - Microsoft.Network/stable/2020-07-01/vmssPublicIpAddress.json
+ - Microsoft.Network/stable/2020-07-01/webapplicationfirewall.json
+ - Microsoft.Network/stable/2020-07-01/cloudServiceNetworkInterface.json
+ - Microsoft.Network/stable/2020-07-01/cloudServicePublicIpAddress.json
+```
### Tag: package-2020-06
These settings apply only when `--tag=package-2020-06` is specified on the command line.
-```yaml $(tag) == 'package-2020-06'
+``` yaml $(tag) == 'package-2020-06'
input-file:
- Microsoft.Network/stable/2020-06-01/applicationGateway.json
- Microsoft.Network/stable/2020-06-01/applicationSecurityGroup.json
@@ -86,6 +143,7 @@ input-file:
- Microsoft.Network/stable/2020-06-01/vmssPublicIpAddress.json
- Microsoft.Network/stable/2020-06-01/webapplicationfirewall.json
```
+
### Tag: package-2020-05
These settings apply only when `--tag=package-2020-05` is specified on the command line.
@@ -1400,6 +1458,23 @@ input-file:
- Microsoft.Network/preview/2015-05-01-preview/network.json
```
+### Tag: profile-hybrid-2020-09-01
+
+These settings apply only when `--tag=profile-hybrid-2020-09-01` is specified on the command line.
+
+``` yaml $(tag) == 'profile-hybrid-2020-09-01'
+input-file:
+ - Microsoft.Network/stable/2018-11-01/virtualNetworkGateway.json
+ - Microsoft.Network/stable/2018-11-01/loadBalancer.json
+ - Microsoft.Network/stable/2018-11-01/network.json
+ - Microsoft.Network/stable/2018-11-01/networkInterface.json
+ - Microsoft.Network/stable/2018-11-01/networkSecurityGroup.json
+ - Microsoft.Network/stable/2018-11-01/operation.json
+ - Microsoft.Network/stable/2018-11-01/publicIpAddress.json
+ - Microsoft.Network/stable/2018-11-01/routeTable.json
+ - Microsoft.Network/stable/2018-11-01/virtualNetwork.json
+```
+
## Suppression
``` yaml
diff --git a/specification/network/resource-manager/readme.python.md b/specification/network/resource-manager/readme.python.md
index d3fb338b28f4..2e7dcb9922df 100644
--- a/specification/network/resource-manager/readme.python.md
+++ b/specification/network/resource-manager/readme.python.md
@@ -27,6 +27,7 @@ Generate all API versions currently shipped for this package
```yaml $(multiapi) && !$(track2)
batch:
+ - tag: package-2020-07
- tag: package-2020-06
- tag: package-2020-05
- tag: package-2020-04
@@ -62,6 +63,7 @@ batch:
```yaml $(multiapi) && $(track2)
clear-output-folder: true
batch:
+ - tag: package-2020-07
- tag: package-2020-06
- tag: package-2020-05
- tag: package-2020-04
@@ -101,6 +103,19 @@ clear-output-folder: false
perform-load: false
```
+### Tag: package-2020-07 and python
+
+These settings apply only when `--tag=package-2020-07 --python` is specified on the command line.
+Please also specify `--python-sdks-folder=`.
+
+``` yaml $(tag) == 'package-2020-07'
+namespace: azure.mgmt.network.v2020_07_01
+output-folder: $(python-sdks-folder)/network/azure-mgmt-network/azure/mgmt/network/v2020_07_01
+python:
+ namespace: azure.mgmt.network.v2020_07_01
+ output-folder: $(python-sdks-folder)/network/azure-mgmt-network/azure/mgmt/network/v2020_07_01
+```
+
### Tag: package-2020-06 and python
These settings apply only when `--tag=package-2020-06 --python` is specified on the command line.
diff --git a/specification/network/resource-manager/readme.typescript.md b/specification/network/resource-manager/readme.typescript.md
index e842ddd53dee..10682e7ff19d 100644
--- a/specification/network/resource-manager/readme.typescript.md
+++ b/specification/network/resource-manager/readme.typescript.md
@@ -30,3 +30,18 @@ typescript:
batch:
- tag: profile-hybrid-2019-03-01
```
+
+### Profile: profile-hybrid-2020-09-01
+
+These settings apply only when `--profile=profile-hybrid-2020-09-01` is specified on the command line.
+
+``` yaml $(profile)=='profile-hybrid-2020-09-01'
+typescript:
+ package-name: "@azure/arm-network-profile-2020-09-01-hybrid"
+ output-folder: "$(typescript-sdks-folder)/sdk/network/arm-network-profile-2020-09-01-hybrid"
+ clear-output-folder: true
+ azure-arm: true
+ generate-metadata: true
+ batch:
+ - tag: profile-hybrid-2020-09-01
+```
diff --git a/specification/notificationhubs/resource-manager/readme.md b/specification/notificationhubs/resource-manager/readme.md
index 799fd3c01789..61cfa09502ac 100644
--- a/specification/notificationhubs/resource-manager/readme.md
+++ b/specification/notificationhubs/resource-manager/readme.md
@@ -120,7 +120,7 @@ These settings apply only when `--python` is specified on the command line.
Please also specify `--python-sdks-folder=`.
Use `--python-mode=update` if you already have a setup.py and just want to update the code itself.
-``` yaml $(python)
+``` yaml $(python) && !$(track2)
python-mode: create
python:
azure-arm: true
@@ -130,12 +130,27 @@ python:
package-name: azure-mgmt-notificationhubs
clear-output-folder: true
```
+
+``` yaml $(python) && $(track2)
+python-mode: create
+azure-arm: true
+license-header: MICROSOFT_MIT_NO_VERSION
+namespace: azure.mgmt.notificationhubs
+package-name: azure-mgmt-notificationhubs
+package-version: 7.0.0b1
+clear-output-folder: true
+```
+
``` yaml $(python) && $(python-mode) == 'update'
+no-namespace-folders: true
+output-folder: $(python-sdks-folder)/notificationhubs/azure-mgmt-notificationhubs/azure/mgmt/notificationhubs
python:
no-namespace-folders: true
output-folder: $(python-sdks-folder)/notificationhubs/azure-mgmt-notificationhubs/azure/mgmt/notificationhubs
```
``` yaml $(python) && $(python-mode) == 'create'
+basic-setup-py: true
+output-folder: $(python-sdks-folder)/notificationhubs/azure-mgmt-notificationhubs
python:
basic-setup-py: true
output-folder: $(python-sdks-folder)/notificationhubs/azure-mgmt-notificationhubs
diff --git a/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/preview/2019-08-01-preview/OperationalInsights.json b/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/preview/2019-08-01-preview/OperationalInsights.json
index e025c56880fb..ea4d00589be1 100644
--- a/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/preview/2019-08-01-preview/OperationalInsights.json
+++ b/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/preview/2019-08-01-preview/OperationalInsights.json
@@ -457,10 +457,6 @@
"type": "string",
"description": "The data export rule ID."
},
- "allTables": {
- "type": "boolean",
- "description": "When ‘true’, all workspace's tables are exported."
- },
"tableNames": {
"type": "array",
"items": {
diff --git a/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/preview/2019-08-01-preview/examples/DataExportCreateOrUpdate.json b/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/preview/2019-08-01-preview/examples/DataExportCreateOrUpdate.json
index 00e71ce6ab28..e9788f04a552 100644
--- a/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/preview/2019-08-01-preview/examples/DataExportCreateOrUpdate.json
+++ b/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/preview/2019-08-01-preview/examples/DataExportCreateOrUpdate.json
@@ -45,7 +45,6 @@
"resourceId": "/subscriptions/192b9f85-a39a-4276-b96d-d5cd351703f9/resourceGroups/OIAutoRest1234/providers/Microsoft.EventHub/namespaces/test",
"type": "EventHub"
},
- "allTables": false,
"tableNames": [
"Heartbeat"
],
diff --git a/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/stable/2020-08-01/DataExports.json b/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/stable/2020-08-01/DataExports.json
index 8303f60ff875..152b54ecaeeb 100644
--- a/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/stable/2020-08-01/DataExports.json
+++ b/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/stable/2020-08-01/DataExports.json
@@ -276,10 +276,6 @@
"type": "string",
"description": "The data export rule ID."
},
- "allTables": {
- "type": "boolean",
- "description": "When ‘true’, all workspace's tables are exported."
- },
"tableNames": {
"type": "array",
"items": {
diff --git a/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/stable/2020-08-01/examples/DataExportCreateOrUpdate.json b/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/stable/2020-08-01/examples/DataExportCreateOrUpdate.json
index b60c73ed69f2..28c8bc18f370 100644
--- a/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/stable/2020-08-01/examples/DataExportCreateOrUpdate.json
+++ b/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/stable/2020-08-01/examples/DataExportCreateOrUpdate.json
@@ -25,7 +25,6 @@
"resourceId": "/subscriptions/192b9f85-a39a-4276-b96d-d5cd351703f9/resourceGroups/OIAutoRest1234/providers/Microsoft.EventHub/namespaces/test",
"type": "EventHub"
},
- "allTables": false,
"tableNames": [
"Heartbeat"
],
@@ -46,7 +45,6 @@
"resourceId": "/subscriptions/192b9f85-a39a-4276-b96d-d5cd351703f9/resourceGroups/OIAutoRest1234/providers/Microsoft.EventHub/namespaces/test",
"type": "EventHub"
},
- "allTables": false,
"tableNames": [
"Heartbeat"
],
diff --git a/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/stable/2020-08-01/examples/DataExportGet.json b/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/stable/2020-08-01/examples/DataExportGet.json
index f07a5fd8ce5e..e890fd189d75 100644
--- a/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/stable/2020-08-01/examples/DataExportGet.json
+++ b/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/stable/2020-08-01/examples/DataExportGet.json
@@ -15,7 +15,6 @@
"resourceId": "/subscriptions/192b9f85-a39a-4276-b96d-d5cd351703f9/resourceGroups/OIAutoRest1234/providers/Microsoft.EventHub/namespaces/test",
"type": "EventHub"
},
- "allTables": false,
"tableNames": [
"Heartbeat"
],
diff --git a/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/stable/2020-08-01/examples/DataExportListByWorkspace.json b/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/stable/2020-08-01/examples/DataExportListByWorkspace.json
index 77e1bdde11af..8c082b51422c 100644
--- a/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/stable/2020-08-01/examples/DataExportListByWorkspace.json
+++ b/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/stable/2020-08-01/examples/DataExportListByWorkspace.json
@@ -16,7 +16,6 @@
"resourceId": "/subscriptions/192b9f85-a39a-4276-b96d-d5cd351703f9/resourceGroups/OIAutoRest1234/providers/Microsoft.EventHub/namespaces/test",
"type": "EventHub"
},
- "allTables": false,
"tableNames": [
"Heartbeat"
],
diff --git a/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/stable/2020-10-01/Clusters.json b/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/stable/2020-10-01/Clusters.json
new file mode 100644
index 000000000000..c826a847e3b9
--- /dev/null
+++ b/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/stable/2020-10-01/Clusters.json
@@ -0,0 +1,579 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "Azure Log Analytics",
+ "description": "Azure Log Analytics API reference",
+ "version": "2020-10-01"
+ },
+ "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.OperationalInsights/clusters": {
+ "get": {
+ "tags": [
+ "Clusters"
+ ],
+ "x-ms-examples": {
+ "ClustersGet": {
+ "$ref": "./examples/ClustersListByResourceGroup.json"
+ }
+ },
+ "operationId": "Clusters_ListByResourceGroup",
+ "description": "Gets Log Analytics clusters in a resource group.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK response definition.",
+ "schema": {
+ "$ref": "#/definitions/ClusterListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ClusterErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.OperationalInsights/clusters": {
+ "get": {
+ "tags": [
+ "Clusters"
+ ],
+ "x-ms-examples": {
+ "ClustersSubscriptionList": {
+ "$ref": "./examples/ClustersSubscriptionList.json"
+ }
+ },
+ "operationId": "Clusters_List",
+ "description": "Gets the Log Analytics clusters in a subscription.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK response definition.",
+ "schema": {
+ "$ref": "#/definitions/ClusterListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ClusterErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/clusters/{clusterName}": {
+ "put": {
+ "tags": [
+ "Clusters"
+ ],
+ "x-ms-examples": {
+ "ClustersCreate": {
+ "$ref": "./examples/ClustersCreate.json"
+ }
+ },
+ "operationId": "Clusters_CreateOrUpdate",
+ "description": "Create or update a Log Analytics cluster.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "clusterName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$",
+ "minLength": 4,
+ "maxLength": 63,
+ "description": "The name of the Log Analytics cluster."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/Cluster"
+ },
+ "description": "The parameters required to create or update a Log Analytics cluster."
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted response definition."
+ },
+ "200": {
+ "description": "OK response definition.",
+ "schema": {
+ "$ref": "#/definitions/Cluster"
+ }
+ },
+ "201": {
+ "description": "Created response definition.",
+ "schema": {
+ "$ref": "#/definitions/Cluster"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ClusterErrorResponse"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "delete": {
+ "tags": [
+ "Clusters"
+ ],
+ "x-ms-examples": {
+ "ClustersDelete": {
+ "$ref": "./examples/ClustersDelete.json"
+ }
+ },
+ "operationId": "Clusters_Delete",
+ "description": "Deletes a cluster instance.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "name": "clusterName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of the Log Analytics Cluster."
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK response definition."
+ },
+ "204": {
+ "description": "NoContent response definition."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ClusterErrorResponse"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "get": {
+ "tags": [
+ "Clusters"
+ ],
+ "x-ms-examples": {
+ "ClustersGet": {
+ "$ref": "./examples/ClustersGet.json"
+ }
+ },
+ "operationId": "Clusters_Get",
+ "description": "Gets a Log Analytics cluster instance.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "clusterName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of the Log Analytics Cluster."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK response definition.",
+ "schema": {
+ "$ref": "#/definitions/Cluster"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ClusterErrorResponse"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Clusters"
+ ],
+ "x-ms-examples": {
+ "ClustersPatch": {
+ "$ref": "./examples/ClustersUpdate.json"
+ }
+ },
+ "operationId": "Clusters_Update",
+ "description": "Updates a Log Analytics cluster.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "name": "clusterName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of the Log Analytics Cluster."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ClusterPatch"
+ },
+ "description": "The parameters required to patch a Log Analytics cluster."
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The existing cluster was successfully updated. Check provisioningStatus to see detailed status.",
+ "schema": {
+ "$ref": "#/definitions/Cluster"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ClusterErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "ClusterProperties": {
+ "properties": {
+ "clusterId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The ID associated with the cluster."
+ },
+ "provisioningState": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The provisioning state of the cluster.",
+ "enum": [
+ "Creating",
+ "Succeeded",
+ "Failed",
+ "Canceled",
+ "Deleting",
+ "ProvisioningAccount",
+ "Updating"
+ ],
+ "x-ms-enum": {
+ "name": "ClusterEntityStatus",
+ "modelAsString": true
+ }
+ },
+ "isDoubleEncryptionEnabled": {
+ "type": "boolean",
+ "readOnly": false,
+ "description": "Configures whether cluster will use double encryption. This Property can not be modified after cluster creation. Default value is 'true'",
+ "x-ms-mutability": [
+ "create"
+ ]
+ },
+ "isAvailabilityZonesEnabled": {
+ "type": "boolean",
+ "readOnly": false,
+ "description": "Sets whether the cluster will support availability zones. This can be set as true only in regions where Azure Data Explorer support Availability Zones. This Property can not be modified after cluster creation. Default value is 'true' if region supports Availability Zones."
+ },
+ "billingType": {
+ "type": "string",
+ "readOnly": false,
+ "description": "Configures whether billing will be only on the cluster or each workspace will be billed by its proportional use. This does not change the overall billing, only how it will be distributed. Default value is 'Cluster'",
+ "enum": [
+ "Cluster",
+ "Workspaces"
+ ],
+ "x-ms-enum": {
+ "name": "BillingType",
+ "modelAsString": true
+ }
+ },
+ "keyVaultProperties": {
+ "$ref": "#/definitions/keyVaultProperties",
+ "description": "The associated key properties."
+ }
+ },
+ "description": "Cluster properties."
+ },
+ "ClusterErrorResponse": {
+ "description": "Error response indicates that the service is not able to process the incoming request. The reason is provided in the error message.",
+ "type": "object",
+ "properties": {
+ "error": {
+ "description": "The details of the error.",
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "ClusterPatchProperties": {
+ "properties": {
+ "keyVaultProperties": {
+ "$ref": "#/definitions/keyVaultProperties",
+ "description": "The associated key properties."
+ }
+ },
+ "description": "Log Analytics cluster patch properties."
+ },
+ "ClusterPatch": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ClusterPatchProperties",
+ "description": "Log Analytics cluster properties."
+ },
+ "identity": {
+ "$ref": "#/definitions/Identity",
+ "description": "The identity of the resource."
+ },
+ "sku": {
+ "$ref": "#/definitions/ClusterSku",
+ "description": "The sku properties."
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "x-ms-mutability": [
+ "read",
+ "create",
+ "update"
+ ],
+ "description": "Resource tags."
+ }
+ },
+ "description": "The top level Log Analytics cluster resource container.",
+ "x-ms-azure-resource": true
+ },
+ "Cluster": {
+ "properties": {
+ "identity": {
+ "$ref": "#/definitions/Identity",
+ "description": "The identity of the resource."
+ },
+ "sku": {
+ "$ref": "#/definitions/ClusterSku",
+ "description": "The sku properties."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ClusterProperties",
+ "description": "Log Analytics cluster properties."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/TrackedResource"
+ }
+ ],
+ "description": "The top level Log Analytics cluster resource container."
+ },
+ "ClusterListResult": {
+ "properties": {
+ "nextLink": {
+ "description": "The link used to get the next page of recommendations.",
+ "type": "string"
+ },
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Cluster"
+ },
+ "description": "A list of Log Analytics clusters."
+ }
+ },
+ "description": "The list clusters operation response."
+ },
+ "keyVaultProperties": {
+ "description": "The key vault properties.",
+ "properties": {
+ "keyVaultUri": {
+ "description": "The Key Vault uri which holds they key associated with the Log Analytics cluster.",
+ "type": "string"
+ },
+ "keyName": {
+ "description": "The name of the key associated with the Log Analytics cluster.",
+ "type": "string"
+ },
+ "keyVersion": {
+ "description": "The version of the key associated with the Log Analytics cluster.",
+ "type": "string"
+ },
+ "rsaKeySize": {
+ "description": "Selected key minimum required key size.",
+ "type": "integer",
+ "format": "int32",
+ "x-ms-mutability": [
+ "create"
+ ]
+ }
+ }
+ },
+ "ClusterSku": {
+ "description": "The cluster sku definition.",
+ "properties": {
+ "capacity": {
+ "description": "The capacity value",
+ "type": "integer",
+ "format": "int64"
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of the SKU.",
+ "enum": [
+ "CapacityReservation"
+ ],
+ "x-ms-enum": {
+ "name": "ClusterSkuNameEnum",
+ "modelAsString": true
+ }
+ }
+ }
+ },
+ "Identity": {
+ "properties": {
+ "principalId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The principal ID of resource identity."
+ },
+ "tenantId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The tenant ID of resource."
+ },
+ "type": {
+ "type": "string",
+ "description": "The type of identity used for the resource. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities.",
+ "enum": [
+ "SystemAssigned",
+ "UserAssigned",
+ "None"
+ ],
+ "x-ms-enum": {
+ "name": "IdentityType",
+ "modelAsString": false
+ }
+ },
+ "userAssignedIdentities": {
+ "description": "The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.",
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/UserIdentityProperties"
+ }
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "description": "Identity for the resource."
+ },
+ "UserIdentityProperties": {
+ "type": "object",
+ "description": "User assigned identity properties.",
+ "properties": {
+ "principalId": {
+ "readOnly": true,
+ "description": "The principal id of user assigned identity.",
+ "type": "string"
+ },
+ "clientId": {
+ "readOnly": true,
+ "description": "The client id of user assigned identity.",
+ "type": "string"
+ }
+ }
+ }
+ },
+ "parameters": {}
+}
diff --git a/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/stable/2020-10-01/Operations.json b/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/stable/2020-10-01/Operations.json
new file mode 100644
index 000000000000..30447d99e87d
--- /dev/null
+++ b/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/stable/2020-10-01/Operations.json
@@ -0,0 +1,118 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "Azure Log Analytics",
+ "description": "Azure Log Analytics API reference",
+ "version": "2020-10-01"
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "security": [
+ {
+ "azure_auth": [
+ "user_impersonation"
+ ]
+ }
+ ],
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Azure Active Directory OAuth2 Flow",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
+ "paths": {
+ "/providers/Microsoft.OperationalInsights/operations": {
+ "get": {
+ "x-ms-examples": {
+ "Get specific operation status": {
+ "$ref": "./examples/OperationsListByTenant.json"
+ }
+ },
+ "tags": [
+ "Operations"
+ ],
+ "operationId": "Operations_List",
+ "description": "Lists all of the available OperationalInsights Rest API operations.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK response definition.",
+ "schema": {
+ "$ref": "#/definitions/OperationListResult"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "OperationListResult": {
+ "description": "Result of the request to list solution operations.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Operation"
+ },
+ "description": "List of solution operations supported by the OperationsManagement resource provider."
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true,
+ "description": "URL to get the next set of operation list results if there are any."
+ }
+ }
+ },
+ "Operation": {
+ "description": "Supported operation of OperationalInsights resource provider.",
+ "properties": {
+ "name": {
+ "description": "Operation name: {provider}/{resource}/{operation}",
+ "type": "string"
+ },
+ "display": {
+ "description": "Display metadata associated with the operation.",
+ "properties": {
+ "provider": {
+ "description": "Service provider: Microsoft OperationsManagement.",
+ "type": "string"
+ },
+ "resource": {
+ "description": "Resource on which the operation is performed etc.",
+ "type": "string"
+ },
+ "operation": {
+ "description": "Type of operation: get, read, delete, etc.",
+ "type": "string"
+ },
+ "description": {
+ "description": "Description of operation",
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ "parameters": {}
+}
diff --git a/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/stable/2020-10-01/examples/ClustersCreate.json b/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/stable/2020-10-01/examples/ClustersCreate.json
new file mode 100644
index 000000000000..7f6b58136f55
--- /dev/null
+++ b/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/stable/2020-10-01/examples/ClustersCreate.json
@@ -0,0 +1,63 @@
+{
+ "parameters": {
+ "resourceGroupName": "oiautorest6685",
+ "clusterName": "oiautorest6685",
+ "parameters": {
+ "sku": {
+ "name": "CapacityReservation",
+ "capacity": 1000
+ },
+ "location": "australiasoutheast",
+ "tags": {
+ "tag1": "val1"
+ }
+ },
+ "api-version": "2020-10-01",
+ "subscriptionId": "00000000-0000-0000-0000-00000000000"
+ },
+ "responses": {
+ "202": {},
+ "200": {
+ "body": {
+ "properties": {
+ "provisioningState": "ProvisioningAccount",
+ "clusterId": "5b02755b-5bf4-430c-9487-45502a2a7e62"
+ },
+ "id": "/subscriptions/594038b5-1093-476e-a366-482775671c11/resourcegroups/oiautorest6685/providers/microsoft.operationalinsights/clusters/oiautorest6685",
+ "identity": {
+ "principalId": "356d057d-cba5-44dd-8a30-b2e547bc416b",
+ "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "type": "SystemAssigned"
+ },
+ "sku": {
+ "name": "CapacityReservation",
+ "capacity": 1000
+ },
+ "name": "oiautorest6685",
+ "type": "Microsoft.OperationalInsights/clusters",
+ "location": "australiasoutheast"
+ }
+ },
+ "201": {
+ "body": {
+ "properties": {
+ "provisioningState": "ProvisioningAccount",
+ "clusterId": "5b02755b-5bf4-430c-9487-45502a2a7e62"
+ },
+ "id": "/subscriptions/594038b5-1093-476e-a366-482775671c11/resourcegroups/oiautorest6685/providers/microsoft.operationalinsights/clusters/oiautorest6685",
+ "identity": {
+ "principalId": "356d057d-cba5-44dd-8a30-b2e547bc416b",
+ "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "type": "SystemAssigned"
+ },
+ "sku": {
+ "name": "CapacityReservation",
+ "capacity": 1000
+ },
+ "name": "oiautorest6685",
+ "type": "Microsoft.OperationalInsights/clusters",
+ "location": "australiasoutheast"
+ }
+ }
+ }
+}
diff --git a/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/stable/2020-10-01/examples/ClustersDelete.json b/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/stable/2020-10-01/examples/ClustersDelete.json
new file mode 100644
index 000000000000..859ff3048e99
--- /dev/null
+++ b/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/stable/2020-10-01/examples/ClustersDelete.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "resourceGroupName": "oiautorest6685",
+ "clusterName": "oiautorest6685",
+ "api-version": "2020-10-01",
+ "subscriptionId": "00000000-0000-0000-0000-00000000000"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/stable/2020-10-01/examples/ClustersGet.json b/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/stable/2020-10-01/examples/ClustersGet.json
new file mode 100644
index 000000000000..1b68ff85aa4d
--- /dev/null
+++ b/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/stable/2020-10-01/examples/ClustersGet.json
@@ -0,0 +1,62 @@
+{
+ "parameters": {
+ "resourceGroupName": "oiautorest6685",
+ "clusterName": "oiautorest6685",
+ "api-version": "2020-10-01",
+ "subscriptionId": "00000000-0000-0000-0000-00000000000"
+ },
+ "responses": {
+ "200": {
+ "body": [
+ {
+ "properties": {
+ "keyVaultProperties": {
+ "keyVaultUri": "https://aztest2170.vault.azure.net",
+ "keyName": "aztest2170cert",
+ "keyVersion": "654ft6c4e63845cbb50fd6fg51540429"
+ },
+ "provisioningState": "Succeeded",
+ "clusterId": "5b02755b-5bf4-430c-9487-45502a2a7e62"
+ },
+ "id": "/subscriptions/594038b5-1093-476e-a366-482775671c11/resourcegroups/calbot-rg/providers/microsoft.operationalinsights/clusters/testresourcelock",
+ "identity": {
+ "principalId": "356d057d-cba5-44dd-8a30-b2e547bc416b",
+ "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "type": "SystemAssigned"
+ },
+ "sku": {
+ "name": "CapacityReservation",
+ "capacity": 1000
+ },
+ "name": "TestResourceLock",
+ "type": "Microsoft.OperationalInsights/clusters",
+ "location": "eastus"
+ },
+ {
+ "properties": {
+ "keyVaultProperties": {
+ "keyVaultUri": "https://aztest2170.vault.azure.net",
+ "keyName": "aztest2170cert",
+ "keyVersion": "654ft6c4e63845cbb50fd6fg51540429"
+ },
+ "provisioningState": "Succeeded",
+ "clusterId": "5b02755b-5bf4-430c-9487-45502a2a7e62"
+ },
+ "id": "/subscriptions/594038b5-1093-476e-a366-482775671c11/resourcegroups/mms-eus/providers/microsoft.operationalinsights/clusters/southukws",
+ "identity": {
+ "principalId": "356d057d-cba5-44dd-8a30-b2e547bc416b",
+ "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "type": "SystemAssigned"
+ },
+ "sku": {
+ "name": "CapacityReservation",
+ "capacity": 1000
+ },
+ "name": "SouthUKWS",
+ "type": "Microsoft.OperationalInsights/clusters",
+ "location": "East US"
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/stable/2020-10-01/examples/ClustersListByResourceGroup.json b/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/stable/2020-10-01/examples/ClustersListByResourceGroup.json
new file mode 100644
index 000000000000..0efad53c1fe0
--- /dev/null
+++ b/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/stable/2020-10-01/examples/ClustersListByResourceGroup.json
@@ -0,0 +1,37 @@
+{
+ "parameters": {
+ "resourceGroupName": "oiautorest6685",
+ "api-version": "2020-10-01",
+ "subscriptionId": "00000000-0000-0000-0000-00000000000"
+ },
+ "responses": {
+ "200": {
+ "body": [
+ {
+ "properties": {
+ "keyVaultProperties": {
+ "keyVaultUri": "https://aztest2170.vault.azure.net",
+ "keyName": "aztest2170cert",
+ "keyVersion": "654ft6c4e63845cbb50fd6fg51540429"
+ },
+ "provisioningState": "Succeeded",
+ "clusterId": "5b02755b-5bf4-430c-9487-45502a2a7e62"
+ },
+ "sku": {
+ "name": "CapacityReservation",
+ "capacity": 1000
+ },
+ "id": "/subscriptions/594038b5-1093-476e-a366-482775671c11/resourcegroups/calbot-rg/providers/microsoft.operationalinsights/clusters/testresourcelock",
+ "identity": {
+ "principalId": "356d057d-cba5-44dd-8a30-b2e547bc416b",
+ "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "type": "SystemAssigned"
+ },
+ "name": "TestResourceLock",
+ "type": "Microsoft.OperationalInsights/clusters",
+ "location": "eastus"
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/stable/2020-10-01/examples/ClustersSubscriptionList.json b/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/stable/2020-10-01/examples/ClustersSubscriptionList.json
new file mode 100644
index 000000000000..d37ffb861c5c
--- /dev/null
+++ b/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/stable/2020-10-01/examples/ClustersSubscriptionList.json
@@ -0,0 +1,36 @@
+{
+ "parameters": {
+ "api-version": "2020-10-01",
+ "subscriptionId": "00000000-0000-0000-0000-00000000000"
+ },
+ "responses": {
+ "200": {
+ "body": [
+ {
+ "properties": {
+ "keyVaultProperties": {
+ "keyVaultUri": "https://aztest2170.vault.azure.net",
+ "keyName": "aztest2170cert",
+ "keyVersion": "654ft6c4e63845cbb50fd6fg51540429"
+ },
+ "provisioningState": "Succeeded",
+ "clusterId": "5b02755b-5bf4-430c-9487-45502a2a7e62"
+ },
+ "sku": {
+ "name": "CapacityReservation",
+ "capacity": 1000
+ },
+ "id": "/subscriptions/594038b5-1093-476e-a366-482775671c11/resourcegroups/calbot-rg/providers/microsoft.operationalinsights/clusters/testresourcelock",
+ "identity": {
+ "principalId": "356d057d-cba5-44dd-8a30-b2e547bc416b",
+ "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "type": "SystemAssigned"
+ },
+ "name": "TestResourceLock",
+ "type": "Microsoft.OperationalInsights/clusters",
+ "location": "eastus"
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/stable/2020-10-01/examples/ClustersUpdate.json b/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/stable/2020-10-01/examples/ClustersUpdate.json
new file mode 100644
index 000000000000..186db9b99bba
--- /dev/null
+++ b/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/stable/2020-10-01/examples/ClustersUpdate.json
@@ -0,0 +1,64 @@
+{
+ "parameters": {
+ "resourceGroupName": "oiautorest6685",
+ "clusterName": "oiautorest6685",
+ "parameters": {
+ "identity": {
+ "type": "UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/00000000-0000-0000-0000-00000000000/resourcegroups/oiautorest6685/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myidentity": {}
+ }
+ },
+ "properties": {
+ "keyVaultProperties": {
+ "keyVaultUri": "https://aztest2170.vault.azure.net",
+ "keyName": "aztest2170cert",
+ "keyVersion": "654ft6c4e63845cbb50fd6fg51540429",
+ "rsaKeySize": 1024
+ }
+ },
+ "sku": {
+ "name": "CapacityReservation",
+ "capacity": 1000
+ },
+ "tags": {
+ "tag1": "val1"
+ }
+ },
+ "api-version": "2020-10-01",
+ "subscriptionId": "00000000-0000-0000-0000-00000000000"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "identity": {
+ "type": "UserAssigned",
+ "tenantId": "72f999bf-acf1-41af-91ab-2d7cd011db47",
+ "userAssignedIdentities": {
+ "/subscriptions/00000000-0000-0000-0000-00000000000/resourcegroups/oiautorest6685/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myidentity": {
+ "clientId": "eb3a943d-6b12-48a6-b585-ac2316e15ab2",
+ "principalId": "b31776d4-ee80-4860-9433-ec0101be1891"
+ }
+ }
+ },
+ "properties": {
+ "keyVaultProperties": {
+ "keyVaultUri": "https://aztest2170.vault.azure.net",
+ "keyName": "aztest2170cert",
+ "keyVersion": "654ft6c4e63845cbb50fd6fg51540429"
+ },
+ "provisioningState": "Succeeded",
+ "clusterId": "1c3f2afc-9ec1-4e74-bfe8-022b83bcd7b1"
+ },
+ "sku": {
+ "name": "CapacityReservation",
+ "capacity": 1000
+ },
+ "location": "australiasoutheast",
+ "tags": {
+ "tag1": "val1"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/stable/2020-10-01/examples/OperationsListByTenant.json b/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/stable/2020-10-01/examples/OperationsListByTenant.json
new file mode 100644
index 000000000000..98d884d810e2
--- /dev/null
+++ b/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/stable/2020-10-01/examples/OperationsListByTenant.json
@@ -0,0 +1,327 @@
+{
+ "parameters": {
+ "api-version": "2020-10-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "Microsoft.OperationalInsights/workspaces/write",
+ "display": {
+ "provider": "Microsoft Operational Insights",
+ "resource": "Workspace",
+ "operation": "Create Workspace",
+ "description": "Creates a new workspace or links to an existing workspace by providing the customer id from the existing workspace."
+ }
+ },
+ {
+ "name": "Microsoft.OperationalInsights/workspaces/read",
+ "display": {
+ "provider": "Microsoft Operational Insights",
+ "resource": "Workspace",
+ "operation": "Get Workspace",
+ "description": "Gets an existing workspace"
+ }
+ },
+ {
+ "name": "Microsoft.OperationalInsights/workspaces/delete",
+ "display": {
+ "provider": "Microsoft Operational Insights",
+ "resource": "Workspace",
+ "operation": "Delete Workspace",
+ "description": "Deletes a workspace. If the workspace was linked to an existing workspace at creation time then the workspace it was linked to is not deleted."
+ }
+ },
+ {
+ "name": "Microsoft.OperationalInsights/workspaces/generateregistrationcertificate/action",
+ "display": {
+ "provider": "Microsoft Operational Insights",
+ "resource": "Registration Certificate",
+ "operation": "Generates Registration Certificate for Workspace.",
+ "description": "Generates Registration Certificate for the workspace. This Certificate is used to connect Microsoft System Center Operation Manager to the workspace."
+ }
+ },
+ {
+ "name": "Microsoft.OperationalInsights/workspaces/storageinsightconfigs/write",
+ "display": {
+ "provider": "Microsoft Operational Insights",
+ "resource": "Storage Insight Configuration",
+ "operation": "Create Storage Configuration",
+ "description": "Creates a new storage configuration. These configurations are used to pull data from a location in an existing storage account."
+ }
+ },
+ {
+ "name": "Microsoft.OperationalInsights/workspaces/storageinsightconfigs/read",
+ "display": {
+ "provider": "Microsoft Operational Insights",
+ "resource": "Storage Insight Configuration",
+ "operation": "Get Storage Configuration",
+ "description": "Gets a storage configuration."
+ }
+ },
+ {
+ "name": "Microsoft.OperationalInsights/workspaces/storageinsightconfigs/delete",
+ "display": {
+ "provider": "Microsoft Operational Insights",
+ "resource": "Storage Insight Configuration",
+ "operation": "Delete Storage Configuration",
+ "description": "Deletes a storage configuration. This will stop Microsoft Operational Insights from reading data from the storage account."
+ }
+ },
+ {
+ "name": "Microsoft.OperationalInsights/register/action",
+ "display": {
+ "provider": "Microsoft Operational Insights",
+ "resource": "Register",
+ "operation": "Register a subscription to a resource provider.",
+ "description": "Register a subscription to a resource provider."
+ }
+ },
+ {
+ "name": "Microsoft.OperationalInsights/workspaces/sharedKeys/action",
+ "display": {
+ "provider": "Microsoft Operational Insights",
+ "resource": "Shared Keys",
+ "operation": "List Workspace Shared Keys",
+ "description": "Retrieves the shared keys for the workspace. These keys are used to connect Microsoft Operational Insights agents to the workspace."
+ }
+ },
+ {
+ "name": "Microsoft.OperationalInsights/workspaces/sharedKeys/read",
+ "display": {
+ "provider": "Microsoft Operational Insights",
+ "resource": "Shared Keys",
+ "operation": "List Workspace Shared Keys",
+ "description": "Retrieves the shared keys for the workspace. These keys are used to connect Microsoft Operational Insights agents to the workspace."
+ }
+ },
+ {
+ "name": "Microsoft.OperationalInsights/workspaces/listKeys/action",
+ "display": {
+ "provider": "Microsoft Operational Insights",
+ "resource": "List Keys",
+ "operation": "List Workspace Keys",
+ "description": "Retrieves the list keys for the workspace. These keys are used to connect Microsoft Operational Insights agents to the workspace."
+ }
+ },
+ {
+ "name": "Microsoft.OperationalInsights/workspaces/listKeys/read",
+ "display": {
+ "provider": "Microsoft Operational Insights",
+ "resource": "List Keys",
+ "operation": "List Workspace Keys",
+ "description": "Retrieves the list keys for the workspace. These keys are used to connect Microsoft Operational Insights agents to the workspace."
+ }
+ },
+ {
+ "name": "Microsoft.OperationalInsights/workspaces/managementGroups/read",
+ "display": {
+ "provider": "Microsoft Operational Insights",
+ "resource": "Management Group",
+ "operation": "Get Management Groups for Workspace",
+ "description": "Gets the names and metadata for System Center Operations Manager management groups connected to this workspace."
+ }
+ },
+ {
+ "name": "Microsoft.OperationalInsights/workspaces/usages/read",
+ "display": {
+ "provider": "Microsoft Operational Insights",
+ "resource": "Usage Metric",
+ "operation": "Get Usage Data for Workspace",
+ "description": "Gets usage data for a workspace including the amount of data read by the workspace."
+ }
+ },
+ {
+ "name": "Microsoft.OperationalInsights/workspaces/search/action",
+ "display": {
+ "provider": "Microsoft Operational Insights",
+ "resource": "Search",
+ "operation": "Search Workspace Data",
+ "description": "Executes a search query"
+ }
+ },
+ {
+ "name": "Microsoft.OperationalInsights/workspaces/schema/read",
+ "display": {
+ "provider": "Microsoft Operational Insights",
+ "resource": "Search Schema",
+ "operation": "Get Search Schema",
+ "description": "Gets the search schema for the workspace. Search schema includes the exposed fields and their types."
+ }
+ },
+ {
+ "name": "Microsoft.OperationalInsights/workspaces/datasources/read",
+ "display": {
+ "provider": "Microsoft Operational Insights",
+ "resource": "Data Source",
+ "operation": "Get datasources under a workspace.",
+ "description": "Get datasources under a workspace."
+ }
+ },
+ {
+ "name": "Microsoft.OperationalInsights/workspaces/datasources/write",
+ "display": {
+ "provider": "Microsoft Operational Insights",
+ "resource": "Data Source",
+ "operation": "Create/Update datasources under a workspace.",
+ "description": "Create/Update datasources under a workspace."
+ }
+ },
+ {},
+ {},
+ {},
+ {},
+ {
+ "name": "Microsoft.OperationalInsights/workspaces/notificationSettings/read",
+ "display": {
+ "provider": "Microsoft Operational Insights",
+ "resource": "Notification Settings",
+ "operation": "Get Notification Settings",
+ "description": "Get the user's notification settings for the workspace."
+ }
+ },
+ {
+ "name": "Microsoft.OperationalInsights/workspaces/notificationSettings/write",
+ "display": {
+ "provider": "Microsoft Operational Insights",
+ "resource": "Notification Settings",
+ "operation": "Put Notification Settings",
+ "description": "Set the user's notification settings for the workspace."
+ }
+ },
+ {},
+ {},
+ {},
+ {
+ "name": "Microsoft.OperationalInsights/workspaces/configurationScopes/delete",
+ "display": {
+ "provider": "Microsoft Operational Insights",
+ "resource": "Configuration Scope",
+ "operation": "Delete Configuration Scope",
+ "description": "Delete Configuration Scope"
+ }
+ },
+ {
+ "name": "Microsoft.OperationalInsights/workspaces/linkedServices/read",
+ "display": {
+ "provider": "Microsoft Operational Insights",
+ "resource": "Linked Services",
+ "operation": "Get linked services under given workspace.",
+ "description": "Get linked services under given workspace."
+ }
+ },
+ {
+ "name": "Microsoft.OperationalInsights/workspaces/linkedServices/write",
+ "display": {
+ "provider": "Microsoft Operational Insights",
+ "resource": "Linked Services",
+ "operation": "Create/Update linked services under given workspace.",
+ "description": "Create/Update linked services under given workspace."
+ }
+ },
+ {
+ "name": "Microsoft.OperationalInsights/workspaces/linkedServices/delete",
+ "display": {
+ "provider": "Microsoft Operational Insights",
+ "resource": "Linked Services",
+ "operation": "Delete linked services under given workspace.",
+ "description": "Delete linked services under given workspace."
+ }
+ },
+ {
+ "name": "Microsoft.OperationalInsights/workspaces/intelligencepacks/read",
+ "display": {
+ "provider": "Microsoft Operational Insights",
+ "resource": "Intelligence Packs",
+ "operation": "List Intelligence Packs",
+ "description": "Lists all intelligence packs that are visible for a given worksapce and also lists whether the pack is enabled or disabled for that workspace."
+ }
+ },
+ {
+ "name": "Microsoft.OperationalInsights/workspaces/intelligencepacks/enable/action",
+ "display": {
+ "provider": "Microsoft Operational Insights",
+ "resource": "Intelligence Packs",
+ "operation": "Enable Intelligence Pack",
+ "description": "Enables an intelligence pack for a given workspace."
+ }
+ },
+ {
+ "name": "Microsoft.OperationalInsights/workspaces/intelligencepacks/disable/action",
+ "display": {
+ "provider": "Microsoft Operational Insights",
+ "resource": "Intelligence Packs",
+ "operation": "Disable Intelligence Pack",
+ "description": "Disables an intelligence pack for a given workspace."
+ }
+ },
+ {
+ "name": "Microsoft.OperationalInsights/workspaces/analytics/query/action",
+ "display": {
+ "provider": "Microsoft Operational Insights",
+ "resource": "analytics",
+ "operation": "Search using new engine.",
+ "description": "Search using new engine."
+ }
+ },
+ {
+ "name": "Microsoft.OperationalInsights/workspaces/analytics/query/schema/read",
+ "display": {
+ "provider": "Microsoft Operational Insights",
+ "resource": "analytics",
+ "operation": "Get search schema V2.",
+ "description": "Get search schema V2."
+ }
+ },
+ {
+ "name": "Microsoft.OperationalInsights/workspaces/api/query/action",
+ "display": {
+ "provider": "Microsoft Operational Insights",
+ "resource": "analytics",
+ "operation": "Search using new engine.",
+ "description": "Search using new engine."
+ }
+ },
+ {
+ "name": "Microsoft.OperationalInsights/workspaces/api/query/schema/read",
+ "display": {
+ "provider": "Microsoft Operational Insights",
+ "resource": "analytics",
+ "operation": "Get search schema V2.",
+ "description": "Get search schema V2."
+ }
+ },
+ {
+ "name": "Microsoft.OperationalInsights/workspaces/purge/action",
+ "display": {
+ "provider": "Microsoft Operational Insights",
+ "resource": "analytics",
+ "operation": "Delete specified data from workspace",
+ "description": "Delete specified data from workspace"
+ }
+ },
+ {
+ "name": "Microsoft.OperationalInsights/linkTargets/read",
+ "display": {
+ "provider": "Microsoft Operational Insights",
+ "resource": "Unlinked Account",
+ "operation": "List Unlinked Accounts",
+ "description": "Lists existing accounts that are not associated with an Azure subscription. To link this Azure subscription to a workspace, use a customer id returned by this operation in the customer id property of the Create Workspace operation."
+ }
+ },
+ {
+ "name": "Microsoft.OperationalInsights/workspaces/metricDefinitions/read",
+ "display": {
+ "provider": "Microsoft Operational Insights",
+ "resource": "Metric Definitions",
+ "operation": "Metric Definition operation",
+ "description": "Get Metric Definitions under workspace"
+ }
+ }
+ ],
+ "nextLink": ""
+ }
+ }
+ }
+}
diff --git a/specification/operationalinsights/resource-manager/readme.azureresourceschema.md b/specification/operationalinsights/resource-manager/readme.azureresourceschema.md
index 461f8cc494d4..23723e41df5e 100644
--- a/specification/operationalinsights/resource-manager/readme.azureresourceschema.md
+++ b/specification/operationalinsights/resource-manager/readme.azureresourceschema.md
@@ -7,6 +7,7 @@ These settings apply only when `--azureresourceschema` is specified on the comma
``` yaml $(azureresourceschema) && $(multiapi)
batch:
- tag: schema-operationalinsights-2020-08-01
+ - tag: schema-operationalinsights-2020-10-01
- tag: schema-operationalinsights-2020-03-01-preview
- tag: schema-operationalinsights-2019-08-01-preview
- tag: schema-operationalinsights-2015-11-01-preview
@@ -45,6 +46,18 @@ input-file:
```
+### Tag: schema-operationalinsights-2020-10-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-operationalinsights-2020-10-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.OperationalInsights/stable/2020-10-01/Clusters.json
+ - Microsoft.OperationalInsights/stable/2020-10-01/Operations.json
+
+```
+
### Tag: schema-operationalinsights-2020-03-01-preview and azureresourceschema
``` yaml $(tag) == 'schema-operationalinsights-2020-03-01-preview' && $(azureresourceschema)
diff --git a/specification/operationalinsights/resource-manager/readme.go.md b/specification/operationalinsights/resource-manager/readme.go.md
index eed49f2b4926..83b539dd6d70 100644
--- a/specification/operationalinsights/resource-manager/readme.go.md
+++ b/specification/operationalinsights/resource-manager/readme.go.md
@@ -17,6 +17,7 @@ batch:
- tag: package-2015-11-preview
- tag: package-2019-08-preview
- tag: package-2020-03-preview
+ - tag: package-2020-10
- tag: package-2020-08
```
@@ -56,6 +57,15 @@ Please also specify `--go-sdk-folder=`.
+
+``` yaml $(tag) == 'package-2020-10' && $(go)
+output-folder: $(go-sdk-folder)/services/$(namespace)/mgmt/2020-10-01/$(namespace)
+```
+
### Tag: package-2020-08 and go
These settings apply only when `--tag=package-2020-08 --go` is specified on the command line.
diff --git a/specification/operationalinsights/resource-manager/readme.java.md b/specification/operationalinsights/resource-manager/readme.java.md
index 92bb1e7a2c03..fd9f56c9a162 100644
--- a/specification/operationalinsights/resource-manager/readme.java.md
+++ b/specification/operationalinsights/resource-manager/readme.java.md
@@ -27,6 +27,7 @@ batch:
- tag: package-2015-03
- tag: package-2015-11-preview
- tag: package-2020-03-preview
+ - tag: package-2020-10
- tag: package-2020-08
```
@@ -43,6 +44,19 @@ regenerate-manager: true
generate-interface: true
```
+### Tag: package-2020-10 and java
+
+These settings apply only when `--tag=package-2020-10 --java` is specified on the command line.
+Please also specify `--azure-libraries-for-java=`.
+
+``` yaml $(tag) == 'package-2020-10' && $(java) && $(multiapi)
+java:
+ namespace: com.microsoft.azure.management.loganalytics.v2020_10_01
+ output-folder: $(azure-libraries-for-java-folder)/sdk/loganalytics/mgmt-v2020_10_01
+regenerate-manager: true
+generate-interface: true
+```
+
### Tag: package-2020-03-preview and java
These settings apply only when `--tag=package-2020-03-preview --java` is specified on the command line.
diff --git a/specification/operationalinsights/resource-manager/readme.md b/specification/operationalinsights/resource-manager/readme.md
index 002899d9fe81..34124ff87b8d 100644
--- a/specification/operationalinsights/resource-manager/readme.md
+++ b/specification/operationalinsights/resource-manager/readme.md
@@ -91,6 +91,16 @@ input-file:
- Microsoft.OperationalInsights/preview/2020-03-01-preview/Tables.json
```
+### Tag: package-2020-10
+
+These settings apply only when `--tag=package-2020-10` is specified on the command line.
+
+``` yaml $(tag) == 'package-2020-10'
+input-file:
+- Microsoft.OperationalInsights/stable/2020-10-01/Clusters.json
+- Microsoft.OperationalInsights/stable/2020-10-01/Operations.json
+```
+
### Tag: package-2020-08
These settings apply only when `--tag=package-2020-08` is specified on the command line.
diff --git a/specification/policyinsights/resource-manager/readme.md b/specification/policyinsights/resource-manager/readme.md
index f347aea242be..42185241bb48 100644
--- a/specification/policyinsights/resource-manager/readme.md
+++ b/specification/policyinsights/resource-manager/readme.md
@@ -148,7 +148,7 @@ These settings apply only when `--python` is specified on the command line.
Please also specify `--python-sdks-folder=`.
Use `--python-mode=update` if you already have a setup.py and just want to update the code itself.
-``` yaml $(python)
+``` yaml $(python) && !$(track2)
python-mode: create
python:
azure-arm: true
@@ -158,12 +158,36 @@ python:
package-name: azure-mgmt-policyinsights
clear-output-folder: true
```
+
+``` yaml $(python) && $(track2)
+python-mode: create
+azure-arm: true
+license-header: MICROSOFT_MIT_NO_VERSION
+namespace: azure.mgmt.policyinsights
+package-name: azure-mgmt-policyinsights
+package-version: 1.0.0b1
+clear-output-folder: true
+
+directive:
+ - from: policyEvents.json
+ where: $.parameters.fromParameter
+ transform: $['x-ms-client-name'] = 'FromProperty'
+
+ - from: policyStates.json
+ where: $.parameters.fromParameter
+ transform: $['x-ms-client-name'] = 'FromProperty'
+```
+
``` yaml $(python) && $(python-mode) == 'update'
+no-namespace-folders: true
+output-folder: $(python-sdks-folder)/policyinsights/azure-mgmt-policyinsights/azure/mgmt/policyinsights
python:
no-namespace-folders: true
output-folder: $(python-sdks-folder)/policyinsights/azure-mgmt-policyinsights/azure/mgmt/policyinsights
```
``` yaml $(python) && $(python-mode) == 'create'
+basic-setup-py: true
+output-folder: $(python-sdks-folder)/policyinsights/azure-mgmt-policyinsights
python:
basic-setup-py: true
output-folder: $(python-sdks-folder)/policyinsights/azure-mgmt-policyinsights
diff --git a/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/preview/2020-11-05-preview/Databases.json b/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/preview/2020-11-05-preview/Databases.json
new file mode 100644
index 000000000000..91d2cfe912d6
--- /dev/null
+++ b/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/preview/2020-11-05-preview/Databases.json
@@ -0,0 +1,311 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "PostgreSQLServerManagementClient",
+ "description": "The Microsoft Azure management API provides create, read, update, and delete functionality for Azure PostgreSQL resources including servers, databases, firewall rules, VNET rules, security alert policies, log files and configurations with new business model.",
+ "version": "2020-11-05-preview"
+ },
+ "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.DBForPostgreSql/flexibleServers/{serverName}/databases/{databaseName}": {
+ "put": {
+ "tags": [
+ "Databases"
+ ],
+ "operationId": "Databases_Create",
+ "x-ms-examples": {
+ "Create a database": {
+ "$ref": "./examples/DatabaseCreate.json"
+ }
+ },
+ "description": "Creates a new database or updates an existing database.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServerNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DatabaseNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/Database"
+ },
+ "description": "The required parameters for creating or updating a database."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/Database"
+ }
+ },
+ "201": {
+ "description": "Created",
+ "schema": {
+ "$ref": "#/definitions/Database"
+ }
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "delete": {
+ "tags": [
+ "Databases"
+ ],
+ "operationId": "Databases_Delete",
+ "x-ms-examples": {
+ "Delete a database": {
+ "$ref": "./examples/DatabaseDelete.json"
+ }
+ },
+ "description": "Deletes a database.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServerNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DatabaseNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "204": {
+ "description": "NoContent"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "get": {
+ "tags": [
+ "Databases"
+ ],
+ "operationId": "Databases_Get",
+ "x-ms-examples": {
+ "Get a database": {
+ "$ref": "./examples/DatabaseGet.json"
+ }
+ },
+ "description": "Gets information about a database.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServerNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DatabaseNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/Database"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSql/flexibleServers/{serverName}/databases": {
+ "get": {
+ "tags": [
+ "Databases"
+ ],
+ "operationId": "Databases_ListByServer",
+ "x-ms-examples": {
+ "List databases in a server": {
+ "$ref": "./examples/DatabasesListByServer.json"
+ }
+ },
+ "description": "List all the databases in a given server.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServerNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/DatabaseListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "DatabaseProperties": {
+ "properties": {
+ "charset": {
+ "type": "string",
+ "description": "The charset of the database."
+ },
+ "collation": {
+ "type": "string",
+ "description": "The collation of the database."
+ }
+ },
+ "description": "The properties of a database."
+ },
+ "Database": {
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/DatabaseProperties",
+ "x-ms-client-flatten": true,
+ "description": "The properties of a database."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ProxyResource"
+ }
+ ],
+ "description": "Represents a Database."
+ },
+ "DatabaseListResult": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Database"
+ },
+ "description": "The list of databases housed in a server"
+ },
+ "nextLink": {
+ "description": "The link used to get the next page of databases.",
+ "type": "string"
+ }
+ },
+ "description": "A List of databases."
+ },
+ "CloudError": {
+ "x-ms-external": true,
+ "properties": {
+ "error": {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ErrorResponse"
+ }
+ },
+ "description": "An error response from the Batch service."
+ }
+ },
+ "parameters": {
+ "ServerNameParameter": {
+ "name": "serverName",
+ "in": "path",
+ "description": "The name of the server.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "DatabaseNameParameter": {
+ "name": "databaseName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the database.",
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/preview/2020-11-05-preview/examples/DatabaseCreate.json b/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/preview/2020-11-05-preview/examples/DatabaseCreate.json
new file mode 100644
index 000000000000..6aab697cd844
--- /dev/null
+++ b/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/preview/2020-11-05-preview/examples/DatabaseCreate.json
@@ -0,0 +1,40 @@
+{
+ "parameters": {
+ "databaseName": "db1",
+ "serverName": "testserver",
+ "resourceGroupName": "TestGroup",
+ "api-version": "2020-11-05-preview",
+ "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff",
+ "parameters": {
+ "properties": {
+ "charset": "utf8",
+ "collation": "en_US.utf8"
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/TestGroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/testserver/databases/db1",
+ "name": "db1",
+ "type": "Microsoft.DBforPostgreSQL/flexibleServers/databases",
+ "properties": {
+ "charset": "utf8",
+ "collation": "en_US.utf8"
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/TestGroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/testserver/databases/db1",
+ "name": "db1",
+ "type": "Microsoft.DBforPostgreSQL/flexibleServers/databases",
+ "properties": {
+ "charset": "utf8",
+ "collation": "en_US.utf8"
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/preview/2020-11-05-preview/examples/DatabaseDelete.json b/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/preview/2020-11-05-preview/examples/DatabaseDelete.json
new file mode 100644
index 000000000000..88e5b22a4519
--- /dev/null
+++ b/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/preview/2020-11-05-preview/examples/DatabaseDelete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "databaseName": "db1",
+ "serverName": "testserver",
+ "resourceGroupName": "TestGroup",
+ "api-version": "2020-11-05-preview",
+ "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/preview/2020-11-05-preview/examples/DatabaseGet.json b/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/preview/2020-11-05-preview/examples/DatabaseGet.json
new file mode 100644
index 000000000000..ec82b011b8ce
--- /dev/null
+++ b/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/preview/2020-11-05-preview/examples/DatabaseGet.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "databaseName": "db1",
+ "serverName": "testserver",
+ "resourceGroupName": "TestGroup",
+ "api-version": "2020-11-05-preview",
+ "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/TestGroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/testserver/databases/db1",
+ "name": "db1",
+ "type": "Microsoft.DBforPostgreSQL/flexibleServers/databases",
+ "properties": {
+ "charset": "utf8",
+ "collation": "en_US.utf8"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/preview/2020-11-05-preview/examples/DatabasesListByServer.json b/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/preview/2020-11-05-preview/examples/DatabasesListByServer.json
new file mode 100644
index 000000000000..047a261f9ea5
--- /dev/null
+++ b/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/preview/2020-11-05-preview/examples/DatabasesListByServer.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "serverName": "testserver",
+ "resourceGroupName": "TestGroup",
+ "api-version": "2020-11-05-preview",
+ "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/TestGroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/testserver/databases/db1",
+ "name": "db1",
+ "type": "Microsoft.DBforPostgreSQL/flexibleServers/databases",
+ "properties": {
+ "charset": "utf8",
+ "collation": "en_US.utf8"
+ }
+ },
+ {
+ "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/TestGroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/testserver/databases/db2",
+ "name": "db2",
+ "type": "Microsoft.DBforPostgreSQL/flexibleServers/databases",
+ "properties": {
+ "charset": "utf8",
+ "collation": "en_US.utf8"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/postgresql/resource-manager/readme.go.md b/specification/postgresql/resource-manager/readme.go.md
index 371cc48113e3..1c09c23611b1 100644
--- a/specification/postgresql/resource-manager/readme.go.md
+++ b/specification/postgresql/resource-manager/readme.go.md
@@ -12,12 +12,24 @@ go:
``` yaml $(go) && $(multiapi)
batch:
+ - tag: package-2020-11-05-preview
- tag: package-2020-02-14-preview
- tag: package-2020-01-01
- tag: package-2017-12-01-preview
- tag: package-2017-12-01
```
+### Tag: package-2020-11-05 and go
+
+These settings apply only when `--tag=package-2020-11-05-preview --go` is specified on the command line.
+Please also specify `--go-sdk-folder=`.
+
+``` yaml $(tag) == 'package-2020-11-05-preview' && $(go)
+rpname: postgresql
+namespace: postgresqlflexibleservers
+output-folder: $(go-sdk-folder)/services/preview/$(rpname)/mgmt/2020-11-05-preview/$(namespace)
+```
+
### Tag: package-2020-02-14 and go
These settings apply only when `--tag=package-2020-02-14-preview --go` is specified on the command line.
diff --git a/specification/postgresql/resource-manager/readme.md b/specification/postgresql/resource-manager/readme.md
index 9ec87bd2f7a0..f48a74cea5ca 100644
--- a/specification/postgresql/resource-manager/readme.md
+++ b/specification/postgresql/resource-manager/readme.md
@@ -30,6 +30,18 @@ description: The Microsoft Azure management API provides create, read, update, a
openapi-type: arm
tag: package-2020-01-01
```
+### Tag: package-2020-11-05-preview
+
+These settings apply only when `--tag=package-2020-11-05-preview` is specified on the command line.
+
+
+``` yaml $(tag) == 'package-2020-11-05-preview'
+input-file:
+- Microsoft.DBforPostgreSQL/preview/2020-02-14-preview/postgresql.json
+- Microsoft.DBforPostgreSQL/preview/2020-11-05-preview/Databases.json
+```
+
+
### Tag: package-2020-02-14-preview
These settings apply only when `--tag=package-2020-02-14-preview` is specified on the command line.
@@ -196,6 +208,7 @@ require: $(this-folder)/../../../profiles/readme.md
# all the input files across all versions
input-file:
+ - $(this-folder)/Microsoft.DBforPostgreSQL/preview/2020-11-05-preview/Databases.json
- $(this-folder)/Microsoft.DBforPostgreSQL/preview/2020-02-14-preview/postgresql.json
- $(this-folder)/Microsoft.DBforPostgreSQL/preview/2020-02-14-privatepreview/postgresql.json
- $(this-folder)/Microsoft.DBforPostgreSQL/preview/2020-01-01-privatepreview/DataEncryptionKeys.json
diff --git a/specification/postgresql/resource-manager/readme.python.md b/specification/postgresql/resource-manager/readme.python.md
index a0c7fe2f1884..61a53aefce6e 100644
--- a/specification/postgresql/resource-manager/readme.python.md
+++ b/specification/postgresql/resource-manager/readme.python.md
@@ -30,14 +30,14 @@ Generate all API versions currently shipped for this package
```yaml !$(track2)
batch:
- tag: package-2020-01-01
- - tag: package-2020-02-14-preview
+ - tag: package-2020-11-05-preview
```
```yaml $(track2)
clear-output-folder: true
batch:
- tag: package-2020-01-01
- - tag: package-2020-02-14-preview
+ - tag: package-2020-11-05-preview
```
### Tag: package-2020-01-01 and python
@@ -53,12 +53,12 @@ python:
output-folder: $(python-sdks-folder)/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql
```
-### Tag: package-2020-02-14-preview and python
+### Tag: package-2020-11-05-preview and python
-These settings apply only when `--tag=package-2020-02-14-preview --python` is specified on the command line.
+These settings apply only when `--tag=package-2020-11-05-preview --python` is specified on the command line.
Please also specify `--python-sdks-folder=`.
-``` yaml $(tag) == 'package-2020-02-14-preview' && $(python)
+``` yaml $(tag) == 'package-2020-11-05-preview' && $(python)
namespace: azure.mgmt.rdbms.postgresql_flexibleservers
output-folder: $(python-sdks-folder)/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers
python:
diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2020-10-01/cmk.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2020-10-01/cmk.json
new file mode 100644
index 000000000000..0e0e719287b9
--- /dev/null
+++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2020-10-01/cmk.json
@@ -0,0 +1,313 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2020-10-01",
+ "title": "RecoveryServicesBackupClient",
+ "x-ms-code-generation-settings": {
+ "internalConstructors": false
+ }
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "paths": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupEncryptionConfigs/backupResourceEncryptionConfig": {
+ "get": {
+ "tags": [
+ "BackupResourceEncryptionConfigs"
+ ],
+ "description": "Fetches Vault Encryption config.",
+ "operationId": "BackupResourceEncryptionConfigs_Get",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion"
+ },
+ {
+ "$ref": "#/parameters/VaultName"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/BackupResourceEncryptionConfigResource"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/NewErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Vault Encryption Configuration": {
+ "$ref": "./examples/BackupResourceEncryptionConfig_Get.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "BackupResourceEncryptionConfigs"
+ ],
+ "description": "Updates Vault encryption config.",
+ "operationId": "BackupResourceEncryptionConfigs_Update",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion"
+ },
+ {
+ "$ref": "#/parameters/VaultName"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "description": "Vault encryption input config request",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/BackupResourceEncryptionConfigResource"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/NewErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update Vault Encryption Configuration": {
+ "$ref": "./examples/BackupResourceEncryptionConfig_Put.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "NewErrorResponse": {
+ "properties": {
+ "error": {
+ "type": "object",
+ "description": "The error object.",
+ "properties": {
+ "code": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The error code."
+ },
+ "message": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The error message."
+ },
+ "target": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The error target."
+ },
+ "details": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NewErrorResponse"
+ },
+ "description": "The error details."
+ },
+ "additionalInfo": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ErrorAdditionalInfo"
+ },
+ "description": "The error additional info."
+ }
+ }
+ }
+ },
+ "description": "The resource management error response."
+ },
+ "BackupResourceEncryptionConfig": {
+ "type": "object",
+ "properties": {
+ "encryptionAtRestType": {
+ "description": "Encryption At Rest Type",
+ "enum": [
+ "Invalid",
+ "MicrosoftManaged",
+ "CustomerManaged"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "EncryptionAtRestType",
+ "modelAsString": true
+ }
+ },
+ "keyUri": {
+ "description": "Key Vault Key URI",
+ "type": "string"
+ },
+ "subscriptionId": {
+ "description": "Key Vault Subscription Id",
+ "type": "string"
+ },
+ "lastUpdateStatus": {
+ "enum": [
+ "Invalid",
+ "NotEnabled",
+ "PartiallySucceeded",
+ "PartiallyFailed",
+ "Failed",
+ "Succeeded"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "LastUpdateStatus",
+ "modelAsString": true
+ }
+ },
+ "infrastructureEncryptionState": {
+ "enum": [
+ "Invalid",
+ "Disabled",
+ "Enabled"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "InfrastructureEncryptionState",
+ "modelAsString": true
+ }
+ }
+ }
+ },
+ "BackupResourceEncryptionConfigResource": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/BackupResourceEncryptionConfig",
+ "description": "BackupResourceEncryptionConfigResource properties"
+ }
+ }
+ },
+ "Resource": {
+ "description": "ARM Resource.",
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "Resource Id represents the complete path to the resource.",
+ "type": "string",
+ "readOnly": true
+ },
+ "name": {
+ "description": "Resource name associated with the resource.",
+ "type": "string",
+ "readOnly": true
+ },
+ "type": {
+ "description": "Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/...",
+ "type": "string",
+ "readOnly": true
+ },
+ "location": {
+ "description": "Resource location.",
+ "type": "string"
+ },
+ "tags": {
+ "description": "Resource tags.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "eTag": {
+ "description": "Optional ETag.",
+ "type": "string"
+ }
+ },
+ "x-ms-azure-resource": true
+ }
+ },
+ "parameters": {
+ "SubscriptionId": {
+ "name": "subscriptionId",
+ "in": "path",
+ "description": "The subscription Id.",
+ "required": true,
+ "type": "string"
+ },
+ "ResourceGroupName": {
+ "name": "resourceGroupName",
+ "in": "path",
+ "description": "The name of the resource group where the recovery services vault is present.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "VaultName": {
+ "name": "vaultName",
+ "in": "path",
+ "description": "The name of the recovery services vault.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "ApiVersion": {
+ "name": "api-version",
+ "in": "query",
+ "description": "Client Api Version.",
+ "required": true,
+ "type": "string"
+ }
+ },
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "description": "Azure Active Directory OAuth2 Flow",
+ "flow": "implicit",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "scopes": {
+ "user_impersonation": "impersonate your user account."
+ }
+ }
+ },
+ "security": [
+ {
+ "azure_auth": [
+ "user_impersonation"
+ ]
+ }
+ ]
+}
diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2020-10-01/examples/BackupResourceEncryptionConfig_Get.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2020-10-01/examples/BackupResourceEncryptionConfig_Get.json
new file mode 100644
index 000000000000..fd552008d934
--- /dev/null
+++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2020-10-01/examples/BackupResourceEncryptionConfig_Get.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "rishgrp",
+ "vaultName": "rishTestVault",
+ "api-version": "2020-10-01"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rishgrp/providers/Microsoft.RecoveryServicesBVTD2/vaults/rishTestVault/backupEncryptionConfigs/backupResourceEncryptionConfig",
+ "name": "backupResourceEncryptionConfig",
+ "type": "Microsoft.RecoveryServices/vaults/backupEncryptionConfigs",
+ "properties": {
+ "encryptionAtRestType": "CustomerManaged",
+ "keyUri": "https://gktestkv1.vault.azure.net/keys/Test1/ed2e8cdc7f86477ebf0c6462b504a9ed",
+ "subscriptionId": "1a2311d9-66f5-47d3-a9fb-7a37da63934b",
+ "lastUpdateStatus": "Succeeded",
+ "infrastructureEncryptionState": "Disabled"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2020-10-01/examples/BackupResourceEncryptionConfig_Put.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2020-10-01/examples/BackupResourceEncryptionConfig_Put.json
new file mode 100644
index 000000000000..420d427326bf
--- /dev/null
+++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2020-10-01/examples/BackupResourceEncryptionConfig_Put.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "test-rg",
+ "vaultName": "source-rsv",
+ "api-version": "2020-10-01",
+ "parameters": {
+ "properties": {
+ "encryptionAtRestType": "CustomerManaged",
+ "keyUri": "https://gktestkv1.vault.azure.net/keys/Test1/ed2e8cdc7f86477ebf0c6462b504a9ed",
+ "subscriptionId": "1a2311d9-66f5-47d3-a9fb-7a37da63934b",
+ "infrastructureEncryptionState": "true"
+ }
+ }
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/recoveryservicesbackup/resource-manager/readme.md b/specification/recoveryservicesbackup/resource-manager/readme.md
index 31a1b9b4d5c3..243c5478a575 100644
--- a/specification/recoveryservicesbackup/resource-manager/readme.md
+++ b/specification/recoveryservicesbackup/resource-manager/readme.md
@@ -28,7 +28,7 @@ These are the global settings for the RecoveryServicesBackup API.
title: Recovery Services Backup Client
description: Open API 2.0 Specs for Azure RecoveryServices Backup service
openapi-type: arm
-tag: package-2020-07
+tag: package-2020-10
csharp-sdks-folder: ./Generated/CSharp
python-sdks-folder: ./Generated/Python
go-sdk-folder: ./Generated/Golang
@@ -45,6 +45,21 @@ model-validator: true
semantic-validator: true
message-format: json
```
+### Tag: package-2020-10
+
+These settings apply only when `--tag=package-2020-10` is specified on the command line.
+
+``` yaml $(tag) == 'package-2020-10'
+input-file:
+- Microsoft.RecoveryServices/stable/2020-10-01/cmk.json
+- Microsoft.RecoveryServices/stable/2020-07-01/bms.json
+- Microsoft.RecoveryServices/stable/2020-02-02/bms.json
+- Microsoft.RecoveryServices/stable/2019-06-15/bms.json
+- Microsoft.RecoveryServices/stable/2017-07-01/bms.json
+- Microsoft.RecoveryServices/stable/2016-12-01/bms.json
+- Microsoft.RecoveryServices/stable/2016-08-10/operations.json
+```
+
### Tag: package-2020-07
These settings apply only when `--tag=package-2020-07` is specified on the command line.
diff --git a/specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2018-07-10/examples/ReplicationProtectionIntents_Create.json b/specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2018-07-10/examples/ReplicationProtectionIntents_Create.json
new file mode 100644
index 000000000000..0c9d85e9c635
--- /dev/null
+++ b/specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2018-07-10/examples/ReplicationProtectionIntents_Create.json
@@ -0,0 +1,39 @@
+{
+ "parameters": {
+ "api-version": "2018-07-10",
+ "intentObjectName": "vm1",
+ "resourceName": "vault1",
+ "resourceGroupName": "resourceGroupPS1",
+ "subscriptionId": "509099b2-9d2c-4636-b43e-bd5cafb6be69",
+ "input": {
+ "properties": {
+ "providerSpecificDetails": {
+ "instanceType": "A2A",
+ "fabricObjectId": "/subscriptions/509099b2-9d2c-4636-b43e-bd5cafb6be69/resourceGroups/removeOne/providers/Microsoft.Compute/virtualMachines/vmPpgAv5",
+ "primaryLocation": "eastUs2",
+ "recoveryLocation": "westus2",
+ "recoverySubscriptionId": "ed5bcdf6-d61e-47bd-8ea9-f2bd379a2640",
+ "recoveryAvailabilityType": "Single",
+ "recoveryResourceGroupId": "/subscriptions/509099b2-9d2c-4636-b43e-bd5cafb6be69/resourceGroups/removeOne-asr"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/Subscriptions/509099b2-9d2c-4636-b43e-bd5cafb6be69/resourceGroups/2007vttp/providers/Microsoft.RecoveryServices/vaults/tp2007vt/replicationProtectionIntents/vm1",
+ "name": "vm1",
+ "type": "Microsoft.RecoveryServices/vaults/replicationProtectionIntents",
+ "properties": {
+ "friendlyName": "vm1",
+ "jobId": "/Subscriptions/d90d145a-4cdd-45a3-b2c4-971d69775278/resourceGroups/a2acl-rg-vault-prod-gip-ccy/providers/Microsoft.RecoveryServices/vaults/a2acl-vault-prod-gip-ccy/replicationJobs/02004ea7-d498-4bb4-bdeb-cdb611706867",
+ "jobState": "InProgress",
+ "providerSpecificDetails": {
+ "instanceType": "A2A"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2018-07-10/examples/ReplicationProtectionIntents_Get.json b/specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2018-07-10/examples/ReplicationProtectionIntents_Get.json
new file mode 100644
index 000000000000..db171d8f4779
--- /dev/null
+++ b/specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2018-07-10/examples/ReplicationProtectionIntents_Get.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "api-version": "2018-07-10",
+ "intentObjectName": "vm1",
+ "resourceName": "vault1",
+ "resourceGroupName": "resourceGroupPS1",
+ "subscriptionId": "509099b2-9d2c-4636-b43e-bd5cafb6be69"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/Subscriptions/509099b2-9d2c-4636-b43e-bd5cafb6be69/resourceGroups/2007vttp/providers/Microsoft.RecoveryServices/vaults/tp2007vt/replicationProtectionIntents/vm1",
+ "name": "vm1",
+ "type": "Microsoft.RecoveryServices/vaults/replicationProtectionIntents",
+ "properties": {
+ "friendlyName": "vm1",
+ "jobId": "/Subscriptions/d90d145a-4cdd-45a3-b2c4-971d69775278/resourceGroups/a2acl-rg-vault-prod-gip-ccy/providers/Microsoft.RecoveryServices/vaults/a2acl-vault-prod-gip-ccy/replicationJobs/02004ea7-d498-4bb4-bdeb-cdb611706867",
+ "jobState": "InProgress",
+ "providerSpecificDetails": {
+ "instanceType": "A2A",
+ "fabricObjectId": "/subscriptions/509099b2-9d2c-4636-b43e-bd5cafb6be69/resourceGroups/removeOne/providers/Microsoft.Compute/virtualMachines/vmPpgAv5",
+ "primaryLocation": "eastUs2",
+ "recoveryLocation": "westus2",
+ "recoverySubscriptionId": "ed5bcdf6-d61e-47bd-8ea9-f2bd379a2640",
+ "recoveryAvailabilityType": "Single"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2018-07-10/examples/ReplicationProtectionIntents_List.json b/specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2018-07-10/examples/ReplicationProtectionIntents_List.json
new file mode 100644
index 000000000000..58722a7381dd
--- /dev/null
+++ b/specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2018-07-10/examples/ReplicationProtectionIntents_List.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "api-version": "2018-07-10",
+ "resourceName": "2007vttp",
+ "resourceGroupName": "resourceGroupPS1",
+ "subscriptionId": "509099b2-9d2c-4636-b43e-bd5cafb6be69"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/Subscriptions/509099b2-9d2c-4636-b43e-bd5cafb6be69/resourceGroups/2007vttp/providers/Microsoft.RecoveryServices/vaults/tp2007vt/replicationProtectionIntents/vm1",
+ "name": "vm1",
+ "type": "Microsoft.RecoveryServices/vaults/replicationProtectionIntents",
+ "properties": {
+ "friendlyName": "vm1",
+ "jobId": "/Subscriptions/d90d145a-4cdd-45a3-b2c4-971d69775278/resourceGroups/a2acl-rg-vault-prod-gip-ccy/providers/Microsoft.RecoveryServices/vaults/a2acl-vault-prod-gip-ccy/replicationJobs/02004ea7-d498-4bb4-bdeb-cdb611706867",
+ "jobState": "InProgress",
+ "providerSpecificDetails": {
+ "instanceType": "A2A",
+ "fabricObjectId": "/subscriptions/509099b2-9d2c-4636-b43e-bd5cafb6be69/resourceGroups/removeOne/providers/Microsoft.Compute/virtualMachines/vmPpgAv5",
+ "primaryLocation": "eastUs2",
+ "recoveryLocation": "westus2",
+ "recoverySubscriptionId": "ed5bcdf6-d61e-47bd-8ea9-f2bd379a2640",
+ "recoveryAvailabilityType": "Single"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2018-07-10/service.json b/specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2018-07-10/service.json
index b0a4baffd3a6..6b1cf26f5dc2 100644
--- a/specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2018-07-10/service.json
+++ b/specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2018-07-10/service.json
@@ -4070,6 +4070,153 @@
}
}
},
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationProtectionIntents": {
+ "get": {
+ "tags": [
+ "ReplicationProtectionIntents"
+ ],
+ "summary": "Gets the list of replication protection intent objects.",
+ "description": "Gets the list of ASR replication protection intent objects in the vault.",
+ "operationId": "ReplicationProtectionIntents_List",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion"
+ },
+ {
+ "$ref": "#/parameters/ResourceName"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ReplicationProtectionIntentCollection"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Gets the list of replication protection intent objects.": {
+ "$ref": "./examples/ReplicationProtectionIntents_List.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationProtectionIntents/{intentObjectName}": {
+ "get": {
+ "tags": [
+ "ReplicationProtectionIntent"
+ ],
+ "summary": "Gets the details of a Replication protection intent item.",
+ "description": "Gets the details of an ASR replication protection intent.",
+ "operationId": "ReplicationProtectionIntents_Get",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion"
+ },
+ {
+ "$ref": "#/parameters/ResourceName"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "name": "intentObjectName",
+ "in": "path",
+ "description": "Replication protection intent name.",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ReplicationProtectionIntent"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Gets the details of a Replication protection intent item.": {
+ "$ref": "./examples/ReplicationProtectionIntents_Get.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "ReplicationProtectionIntent"
+ ],
+ "summary": "Create protection intent Resource.",
+ "description": "The operation to create an ASR replication protection intent item.",
+ "operationId": "ReplicationProtectionIntents_Create",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion"
+ },
+ {
+ "$ref": "#/parameters/ResourceName"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "name": "intentObjectName",
+ "in": "path",
+ "description": "A name for the replication protection item.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "input",
+ "in": "body",
+ "description": "Create Protection Intent Input.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CreateProtectionIntentInput"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ReplicationProtectionIntent"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create protection intent Resource.": {
+ "$ref": "./examples/ReplicationProtectionIntents_Create.json"
+ }
+ }
+ }
+ },
"/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectionContainerMappings/{mappingName}": {
"get": {
"tags": [
@@ -7468,6 +7615,125 @@
},
"x-ms-discriminator-value": "A2A"
},
+ "A2ACreateProtectionIntentInput": {
+ "description": "A2A create protection intent input.",
+ "required": [
+ "fabricObjectId",
+ "primaryLocation",
+ "recoveryLocation",
+ "recoverySubscriptionId",
+ "recoveryAvailabilityType",
+ "recoveryResourceGroupId"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/CreateProtectionIntentProviderSpecificDetails"
+ }
+ ],
+ "properties": {
+ "fabricObjectId": {
+ "description": "The fabric specific object Id of the virtual machine.",
+ "type": "string"
+ },
+ "primaryLocation": {
+ "description": "The primary location for the virtual machine.",
+ "type": "string"
+ },
+ "recoveryLocation": {
+ "description": "The recovery location for the virtual machine.",
+ "type": "string"
+ },
+ "recoverySubscriptionId": {
+ "description": "The recovery subscription Id of the virtual machine.",
+ "type": "string"
+ },
+ "recoveryAvailabilityType": {
+ "description": "The recovery availability type of the virtual machine.",
+ "enum": [
+ "Single",
+ "AvailabilitySet",
+ "AvailabilityZone"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "A2ARecoveryAvailabilityType",
+ "modelAsString": true
+ }
+ },
+ "protectionProfileCustomInput": {
+ "$ref": "#/definitions/ProtectionProfileCustomDetails",
+ "description": "The protection profile custom inputs."
+ },
+ "recoveryResourceGroupId": {
+ "description": "The recovery resource group Id. Valid for V2 scenarios.",
+ "type": "string"
+ },
+ "primaryStagingStorageAccountCustomInput": {
+ "$ref": "#/definitions/StorageAccountCustomDetails",
+ "description": "The primary staging storage account input."
+ },
+ "recoveryAvailabilitySetCustomInput": {
+ "$ref": "#/definitions/RecoveryAvailabilitySetCustomDetails",
+ "description": "The recovery availability set input."
+ },
+ "recoveryVirtualNetworkCustomInput": {
+ "$ref": "#/definitions/RecoveryVirtualNetworkCustomDetails",
+ "description": "The recovery virtual network input."
+ },
+ "recoveryProximityPlacementGroupCustomInput": {
+ "$ref": "#/definitions/RecoveryProximityPlacementGroupCustomDetails",
+ "description": "The recovery proximity placement group custom input."
+ },
+ "autoProtectionOfDataDisk": {
+ "description": "A value indicating whether the auto protection is enabled.",
+ "enum": [
+ "Disabled",
+ "Enabled"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "AutoProtectionOfDataDisk",
+ "modelAsString": true
+ }
+ },
+ "vmDisks": {
+ "description": "The list of vm disk inputs.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/A2AProtectionIntentDiskInputDetails"
+ }
+ },
+ "vmManagedDisks": {
+ "description": "The list of vm managed disk inputs.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/A2AProtectionIntentManagedDiskInputDetails"
+ }
+ },
+ "multiVmGroupName": {
+ "description": "The multi vm group name.",
+ "type": "string"
+ },
+ "multiVmGroupId": {
+ "description": "The multi vm group id.",
+ "type": "string"
+ },
+ "recoveryBootDiagStorageAccount": {
+ "$ref": "#/definitions/StorageAccountCustomDetails",
+ "description": "The boot diagnostic storage account."
+ },
+ "diskEncryptionInfo": {
+ "$ref": "#/definitions/DiskEncryptionInfo",
+ "description": "The recovery disk encryption information (for two pass flows)."
+ },
+ "recoveryAvailabilityZone": {
+ "description": "The recovery availability zone.",
+ "type": "string"
+ }
+ },
+ "x-ms-discriminator-value": "A2A"
+ },
"A2AEnableProtectionInput": {
"description": "A2A enable protection input.",
"type": "object",
@@ -7926,6 +8192,64 @@
},
"x-ms-discriminator-value": "A2A"
},
+ "A2AProtectionIntentDiskInputDetails": {
+ "description": "Azure VM disk input details.",
+ "required": [
+ "diskUri"
+ ],
+ "type": "object",
+ "properties": {
+ "diskUri": {
+ "description": "The disk Uri.",
+ "type": "string"
+ },
+ "recoveryAzureStorageAccountCustomInput": {
+ "$ref": "#/definitions/StorageAccountCustomDetails",
+ "description": "The recovery VHD storage account input."
+ },
+ "primaryStagingStorageAccountCustomInput": {
+ "$ref": "#/definitions/StorageAccountCustomDetails",
+ "description": "The primary staging storage account input."
+ }
+ }
+ },
+ "A2AProtectionIntentManagedDiskInputDetails": {
+ "description": "Azure VM managed disk input details.",
+ "required": [
+ "diskId"
+ ],
+ "type": "object",
+ "properties": {
+ "diskId": {
+ "description": "The disk Id.",
+ "type": "string"
+ },
+ "primaryStagingStorageAccountCustomInput": {
+ "$ref": "#/definitions/StorageAccountCustomDetails",
+ "description": "The primary staging storage account input."
+ },
+ "recoveryResourceGroupCustomInput": {
+ "$ref": "#/definitions/RecoveryResourceGroupCustomDetails",
+ "description": "The recovery resource group input."
+ },
+ "recoveryReplicaDiskAccountType": {
+ "description": "The replica disk type. Its an optional value and will be same as source disk type if not user provided.",
+ "type": "string"
+ },
+ "recoveryTargetDiskAccountType": {
+ "description": "The target disk type after failover. Its an optional value and will be same as source disk type if not user provided.",
+ "type": "string"
+ },
+ "recoveryDiskEncryptionSetId": {
+ "description": "The recovery disk encryption set Id.",
+ "type": "string"
+ },
+ "diskEncryptionInfo": {
+ "$ref": "#/definitions/DiskEncryptionInfo",
+ "description": "The recovery disk encryption information (for one / single pass flows)."
+ }
+ }
+ },
"A2ARecoveryPointDetails": {
"description": "A2A provider specific recovery point details.",
"type": "object",
@@ -8197,6 +8521,120 @@
},
"x-ms-discriminator-value": "A2A"
},
+ "A2AReplicationIntentDetails": {
+ "description": "A2A provider specific settings.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ReplicationProtectionIntentProviderSpecificSettings"
+ }
+ ],
+ "properties": {
+ "fabricObjectId": {
+ "description": "The fabric specific object Id of the virtual machine.",
+ "type": "string"
+ },
+ "policyId": {
+ "description": "The ID of Policy governing this PE.",
+ "type": "string"
+ },
+ "primaryLocation": {
+ "description": "The primary location for the virtual machine.",
+ "type": "string"
+ },
+ "recoveryLocation": {
+ "description": "The recovery location for the virtual machine.",
+ "type": "string"
+ },
+ "recoverySubscriptionId": {
+ "description": "The recovery subscription Id of the virtual machine.",
+ "type": "string"
+ },
+ "primaryFabricFriendlyName": {
+ "description": "The recovery fabric Name.",
+ "type": "string"
+ },
+ "recoveryFabricFriendlyName": {
+ "description": "The recovery fabric Name.",
+ "type": "string"
+ },
+ "primaryContainerFriendlyName": {
+ "description": "The primary container Name.",
+ "type": "string"
+ },
+ "recoveryContainerFriendlyName": {
+ "description": "The recovery container Name.",
+ "type": "string"
+ },
+ "recoveryAvailabilityType": {
+ "description": "The recovery availability type of the virtual machine.",
+ "type": "string"
+ },
+ "vmDisks": {
+ "description": "The list of vm disk details.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/A2AVmDiskDetails"
+ }
+ },
+ "vmManagedDisks": {
+ "description": "The list of vm managed disk details.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/A2AVmManagedDiskDetails"
+ }
+ },
+ "recoveryResourceGroupId": {
+ "description": "The recovery resource group id.",
+ "type": "string"
+ },
+ "recoveryAvailabilitySetId": {
+ "description": "The recovery availability set Id.",
+ "type": "string"
+ },
+ "recoveryVirtualNetworkId": {
+ "description": "The recovery virtual network Id.",
+ "type": "string"
+ },
+ "recoveryProximityPlacementGroupId": {
+ "description": "The recovery proximity placement group custom details.",
+ "type": "string"
+ },
+ "autoProtectionOfDataDiskStatus": {
+ "description": "A value indicating whether the auto protection is enabled.",
+ "enum": [
+ "Disabled",
+ "Enabled"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "AutoProtectionOfDataDiskStatus",
+ "modelAsString": true
+ }
+ },
+ "multiVmGroupName": {
+ "description": "The multi vm group name.",
+ "type": "string"
+ },
+ "multiVmGroupId": {
+ "description": "The multi vm group id.",
+ "type": "string"
+ },
+ "recoveryBootDiagStorageAccountId": {
+ "description": "The boot diagnostic storage account.",
+ "type": "string"
+ },
+ "diskEncryptionInfo": {
+ "$ref": "#/definitions/DiskEncryptionInfo",
+ "description": "The recovery disk encryption information (for two pass flows)."
+ },
+ "recoveryAvailabilityZone": {
+ "description": "The recovery availability zone.",
+ "type": "string"
+ }
+ },
+ "x-ms-discriminator-value": "A2A"
+ },
"A2AReprotectInput": {
"description": "Azure specific reprotect input.",
"type": "object",
@@ -8416,6 +8854,24 @@
},
"x-ms-discriminator-value": "A2A"
},
+ "A2AVmDiskDetails": {
+ "description": "Azure VM disk details.",
+ "type": "object",
+ "properties": {
+ "diskUri": {
+ "description": "The disk Uri.",
+ "type": "string"
+ },
+ "recoveryAzureStorageAccountId": {
+ "description": "The recovery VHD storage account Id.",
+ "type": "string"
+ },
+ "primaryStagingAzureStorageAccountId": {
+ "description": "The primary staging storage account Id.",
+ "type": "string"
+ }
+ }
+ },
"A2AVmDiskInputDetails": {
"description": "Azure VM disk input details.",
"type": "object",
@@ -8424,13 +8880,47 @@
"description": "The disk Uri.",
"type": "string"
},
- "recoveryAzureStorageAccountId": {
- "description": "The recovery VHD storage account Id.",
+ "recoveryAzureStorageAccountId": {
+ "description": "The recovery VHD storage account Id.",
+ "type": "string"
+ },
+ "primaryStagingAzureStorageAccountId": {
+ "description": "The primary staging storage account Id.",
+ "type": "string"
+ }
+ }
+ },
+ "A2AVmManagedDiskDetails": {
+ "description": "Azure VM managed disk input details.",
+ "type": "object",
+ "properties": {
+ "diskId": {
+ "description": "The disk Id.",
+ "type": "string"
+ },
+ "primaryStagingAzureStorageAccountId": {
+ "description": "The primary staging storage account Arm Id.",
+ "type": "string"
+ },
+ "recoveryResourceGroupId": {
+ "description": "The target resource group Arm Id.",
"type": "string"
},
- "primaryStagingAzureStorageAccountId": {
- "description": "The primary staging storage account Id.",
+ "recoveryReplicaDiskAccountType": {
+ "description": "The replica disk type.",
"type": "string"
+ },
+ "recoveryTargetDiskAccountType": {
+ "description": "The target disk type after failover.",
+ "type": "string"
+ },
+ "recoveryDiskEncryptionSetId": {
+ "description": "The recovery disk encryption set Id.",
+ "type": "string"
+ },
+ "diskEncryptionInfo": {
+ "$ref": "#/definitions/DiskEncryptionInfo",
+ "description": "The recovery disk encryption information (for one / single pass flows)."
}
}
},
@@ -9213,6 +9703,37 @@
}
}
},
+ "CreateProtectionIntentInput": {
+ "description": "Create protection intent input.",
+ "type": "object",
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/CreateProtectionIntentProperties",
+ "description": "Create protection intent input properties."
+ }
+ }
+ },
+ "CreateProtectionIntentProperties": {
+ "description": "Create protection intent input properties.",
+ "type": "object",
+ "properties": {
+ "providerSpecificDetails": {
+ "$ref": "#/definitions/CreateProtectionIntentProviderSpecificDetails",
+ "description": "The ReplicationProviderInput. For A2A provider, it will be A2ACreateProtectionIntentInput object. For other providers, it can be null."
+ }
+ }
+ },
+ "CreateProtectionIntentProviderSpecificDetails": {
+ "description": "Create protection intent provider specific input.",
+ "type": "object",
+ "properties": {
+ "instanceType": {
+ "description": "The class type.",
+ "type": "string"
+ }
+ },
+ "discriminator": "instanceType"
+ },
"CreateRecoveryPlanInput": {
"description": "Create recovery plan input class.",
"required": [
@@ -9790,6 +10311,115 @@
},
"discriminator": "instanceType"
},
+ "ExistingProtectionProfile": {
+ "description": "Existing storage account input.",
+ "required": [
+ "protectionProfileId"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ProtectionProfileCustomDetails"
+ }
+ ],
+ "properties": {
+ "protectionProfileId": {
+ "description": "The protection profile Arm Id. Throw error, if resource does not exists.",
+ "type": "string"
+ }
+ },
+ "x-ms-discriminator-value": "Existing"
+ },
+ "ExistingRecoveryAvailabilitySet": {
+ "description": "Existing recovery availability set input.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/RecoveryAvailabilitySetCustomDetails"
+ }
+ ],
+ "properties": {
+ "recoveryAvailabilitySetId": {
+ "description": "The recovery availability set Id. Will throw error, if resource does not exist.",
+ "type": "string"
+ }
+ },
+ "x-ms-discriminator-value": "Existing"
+ },
+ "ExistingRecoveryProximityPlacementGroup": {
+ "description": "Existing recovery proximity placement group input.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/RecoveryProximityPlacementGroupCustomDetails"
+ }
+ ],
+ "properties": {
+ "recoveryProximityPlacementGroupId": {
+ "description": "The recovery proximity placement group Id. Will throw error, if resource does not exist.",
+ "type": "string"
+ }
+ },
+ "x-ms-discriminator-value": "Existing"
+ },
+ "ExistingRecoveryRecoveryResourceGroup": {
+ "description": "Existing recovery resource group input.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/RecoveryResourceGroupCustomDetails"
+ }
+ ],
+ "properties": {
+ "recoveryResourceGroupId": {
+ "description": "The recovery resource group Id. Valid for V2 scenarios.",
+ "type": "string"
+ }
+ },
+ "x-ms-discriminator-value": "Existing"
+ },
+ "ExistingRecoveryVirtualNetwork": {
+ "description": "Existing recovery virtual network input.",
+ "required": [
+ "recoveryVirtualNetworkId"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/RecoveryVirtualNetworkCustomDetails"
+ }
+ ],
+ "properties": {
+ "recoveryVirtualNetworkId": {
+ "description": "The recovery virtual network Id. Will throw error, if resource does not exist.",
+ "type": "string"
+ },
+ "recoverySubnetName": {
+ "description": "The recovery subnet name.",
+ "type": "string"
+ }
+ },
+ "x-ms-discriminator-value": "Existing"
+ },
+ "ExistingStorageAccount": {
+ "description": "Existing storage account input.",
+ "required": [
+ "azureStorageAccountId"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/StorageAccountCustomDetails"
+ }
+ ],
+ "properties": {
+ "azureStorageAccountId": {
+ "description": "The storage account Arm Id. Throw error, if resource does not exists.",
+ "type": "string"
+ }
+ },
+ "x-ms-discriminator-value": "Existing"
+ },
"ExportJobDetails": {
"description": "This class represents details for export jobs workflow.",
"type": "object",
@@ -15047,6 +15677,53 @@
}
}
},
+ "NewProtectionProfile": {
+ "description": "New Protection profile input.",
+ "required": [
+ "policyName",
+ "multiVmSyncStatus"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ProtectionProfileCustomDetails"
+ }
+ ],
+ "properties": {
+ "policyName": {
+ "description": "The protection profile input.",
+ "type": "string"
+ },
+ "recoveryPointHistory": {
+ "format": "int32",
+ "description": "The duration in minutes until which the recovery points need to be stored.",
+ "type": "integer"
+ },
+ "crashConsistentFrequencyInMinutes": {
+ "format": "int32",
+ "description": "The crash consistent snapshot frequency (in minutes).",
+ "type": "integer"
+ },
+ "appConsistentFrequencyInMinutes": {
+ "format": "int32",
+ "description": "The app consistent snapshot frequency (in minutes).",
+ "type": "integer"
+ },
+ "multiVmSyncStatus": {
+ "description": "A value indicating whether multi-VM sync has to be enabled. Value should be 'Enabled' or 'Disabled'.",
+ "enum": [
+ "Enable",
+ "Disable"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "SetMultiVmSyncStatus",
+ "modelAsString": true
+ }
+ }
+ },
+ "x-ms-discriminator-value": "New"
+ },
"Object": {
"description": "Base of all objects.",
"type": "object",
@@ -15859,6 +16536,17 @@
}
}
},
+ "ProtectionProfileCustomDetails": {
+ "description": "Protection Profile custom input.",
+ "type": "object",
+ "properties": {
+ "resourceType": {
+ "description": "The class type.",
+ "type": "string"
+ }
+ },
+ "discriminator": "resourceType"
+ },
"ProviderError": {
"description": "This class contains the error details per object.",
"type": "object",
@@ -16053,6 +16741,17 @@
}
}
},
+ "RecoveryAvailabilitySetCustomDetails": {
+ "description": "Recovery Availability Set custom input.",
+ "type": "object",
+ "properties": {
+ "resourceType": {
+ "description": "The class type.",
+ "type": "string"
+ }
+ },
+ "discriminator": "resourceType"
+ },
"RecoveryPlan": {
"description": "Recovery plan details.",
"type": "object",
@@ -16952,6 +17651,28 @@
}
}
},
+ "RecoveryProximityPlacementGroupCustomDetails": {
+ "description": "Recovery Proximity placement group custom input.",
+ "type": "object",
+ "properties": {
+ "resourceType": {
+ "description": "The class type.",
+ "type": "string"
+ }
+ },
+ "discriminator": "resourceType"
+ },
+ "RecoveryResourceGroupCustomDetails": {
+ "description": "Recovery Resource Group custom input.",
+ "type": "object",
+ "properties": {
+ "resourceType": {
+ "description": "The class type.",
+ "type": "string"
+ }
+ },
+ "discriminator": "resourceType"
+ },
"RecoveryServicesProvider": {
"description": "Provider details.",
"type": "object",
@@ -17063,6 +17784,17 @@
}
}
},
+ "RecoveryVirtualNetworkCustomDetails": {
+ "description": "Recovery Virtual network custom input.",
+ "type": "object",
+ "properties": {
+ "resourceType": {
+ "description": "The class type.",
+ "type": "string"
+ }
+ },
+ "discriminator": "resourceType"
+ },
"RemoveDisksInput": {
"description": "Input for remove disk(s) operation.",
"type": "object",
@@ -17439,6 +18171,83 @@
}
}
},
+ "ReplicationProtectionIntent": {
+ "description": "Replication protection intent.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/ReplicationProtectionIntentProperties",
+ "description": "The custom data."
+ }
+ }
+ },
+ "ReplicationProtectionIntentCollection": {
+ "description": "Replication protection intent objects collection.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "The Replication protection intent details.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ReplicationProtectionIntent"
+ }
+ },
+ "nextLink": {
+ "description": "The value of next link.",
+ "type": "string"
+ }
+ }
+ },
+ "ReplicationProtectionIntentProperties": {
+ "description": "Replication protection intent custom data details.",
+ "type": "object",
+ "properties": {
+ "friendlyName": {
+ "description": "The name.",
+ "type": "string"
+ },
+ "jobId": {
+ "description": "The job Id.",
+ "type": "string",
+ "readOnly": true
+ },
+ "jobState": {
+ "description": "The job state.",
+ "type": "string",
+ "readOnly": true
+ },
+ "isActive": {
+ "description": "A value indicating whether the intent object is active.",
+ "type": "boolean",
+ "readOnly": true
+ },
+ "creationTimeUTC": {
+ "description": "The creation time in UTC.",
+ "type": "string",
+ "readOnly": true
+ },
+ "providerSpecificDetails": {
+ "$ref": "#/definitions/ReplicationProtectionIntentProviderSpecificSettings",
+ "description": "The Replication provider custom settings."
+ }
+ }
+ },
+ "ReplicationProtectionIntentProviderSpecificSettings": {
+ "description": "Replication provider specific settings.",
+ "type": "object",
+ "properties": {
+ "instanceType": {
+ "description": "Gets the Instance type.",
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "discriminator": "instanceType"
+ },
"ReplicationProviderContainerUnmappingInput": {
"description": "Provider specific input for unpairing operations.",
"type": "object",
@@ -17805,6 +18614,17 @@
}
}
},
+ "StorageAccountCustomDetails": {
+ "description": "Storage account custom input.",
+ "type": "object",
+ "properties": {
+ "resourceType": {
+ "description": "The class type.",
+ "type": "string"
+ }
+ },
+ "discriminator": "resourceType"
+ },
"StorageClassification": {
"description": "Storage object definition.",
"type": "object",
diff --git a/specification/recoveryservicessiterecovery/resource-manager/readme.md b/specification/recoveryservicessiterecovery/resource-manager/readme.md
index 4433d2f58926..67390f8243b7 100644
--- a/specification/recoveryservicessiterecovery/resource-manager/readme.md
+++ b/specification/recoveryservicessiterecovery/resource-manager/readme.md
@@ -25,6 +25,10 @@ directive:
- from: service.json
suppress: OAV131
reason: Testing purpose.
+
+ - from: service.json
+ suppress: R4010
+ reason: Testing purpose
```
## Configuration
@@ -65,15 +69,6 @@ input-file:
### Tag: package-2016-08
-These settings apply only when `--tag=package-2018-01` is specified on the command line.
-
-``` yaml $(tag) == 'package-2018-01'
-input-file:
-- Microsoft.RecoveryServices/stable/2018-01-10/service.json
-```
-
-### Tag: package-2016-08
-
These settings apply only when `--tag=package-2016-08` is specified on the command line.
``` yaml $(tag) == 'package-2016-08'
diff --git a/specification/redis/resource-manager/Microsoft.Cache/preview/2019-07-01/examples/RedisCacheCreate.json b/specification/redis/resource-manager/Microsoft.Cache/preview/2019-07-01/examples/RedisCacheCreate.json
index 6dd7ce792529..72e37d8df823 100644
--- a/specification/redis/resource-manager/Microsoft.Cache/preview/2019-07-01/examples/RedisCacheCreate.json
+++ b/specification/redis/resource-manager/Microsoft.Cache/preview/2019-07-01/examples/RedisCacheCreate.json
@@ -17,12 +17,11 @@
},
"enableNonSslPort": true,
"shardCount": 2,
- "replicasPerMaster": 2,
"redisConfiguration": {
"maxmemory-policy": "allkeys-lru"
},
"subnetId": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/virtualNetworks/network1/subnets/subnet1",
- "staticIP": "192.168.0.5",
+ "staticIP": "10.0.0.5",
"minimumTlsVersion": "1.2"
}
}
@@ -51,7 +50,6 @@
"capacity": 1
},
"enableNonSslPort": false,
- "replicasPerMaster": 2,
"redisConfiguration": {
"maxmemory-policy": "allkeys-lru"
},
@@ -123,7 +121,6 @@
"capacity": 1
},
"enableNonSslPort": false,
- "replicasPerMaster": 2,
"redisConfiguration": {
"maxclients": "1000",
"maxmemory-reserved": "50",
diff --git a/specification/redis/resource-manager/Microsoft.Cache/preview/2019-07-01/examples/RedisCacheFirewallRuleCreate.json b/specification/redis/resource-manager/Microsoft.Cache/preview/2019-07-01/examples/RedisCacheFirewallRuleCreate.json
index 9fe3832d8a20..b92e8ff9b3be 100644
--- a/specification/redis/resource-manager/Microsoft.Cache/preview/2019-07-01/examples/RedisCacheFirewallRuleCreate.json
+++ b/specification/redis/resource-manager/Microsoft.Cache/preview/2019-07-01/examples/RedisCacheFirewallRuleCreate.json
@@ -7,8 +7,8 @@
"subscriptionId": "subid",
"parameters": {
"properties": {
- "startIP": "192.168.1.1",
- "endIP": "192.168.1.4"
+ "startIP": "10.0.1.1",
+ "endIP": "10.0.1.4"
}
}
},
@@ -19,8 +19,8 @@
"name": "cache1/rule1",
"type": "Microsoft.Cache/Redis/firewallRules",
"properties": {
- "startIP": "192.168.1.1",
- "endIP": "192.168.1.4"
+ "startIP": "10.0.1.1",
+ "endIP": "10.0.1.4"
}
}
},
@@ -30,8 +30,8 @@
"name": "cache1/rule1",
"type": "Microsoft.Cache/Redis/firewallRules",
"properties": {
- "startIP": "192.168.1.1",
- "endIP": "192.168.1.4"
+ "startIP": "10.0.1.1",
+ "endIP": "10.0.1.4"
}
}
}
diff --git a/specification/redis/resource-manager/Microsoft.Cache/preview/2019-07-01/examples/RedisCacheForceReboot.json b/specification/redis/resource-manager/Microsoft.Cache/preview/2019-07-01/examples/RedisCacheForceReboot.json
index 8012f8ae115c..e0d664658354 100644
--- a/specification/redis/resource-manager/Microsoft.Cache/preview/2019-07-01/examples/RedisCacheForceReboot.json
+++ b/specification/redis/resource-manager/Microsoft.Cache/preview/2019-07-01/examples/RedisCacheForceReboot.json
@@ -6,11 +6,7 @@
"subscriptionId": "subid",
"parameters": {
"shardId": 0,
- "rebootType": "AllNodes",
- "ports": [
- 13000,
- 15001
- ]
+ "rebootType": "AllNodes"
}
},
"responses": {
diff --git a/specification/redis/resource-manager/Microsoft.Cache/preview/2019-07-01/examples/RedisCacheOperations_List.json b/specification/redis/resource-manager/Microsoft.Cache/preview/2019-07-01/examples/RedisCacheOperations_List.json
new file mode 100644
index 000000000000..25108e5da276
--- /dev/null
+++ b/specification/redis/resource-manager/Microsoft.Cache/preview/2019-07-01/examples/RedisCacheOperations_List.json
@@ -0,0 +1,21 @@
+{
+ "parameters": {
+ "api-version": "2018-03-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "Microsoft.Cache/CheckNameAvailability",
+ "display": {
+ "operation": "Check Name Availability",
+ "provider": "Azure Cache",
+ "resource": "Redis"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/redis/resource-manager/Microsoft.Cache/preview/2019-07-01/redis.json b/specification/redis/resource-manager/Microsoft.Cache/preview/2019-07-01/redis.json
index bf48a1064d18..202bcde0a7ed 100644
--- a/specification/redis/resource-manager/Microsoft.Cache/preview/2019-07-01/redis.json
+++ b/specification/redis/resource-manager/Microsoft.Cache/preview/2019-07-01/redis.json
@@ -41,6 +41,11 @@
],
"description": "Lists all of the available REST API operations of the Microsoft.Cache provider.",
"operationId": "Operations_List",
+ "x-ms-examples": {
+ "Operations_List": {
+ "$ref": "./examples/RedisCacheOperations_List.json"
+ }
+ },
"parameters": [
{
"$ref": "#/parameters/ApiVersionParameter"
diff --git a/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/redis.json b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/redis.json
index 313b19151c13..fade72a802c4 100644
--- a/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/redis.json
+++ b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/redis.json
@@ -1072,7 +1072,7 @@
"$ref": "./examples/RedisCachePatchSchedulesCreateOrUpdate.json"
}
},
- "description": "Create or replace the patching schedule for Redis cache (requires Premium SKU).",
+ "description": "Create or replace the patching schedule for Redis cache.",
"parameters": [
{
"name": "resourceGroupName",
@@ -1150,7 +1150,7 @@
"$ref": "./examples/RedisCachePatchSchedulesDelete.json"
}
},
- "description": "Deletes the patching schedule of a redis cache (requires Premium SKU).",
+ "description": "Deletes the patching schedule of a redis cache.",
"parameters": [
{
"name": "resourceGroupName",
@@ -1213,7 +1213,7 @@
"$ref": "./examples/RedisCachePatchSchedulesGet.json"
}
},
- "description": "Gets the patching schedule of a redis cache (requires Premium SKU).",
+ "description": "Gets the patching schedule of a redis cache.",
"parameters": [
{
"name": "resourceGroupName",
diff --git a/specification/redis/resource-manager/readme.cli.md b/specification/redis/resource-manager/readme.cli.md
new file mode 100644
index 000000000000..308f24c6abc2
--- /dev/null
+++ b/specification/redis/resource-manager/readme.cli.md
@@ -0,0 +1,48 @@
+## CLI
+
+These settings don't need to apply `--cli` on the command line.
+
+``` yaml
+cli:
+ cli-name: redis
+ package-name: azure-mgmt-redis
+ namespace: azure.mgmt.redis
+ test-scenario:
+ - name: /Redis/put/RedisCacheCreate
+ - name: /PatchSchedules/put/RedisCachePatchSchedulesCreateOrUpdate
+ disabled: true
+ - name: /FirewallRules/put/RedisCacheFirewallRuleCreate
+ - name: /LinkedServer/put/LinkedServer_Create
+ disabled: true
+ - name: /LinkedServer/get/LinkedServer_Get
+ disabled: true
+ - name: /FirewallRules/get/RedisCacheFirewallRuleGet
+ - name: /PatchSchedules/get/RedisCachePatchSchedulesGet
+ disabled: true
+ - name: /Redis/get/RedisCacheGet
+ disabled: true
+ - name: /PatchSchedules/get/RedisCachePatchSchedulesList
+ - name: /FirewallRules/get/RedisCacheFirewallRulesList
+ - name: /LinkedServer/get/LinkedServer_List
+ - name: /Redis/get/RedisCacheGet
+ disabled: true
+ - name: /Redis/get/RedisCacheListByResourceGroup
+ - name: /Redis/get/RedisCacheList
+ - name: /Operations/get/Operations_List
+ - name: /Redis/post/RedisCacheRegenerateKey
+ - name: /Redis/post/RedisCacheForceReboot
+ - name: /Redis/post/RedisCacheListKeys
+ - name: /Redis/post/RedisCacheImport
+ disabled: true
+ - name: /Redis/post/RedisCacheExport
+ disabled: true
+ - name: /Redis/patch/RedisCacheUpdate
+ - name: /Redis/post/RedisCacheList
+ - name: /LinkedServer/delete/LinkedServerDelete
+ disabled: true
+ - name: /FirewallRules/delete/RedisCacheFirewallRuleDelete
+ - name: /PatchSchedules/delete/RedisCachePatchSchedulesDelete
+ disabled: true
+ - name: /Redis/delete/RedisCacheDelete
+
+```
\ No newline at end of file
diff --git a/specification/redis/resource-manager/readme.md b/specification/redis/resource-manager/readme.md
index 5427745f14b1..99cac265a32b 100644
--- a/specification/redis/resource-manager/readme.md
+++ b/specification/redis/resource-manager/readme.md
@@ -138,7 +138,7 @@ These settings apply only when `--python` is specified on the command line.
Please also specify `--python-sdks-folder=`.
Use `--python-mode=update` if you already have a setup.py and just want to update the code itself.
-``` yaml $(python)
+``` yaml $(python) && !$(track2)
python-mode: create
python:
azure-arm: true
@@ -150,13 +150,27 @@ python:
clear-output-folder: true
```
+``` yaml $(python) && $(track2)
+python-mode: update
+azure-arm: true
+license-header: MICROSOFT_MIT_NO_VERSION
+namespace: azure.mgmt.redis
+package-name: azure-mgmt-redis
+package-version: 5.0.0
+clear-output-folder: true
+```
+
``` yaml $(python) && $(python-mode) == 'update'
+no-namespace-folders: true
+output-folder: $(python-sdks-folder)/redis/azure-mgmt-redis/azure/mgmt/redis
python:
no-namespace-folders: true
output-folder: $(python-sdks-folder)/redis/azure-mgmt-redis/azure/mgmt/redis
```
``` yaml $(python) && $(python-mode) == 'create'
+basic-setup-py: true
+output-folder: $(python-sdks-folder)/redis/azure-mgmt-redis
python:
basic-setup-py: true
output-folder: $(python-sdks-folder)/redis/azure-mgmt-redis
diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/OperationStatusGet.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/OperationStatusGet.json
new file mode 100644
index 000000000000..721518374210
--- /dev/null
+++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/OperationStatusGet.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "location": "West US",
+ "operationId": "testoperationid",
+ "api-version": "2020-10-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/providers/Microsoft.Cache/locations/westus/operationStatus/testoperationid",
+ "name": "testoperationid",
+ "startTime": "2017-01-01T13:13:13.933Z",
+ "endTime": "2017-01-01T16:13:13.933Z",
+ "status": "Succeeded"
+ }
+ }
+ }
+}
diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseCreate.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseCreate.json
new file mode 100644
index 000000000000..60e9eaa42132
--- /dev/null
+++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseCreate.json
@@ -0,0 +1,82 @@
+{
+ "parameters": {
+ "clusterName": "cache1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-10-01-preview",
+ "subscriptionId": "subid",
+ "parameters": {
+ "location": "West US",
+ "sku": {
+ "name": "EnterpriseFlash_F300",
+ "capacity": 3
+ },
+ "zones": [
+ "1",
+ "2",
+ "3"
+ ],
+ "properties": {
+ "minimumTlsVersion": "1.2"
+ },
+ "tags": {
+ "tag1": "value1"
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "name": "cache1",
+ "type": "Microsoft.Cache/redisEnterprise",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1",
+ "location": "West US",
+ "sku": {
+ "name": "EnterpriseFlash_F300",
+ "capacity": 3
+ },
+ "zones": [
+ "1",
+ "2",
+ "3"
+ ],
+ "properties": {
+ "provisioningState": "Creating",
+ "resourceState": "Creating",
+ "hostName": "cache1.westus.something.azure.net",
+ "redisVersion": "5",
+ "minimumTlsVersion": "1.2"
+ },
+ "tags": {
+ "tag1": "value1"
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "name": "cache1",
+ "type": "Microsoft.Cache/redisEnterprise",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1",
+ "location": "West US",
+ "sku": {
+ "name": "EnterpriseFlash_F300",
+ "capacity": 3
+ },
+ "zones": [
+ "1",
+ "2",
+ "3"
+ ],
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceState": "Running",
+ "hostName": "cache1.westus.something.azure.net",
+ "redisVersion": "5",
+ "minimumTlsVersion": "1.2"
+ },
+ "tags": {
+ "tag1": "value1"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseDatabaseListKeys.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseDatabaseListKeys.json
new file mode 100644
index 000000000000..b8e3c17f187c
--- /dev/null
+++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseDatabaseListKeys.json
@@ -0,0 +1,17 @@
+{
+ "parameters": {
+ "databaseName": "default",
+ "clusterName": "cache1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-10-01-preview",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "primaryKey": "secretkey1",
+ "secondaryKey": "secretKey2"
+ }
+ }
+ }
+}
diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseDatabaseRegenerateKey.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseDatabaseRegenerateKey.json
new file mode 100644
index 000000000000..94cf4027a68f
--- /dev/null
+++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseDatabaseRegenerateKey.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "databaseName": "default",
+ "clusterName": "cache1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-10-01-preview",
+ "subscriptionId": "subid",
+ "parameters": {
+ "keyType": "Primary"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "primaryKey": "secretkey1",
+ "secondaryKey": "secretKey2"
+ }
+ },
+ "202": {
+ "headers": {
+ "Azure-AsyncOperation": "https://management.azure.com/subscriptions/subid/providers/Microsoft.Cache/...pathToOperationStatus...",
+ "Location": "https://management.azure.com/subscriptions/subid/providers/Microsoft.Cache/...pathToOperationResult..."
+ }
+ }
+ }
+}
diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseDatabasesCreate.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseDatabasesCreate.json
new file mode 100644
index 000000000000..0d285f4b3445
--- /dev/null
+++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseDatabasesCreate.json
@@ -0,0 +1,96 @@
+{
+ "parameters": {
+ "databaseName": "default",
+ "clusterName": "cache1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-10-01-preview",
+ "subscriptionId": "subid",
+ "parameters": {
+ "properties": {
+ "clientProtocol": "Encrypted",
+ "clusteringPolicy": "EnterpriseCluster",
+ "evictionPolicy": "AllKeysLRU",
+ "port": 10000,
+ "modules": [
+ {
+ "name": "RedisBloom",
+ "args": "ERROR_RATE 0.00 INITIAL_SIZE 400"
+ },
+ {
+ "name": "RedisTimeSeries",
+ "args": "RETENTION_POLICY 20"
+ },
+ {
+ "name": "RediSearch"
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/default",
+ "name": "cache1/default",
+ "type": "Microsoft.Cache/redisEnterprise/databases",
+ "properties": {
+ "provisioningState": "Updating",
+ "resourceState": "Updating",
+ "clientProtocol": "Encrypted",
+ "clusteringPolicy": "EnterpriseCluster",
+ "evictionPolicy": "AllKeysLRU",
+ "port": 10000,
+ "modules": [
+ {
+ "name": "RedisBloom",
+ "args": "ERROR_RATE 0.00 INITIAL_SIZE 400",
+ "version": "1.0.0"
+ },
+ {
+ "name": "RedisTimeSeries",
+ "args": "RETENTION_POLICY 20",
+ "version": "1.0.0"
+ },
+ {
+ "name": "RediSearch",
+ "args": "",
+ "version": "1.0.0"
+ }
+ ]
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/db1",
+ "name": "cache1/db1",
+ "type": "Microsoft.Cache/redisEnterprise/databases",
+ "properties": {
+ "provisioningState": "Creating",
+ "resourceState": "Creating",
+ "clientProtocol": "Plaintext",
+ "clusteringPolicy": "EnterpriseCluster",
+ "evictionPolicy": "AllKeysLRU",
+ "port": 10000,
+ "modules": [
+ {
+ "name": "RedisBloom",
+ "args": "ERROR_RATE 0.00 INITIAL_SIZE 400",
+ "version": "1.0.0"
+ },
+ {
+ "name": "RedisTimeSeries",
+ "args": "RETENTION_POLICY 20",
+ "version": "1.0.0"
+ },
+ {
+ "name": "RediSearch",
+ "args": "",
+ "version": "1.0.0"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseDatabasesDelete.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseDatabasesDelete.json
new file mode 100644
index 000000000000..21525b0dafca
--- /dev/null
+++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseDatabasesDelete.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "databaseName": "db1",
+ "clusterName": "cache1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-10-01-preview",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {},
+ "202": {
+ "headers": {
+ "Azure-AsyncOperation": "https://management.azure.com/subscriptions/subid/providers/Microsoft.Cache/...pathToOperationStatus...",
+ "Location": "https://management.azure.com/subscriptions/subid/providers/Microsoft.Cache/...pathToOperationResult..."
+ }
+ },
+ "204": {}
+ }
+}
diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseDatabasesGet.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseDatabasesGet.json
new file mode 100644
index 000000000000..bfcc755b85a7
--- /dev/null
+++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseDatabasesGet.json
@@ -0,0 +1,33 @@
+{
+ "parameters": {
+ "databaseName": "default",
+ "clusterName": "cache1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-10-01-preview",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/default",
+ "name": "cache1/default",
+ "type": "Microsoft.Cache/redisEnterprise/databases",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceState": "Running",
+ "clientProtocol": "Encrypted",
+ "clusteringPolicy": "OSSCluster",
+ "evictionPolicy": "AllKeysLRU",
+ "port": 10000,
+ "modules": [
+ {
+ "name": "RediSearch",
+ "args": "",
+ "version": "1.0.0"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseDatabasesList.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseDatabasesList.json
new file mode 100644
index 000000000000..7130cd815ca3
--- /dev/null
+++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseDatabasesList.json
@@ -0,0 +1,36 @@
+{
+ "parameters": {
+ "clusterName": "cache1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-10-01-preview",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/default",
+ "name": "cache1/default",
+ "type": "Microsoft.Cache/redisEnterprise/databases",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceState": "Running",
+ "clientProtocol": "Encrypted",
+ "clusteringPolicy": "OSSCluster",
+ "evictionPolicy": "AllKeysLRU",
+ "port": 10000,
+ "modules": [
+ {
+ "name": "RediSearch",
+ "args": "",
+ "version": "1.0.0"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseDatabasesUpdate.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseDatabasesUpdate.json
new file mode 100644
index 000000000000..e3cc65665ae2
--- /dev/null
+++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseDatabasesUpdate.json
@@ -0,0 +1,50 @@
+{
+ "parameters": {
+ "databaseName": "default",
+ "clusterName": "cache1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-10-01-preview",
+ "subscriptionId": "subid",
+ "parameters": {
+ "properties": {
+ "clientProtocol": "Encrypted",
+ "evictionPolicy": "AllKeysLRU",
+ "modules": [
+ {
+ "name": "RediSearch"
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/default",
+ "name": "cache1/default",
+ "type": "Microsoft.Cache/redisEnterprise/databases",
+ "properties": {
+ "provisioningState": "Updating",
+ "resourceState": "Updating",
+ "clientProtocol": "Encrypted",
+ "clusteringPolicy": "OSSCluster",
+ "evictionPolicy": "AllKeysLRU",
+ "port": 10000,
+ "modules": [
+ {
+ "name": "RediSearch",
+ "args": "",
+ "version": "1.0.0"
+ }
+ ]
+ }
+ }
+ },
+ "202": {
+ "headers": {
+ "Azure-AsyncOperation": "https://management.azure.com/subscriptions/subid/providers/Microsoft.Cache/...pathToOperationStatus...",
+ "Location": "https://management.azure.com/subscriptions/subid/providers/Microsoft.Cache/...pathToOperationResult..."
+ }
+ }
+ }
+}
diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseDelete.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseDelete.json
new file mode 100644
index 000000000000..91a772418f7c
--- /dev/null
+++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseDelete.json
@@ -0,0 +1,18 @@
+{
+ "parameters": {
+ "clusterName": "cache1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-10-01-preview",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {},
+ "202": {
+ "headers": {
+ "Azure-AsyncOperation": "https://management.azure.com/subscriptions/subid/providers/Microsoft.Cache/...pathToOperationStatus...",
+ "Location": "https://management.azure.com/subscriptions/subid/providers/Microsoft.Cache/...pathToOperationResult..."
+ }
+ },
+ "204": {}
+ }
+}
diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseDeletePrivateEndpointConnection.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseDeletePrivateEndpointConnection.json
new file mode 100644
index 000000000000..c7ea6bd88240
--- /dev/null
+++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseDeletePrivateEndpointConnection.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "clusterName": "cache1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-10-01-preview",
+ "subscriptionId": "subid",
+ "privateEndpointConnectionName": "pectest01"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseExportCluster.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseExportCluster.json
new file mode 100644
index 000000000000..96ab6f85d754
--- /dev/null
+++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseExportCluster.json
@@ -0,0 +1,21 @@
+{
+ "parameters": {
+ "databaseName": "default",
+ "clusterName": "cache1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-10-01-preview",
+ "subscriptionId": "subid",
+ "parameters": {
+ "sasUri": "https://contosostorage.blob.core.window.net/urlToBlobContainer?sasKeyParameters"
+ }
+ },
+ "responses": {
+ "200": {},
+ "202": {
+ "headers": {
+ "Azure-AsyncOperation": "https://management.azure.com/subscriptions/subid/providers/Microsoft.Cache/...pathToOperationStatus...",
+ "Location": "https://management.azure.com/subscriptions/subid/providers/Microsoft.Cache/...pathToOperationResult..."
+ }
+ }
+ }
+}
diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseGet.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseGet.json
new file mode 100644
index 000000000000..192944f3207a
--- /dev/null
+++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseGet.json
@@ -0,0 +1,50 @@
+{
+ "parameters": {
+ "clusterName": "cache1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-10-01-preview",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1",
+ "location": "West US",
+ "sku": {
+ "name": "EnterpriseFlash_F300",
+ "capacity": 3
+ },
+ "zones": [
+ "1",
+ "2",
+ "3"
+ ],
+ "name": "cache1",
+ "type": "Microsoft.Cache/redisEnterprise",
+ "tags": {},
+ "properties": {
+ "hostName": "cache1.westus.something.azure.com",
+ "provisioningState": "Succeeded",
+ "resourceState": "Running",
+ "redisVersion": "6",
+ "minimumTlsVersion": "1.2",
+ "privateEndpointConnections": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/privateEndpointConnections/cachePec",
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/privateEndpoints/cachePe"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Please approve my connection",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseGetPrivateEndpointConnection.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseGetPrivateEndpointConnection.json
new file mode 100644
index 000000000000..10032e9206e3
--- /dev/null
+++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseGetPrivateEndpointConnection.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "clusterName": "cache1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-10-01-preview",
+ "subscriptionId": "subid",
+ "privateEndpointConnectionName": "pectest01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/privateEndpointConnections/pectest01",
+ "name": "pectest01",
+ "type": "Microsoft.Cache/redisEnterprise/privateEndpointConnections",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateEndpoint": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/privateEndpoints/petest01"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Auto-Approved",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseImportCluster.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseImportCluster.json
new file mode 100644
index 000000000000..0336ce6a7ed7
--- /dev/null
+++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseImportCluster.json
@@ -0,0 +1,21 @@
+{
+ "parameters": {
+ "databaseName": "default",
+ "clusterName": "cache1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-10-01-preview",
+ "subscriptionId": "subid",
+ "parameters": {
+ "sasUri": "https://contosostorage.blob.core.window.net/urltoBlobFile?sasKeyParameters"
+ }
+ },
+ "responses": {
+ "200": {},
+ "202": {
+ "headers": {
+ "Azure-AsyncOperation": "https://management.azure.com/subscriptions/subid/providers/Microsoft.Cache/...pathToOperationStatus...",
+ "Location": "https://management.azure.com/subscriptions/subid/providers/Microsoft.Cache/...pathToOperationResult..."
+ }
+ }
+ }
+}
diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseList.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseList.json
new file mode 100644
index 000000000000..b9c4bfddded3
--- /dev/null
+++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseList.json
@@ -0,0 +1,33 @@
+{
+ "parameters": {
+ "api-version": "2020-10-01-preview",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1",
+ "location": "West US",
+ "sku": {
+ "name": "EnterpriseFlash_F300",
+ "capacity": 3
+ },
+ "name": "cache1",
+ "type": "Microsoft.Cache/redisEnterprise",
+ "tags": {},
+ "properties": {
+ "hostName": "cache1.westus.something.azure.com",
+ "provisioningState": "Succeeded",
+ "resourceState": "Running",
+ "redisVersion": "6",
+ "minimumTlsVersion": "1.2"
+ }
+ }
+ ],
+ "nextLink": null
+ }
+ }
+ }
+}
diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseListByResourceGroup.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseListByResourceGroup.json
new file mode 100644
index 000000000000..4d996bd5dad4
--- /dev/null
+++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseListByResourceGroup.json
@@ -0,0 +1,39 @@
+{
+ "parameters": {
+ "api-version": "2020-10-01-preview",
+ "resourceGroupName": "rg1",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1",
+ "location": "West US",
+ "sku": {
+ "name": "EnterpriseFlash_F300",
+ "capacity": 3
+ },
+ "zones": [
+ "1",
+ "2",
+ "3"
+ ],
+ "name": "cache1",
+ "type": "Microsoft.Cache/redisEnterprise",
+ "tags": {},
+ "properties": {
+ "hostName": "cache1.westus.something.azure.com",
+ "provisioningState": "Succeeded",
+ "resourceState": "Running",
+ "redisVersion": "5",
+ "minimumTlsVersion": "1.2"
+ }
+ }
+ ],
+ "nextLink": null
+ }
+ }
+ }
+}
diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseListPrivateEndpointConnections.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseListPrivateEndpointConnections.json
new file mode 100644
index 000000000000..4776981c1763
--- /dev/null
+++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseListPrivateEndpointConnections.json
@@ -0,0 +1,47 @@
+{
+ "parameters": {
+ "clusterName": "cache1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-10-01-preview",
+ "subscriptionId": "subid",
+ "privateEndpointConnectionName": "pectest01"
+ },
+ "responses": {
+ "200": {
+ "body": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/privateEndpointConnections/pectest01",
+ "name": "pectest01",
+ "type": "Microsoft.Cache/redisEnterprise/privateEndpointConnections",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateEndpoint": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/privateEndpoints/petest01"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Auto-Approved",
+ "actionsRequired": "None"
+ }
+ }
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/privateEndpointConnections/pectest01",
+ "name": "pectest01",
+ "type": "Microsoft.Cache/redisEnterprise/privateEndpointConnections",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateEndpoint": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/privateEndpoints/petest01"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Auto-Approved",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseListPrivateLinkResources.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseListPrivateLinkResources.json
new file mode 100644
index 000000000000..75bb507b9b23
--- /dev/null
+++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseListPrivateLinkResources.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "clusterName": "cache1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-10-01-preview",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/privateLinkResources/redisEnterpriseCache",
+ "name": "redisEnterpriseCache",
+ "type": "Microsoft.Cache/redisEnterprise/privateLinkResources",
+ "properties": {
+ "groupId": "redisEnterpriseCache",
+ "requiredMembers": [
+ "redisEnterpriseCache"
+ ],
+ "requiredZoneNames": [
+ "privatelink.redisenterprise.cache.windows.net"
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterprisePutPrivateEndpointConnection.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterprisePutPrivateEndpointConnection.json
new file mode 100644
index 000000000000..4ed0654286c7
--- /dev/null
+++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterprisePutPrivateEndpointConnection.json
@@ -0,0 +1,37 @@
+{
+ "parameters": {
+ "clusterName": "cache1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-10-01-preview",
+ "subscriptionId": "subid",
+ "privateEndpointConnectionName": "pectest01",
+ "properties": {
+ "properties": {
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Auto-Approved"
+ }
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/privateEndpointConnections/pectest01",
+ "name": "pectest01",
+ "type": "Microsoft.Cache/redisEnterprise/privateEndpointConnections",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateEndpoint": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/privateEndpoints/petest01"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Auto-Approved",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseUpdate.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseUpdate.json
new file mode 100644
index 000000000000..e8ea0df53ab9
--- /dev/null
+++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/examples/RedisEnterpriseUpdate.json
@@ -0,0 +1,53 @@
+{
+ "parameters": {
+ "clusterName": "cache1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-10-01-preview",
+ "subscriptionId": "subid",
+ "parameters": {
+ "sku": {
+ "name": "EnterpriseFlash_F300",
+ "capacity": 9
+ },
+ "properties": {
+ "minimumTlsVersion": "1.2"
+ },
+ "tags": {
+ "tag1": "value1"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1",
+ "name": "cache1",
+ "type": "Microsoft.Cache/redisEnterprise",
+ "location": "West US",
+ "sku": {
+ "name": "EnterpriseFlash_F300",
+ "capacity": 9
+ },
+ "zones": [
+ "1",
+ "2",
+ "3"
+ ],
+ "tags": {
+ "tag1": "value1"
+ },
+ "properties": {
+ "hostName": "cache1.westus.something.azure.com",
+ "provisioningState": "Updating",
+ "resourceState": "Updating",
+ "redisVersion": "5",
+ "minimumTlsVersion": "1.2"
+ }
+ }
+ },
+ "202": {
+ "Azure-AsyncOperation": "https://management.azure.com/subscriptions/subid/providers/Microsoft.Cache/...pathToOperationStatus...",
+ "Location": "https://management.azure.com/subscriptions/subid/providers/Microsoft.Cache/...pathToOperationResult..."
+ }
+ }
+}
diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/redisenterprise.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/redisenterprise.json
new file mode 100644
index 000000000000..2893fed00d1d
--- /dev/null
+++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2020-10-01-preview/redisenterprise.json
@@ -0,0 +1,1600 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "redisEnterprise",
+ "description": "REST API for managing Redis Enterprise resources in Azure.",
+ "version": "2020-10-01-preview",
+ "x-ms-code-generation-settings": {
+ "name": "redisenterpriseClient"
+ }
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "security": [
+ {
+ "azure_auth": [
+ "user_impersonation"
+ ]
+ }
+ ],
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Azure Active Directory OAuth2 Flow.",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
+ "paths": {
+ "/providers/Microsoft.Cache/operations": {
+ "get": {
+ "tags": [
+ "Operations"
+ ],
+ "description": "Lists all of the available REST API operations of the Microsoft.Cache provider.",
+ "operationId": "Operations_List",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The response describes the list of operations.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/OperationListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Cache/locations/{location}/operationsStatus/{operationId}": {
+ "get": {
+ "tags": [
+ "OperationStatus"
+ ],
+ "operationId": "Get_OperationStatus",
+ "x-ms-examples": {
+ "OperationStatusGet": {
+ "$ref": "./examples/OperationStatusGet.json"
+ }
+ },
+ "description": "Gets the status of operation.",
+ "parameters": [
+ {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The region the operation is in."
+ },
+ {
+ "name": "operationId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The operation's unique identifier."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The detailed status of the operation is in the response.",
+ "schema": {
+ "$ref": "#/definitions/OperationStatus"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}": {
+ "put": {
+ "tags": [
+ "RedisEnterprise"
+ ],
+ "operationId": "RedisEnterprise_Create",
+ "x-ms-examples": {
+ "RedisEnterpriseCreate": {
+ "$ref": "./examples/RedisEnterpriseCreate.json"
+ }
+ },
+ "description": "Creates or updates an existing (overwrite/recreate, with potential downtime) cache cluster",
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "original-uri"
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/Cluster"
+ },
+ "description": "Parameters supplied to the Create RedisEnterprise operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "The cluster was/is being created. Check provisioningState and resourceState to see detailed status.",
+ "schema": {
+ "$ref": "#/definitions/Cluster"
+ }
+ },
+ "200": {
+ "description": "The cluster was/is being updated. Check provisioningState and resourceState to see detailed status.",
+ "schema": {
+ "$ref": "#/definitions/Cluster"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "RedisEnterprise"
+ ],
+ "operationId": "RedisEnterprise_Update",
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ },
+ "x-ms-examples": {
+ "RedisEnterpriseUpdate": {
+ "$ref": "./examples/RedisEnterpriseUpdate.json"
+ }
+ },
+ "description": "Updates an existing RedisEnterprise cluster",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ClusterUpdate"
+ },
+ "description": "Parameters supplied to the Update RedisEnterprise operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The cluster was/is being updated. Check provisioningState and resourceState to see detailed status.",
+ "schema": {
+ "$ref": "#/definitions/Cluster"
+ }
+ },
+ "202": {
+ "description": "The cluster update operation was started. GET the URL in the Azure-AsyncOperation or Location headers to retrieve updated status."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "RedisEnterprise"
+ ],
+ "operationId": "RedisEnterprise_Delete",
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ },
+ "x-ms-examples": {
+ "RedisEnterpriseDelete": {
+ "$ref": "./examples/RedisEnterpriseDelete.json"
+ }
+ },
+ "description": "Deletes a RedisEnterprise cache cluster.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The cluster was successfully deleted."
+ },
+ "202": {
+ "description": "The cluster delete operation was successfully started. GET the URL in the Azure-AsyncOperation or Location headers to retrieve updated status."
+ },
+ "204": {
+ "description": "The cluster was successfully deleted."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "RedisEnterprise"
+ ],
+ "operationId": "RedisEnterprise_Get",
+ "x-ms-examples": {
+ "RedisEnterpriseGet": {
+ "$ref": "./examples/RedisEnterpriseGet.json"
+ }
+ },
+ "description": "Gets information about a RedisEnterprise cluster",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The request succeeded, response body contains the requested details.",
+ "schema": {
+ "$ref": "#/definitions/Cluster"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise": {
+ "get": {
+ "tags": [
+ "RedisEnterprise"
+ ],
+ "operationId": "RedisEnterprise_ListByResourceGroup",
+ "x-ms-examples": {
+ "RedisEnterpriseListByResourceGroup": {
+ "$ref": "./examples/RedisEnterpriseListByResourceGroup.json"
+ }
+ },
+ "description": "Lists all RedisEnterprise clusters in a resource group.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The list of RedisEnterprise clusters",
+ "schema": {
+ "$ref": "#/definitions/ClusterList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Cache/redisEnterprise": {
+ "get": {
+ "tags": [
+ "RedisEnterprise"
+ ],
+ "operationId": "RedisEnterprise_List",
+ "x-ms-examples": {
+ "RedisEnterpriseList": {
+ "$ref": "./examples/RedisEnterpriseList.json"
+ }
+ },
+ "description": "Gets all RedisEnterprise clusters in the specified subscription.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The list of RedisEnterprise clusters",
+ "schema": {
+ "$ref": "#/definitions/ClusterList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}/databases": {
+ "get": {
+ "tags": [
+ "RedisEnterprise",
+ "Databases"
+ ],
+ "operationId": "Databases_ListByCluster",
+ "description": "Gets all databases in the specified RedisEnterprise cluster.",
+ "x-ms-examples": {
+ "RedisEnterpriseDatabasesList": {
+ "$ref": "./examples/RedisEnterpriseDatabasesList.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The list of databases",
+ "schema": {
+ "$ref": "#/definitions/DatabaseList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}/databases/{databaseName}": {
+ "put": {
+ "tags": [
+ "RedisEnterprise",
+ "Databases"
+ ],
+ "operationId": "Databases_Create",
+ "description": "Creates a database",
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "original-uri"
+ },
+ "x-ms-examples": {
+ "RedisEnterpriseDatabaseCreate": {
+ "$ref": "./examples/RedisEnterpriseDatabasesCreate.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DatabaseNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/Database"
+ },
+ "description": "Parameters supplied to the create or update database operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The database was/is being updated. Check provisioningState and resourceState for detailed status.",
+ "schema": {
+ "$ref": "#/definitions/Database"
+ }
+ },
+ "201": {
+ "description": "The database was/is being created. Check provisioningState and resourceState for detailed status.",
+ "schema": {
+ "$ref": "#/definitions/Database"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "RedisEnterprise",
+ "Databases"
+ ],
+ "operationId": "Databases_Update",
+ "description": "Updates a database",
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ },
+ "x-ms-examples": {
+ "RedisEnterpriseDatabasesUpdate": {
+ "$ref": "./examples/RedisEnterpriseDatabasesUpdate.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DatabaseNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/DatabaseUpdate"
+ },
+ "description": "Parameters supplied to the create or update database operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The database was/is being updated. Check provisioningState and resourceState for detailed status.",
+ "schema": {
+ "$ref": "#/definitions/Database"
+ }
+ },
+ "202": {
+ "description": "The database update operation was successfully started. GET the URL in the Azure-AsyncOperation or Location headers to retrieve updated status."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "RedisEnterprise",
+ "Databases"
+ ],
+ "operationId": "Databases_Get",
+ "description": "Gets information about a database in a RedisEnterprise cluster.",
+ "x-ms-examples": {
+ "RedisEnterpriseDatabasesGet": {
+ "$ref": "./examples/RedisEnterpriseDatabasesGet.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DatabaseNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully found the database",
+ "schema": {
+ "$ref": "#/definitions/Database"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "RedisEnterprise",
+ "Databases"
+ ],
+ "operationId": "Databases_Delete",
+ "description": "Deletes a single database",
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ },
+ "x-ms-examples": {
+ "RedisEnterpriseDatabasesDelete": {
+ "$ref": "./examples/RedisEnterpriseDatabasesDelete.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DatabaseNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully deleted the database."
+ },
+ "202": {
+ "description": "The database delete operation started. GET the URL in the Azure-AsyncOperation or Location headers to retrieve updated status."
+ },
+ "204": {
+ "description": "Successfully deleted the database."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}/databases/{databaseName}/listKeys": {
+ "post": {
+ "tags": [
+ "RedisEnterprise",
+ "Databases"
+ ],
+ "operationId": "RedisEnterpriseDatabase_ListKeys",
+ "x-ms-examples": {
+ "RedisEnterpriseDatabaseListKeys": {
+ "$ref": "./examples/RedisEnterpriseDatabaseListKeys.json"
+ }
+ },
+ "description": "Retrieves the access keys for the RedisEnterprise database.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DatabaseNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The access keys for the specified database.",
+ "schema": {
+ "$ref": "#/definitions/AccessKeys"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}/databases/{databaseName}/regenerateKey": {
+ "post": {
+ "tags": [
+ "RedisEnterprise",
+ "Databases"
+ ],
+ "operationId": "RedisEnterpriseDatabase_RegenerateKey",
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ },
+ "x-ms-examples": {
+ "RedisEnterpriseDatabaseRegenerateKey": {
+ "$ref": "./examples/RedisEnterpriseDatabaseRegenerateKey.json"
+ }
+ },
+ "description": "Regenerates the RedisEnterprise database's access keys.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DatabaseNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/RegenerateKeyParameters"
+ },
+ "description": "Specifies which key to regenerate."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Returns the new access keys for the database",
+ "schema": {
+ "$ref": "#/definitions/AccessKeys"
+ }
+ },
+ "202": {
+ "description": "The cluster update operation was started. GET the URL in the Azure-AsyncOperation or Location headers to retrieve updated status."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}/databases/{databaseName}/import": {
+ "post": {
+ "tags": [
+ "RedisEnterprise",
+ "Databases"
+ ],
+ "operationId": "RedisEnterpriseDatabase_Import",
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ },
+ "x-ms-examples": {
+ "RedisEnterpriseImportCluster": {
+ "$ref": "./examples/RedisEnterpriseImportCluster.json"
+ }
+ },
+ "description": "Imports a database file to target database.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DatabaseNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ImportClusterParameters"
+ },
+ "description": "Storage information for importing into the cluster"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Import operation succeeded."
+ },
+ "202": {
+ "description": "The import operation was started. GET the URL in the Azure-AsyncOperation or Location headers to retrieve updated status."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}/databases/{databaseName}/export": {
+ "post": {
+ "tags": [
+ "RedisEnterprise",
+ "Databases"
+ ],
+ "operationId": "RedisEnterpriseDatabase_Export",
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ },
+ "x-ms-examples": {
+ "RedisEnterpriseExportCluster": {
+ "$ref": "./examples/RedisEnterpriseExportCluster.json"
+ }
+ },
+ "description": "Exports a database file from target database.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DatabaseNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ExportClusterParameters"
+ },
+ "description": "Storage information for exporting into the cluster"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Export operation succeeded."
+ },
+ "202": {
+ "description": "Export operation successfully enqueued; follow the Location header to poll for final outcome."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}/privateEndpointConnections": {
+ "get": {
+ "tags": [
+ "PrivateEndpointConnections"
+ ],
+ "operationId": "PrivateEndpointConnections_List",
+ "description": "Lists all the private endpoint connections associated with the RedisEnterprise cluster.",
+ "x-ms-examples": {
+ "RedisEnterpriseListPrivateEndpointConnections": {
+ "$ref": "./examples/RedisEnterpriseListPrivateEndpointConnections.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK -- Successfully retrieved private endpoint connections.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v1/privatelinks.json#/definitions/PrivateEndpointConnectionListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}/privateEndpointConnections/{privateEndpointConnectionName}": {
+ "get": {
+ "tags": [
+ "PrivateEndpointConnections"
+ ],
+ "operationId": "PrivateEndpointConnections_Get",
+ "description": "Gets the specified private endpoint connection associated with the RedisEnterprise cluster.",
+ "x-ms-examples": {
+ "RedisEnterpriseGetPrivateEndpointConnection": {
+ "$ref": "./examples/RedisEnterpriseGetPrivateEndpointConnection.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/privatelinks.json#/parameters/PrivateEndpointConnectionName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK -- Get the private endpoint connection properties successfully.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v1/privatelinks.json#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "PrivateEndpointConnections"
+ ],
+ "operationId": "PrivateEndpointConnections_Put",
+ "description": "Updates the state of the specified private endpoint connection associated with the RedisEnterprise cluster.",
+ "x-ms-examples": {
+ "RedisEnterprisePutPrivateEndpointConnection": {
+ "$ref": "./examples/RedisEnterprisePutPrivateEndpointConnection.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/privatelinks.json#/parameters/PrivateEndpointConnectionName"
+ },
+ {
+ "name": "properties",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v1/privatelinks.json#/definitions/PrivateEndpointConnection"
+ },
+ "description": "The private endpoint connection properties."
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "OK -- Update the private endpoint connection properties successfully.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v1/privatelinks.json#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "PrivateEndpointConnections"
+ ],
+ "operationId": "PrivateEndpointConnections_Delete",
+ "description": "Deletes the specified private endpoint connection associated with the RedisEnterprise cluster.",
+ "x-ms-examples": {
+ "RedisEnterpriseDeletePrivateEndpointConnection": {
+ "$ref": "./examples/RedisEnterpriseDeletePrivateEndpointConnection.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/privatelinks.json#/parameters/PrivateEndpointConnectionName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK -- Delete the private endpoint connection successfully."
+ },
+ "204": {
+ "description": "No Content -- The private endpoint connection does not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}/privateLinkResources": {
+ "get": {
+ "tags": [
+ "PrivateLinkResources"
+ ],
+ "operationId": "PrivateLinkResources_ListByRedisEnterpriseCache",
+ "description": "Gets the private link resources that need to be created for a RedisEnterprise cluster.",
+ "x-ms-examples": {
+ "RedisEnterpriseListPrivateLinkResources": {
+ "$ref": "./examples/RedisEnterpriseListPrivateLinkResources.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved private link resources.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v1/privatelinks.json#/definitions/PrivateLinkResourceListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ }
+ }
+ }
+ },
+ "definitions": {
+ "Sku": {
+ "description": "SKU parameters supplied to the create RedisEnterprise operation.",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The type of RedisEnterprise cluster to deploy. Possible values: (Enterprise_E10, EnterpriseFlash_F300 etc.)",
+ "enum": [
+ "Enterprise_E10",
+ "Enterprise_E20",
+ "Enterprise_E50",
+ "Enterprise_E100",
+ "EnterpriseFlash_F300",
+ "EnterpriseFlash_F700",
+ "EnterpriseFlash_F1500"
+ ],
+ "x-ms-enum": {
+ "name": "SkuName",
+ "modelAsString": true
+ }
+ },
+ "capacity": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The size of the RedisEnterprise cluster. Defaults to 2 or 3 depending on SKU. Valid values are (2, 4, 6, ...) for Enterprise SKUs and (3, 9, 15, ...) for Flash SKUs."
+ }
+ },
+ "required": [
+ "name"
+ ]
+ },
+ "ProvisioningState": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Current provisioning status",
+ "enum": [
+ "Succeeded",
+ "Failed",
+ "Canceled",
+ "Creating",
+ "Updating",
+ "Deleting"
+ ],
+ "x-ms-enum": {
+ "name": "ProvisioningState",
+ "modelAsString": true
+ }
+ },
+ "ResourceState": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Current resource status",
+ "enum": [
+ "Running",
+ "Creating",
+ "CreateFailed",
+ "Updating",
+ "UpdateFailed",
+ "Deleting",
+ "DeleteFailed",
+ "Enabling",
+ "EnableFailed",
+ "Disabling",
+ "DisableFailed",
+ "Disabled"
+ ],
+ "x-ms-enum": {
+ "name": "ResourceState",
+ "modelAsString": true
+ }
+ },
+ "Cluster": {
+ "description": "Describes the RedisEnterprise cluster",
+ "properties": {
+ "sku": {
+ "$ref": "#/definitions/Sku",
+ "description": "The SKU to create, which affects price, performance, and features."
+ },
+ "zones": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The zones where this cluster will be deployed."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ClusterProperties",
+ "description": "Other properties of the cluster."
+ }
+ },
+ "required": [
+ "sku"
+ ],
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/TrackedResource"
+ }
+ ]
+ },
+ "ClusterUpdate": {
+ "description": "A partial update to the RedisEnterprise cluster",
+ "properties": {
+ "sku": {
+ "$ref": "#/definitions/Sku",
+ "description": "The SKU to create, which affects price, performance, and features."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ClusterProperties",
+ "description": "Other properties of the cluster."
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "x-ms-mutability": [
+ "read",
+ "create",
+ "update"
+ ],
+ "description": "Resource tags."
+ }
+ }
+ },
+ "ClusterProperties": {
+ "title": "RedisEnterprise cluster properties",
+ "description": "Properties of RedisEnterprise clusters, as opposed to general resource properties like location, tags",
+ "properties": {
+ "minimumTlsVersion": {
+ "type": "string",
+ "description": "The minimum TLS version for the cluster to support, e.g. '1.2'"
+ },
+ "hostName": {
+ "type": "string",
+ "readOnly": true,
+ "description": "DNS name of the cluster endpoint"
+ },
+ "provisioningState": {
+ "$ref": "#/definitions/ProvisioningState",
+ "readOnly": true,
+ "description": "Current provisioning status of the cluster"
+ },
+ "resourceState": {
+ "$ref": "#/definitions/ResourceState",
+ "readOnly": true,
+ "description": "Current resource status of the cluster"
+ },
+ "redisVersion": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Version of redis the cluster supports, e.g. '6'"
+ },
+ "privateEndpointConnections": {
+ "type": "array",
+ "readOnly": true,
+ "description": "List of private endpoint connections associated with the specified RedisEnterprise cluster",
+ "items": {
+ "$ref": "../../../../../common-types/resource-management/v1/privatelinks.json#/definitions/PrivateEndpointConnection"
+ }
+ }
+ }
+ },
+ "ClusterList": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Cluster"
+ },
+ "description": "List of clusters."
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The URI to fetch the next page of results."
+ }
+ },
+ "description": "The response of a list-all operation."
+ },
+ "Database": {
+ "description": "Describes a database on the RedisEnterprise cluster",
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/DatabaseProperties",
+ "description": "Other properties of the database."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ProxyResource"
+ }
+ ]
+ },
+ "DatabaseUpdate": {
+ "description": "A partial update to the RedisEnterprise database",
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/DatabaseProperties",
+ "description": "Properties of the database."
+ }
+ }
+ },
+ "DatabaseProperties": {
+ "title": "RedisEnterprise database properties",
+ "description": "Properties of RedisEnterprise databases, as opposed to general resource properties like location, tags",
+ "properties": {
+ "clientProtocol": {
+ "type": "string",
+ "description": "Specifies whether redis clients can connect using TLS-encrypted or plaintext redis protocols. Default is TLS-encrypted.",
+ "enum": [
+ "Encrypted",
+ "Plaintext"
+ ],
+ "x-ms-enum": {
+ "name": "Protocol",
+ "modelAsString": true
+ }
+ },
+ "port": {
+ "type": "integer",
+ "format": "int32",
+ "x-ms-mutability": [
+ "read",
+ "create"
+ ],
+ "description": "TCP port of the database endpoint. Specified at create time. Defaults to an available port."
+ },
+ "provisioningState": {
+ "$ref": "#/definitions/ProvisioningState",
+ "readOnly": true,
+ "description": "Current provisioning status of the database"
+ },
+ "resourceState": {
+ "$ref": "#/definitions/ResourceState",
+ "readOnly": true,
+ "description": "Current resource status of the database"
+ },
+ "clusteringPolicy": {
+ "type": "string",
+ "description": "Clustering policy - default is OSSCluster. Specified at create time.",
+ "enum": [
+ "EnterpriseCluster",
+ "OSSCluster"
+ ],
+ "x-ms-enum": {
+ "name": "ClusteringPolicy",
+ "modelAsString": true
+ },
+ "x-ms-mutability": [
+ "read",
+ "create"
+ ]
+ },
+ "evictionPolicy": {
+ "type": "string",
+ "description": "Redis eviction policy - default is VolatileLRU",
+ "enum": [
+ "AllKeysLFU",
+ "AllKeysLRU",
+ "AllKeysRandom",
+ "VolatileLRU",
+ "VolatileLFU",
+ "VolatileTTL",
+ "VolatileRandom",
+ "NoEviction"
+ ],
+ "x-ms-enum": {
+ "name": "EvictionPolicy",
+ "modelAsString": true
+ }
+ },
+ "modules": {
+ "type": "array",
+ "description": "Optional set of redis modules to enable in this database - modules can only be added at creation time.",
+ "items": {
+ "$ref": "#/definitions/Module"
+ },
+ "x-ms-mutability": [
+ "read",
+ "create"
+ ]
+ }
+ }
+ },
+ "DatabaseList": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Database"
+ },
+ "description": "List of databases"
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The URI to fetch the next page of results."
+ }
+ },
+ "description": "The response of a list-all operation."
+ },
+ "Module": {
+ "title": "Module settings",
+ "description": "Specifies configuration of a redis module",
+ "properties": {
+ "name": {
+ "type": "string",
+ "x-ms-mutability": [
+ "read",
+ "create"
+ ],
+ "description": "The name of the module, e.g. 'RedisBloom', 'RediSearch', 'RedisTimeSeries'"
+ },
+ "args": {
+ "type": "string",
+ "x-ms-mutability": [
+ "read",
+ "create"
+ ],
+ "description": "Configuration options for the module, e.g. 'ERROR_RATE 0.00 INITIAL_SIZE 400'."
+ },
+ "version": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The version of the module, e.g. '1.0'."
+ }
+ },
+ "required": [
+ "name"
+ ]
+ },
+ "AccessKeys": {
+ "title": "Access keys",
+ "description": "The secret access keys used for authenticating connections to redis",
+ "type": "object",
+ "properties": {
+ "primaryKey": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The current primary key that clients can use to authenticate"
+ },
+ "secondaryKey": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The current secondary key that clients can use to authenticate"
+ }
+ }
+ },
+ "RegenerateKeyParameters": {
+ "title": "Regenerate access keys request",
+ "properties": {
+ "keyType": {
+ "type": "string",
+ "description": "Which access key to regenerate.",
+ "enum": [
+ "Primary",
+ "Secondary"
+ ],
+ "x-ms-enum": {
+ "name": "AccessKeyType",
+ "modelAsString": false
+ }
+ }
+ },
+ "required": [
+ "keyType"
+ ],
+ "description": "Specifies which access keys to reset to a new random value."
+ },
+ "ImportClusterParameters": {
+ "title": "Import an RDB file into a target database",
+ "properties": {
+ "sasUri": {
+ "type": "string",
+ "description": "SAS Uri for the target blob to import from"
+ }
+ },
+ "required": [
+ "sasUri"
+ ],
+ "description": "Parameters for a Redis Enterprise import operation."
+ },
+ "ExportClusterParameters": {
+ "title": "Export an RDB file into a target database",
+ "properties": {
+ "sasUri": {
+ "type": "string",
+ "description": "SAS Uri for the target directory to export to"
+ }
+ },
+ "required": [
+ "sasUri"
+ ],
+ "description": "Parameters for a Redis Enterprise export operation."
+ },
+ "OperationStatus": {
+ "description": "The status of a long-running operation.",
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "The operation's unique id."
+ },
+ "name": {
+ "type": "string",
+ "description": "The operation's name."
+ },
+ "startTime": {
+ "type": "string",
+ "description": "The start time of the operation."
+ },
+ "endTime": {
+ "type": "string",
+ "description": "The end time of the operation."
+ },
+ "status": {
+ "type": "string",
+ "description": "The current status of the operation."
+ },
+ "error": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse",
+ "description": "Error response describing why the operation failed."
+ }
+ }
+ }
+ },
+ "parameters": {
+ "SubscriptionIdParameter": {
+ "name": "subscriptionId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Gets 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."
+ },
+ "ResourceGroupNameParameter": {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group.",
+ "x-ms-parameter-location": "method"
+ },
+ "ClusterNameParameter": {
+ "name": "clusterName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the RedisEnterprise cluster.",
+ "x-ms-parameter-location": "method"
+ },
+ "DatabaseNameParameter": {
+ "name": "databaseName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the database.",
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/redisenterprise/resource-manager/readme.csharp.md b/specification/redisenterprise/resource-manager/readme.csharp.md
new file mode 100644
index 000000000000..c091d56643f8
--- /dev/null
+++ b/specification/redisenterprise/resource-manager/readme.csharp.md
@@ -0,0 +1,15 @@
+## C#
+
+These settings apply only when `--csharp` is specified on the command line.
+Please also specify `--csharp-sdks-folder=`.
+
+```yaml $(csharp)
+csharp:
+ azure-arm: true
+ license-header: MICROSOFT_MIT_NO_VERSION
+ payload-flattening-threshold: 1
+ clear-output-folder: true
+ client-side-validation: false
+ namespace: Microsoft.Azure.Management.RedisEnterprise
+ output-folder: $(csharp-sdks-folder)/redisenterprise/Microsoft.Azure.Management.RedisEnterprise/src/Generated
+```
diff --git a/specification/redisenterprise/resource-manager/readme.go.md b/specification/redisenterprise/resource-manager/readme.go.md
new file mode 100644
index 000000000000..a631e563ba0e
--- /dev/null
+++ b/specification/redisenterprise/resource-manager/readme.go.md
@@ -0,0 +1,26 @@
+## Go
+
+These settings apply only when `--go` is specified on the command line.
+
+```yaml $(go)
+go:
+ license-header: MICROSOFT_APACHE_NO_VERSION
+ namespace: redisenterprise
+ clear-output-folder: true
+```
+
+### Go multi-api
+
+``` yaml $(go) && $(multiapi)
+batch:
+ - tag: package-2020-10-01-preview
+```
+
+### Tag: package-2020-10-01-preview and go
+
+These settings apply only when `--tag=package-2020-10-01-preview --go` is specified on the command line.
+Please also specify `--go-sdks-folder=`.
+
+```yaml $(tag) == 'package-2020-10-01-preview' && $(go)
+output-folder: $(go-sdks-folder)/services/preview/$(namespace)/mgmt/2020-10-01-preview/$(namespace)
+```
diff --git a/specification/redisenterprise/resource-manager/readme.md b/specification/redisenterprise/resource-manager/readme.md
new file mode 100644
index 000000000000..40b8cc61561d
--- /dev/null
+++ b/specification/redisenterprise/resource-manager/readme.md
@@ -0,0 +1,80 @@
+# RedisEnterprise
+
+> see https://aka.ms/autorest
+
+This is the AutoRest configuration file for redisenterprise.
+
+## Getting Started
+
+To build the SDKs for My API, simply install AutoRest via `npm` (`npm install -g autorest`) and then run:
+
+> `autorest readme.md`
+
+To see additional help and options, run:
+
+> `autorest --help`
+
+For other options on installation see [Installing AutoRest](https://aka.ms/autorest/install) on the AutoRest github page.
+
+---
+
+## Configuration
+
+### Basic Information
+
+These are the global settings for the RedisEnterprise API.
+
+```yaml
+openapi-type: arm
+tag: package-2020-10-01-preview
+```
+
+### Tag: package-2020-10-01-preview
+
+These settings apply only when `--tag=package-2020-10-01-preview` is specified on the command line.
+
+```yaml $(tag) == 'package-2020-10-01-preview'
+input-file:
+ - Microsoft.Cache/preview/2020-10-01-preview/redisenterprise.json
+```
+
+---
+
+# Code Generation
+
+## Swagger to SDK
+
+This section describes what SDK should be generated by the automatic system.
+This is not used by Autorest itself.
+
+```yaml $(swagger-to-sdk)
+swagger-to-sdk:
+ - repo: azure-sdk-for-net
+ - repo: azure-sdk-for-python
+ - repo: azure-sdk-for-java
+ - repo: azure-sdk-for-go
+ - repo: azure-sdk-for-js
+ - repo: azure-sdk-for-ruby
+ after_scripts:
+ - bundle install && rake arm:regen_all_profiles['azure_mgmt_redisenterprise']
+```
+
+## Go
+
+See configuration in [readme.go.md](./readme.go.md)
+
+## Python
+
+See configuration in [readme.python.md](./readme.python.md)
+
+## Ruby
+
+See configuration in [readme.ruby.md](./readme.ruby.md)
+
+## TypeScript
+
+See configuration in [readme.typescript.md](./readme.typescript.md)
+
+## CSharp
+
+See configuration in [readme.csharp.md](./readme.csharp.md)
diff --git a/specification/redisenterprise/resource-manager/readme.python.md b/specification/redisenterprise/resource-manager/readme.python.md
new file mode 100644
index 000000000000..ee21c8325e10
--- /dev/null
+++ b/specification/redisenterprise/resource-manager/readme.python.md
@@ -0,0 +1,21 @@
+## Python
+
+These settings apply only when `--python` is specified on the command line.
+Please also specify `--python-sdks-folder=`.
+
+```yaml $(python)
+python:
+ azure-arm: true
+ license-header: MICROSOFT_MIT_NO_VERSION
+ payload-flattening-threshold: 2
+ namespace: Microsoft.Cache
+ package-name: redisenterprise
+ package-version: 2020-10-01-preview
+ clear-output-folder: true
+```
+
+```yaml $(python)
+python:
+ no-namespace-folders: true
+ output-folder: $(python-sdks-folder)/azure-mgmt/redisenterprise
+```
diff --git a/specification/redisenterprise/resource-manager/readme.ruby.md b/specification/redisenterprise/resource-manager/readme.ruby.md
new file mode 100644
index 000000000000..cd98f4b0c38d
--- /dev/null
+++ b/specification/redisenterprise/resource-manager/readme.ruby.md
@@ -0,0 +1,19 @@
+## Ruby
+
+These settings apply only when `--ruby` is specified on the command line.
+
+```yaml
+package-name: azure_mgmt_redisenterprise
+package-version: 2020-10-01-preview
+azure-arm: true
+```
+
+### Tag: package-2020-10-01-preview and ruby
+
+These settings apply only when `--tag=package-2020-10-01-preview --ruby` is specified on the command line.
+Please also specify `--ruby-sdks-folder=`.
+
+```yaml $(tag) == 'package-2020-10-01-preview' && $(ruby)
+namespace: Microsoft.Cache
+output-folder: $(ruby-sdks-folder)/redisenterprise
+```
diff --git a/specification/redisenterprise/resource-manager/readme.typescript.md b/specification/redisenterprise/resource-manager/readme.typescript.md
new file mode 100644
index 000000000000..79eec0c670ef
--- /dev/null
+++ b/specification/redisenterprise/resource-manager/readme.typescript.md
@@ -0,0 +1,13 @@
+## TypeScript
+
+These settings apply only when `--typescript` is specified on the command line.
+Please also specify `--typescript-sdks-folder=`.
+
+```yaml $(typescript)
+typescript:
+ azure-arm: true
+ package-name: "redisenterprise"
+ output-folder: "$(typescript-sdks-folder)/packages/redisenterprise"
+ payload-flattening-threshold: 1
+ generate-metadata: true
+```
diff --git a/specification/reservations/resource-manager/Microsoft.Capacity/preview/2019-04-01/examples/Archive.json b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2019-04-01/examples/Archive.json
new file mode 100644
index 000000000000..5828ff4d35db
--- /dev/null
+++ b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2019-04-01/examples/Archive.json
@@ -0,0 +1,10 @@
+{
+ "parameters": {
+ "api-version": "2019-04-01",
+ "reservationOrderId": "276e7ae4-84d0-4da6-ab4b-d6b94f3557da",
+ "reservationId": "356e7ae4-84d0-4da6-ab4b-d6b94f3557da"
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/reservations/resource-manager/Microsoft.Capacity/preview/2019-04-01/examples/Unarchive.json b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2019-04-01/examples/Unarchive.json
new file mode 100644
index 000000000000..5828ff4d35db
--- /dev/null
+++ b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2019-04-01/examples/Unarchive.json
@@ -0,0 +1,10 @@
+{
+ "parameters": {
+ "api-version": "2019-04-01",
+ "reservationOrderId": "276e7ae4-84d0-4da6-ab4b-d6b94f3557da",
+ "reservationId": "356e7ae4-84d0-4da6-ab4b-d6b94f3557da"
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/reservations/resource-manager/Microsoft.Capacity/preview/2019-04-01/reservations.json b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2019-04-01/reservations.json
index 533fae60c7f0..76cf5b769a30 100644
--- a/specification/reservations/resource-manager/Microsoft.Capacity/preview/2019-04-01/reservations.json
+++ b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2019-04-01/reservations.json
@@ -594,6 +594,80 @@
}
}
},
+ "/providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}/archive": {
+ "post": {
+ "summary": "Archive a `Reservation`.",
+ "description": "Archiving a `Reservation` moves it to `Archived` state.",
+ "operationId": "Reservation_Archive",
+ "x-ms-examples": {
+ "Archive": {
+ "$ref": "./examples/Archive.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ReservationOrderIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ReservationIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "tags": [
+ "Reservation, Archive"
+ ],
+ "responses": {
+ "200": {
+ "description": "Archived a reservation."
+ },
+ "default": {
+ "description": "Unexpected error",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ }
+ },
+ "/providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}/unarchive": {
+ "post": {
+ "summary": "Unarchive a `Reservation`.",
+ "description": "Unarchiving a `Reservation` moves it to the state it was before archiving.\n",
+ "operationId": "Reservation_Unarchive",
+ "x-ms-examples": {
+ "Unarchive": {
+ "$ref": "./examples/Unarchive.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ReservationOrderIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ReservationIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "tags": [
+ "Reservation, Unarchive"
+ ],
+ "responses": {
+ "200": {
+ "description": "Unarchive complete for the reservation."
+ },
+ "default": {
+ "description": "Unexpected error",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ }
+ },
"/providers/Microsoft.Capacity/operations": {
"get": {
"summary": "Get operations.",
@@ -1639,6 +1713,27 @@
"format": "double"
}
}
+ },
+ "AvailableScopeRequest": {
+ "type": "object",
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/AvailableScopeRequestProperties"
+ }
+ }
+ },
+ "AvailableScopeRequestProperties": {
+ "description": "List of scopes for which availability should be checked",
+ "type": "object",
+ "properties": {
+ "scopes": {
+ "description": "Scopes to be checked for availability",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
}
},
"parameters": {
@@ -1647,11 +1742,9 @@
"x-ms-parameter-location": "method",
"in": "body",
"required": true,
+ "description": "Parameter for listing the available scopes",
"schema": {
- "type": "array",
- "items": {
- "type": "string"
- }
+ "$ref": "#/definitions/AvailableScopeRequest"
}
},
"PurchaseParameter": {
diff --git a/specification/resourcemover/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveResources_Create.json b/specification/resourcemover/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveResources_Create.json
index 16ab97ed9d53..5a351f625f19 100644
--- a/specification/resourcemover/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveResources_Create.json
+++ b/specification/resourcemover/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveResources_Create.json
@@ -7,11 +7,11 @@
"api-version": "2019-10-01-preview",
"body": {
"properties": {
- "sourceId": "/subscriptions/subid/resourceGroups/eastus/providers/Microsoft.Compute/virtualMachines/eastusvm1",
+ "sourceId": "/subscriptions/subid/resourceGroups/eastusRG/providers/Microsoft.Compute/virtualMachines/eastusvm1",
"dependsOnOverrides": [
{
- "id": "/subscriptions/c4488a3f-a7f7-4ad4-aa72-0e1f4d9c0756/resourceGroups/eastus/providers/Microsoft.Network/networkInterfaces/eastusvm140",
- "targetId": "/subscriptions/c4488a3f-a7f7-4ad4-aa72-0e1f4d9c0756/resourceGroups/westus/providers/Microsoft.Network/networkInterfaces/eastusvm140"
+ "id": "/subscriptions/c4488a3f-a7f7-4ad4-aa72-0e1f4d9c0756/resourceGroups/eastusRG/providers/Microsoft.Network/networkInterfaces/eastusvm140",
+ "targetId": "/subscriptions/c4488a3f-a7f7-4ad4-aa72-0e1f4d9c0756/resourceGroups/westusRG/providers/Microsoft.Network/networkInterfaces/eastusvm140"
}
],
"resourceSettings": {
@@ -19,7 +19,7 @@
"targetResourceName": "westusvm1",
"targetAvailabilityZone": "2",
"targetVmSize": null,
- "targetAvailabilitySetId": "/subscriptions/subid/resourceGroups/eastus/providers/Microsoft.Compute/availabilitySets/avset1"
+ "targetAvailabilitySetId": "/subscriptions/subid/resourceGroups/eastusRG/providers/Microsoft.Compute/availabilitySets/avset1"
}
}
}
@@ -31,18 +31,18 @@
"id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Migrate/MoveCollections/movecollection1/MoveResources/moveresource1",
"type": "Microsoft.Migrate/MoveCollections/MoveResources",
"properties": {
- "sourceId": "/subscriptions/subid/resourceGroups/eastus/providers/Microsoft.Compute/virtualMachines/eastusvm1",
+ "sourceId": "/subscriptions/subid/resourceGroups/eastusRG/providers/Microsoft.Compute/virtualMachines/eastusvm1",
"dependsOn": [
{
- "id": "/subscriptions/c4488a3f-a7f7-4ad4-aa72-0e1f4d9c0756/resourceGroups/eastus/providers/Microsoft.Network/networkInterfaces/eastusvm140",
+ "id": "/subscriptions/c4488a3f-a7f7-4ad4-aa72-0e1f4d9c0756/resourceGroups/eastusRG/providers/Microsoft.Network/networkInterfaces/eastusvm140",
"resolutionType": "Automatic",
"resolutionStatus": "Unresolved"
}
],
"dependsOnOverrides": [
{
- "id": "/subscriptions/c4488a3f-a7f7-4ad4-aa72-0e1f4d9c0756/resourceGroups/eastus/providers/Microsoft.Network/networkInterfaces/eastusvm140",
- "targetId": "/subscriptions/c4488a3f-a7f7-4ad4-aa72-0e1f4d9c0756/resourceGroups/westus/providers/Microsoft.Network/networkInterfaces/eastusvm140"
+ "id": "/subscriptions/c4488a3f-a7f7-4ad4-aa72-0e1f4d9c0756/resourceGroups/eastusRG/providers/Microsoft.Network/networkInterfaces/eastusvm140",
+ "targetId": "/subscriptions/c4488a3f-a7f7-4ad4-aa72-0e1f4d9c0756/resourceGroups/westusRG/providers/Microsoft.Network/networkInterfaces/eastusvm140"
}
],
"resourceSettings": {
@@ -50,7 +50,7 @@
"targetResourceName": "westusvm1",
"targetAvailabilityZone": "2",
"targetVmSize": null,
- "targetAvailabilitySetId": "/subscriptions/subid/resourceGroups/eastus/providers/Microsoft.Compute/availabilitySets/avset1"
+ "targetAvailabilitySetId": "/subscriptions/subid/resourceGroups/eastusRG/providers/Microsoft.Compute/availabilitySets/avset1"
},
"provisioningState": "Succeeded"
}
diff --git a/specification/resourcemover/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/resourcemovercollection.json b/specification/resourcemover/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/resourcemovercollection.json
index 90496e1c0ba0..3bb1543ba475 100644
--- a/specification/resourcemover/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/resourcemovercollection.json
+++ b/specification/resourcemover/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/resourcemovercollection.json
@@ -1208,11 +1208,7 @@
},
"sourceResourceSettings": {
"description": "Gets or sets the source resource settings.",
- "allOf": [
- {
- "$ref": "#/definitions/ResourceSettings"
- }
- ],
+ "$ref": "#/definitions/ResourceSettings",
"readOnly": true
},
"moveStatus": {
diff --git a/specification/resourcemover/resource-manager/readme.az.md b/specification/resourcemover/resource-manager/readme.az.md
new file mode 100644
index 000000000000..f7d466b385e5
--- /dev/null
+++ b/specification/resourcemover/resource-manager/readme.az.md
@@ -0,0 +1,12 @@
+## AZ
+
+These settings apply only when `--az` is specified on the command line.
+
+``` yaml $(az)
+az:
+ extensions: resourcemover
+ package-name: azure-mgmt-resourcemover
+ namespace: azure.mgmt.resourcemover
+az-output-folder: $(azure-cli-extension-folder)/src/resourcemover
+python-sdk-output-folder: "$(az-output-folder)/azext_resourcemover/vendored_sdks/resourcemover"
+```
diff --git a/specification/resourcemover/resource-manager/readme.cli.md b/specification/resourcemover/resource-manager/readme.cli.md
new file mode 100644
index 000000000000..2ef32e2bfe9c
--- /dev/null
+++ b/specification/resourcemover/resource-manager/readme.cli.md
@@ -0,0 +1,10 @@
+## CLI
+
+These settings apply only when `--cli` is specified on the command line.
+
+``` yaml $(cli)
+cli:
+ cli-name: resourcemover
+ package-name: azure-mgmt-resourcemover
+ namespace: azure.mgmt.resourcemover
+```
diff --git a/specification/resourcemover/resource-manager/readme.trenton.md b/specification/resourcemover/resource-manager/readme.trenton.md
new file mode 100644
index 000000000000..e8512a6f0bdd
--- /dev/null
+++ b/specification/resourcemover/resource-manager/readme.trenton.md
@@ -0,0 +1,20 @@
+
+## trenton
+
+These settings apply only when `--trenton` is specified on the command line.
+
+``` yaml $(trenton)
+trenton:
+ cli-name: resourcemover
+ package-name: resourcemover
+clear-output-folder: true
+output-folder: $(trenton-output-folder)/resourcemover
+```
+
+``` yaml $(trenton)
+overrides:
+ - where:
+ property: dependsOn
+ set:
+ - SchemaName: "dependency"
+```
diff --git a/specification/resources/resource-manager/Microsoft.Authorization/stable/2020-09-01/dataPolicyManifests.json b/specification/resources/resource-manager/Microsoft.Authorization/stable/2020-09-01/dataPolicyManifests.json
new file mode 100644
index 000000000000..9713883370f4
--- /dev/null
+++ b/specification/resources/resource-manager/Microsoft.Authorization/stable/2020-09-01/dataPolicyManifests.json
@@ -0,0 +1,307 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "PolicyClient",
+ "version": "2020-09-01",
+ "description": "To manage and control access to your resources, you can define customized policies and assign them at a scope."
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "security": [
+ {
+ "azure_auth": [
+ "user_impersonation"
+ ]
+ }
+ ],
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Azure Active Directory OAuth2 Flow",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
+ "paths": {
+ "/providers/Microsoft.Authorization/dataPolicyManifests/{policyMode}": {
+ "get": {
+ "tags": [
+ "DataPolicyManifests"
+ ],
+ "operationId": "DataPolicyManifests_GetByPolicyMode",
+ "summary": "Retrieves a data policy manifest.",
+ "description": "This operation retrieves the data policy manifest with the given policy mode.",
+ "x-ms-examples": {
+ "Retrieve a data policy manifest by policy mode": {
+ "$ref": "./examples/getDataPolicyManifest.json"
+ }
+ },
+ "parameters": [
+ {
+ "name": "policyMode",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The policy mode of the data policy manifest to get."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK - Returns information about a data policy manifest.",
+ "schema": {
+ "$ref": "#/definitions/DataPolicyManifest"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/providers/Microsoft.Authorization/dataPolicyManifests": {
+ "get": {
+ "tags": [
+ "DataPolicyManifests"
+ ],
+ "operationId": "DataPolicyManifests_List",
+ "summary": "Retrieves data policy manifests",
+ "description": "This operation retrieves a list of all the data policy manifests that match the optional given $filter. Valid values for $filter are: \"$filter=namespace eq '{0}'\". If $filter is not provided, the unfiltered list includes all data policy manifests for data resource types. If $filter=namespace is provided, the returned list only includes all data policy manifests that have a namespace matching the provided value.",
+ "x-ms-examples": {
+ "List data policy manifests": {
+ "$ref": "./examples/listDataPolicyManifests.json"
+ },
+ "List data policy manifests with namespace filter": {
+ "$ref": "./examples/listDataPolicyManifestsNamespaceFilter.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/DataPolicyManifestsFilterParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK - Returns an array of data policy manifests.",
+ "schema": {
+ "$ref": "#/definitions/DataPolicyManifestListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "CloudError": {
+ "x-ms-external": true,
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse",
+ "description": "An error response from a policy operation."
+ },
+ "DataManifestCustomResourceFunctionDefinition": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The function name as it will appear in the policy rule. eg - 'vault'."
+ },
+ "fullyQualifiedResourceType": {
+ "type": "string",
+ "description": "The fully qualified control plane resource type that this function represents. eg - 'Microsoft.KeyVault/vaults'."
+ },
+ "defaultProperties": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The top-level properties that can be selected on the function's output. eg - [ \"name\", \"location\" ] if vault().name and vault().location are supported"
+ },
+ "allowCustomProperties": {
+ "type": "boolean",
+ "description": "A value indicating whether the custom properties within the property bag are allowed. Needs api-version to be specified in the policy rule eg - vault('2019-06-01')."
+ }
+ },
+ "description": "The custom resource function definition."
+ },
+ "DataManifestResourceFunctionsDefinition": {
+ "properties": {
+ "standard": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The standard resource functions (subscription and/or resourceGroup)."
+ },
+ "custom": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DataManifestCustomResourceFunctionDefinition"
+ },
+ "description": "An array of data manifest custom resource definition."
+ }
+ },
+ "description": "The resource functions supported by a manifest"
+ },
+ "DataEffect": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The data effect name."
+ },
+ "detailsSchema": {
+ "type": "object",
+ "description": "The data effect details schema."
+ }
+ },
+ "description": "The data effect definition."
+ },
+ "ResourceTypeAliases": {
+ "properties": {
+ "resourceType": {
+ "type": "string",
+ "description": "The resource type name."
+ },
+ "aliases": {
+ "type": "array",
+ "items": {
+ "$ref": "../../../Microsoft.Resources/stable/2020-06-01/resources.json#/definitions/Alias"
+ },
+ "description": "The aliases for property names."
+ }
+ },
+ "description": "The resource type aliases definition."
+ },
+ "DataPolicyManifestProperties": {
+ "properties": {
+ "namespaces": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The list of namespaces for the data policy manifest."
+ },
+ "policyMode": {
+ "type": "string",
+ "description": "The policy mode of the data policy manifest."
+ },
+ "isBuiltInOnly": {
+ "type": "boolean",
+ "description": "A value indicating whether policy mode is allowed only in built-in definitions."
+ },
+ "resourceTypeAliases": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ResourceTypeAliases"
+ },
+ "description": "An array of resource type aliases."
+ },
+ "effects": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DataEffect"
+ },
+ "description": "The effect definition."
+ },
+ "fieldValues": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The non-alias field accessor values that can be used in the policy rule."
+ },
+ "resourceFunctions": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/DataManifestResourceFunctionsDefinition",
+ "description": "The resource functions definition specified in the data manifest."
+ }
+ },
+ "description": "The properties of the data policy manifest."
+ },
+ "DataPolicyManifest": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/DataPolicyManifestProperties",
+ "description": "The data policy manifest properties."
+ },
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The ID of the data policy manifest."
+ },
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The name of the data policy manifest (it's the same as the Policy Mode)."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The type of the resource (Microsoft.Authorization/dataPolicyManifests)."
+ }
+ },
+ "description": "The data policy manifest.",
+ "x-ms-azure-resource": true
+ },
+ "DataPolicyManifestListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DataPolicyManifest"
+ },
+ "description": "An array of data policy manifests."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to use for getting the next set of results."
+ }
+ },
+ "description": "List of data policy manifests."
+ }
+ },
+ "parameters": {
+ "ApiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "The API version to use for the operation."
+ },
+ "DataPolicyManifestsFilterParameter": {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "The filter to apply on the operation. Valid values for $filter are: \"namespace eq '{value}'\". If $filter is not provided, no filtering is performed. If $filter=namespace eq '{value}' is provided, the returned list only includes all data policy manifests that have a namespace matching the provided value.",
+ "x-ms-skip-url-encoding": true,
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/resources/resource-manager/Microsoft.Authorization/stable/2020-09-01/examples/getDataPolicyManifest.json b/specification/resources/resource-manager/Microsoft.Authorization/stable/2020-09-01/examples/getDataPolicyManifest.json
new file mode 100644
index 000000000000..a11055df4c03
--- /dev/null
+++ b/specification/resources/resource-manager/Microsoft.Authorization/stable/2020-09-01/examples/getDataPolicyManifest.json
@@ -0,0 +1,69 @@
+{
+ "parameters": {
+ "api-version": "2020-09-01",
+ "policyMode": "Microsoft.KeyVault.Data"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "/providers/Microsoft.Authorization/dataPolicyManifests/Microsoft.KeyVault.Data",
+ "type": "Microsoft.Authorization/dataPolicyManifests",
+ "name": "Microsoft.KeyVault.Data",
+ "properties": {
+ "namespaces": [
+ "Microsoft.KeyVault"
+ ],
+ "policyMode": "Microsoft.KeyVault.Data",
+ "isBuiltInOnly": true,
+ "resourceTypeAliases": [
+ {
+ "resourceType": "vaults/certificates",
+ "aliases": [
+ {
+ "name": "Microsoft.KeyVault.Data/vaults/certificates/keyProperties.keyType",
+ "paths": [
+ {
+ "path": "keyProperties.keyType",
+ "apiVersions": [
+ "2019-01-01"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "effects": [
+ {
+ "name": "Audit"
+ },
+ {
+ "name": "Deny"
+ }
+ ],
+ "fieldValues": [
+ "type"
+ ],
+ "resourceFunctions": {
+ "standard": [
+ "subscription",
+ "resourceGroup"
+ ],
+ "custom": [
+ {
+ "name": "vault",
+ "fullyQualifiedResourceType": "Microsoft.KeyVault/vaults",
+ "defaultProperties": [
+ "location",
+ "tags"
+ ],
+ "allowCustomProperties": false
+ }
+ ]
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/resources/resource-manager/Microsoft.Authorization/stable/2020-09-01/examples/listDataPolicyManifests.json b/specification/resources/resource-manager/Microsoft.Authorization/stable/2020-09-01/examples/listDataPolicyManifests.json
new file mode 100644
index 000000000000..d73b38f1c3f7
--- /dev/null
+++ b/specification/resources/resource-manager/Microsoft.Authorization/stable/2020-09-01/examples/listDataPolicyManifests.json
@@ -0,0 +1,112 @@
+{
+ "parameters": {
+ "api-version": "2020-09-01"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "value": [
+ {
+ "id": "/providers/Microsoft.Authorization/dataPolicyManifests/Microsoft.KeyVault.Data",
+ "type": "Microsoft.Authorization/dataPolicyManifests",
+ "name": "Microsoft.KeyVault.Data",
+ "properties": {
+ "namespaces": [
+ "Microsoft.KeyVault"
+ ],
+ "policyMode": "Microsoft.KeyVault.Data",
+ "isBuiltInOnly": true,
+ "resourceTypeAliases": [
+ {
+ "resourceType": "vaults/certificates",
+ "aliases": [
+ {
+ "name": "Microsoft.KeyVault.Data/vaults/certificates/keyProperties.keyType",
+ "paths": [
+ {
+ "path": "keyProperties.keyType",
+ "apiVersions": [
+ "2019-01-01"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "effects": [
+ {
+ "name": "audit"
+ },
+ {
+ "name": "deny"
+ }
+ ],
+ "fieldValues": [
+ "type"
+ ],
+ "resourceFunctions": {
+ "standard": [
+ "subscription",
+ "resourceGroup"
+ ],
+ "custom": [
+ {
+ "name": "vault",
+ "fullyQualifiedResourceType": "Microsoft.KeyVault/vaults",
+ "defaultProperties": [
+ "location",
+ "tags"
+ ],
+ "allowCustomProperties": false
+ }
+ ]
+ }
+ }
+ },
+ {
+ "id": "/providers/Microsoft.Authorization/dataPolicyManifests/Microsoft.Kubernetes.Data",
+ "type": "Microsoft.Authorization/dataPolicyManifests",
+ "name": "Microsoft.Kubernetes.Data",
+ "properties": {
+ "namespaces": [
+ "Microsoft.Kubernetes",
+ "Microsoft.ContainerService"
+ ],
+ "policyMode": "Microsoft.Kubernetes.Data",
+ "isBuiltInOnly": false,
+ "effects": [
+ {
+ "name": "audit",
+ "detailsSchema": {
+ "type": "object",
+ "properties": {
+ "constraintTemplate": {
+ "type": "string",
+ "pattern": "^(?i)(https:\\/\\/raw\\.githubusercontent\\.com\\/){1}(.+)(\\.){1}(yaml|yml){1}$"
+ },
+ "constraint": {
+ "type": "string",
+ "pattern": "^(?i)(https:\\/\\/raw\\.githubusercontent\\.com\\/){1}(.+)(\\.){1}(yaml|yml){1}$"
+ },
+ "values": {
+ "type": "object",
+ "maxProperties": 10,
+ "additionalProperties": {}
+ }
+ },
+ "required": [
+ "constraintTemplate"
+ ],
+ "additionalProperties": false
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/resources/resource-manager/Microsoft.Authorization/stable/2020-09-01/examples/listDataPolicyManifestsNamespaceFilter.json b/specification/resources/resource-manager/Microsoft.Authorization/stable/2020-09-01/examples/listDataPolicyManifestsNamespaceFilter.json
new file mode 100644
index 000000000000..8cd8e706f4a1
--- /dev/null
+++ b/specification/resources/resource-manager/Microsoft.Authorization/stable/2020-09-01/examples/listDataPolicyManifestsNamespaceFilter.json
@@ -0,0 +1,73 @@
+{
+ "parameters": {
+ "api-version": "2020-09-01",
+ "$filter": "namespace eq 'Microsoft.KeyVault'"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "value": [
+ {
+ "id": "/providers/Microsoft.Authorization/dataPolicyManifests/Microsoft.KeyVault.Data",
+ "type": "Microsoft.Authorization/dataPolicyManifests",
+ "name": "Microsoft.KeyVault.Data",
+ "properties": {
+ "namespaces": [
+ "Microsoft.KeyVault"
+ ],
+ "policyMode": "Microsoft.KeyVault.Data",
+ "isBuiltInOnly": true,
+ "resourceTypeAliases": [
+ {
+ "resourceType": "vaults/certificates",
+ "aliases": [
+ {
+ "name": "Microsoft.KeyVault.Data/vaults/certificates/keyProperties.keyType",
+ "paths": [
+ {
+ "path": "keyProperties.keyType",
+ "apiVersions": [
+ "2019-01-01"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "effects": [
+ {
+ "name": "audit"
+ },
+ {
+ "name": "deny"
+ }
+ ],
+ "fieldValues": [
+ "type"
+ ],
+ "resourceFunctions": {
+ "standard": [
+ "subscription",
+ "resourceGroup"
+ ],
+ "custom": [
+ {
+ "name": "vault",
+ "fullyQualifiedResourceType": "Microsoft.KeyVault/vaults",
+ "defaultProperties": [
+ "location",
+ "tags"
+ ],
+ "allowCustomProperties": false
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/resources/resource-manager/Microsoft.Resources/preview/2020-10-01-preview/examples/TemplateSpecVersionsCreate.json b/specification/resources/resource-manager/Microsoft.Resources/preview/2020-10-01-preview/examples/TemplateSpecVersionsCreate.json
deleted file mode 100644
index 8871f54c9fc0..000000000000
--- a/specification/resources/resource-manager/Microsoft.Resources/preview/2020-10-01-preview/examples/TemplateSpecVersionsCreate.json
+++ /dev/null
@@ -1,73 +0,0 @@
-{
- "parameters": {
- "api-version": "2020-10-01-preview",
- "subscriptionId": "00000000-0000-0000-0000-000000000000",
- "resourceGroupName": "templateSpecRG",
- "templateSpecName": "simpleTemplateSpec",
- "templateSpecVersion": "v1.0",
- "templateSpecVersionModel": {
- "location": "eastus",
- "properties": {
- "description": "This is version v1.0 of our template content",
- "template": {
- "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
- "contentVersion": "1.0.0.0",
- "parameters": {},
- "resources": []
- }
- }
- }
- },
- "responses": {
- "200": {
- "body": {
- "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/templateSpecRG/providers/Microsoft.Resources/templateSpecs/simpleTemplateSpec/versions/v1.0",
- "type": "Microsoft.Resources/templateSpecs/versions",
- "name": "v1.0",
- "location": "eastus",
- "systemData": {
- "createdBy": "string",
- "createdByType": "Application",
- "createdAt": "2020-02-01T01:01:01.1075056Z",
- "lastModifiedBy": "string",
- "lastModifiedByType": "Application",
- "lastModifiedAt": "2020-02-02T02:03:01.1974346Z"
- },
- "properties": {
- "description": "This is version v1.0 of our template content",
- "template": {
- "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
- "contentVersion": "1.0.0.0",
- "parameters": {},
- "resources": []
- }
- }
- }
- },
- "201": {
- "body": {
- "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/templateSpecRG/providers/Microsoft.Resources/templateSpecs/simpleTemplateSpec/versions/v1.0",
- "type": "Microsoft.Resources/templateSpecs/versions",
- "name": "v1.0",
- "location": "eastus",
- "systemData": {
- "createdBy": "string",
- "createdByType": "Application",
- "createdAt": "2020-02-01T01:01:01.1075056Z",
- "lastModifiedBy": "string",
- "lastModifiedByType": "Application",
- "lastModifiedAt": "2020-02-01T01:01:01.1075056Z"
- },
- "properties": {
- "description": "This is version v1.0 of our template content",
- "template": {
- "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
- "contentVersion": "1.0.0.0",
- "parameters": {},
- "resources": []
- }
- }
- }
- }
- }
-}
diff --git a/specification/resources/resource-manager/Microsoft.Resources/preview/2020-10-01-preview/examples/TemplateSpecVersionsDelete.json b/specification/resources/resource-manager/Microsoft.Resources/preview/2020-10-01-preview/examples/TemplateSpecVersionsDelete.json
deleted file mode 100644
index 944606a6e958..000000000000
--- a/specification/resources/resource-manager/Microsoft.Resources/preview/2020-10-01-preview/examples/TemplateSpecVersionsDelete.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "parameters": {
- "api-version": "2020-10-01-preview",
- "subscriptionId": "00000000-0000-0000-0000-000000000000",
- "resourceGroupName": "templateSpecRG",
- "templateSpecName": "simpleTemplateSpec",
- "templateSpecVersion": "v1.0"
- },
- "responses": {
- "200": {},
- "204": {}
- }
-}
diff --git a/specification/resources/resource-manager/Microsoft.Resources/preview/2020-10-01-preview/examples/TemplateSpecVersionsGet.json b/specification/resources/resource-manager/Microsoft.Resources/preview/2020-10-01-preview/examples/TemplateSpecVersionsGet.json
deleted file mode 100644
index 358d16cbb79e..000000000000
--- a/specification/resources/resource-manager/Microsoft.Resources/preview/2020-10-01-preview/examples/TemplateSpecVersionsGet.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- "parameters": {
- "api-version": "2020-10-01-preview",
- "subscriptionId": "00000000-0000-0000-0000-000000000000",
- "resourceGroupName": "templateSpecRG",
- "templateSpecName": "simpleTemplateSpec",
- "templateSpecVersion": "v1.0"
- },
- "responses": {
- "200": {
- "body": {
- "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/templateSpecRG/providers/Microsoft.Resources/templateSpecs/simpleTemplateSpec/versions/v1.0",
- "type": "Microsoft.Resources/templateSpecs/versions",
- "name": "v1.0",
- "location": "eastus",
- "systemData": {
- "createdBy": "string",
- "createdByType": "Application",
- "createdAt": "2020-02-01T01:01:01.1075056Z",
- "lastModifiedBy": "string",
- "lastModifiedByType": "Application",
- "lastModifiedAt": "2020-02-02T02:03:01.1974346Z"
- },
- "properties": {
- "description": "This is version v1.0 of our template content",
- "template": {
- "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
- "contentVersion": "1.0.0.0",
- "parameters": {},
- "resources": []
- }
- }
- }
- }
- }
-}
diff --git a/specification/resources/resource-manager/Microsoft.Resources/preview/2020-10-01-preview/examples/TemplateSpecVersionsList.json b/specification/resources/resource-manager/Microsoft.Resources/preview/2020-10-01-preview/examples/TemplateSpecVersionsList.json
deleted file mode 100644
index 78a7dfff1101..000000000000
--- a/specification/resources/resource-manager/Microsoft.Resources/preview/2020-10-01-preview/examples/TemplateSpecVersionsList.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{
- "parameters": {
- "api-version": "2020-10-01-preview",
- "subscriptionId": "00000000-0000-0000-0000-000000000000",
- "resourceGroupName": "templateSpecRG",
- "templateSpecName": "simpleTemplateSpec"
- },
- "responses": {
- "200": {
- "body": {
- "value": [
- {
- "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/templateSpecRG/providers/Microsoft.Resources/templateSpecs/simpleTemplateSpec/versions/v1.0",
- "type": "Microsoft.Resources/templateSpecs/versions",
- "name": "v1.0",
- "location": "eastus",
- "systemData": {
- "createdBy": "string",
- "createdByType": "Application",
- "createdAt": "2020-02-01T01:01:01.1075056Z",
- "lastModifiedBy": "string",
- "lastModifiedByType": "Application",
- "lastModifiedAt": "2020-02-02T02:03:01.1974346Z"
- },
- "properties": {
- "description": "This is version v1.0"
- }
- },
- {
- "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/templateSpecRG/providers/Microsoft.Resources/templateSpecs/simpleTemplateSpec/versions/v2.0",
- "type": "Microsoft.Resources/templateSpecs/versions",
- "name": "v2.0",
- "location": "eastus",
- "systemData": {
- "createdBy": "string",
- "createdByType": "Application",
- "createdAt": "2020-02-03T01:01:01.1075056Z",
- "lastModifiedBy": "string",
- "lastModifiedByType": "Application",
- "lastModifiedAt": "2020-02-04T02:03:01.1974346Z"
- },
- "properties": {
- "description": "This is another version (v2.0)"
- }
- }
- ]
- }
- }
- }
-}
diff --git a/specification/resources/resource-manager/Microsoft.Resources/preview/2020-10-01-preview/examples/TemplateSpecVersionsPatch.json b/specification/resources/resource-manager/Microsoft.Resources/preview/2020-10-01-preview/examples/TemplateSpecVersionsPatch.json
deleted file mode 100644
index 2da272aeb19c..000000000000
--- a/specification/resources/resource-manager/Microsoft.Resources/preview/2020-10-01-preview/examples/TemplateSpecVersionsPatch.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
- "parameters": {
- "api-version": "2020-10-01-preview",
- "subscriptionId": "00000000-0000-0000-0000-000000000000",
- "resourceGroupName": "templateSpecRG",
- "templateSpecName": "simpleTemplateSpec",
- "templateSpecVersion": "v1.0",
- "templateSpecVersionUpdateModel": {
- "tags": {
- "myTag": "My Value"
- }
- }
- },
- "responses": {
- "200": {
- "body": {
- "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/templateSpecRG/providers/Microsoft.Resources/templateSpecs/simpleTemplateSpec/versions/v1.0",
- "type": "Microsoft.Resources/templateSpecs/versions",
- "name": "v1.0",
- "location": "eastus",
- "systemData": {
- "createdBy": "string",
- "createdByType": "Application",
- "createdAt": "2020-02-01T01:01:01.1075056Z",
- "lastModifiedBy": "string",
- "lastModifiedByType": "Application",
- "lastModifiedAt": "2020-02-02T02:03:01.1974346Z"
- },
- "properties": {
- "description": "This is version v1.0 of our template content",
- "template": {
- "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
- "contentVersion": "1.0.0.0",
- "parameters": {},
- "resources": []
- }
- },
- "tags": {
- "myTag": "My Value"
- }
- }
- }
- }
-}
diff --git a/specification/resources/resource-manager/Microsoft.Resources/preview/2020-10-01-preview/examples/TemplateSpecsCreate.json b/specification/resources/resource-manager/Microsoft.Resources/preview/2020-10-01-preview/examples/TemplateSpecsCreate.json
deleted file mode 100644
index c08c0ac3d1d6..000000000000
--- a/specification/resources/resource-manager/Microsoft.Resources/preview/2020-10-01-preview/examples/TemplateSpecsCreate.json
+++ /dev/null
@@ -1,54 +0,0 @@
-{
- "parameters": {
- "api-version": "2020-10-01-preview",
- "subscriptionId": "00000000-0000-0000-0000-000000000000",
- "resourceGroupName": "templateSpecRG",
- "templateSpecName": "simpleTemplateSpec",
- "templateSpec": {
- "location": "eastus",
- "properties": {
- "description": "A very simple Template Spec"
- }
- }
- },
- "responses": {
- "200": {
- "body": {
- "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/templateSpecRG/providers/Microsoft.Resources/templateSpecs/simpleTemplateSpec",
- "type": "Microsoft.Resources/templateSpecs",
- "name": "simpleTemplateSpec",
- "location": "eastus",
- "systemData": {
- "createdBy": "string",
- "createdByType": "Application",
- "createdAt": "2020-02-01T01:01:01.1075056Z",
- "lastModifiedBy": "string",
- "lastModifiedByType": "Application",
- "lastModifiedAt": "2020-02-01T01:01:01.1075056Z"
- },
- "properties": {
- "description": "A very simple Template Spec"
- }
- }
- },
- "201": {
- "body": {
- "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/templateSpecRG/providers/Microsoft.Resources/templateSpecs/simpleTemplateSpec",
- "type": "Microsoft.Resources/templateSpecs",
- "name": "simpleTemplateSpec",
- "location": "eastus",
- "systemData": {
- "createdBy": "string",
- "createdByType": "Application",
- "createdAt": "2020-02-01T01:01:01.1075056Z",
- "lastModifiedBy": "string",
- "lastModifiedByType": "Application",
- "lastModifiedAt": "2020-02-02T02:03:01.1974346Z"
- },
- "properties": {
- "description": "A very simple Template Spec"
- }
- }
- }
- }
-}
diff --git a/specification/resources/resource-manager/Microsoft.Resources/preview/2020-10-01-preview/examples/TemplateSpecsDelete.json b/specification/resources/resource-manager/Microsoft.Resources/preview/2020-10-01-preview/examples/TemplateSpecsDelete.json
deleted file mode 100644
index d8bbbb09f471..000000000000
--- a/specification/resources/resource-manager/Microsoft.Resources/preview/2020-10-01-preview/examples/TemplateSpecsDelete.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "parameters": {
- "api-version": "2020-10-01-preview",
- "subscriptionId": "00000000-0000-0000-0000-000000000000",
- "resourceGroupName": "templateSpecRG",
- "templateSpecName": "simpleTemplateSpec"
- },
- "responses": {
- "200": {},
- "204": {}
- }
-}
diff --git a/specification/resources/resource-manager/Microsoft.Resources/preview/2020-10-01-preview/examples/TemplateSpecsGet.json b/specification/resources/resource-manager/Microsoft.Resources/preview/2020-10-01-preview/examples/TemplateSpecsGet.json
deleted file mode 100644
index 4a712621bde8..000000000000
--- a/specification/resources/resource-manager/Microsoft.Resources/preview/2020-10-01-preview/examples/TemplateSpecsGet.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "parameters": {
- "api-version": "2020-10-01-preview",
- "subscriptionId": "00000000-0000-0000-0000-000000000000",
- "resourceGroupName": "templateSpecRG",
- "templateSpecName": "simpleTemplateSpec"
- },
- "responses": {
- "200": {
- "body": {
- "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/templateSpecRG/providers/Microsoft.Resources/templateSpecs/simpleTemplateSpec",
- "type": "Microsoft.Resources/templateSpecs",
- "name": "simpleTemplateSpec",
- "location": "eastus",
- "systemData": {
- "createdBy": "string",
- "createdByType": "Application",
- "createdAt": "2020-02-01T01:01:01.1075056Z",
- "lastModifiedBy": "string",
- "lastModifiedByType": "Application",
- "lastModifiedAt": "2020-02-02T02:03:01.1974346Z"
- },
- "properties": {
- "description": "A very simple Template Spec"
- }
- }
- }
- }
-}
diff --git a/specification/resources/resource-manager/Microsoft.Resources/preview/2020-10-01-preview/examples/TemplateSpecsListByResourceGroup.json b/specification/resources/resource-manager/Microsoft.Resources/preview/2020-10-01-preview/examples/TemplateSpecsListByResourceGroup.json
deleted file mode 100644
index 0c700fbcf888..000000000000
--- a/specification/resources/resource-manager/Microsoft.Resources/preview/2020-10-01-preview/examples/TemplateSpecsListByResourceGroup.json
+++ /dev/null
@@ -1,49 +0,0 @@
-{
- "parameters": {
- "api-version": "2020-10-01-preview",
- "subscriptionId": "00000000-0000-0000-0000-000000000000",
- "resourceGroupName": "templateSpecRG"
- },
- "responses": {
- "200": {
- "body": {
- "value": [
- {
- "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/templateSpecRG/providers/Microsoft.Resources/templateSpecs/simpleTemplateSpec",
- "type": "Microsoft.Resources/templateSpecs",
- "name": "simpleTemplateSpec",
- "location": "eastus",
- "systemData": {
- "createdBy": "string",
- "createdByType": "Application",
- "createdAt": "2020-02-01T01:01:01.1075056Z",
- "lastModifiedBy": "string",
- "lastModifiedByType": "Application",
- "lastModifiedAt": "2020-02-02T02:03:01.1974346Z"
- },
- "properties": {
- "description": "A very simple Template Spec"
- }
- },
- {
- "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/templateSpecRG/providers/Microsoft.Resources/templateSpecs/anotherSimpleTemplateSpec",
- "type": "Microsoft.Resources/templateSpecs",
- "name": "anotherSimpleTemplateSpec",
- "location": "westus",
- "systemData": {
- "createdBy": "string",
- "createdByType": "Application",
- "createdAt": "2020-02-02T01:01:01.1075056Z",
- "lastModifiedBy": "string",
- "lastModifiedByType": "Application",
- "lastModifiedAt": "2020-02-03T02:03:01.1974346Z"
- },
- "properties": {
- "description": "Another very simple Template Spec"
- }
- }
- ]
- }
- }
- }
-}
diff --git a/specification/resources/resource-manager/Microsoft.Resources/preview/2020-10-01-preview/examples/TemplateSpecsListBySubscription.json b/specification/resources/resource-manager/Microsoft.Resources/preview/2020-10-01-preview/examples/TemplateSpecsListBySubscription.json
deleted file mode 100644
index 7509ac9c90fc..000000000000
--- a/specification/resources/resource-manager/Microsoft.Resources/preview/2020-10-01-preview/examples/TemplateSpecsListBySubscription.json
+++ /dev/null
@@ -1,48 +0,0 @@
-{
- "parameters": {
- "api-version": "2020-10-01-preview",
- "subscriptionId": "00000000-0000-0000-0000-000000000000"
- },
- "responses": {
- "200": {
- "body": {
- "value": [
- {
- "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/templateSpecRG/providers/Microsoft.Resources/templateSpecs/simpleTemplateSpec",
- "type": "Microsoft.Resources/templateSpecs",
- "name": "simpleTemplateSpec",
- "location": "eastus",
- "systemData": {
- "createdBy": "string",
- "createdByType": "Application",
- "createdAt": "2020-02-01T01:01:01.1075056Z",
- "lastModifiedBy": "string",
- "lastModifiedByType": "Application",
- "lastModifiedAt": "2020-02-02T02:03:01.1974346Z"
- },
- "properties": {
- "description": "A very simple Template Spec"
- }
- },
- {
- "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/templateSpecRG2/providers/Microsoft.Resources/templateSpecs/anotherSimpleTemplateSpec",
- "type": "Microsoft.Resources/templateSpecs",
- "name": "anotherSimpleTemplateSpec",
- "location": "westus",
- "systemData": {
- "createdBy": "string",
- "createdByType": "Application",
- "createdAt": "2020-02-02T01:01:01.1075056Z",
- "lastModifiedBy": "string",
- "lastModifiedByType": "Application",
- "lastModifiedAt": "2020-02-03T02:03:01.1974346Z"
- },
- "properties": {
- "description": "Another very simple Template Spec"
- }
- }
- ]
- }
- }
- }
-}
diff --git a/specification/resources/resource-manager/Microsoft.Resources/preview/2020-10-01-preview/examples/TemplateSpecsPatch.json b/specification/resources/resource-manager/Microsoft.Resources/preview/2020-10-01-preview/examples/TemplateSpecsPatch.json
deleted file mode 100644
index 94593a2913d3..000000000000
--- a/specification/resources/resource-manager/Microsoft.Resources/preview/2020-10-01-preview/examples/TemplateSpecsPatch.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "parameters": {
- "api-version": "2020-10-01-preview",
- "subscriptionId": "00000000-0000-0000-0000-000000000000",
- "resourceGroupName": "templateSpecRG",
- "templateSpecName": "simpleTemplateSpec",
- "templateSpec": {
- "tags": {
- "myTag": "My Value"
- }
- }
- },
- "responses": {
- "200": {
- "body": {
- "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/templateSpecRG/providers/Microsoft.Resources/templateSpecs/simpleTemplateSpec",
- "type": "Microsoft.Resources/templateSpecs",
- "name": "simpleTemplateSpec",
- "location": "eastus",
- "systemData": {
- "createdBy": "string",
- "createdByType": "Application",
- "createdAt": "2020-02-01T01:01:01.1075056Z",
- "lastModifiedBy": "string",
- "lastModifiedByType": "Application",
- "lastModifiedAt": "2020-02-02T02:03:01.1974346Z"
- },
- "properties": {
- "description": "A very simple Template Spec"
- },
- "tags": {
- "myTag": "My Value"
- }
- }
- }
- }
-}
diff --git a/specification/resources/resource-manager/Microsoft.Resources/preview/2020-10-01-preview/templateSpecs.json b/specification/resources/resource-manager/Microsoft.Resources/preview/2020-10-01-preview/templateSpecs.json
deleted file mode 100644
index ae2b1b39d302..000000000000
--- a/specification/resources/resource-manager/Microsoft.Resources/preview/2020-10-01-preview/templateSpecs.json
+++ /dev/null
@@ -1,867 +0,0 @@
-{
- "swagger": "2.0",
- "info": {
- "title": "TemplateSpecsClient",
- "description": "The APIs listed in this specification can be used to manage Template Spec resources through the Azure Resource Manager.",
- "version": "2020-10-01-preview"
- },
- "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.Resources/templateSpecs/{templateSpecName}": {
- "put": {
- "tags": [
- "TemplateSpecs"
- ],
- "operationId": "TemplateSpecs_CreateOrUpdate",
- "description": "Creates or updates a Template Spec.",
- "x-ms-examples": {
- "TemplateSpecsCreateUpdate": {
- "$ref": "./examples/TemplateSpecsCreate.json"
- }
- },
- "parameters": [
- {
- "$ref": "#/parameters/SubscriptionIdParameter"
- },
- {
- "$ref": "#/parameters/ResourceGroupNameParameter"
- },
- {
- "$ref": "#/parameters/TemplateSpecNameParameter"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- },
- {
- "name": "templateSpec",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/TemplateSpec"
- },
- "description": "Template Spec supplied to the operation."
- }
- ],
- "responses": {
- "200": {
- "description": "OK - The Template Spec update request has succeeded.",
- "schema": {
- "$ref": "#/definitions/TemplateSpec"
- }
- },
- "201": {
- "description": "Template Spec created.",
- "schema": {
- "$ref": "#/definitions/TemplateSpec"
- }
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/TemplateSpecsError"
- }
- }
- }
- },
- "patch": {
- "tags": [
- "TemplateSpecs"
- ],
- "operationId": "TemplateSpecs_Update",
- "description": "Updates Template Spec tags with specified values.",
- "x-ms-examples": {
- "TemplateSpecsPatch": {
- "$ref": "./examples/TemplateSpecsPatch.json"
- }
- },
- "parameters": [
- {
- "$ref": "#/parameters/SubscriptionIdParameter"
- },
- {
- "$ref": "#/parameters/ResourceGroupNameParameter"
- },
- {
- "$ref": "#/parameters/TemplateSpecNameParameter"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- },
- {
- "name": "templateSpec",
- "in": "body",
- "schema": {
- "$ref": "#/definitions/TemplateSpecUpdateModel"
- },
- "description": "Template Spec resource with the tags to be updated."
- }
- ],
- "responses": {
- "200": {
- "description": "OK -- Template Spec tags are updated.",
- "schema": {
- "$ref": "#/definitions/TemplateSpec"
- }
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/TemplateSpecsError"
- }
- }
- }
- },
- "get": {
- "tags": [
- "TemplateSpecs"
- ],
- "operationId": "TemplateSpecs_Get",
- "description": "Gets a Template Spec with a given name.",
- "x-ms-examples": {
- "TemplateSpecsGet": {
- "$ref": "./examples/TemplateSpecsGet.json"
- }
- },
- "parameters": [
- {
- "$ref": "#/parameters/SubscriptionIdParameter"
- },
- {
- "$ref": "#/parameters/ResourceGroupNameParameter"
- },
- {
- "$ref": "#/parameters/TemplateSpecNameParameter"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "OK - Returns information about the Template Spec.",
- "schema": {
- "$ref": "#/definitions/TemplateSpec"
- }
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/TemplateSpecsError"
- }
- }
- }
- },
- "delete": {
- "tags": [
- "TemplateSpecs"
- ],
- "operationId": "TemplateSpecs_Delete",
- "description": "Deletes a Template Spec by name. When operation completes, status code 200 returned without content.",
- "x-ms-examples": {
- "TemplateSpecsDelete": {
- "$ref": "./examples/TemplateSpecsDelete.json"
- }
- },
- "parameters": [
- {
- "$ref": "#/parameters/SubscriptionIdParameter"
- },
- {
- "$ref": "#/parameters/ResourceGroupNameParameter"
- },
- {
- "$ref": "#/parameters/TemplateSpecNameParameter"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "OK - Template Spec deleted."
- },
- "204": {
- "description": "Template Spec does not exist."
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/TemplateSpecsError"
- }
- }
- }
- }
- },
- "/subscriptions/{subscriptionId}/providers/Microsoft.Resources/templateSpecs/": {
- "get": {
- "tags": [
- "TemplateSpecs"
- ],
- "operationId": "TemplateSpecs_ListBySubscription",
- "description": "Lists all the Template Specs within the specified subscriptions.",
- "x-ms-examples": {
- "TemplatesSpecsListBySubscription": {
- "$ref": "./examples/TemplateSpecsListBySubscription.json"
- }
- },
- "parameters": [
- {
- "$ref": "#/parameters/SubscriptionIdParameter"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "OK - Returns an array of Template Specs.",
- "schema": {
- "$ref": "#/definitions/TemplateSpecsListResult"
- }
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/TemplateSpecsError"
- }
- }
- },
- "x-ms-pageable": {
- "nextLinkName": "nextLink"
- }
- }
- },
- "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Resources/templateSpecs/": {
- "get": {
- "tags": [
- "TemplateSpecs"
- ],
- "operationId": "TemplateSpecs_ListByResourceGroup",
- "description": "Lists all the Template Specs within the specified resource group.",
- "x-ms-examples": {
- "TemplateSpecsListByResourceGroup": {
- "$ref": "./examples/TemplateSpecsListByResourceGroup.json"
- }
- },
- "parameters": [
- {
- "$ref": "#/parameters/SubscriptionIdParameter"
- },
- {
- "$ref": "#/parameters/ResourceGroupNameParameter"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "OK - Returns an array of Template Specs.",
- "schema": {
- "$ref": "#/definitions/TemplateSpecsListResult"
- }
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/TemplateSpecsError"
- }
- }
- },
- "x-ms-pageable": {
- "nextLinkName": "nextLink"
- }
- }
- },
- "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Resources/templateSpecs/{templateSpecName}/versions/{templateSpecVersion}": {
- "put": {
- "tags": [
- "TemplateSpecVersions"
- ],
- "operationId": "TemplateSpecVersions_CreateOrUpdate",
- "description": "Creates or updates a Template Spec version.",
- "x-ms-examples": {
- "TemplateSpecVersionsCreateUpdate": {
- "$ref": "./examples/TemplateSpecVersionsCreate.json"
- }
- },
- "parameters": [
- {
- "$ref": "#/parameters/SubscriptionIdParameter"
- },
- {
- "$ref": "#/parameters/ResourceGroupNameParameter"
- },
- {
- "$ref": "#/parameters/TemplateSpecNameParameter"
- },
- {
- "$ref": "#/parameters/TemplateSpecVersionParameter"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- },
- {
- "name": "templateSpecVersionModel",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/TemplateSpecVersion"
- },
- "description": "Template Spec Version supplied to the operation."
- }
- ],
- "responses": {
- "200": {
- "description": "OK - The Template Spec Version has been successfully updated.",
- "schema": {
- "$ref": "#/definitions/TemplateSpecVersion"
- }
- },
- "201": {
- "description": "Template Spec Version created.",
- "schema": {
- "$ref": "#/definitions/TemplateSpecVersion"
- }
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/TemplateSpecsError"
- }
- }
- }
- },
- "patch": {
- "tags": [
- "TemplateSpecVersions"
- ],
- "operationId": "TemplateSpecVersions_Update",
- "description": "Updates Template Spec Version tags with specified values.",
- "x-ms-examples": {
- "TemplateSpecsPatch": {
- "$ref": "./examples/TemplateSpecVersionsPatch.json"
- }
- },
- "parameters": [
- {
- "$ref": "#/parameters/SubscriptionIdParameter"
- },
- {
- "$ref": "#/parameters/ResourceGroupNameParameter"
- },
- {
- "$ref": "#/parameters/TemplateSpecNameParameter"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- },
- {
- "$ref": "#/parameters/TemplateSpecVersionParameter"
- },
- {
- "name": "templateSpecVersionUpdateModel",
- "in": "body",
- "schema": {
- "$ref": "#/definitions/TemplateSpecVersionUpdateModel"
- },
- "description": "Template Spec Version resource with the tags to be updated."
- }
- ],
- "responses": {
- "200": {
- "description": "OK -- Template Spec Version tags are updated.",
- "schema": {
- "$ref": "#/definitions/TemplateSpecVersion"
- }
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/TemplateSpecsError"
- }
- }
- }
- },
- "get": {
- "tags": [
- "TemplateSpecVersions"
- ],
- "operationId": "TemplateSpecVersions_Get",
- "description": "Gets a Template Spec version from a specific Template Spec.",
- "x-ms-examples": {
- "TemplateSpecVersionsGet": {
- "$ref": "./examples/TemplateSpecVersionsGet.json"
- }
- },
- "parameters": [
- {
- "$ref": "#/parameters/SubscriptionIdParameter"
- },
- {
- "$ref": "#/parameters/ResourceGroupNameParameter"
- },
- {
- "$ref": "#/parameters/TemplateSpecNameParameter"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- },
- {
- "$ref": "#/parameters/TemplateSpecVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "OK - Returns information about the Template Spec version.",
- "schema": {
- "$ref": "#/definitions/TemplateSpecVersion"
- }
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/TemplateSpecsError"
- }
- }
- }
- },
- "delete": {
- "tags": [
- "TemplateSpecVersions"
- ],
- "operationId": "TemplateSpecVersions_Delete",
- "description": "Deletes a specific version from a Template Spec. When operation completes, status code 200 returned without content.",
- "x-ms-examples": {
- "TemplateSpecVersionsDelete": {
- "$ref": "./examples/TemplateSpecVersionsDelete.json"
- }
- },
- "parameters": [
- {
- "$ref": "#/parameters/SubscriptionIdParameter"
- },
- {
- "$ref": "#/parameters/ResourceGroupNameParameter"
- },
- {
- "$ref": "#/parameters/TemplateSpecNameParameter"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- },
- {
- "$ref": "#/parameters/TemplateSpecVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "OK - Template Spec Version deleted."
- },
- "204": {
- "description": "Template Spec Version does not exist."
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/TemplateSpecsError"
- }
- }
- }
- }
- },
- "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Resources/templateSpecs/{templateSpecName}/versions": {
- "get": {
- "tags": [
- "TemplateSpecVersions"
- ],
- "operationId": "TemplateSpecVersions_List",
- "description": "Lists all the Template Spec versions in the specified Template Spec.",
- "x-ms-examples": {
- "TemplateSpecVersions_List": {
- "$ref": "./examples/TemplateSpecVersionsList.json"
- }
- },
- "parameters": [
- {
- "$ref": "#/parameters/SubscriptionIdParameter"
- },
- {
- "$ref": "#/parameters/ResourceGroupNameParameter"
- },
- {
- "$ref": "#/parameters/TemplateSpecNameParameter"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "OK - Returns an array of Template Spec versions.",
- "schema": {
- "$ref": "#/definitions/TemplateSpecVersionsListResult"
- }
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/TemplateSpecsError"
- }
- }
- },
- "x-ms-pageable": {
- "nextLinkName": "nextLink"
- }
- }
- }
- },
- "definitions": {
- "TemplateSpec": {
- "required": [
- "location"
- ],
- "type": "object",
- "description": "Template Spec object.",
- "allOf": [
- {
- "$ref": "#/definitions/AzureResourceBase"
- }
- ],
- "properties": {
- "location": {
- "type": "string",
- "x-ms-mutability": [
- "read",
- "create"
- ],
- "description": "The location of the Template Spec. It cannot be changed after Template Spec creation. It must be one of the supported Azure locations."
- },
- "properties": {
- "description": "Template Spec properties.",
- "x-ms-client-flatten": true,
- "$ref": "#/definitions/TemplateSpecProperties"
- },
- "tags": {
- "type": "object",
- "description": "Resource tags.",
- "additionalProperties": {
- "type": "string"
- }
- }
- }
- },
- "TemplateSpecProperties": {
- "type": "object",
- "description": "Template Spec properties.",
- "properties": {
- "description": {
- "type": "string",
- "maxLength": 4096,
- "description": "Template Spec description."
- },
- "displayName": {
- "type": "string",
- "maxLength": 64,
- "description": "Template Spec display name."
- }
- }
- },
- "TemplateSpecsListResult": {
- "description": "List of Template Specs.",
- "properties": {
- "value": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/TemplateSpec"
- },
- "description": "An array of Template Specs."
- },
- "nextLink": {
- "readOnly": true,
- "type": "string",
- "description": "The URL to use for getting the next set of results."
- }
- }
- },
- "TemplateSpecUpdateModel": {
- "type": "object",
- "description": "Template Spec properties to be updated (only tags are currently supported).",
- "properties": {
- "tags": {
- "type": "object",
- "description": "Resource tags.",
- "additionalProperties": {
- "type": "string"
- }
- }
- },
- "allOf": [
- {
- "$ref": "#/definitions/AzureResourceBase"
- }
- ]
- },
- "TemplateSpecVersionUpdateModel": {
- "type": "object",
- "description": "Template Spec Version properties to be updated (only tags are currently supported).",
- "properties": {
- "tags": {
- "type": "object",
- "description": "Resource tags.",
- "additionalProperties": {
- "type": "string"
- }
- }
- },
- "allOf": [
- {
- "$ref": "#/definitions/AzureResourceBase"
- }
- ]
- },
- "AzureResourceBase": {
- "x-ms-azure-resource": true,
- "type": "object",
- "description": "Common properties for all Azure resources.",
- "properties": {
- "id": {
- "readOnly": true,
- "type": "string",
- "description": "String Id used to locate any resource on Azure."
- },
- "name": {
- "readOnly": true,
- "type": "string",
- "description": "Name of this resource."
- },
- "type": {
- "readOnly": true,
- "type": "string",
- "description": "Type of this resource."
- },
- "systemData": {
- "readOnly": true,
- "type": "object",
- "description": "Azure Resource Manager metadata containing createdBy and modifiedBy information.",
- "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/systemData"
- }
- }
- },
- "TemplateSpecVersion": {
- "required": [
- "properties",
- "location"
- ],
- "type": "object",
- "description": "Template Spec Version object.",
- "allOf": [
- {
- "$ref": "#/definitions/AzureResourceBase"
- }
- ],
- "properties": {
- "location": {
- "type": "string",
- "x-ms-mutability": [
- "read",
- "create"
- ],
- "description": "The location of the Template Spec Version. It must match the location of the parent Template Spec."
- },
- "properties": {
- "description": "Template Spec Version properties.",
- "x-ms-client-flatten": true,
- "$ref": "#/definitions/TemplateSpecVersionProperties"
- },
- "tags": {
- "type": "object",
- "description": "Resource tags.",
- "additionalProperties": {
- "type": "string"
- }
- }
- }
- },
- "TemplateSpecVersionProperties": {
- "type": "object",
- "description": "Template Spec Version properties.",
- "properties": {
- "artifacts": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/TemplateSpecArtifact"
- },
- "description": "An array of Template Spec artifacts."
- },
- "description": {
- "type": "string",
- "maxLength": 4096,
- "description": "Template Spec version description."
- },
- "template": {
- "type": "object",
- "description": "The Azure Resource Manager template content."
- },
- "uiDefinition": {
- "type": "object",
- "description": "The Azure Resource Manager template UI definition content"
- }
- }
- },
- "TemplateSpecVersionsListResult": {
- "description": "List of Template Specs versions",
- "properties": {
- "value": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/TemplateSpecVersion"
- },
- "description": "An array of Template Spec versions."
- },
- "nextLink": {
- "readOnly": true,
- "type": "string",
- "description": "The URL to use for getting the next set of results."
- }
- }
- },
- "TemplateSpecArtifact": {
- "type": "object",
- "discriminator": "kind",
- "description": "Represents a Template Spec artifact.",
- "properties": {
- "path": {
- "type": "string",
- "description": "A filesystem safe relative path of the artifact."
- },
- "kind": {
- "type": "string",
- "description": "The kind of artifact.",
- "enum": [
- "template"
- ],
- "x-ms-enum": {
- "name": "TemplateSpecArtifactKind",
- "modelAsString": true,
- "values": [
- {
- "value": "template",
- "description": "The artifact represents an embedded Azure Resource Manager template."
- }
- ]
- }
- }
- },
- "required": [
- "kind",
- "path"
- ]
- },
- "TemplateSpecTemplateArtifact": {
- "type": "object",
- "x-ms-discriminator-value": "template",
- "description": "Represents a Template Spec artifact containing an embedded Azure Resource Manager template.",
- "properties": {
- "template": {
- "type": "object",
- "description": "The Azure Resource Manager template."
- }
- },
- "required": [
- "template"
- ],
- "allOf": [
- {
- "$ref": "#/definitions/TemplateSpecArtifact"
- }
- ]
- },
- "TemplateSpecsError": {
- "properties": {
- "error": {
- "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ErrorResponse"
- }
- },
- "description": "Template Specs error response."
- }
- },
- "parameters": {
- "SubscriptionIdParameter": {
- "name": "subscriptionId",
- "in": "path",
- "required": true,
- "type": "string",
- "x-ms-parameter-location": "client",
- "description": "Subscription Id which forms part of the URI for every service call."
- },
- "ResourceGroupNameParameter": {
- "name": "resourceGroupName",
- "in": "path",
- "required": true,
- "type": "string",
- "description": "The name of the resource group. The name is case insensitive.",
- "pattern": "^[-\\w\\._\\(\\)]+$",
- "minLength": 1,
- "maxLength": 90,
- "x-ms-parameter-location": "method"
- },
- "TemplateSpecNameParameter": {
- "name": "templateSpecName",
- "in": "path",
- "required": true,
- "type": "string",
- "pattern": "^[-\\w\\._\\(\\)]+$",
- "description": "Name of the Template Spec.",
- "minLength": 1,
- "maxLength": 90,
- "x-ms-parameter-location": "method"
- },
- "TemplateSpecVersionParameter": {
- "name": "templateSpecVersion",
- "in": "path",
- "required": true,
- "type": "string",
- "pattern": "^[-\\w\\._\\(\\)]+$",
- "description": "The version of the Template Spec.",
- "minLength": 1,
- "maxLength": 90,
- "x-ms-parameter-location": "method"
- },
- "ApiVersionParameter": {
- "name": "api-version",
- "in": "query",
- "required": true,
- "type": "string",
- "x-ms-parameter-location": "client",
- "description": "Client Api version."
- }
- }
-}
diff --git a/specification/resources/resource-manager/readme.csharp.md b/specification/resources/resource-manager/readme.csharp.md
index 0364f5d7d6c2..a846bc082ad5 100644
--- a/specification/resources/resource-manager/readme.csharp.md
+++ b/specification/resources/resource-manager/readme.csharp.md
@@ -792,3 +792,17 @@ batch:
- tag: package-locks-2016-09
- tag: package-resources-2018-05
```
+
+### Profile: hybrid_2020_09_01
+
+These settings apply only when `--csharp-profile=hybrid_2020_09_01` is specified on the command line.
+
+``` yaml $(csharp-profile)=='hybrid_2020_09_01'
+namespace: Microsoft.Azure.Management.Profiles.$(csharp-profile).ResourceManager
+output-folder: $(csharp-sdks-folder)/$(csharp-profile)/Resource/Management.ResourceManager/Generated
+
+batch:
+ - tag: package-resources-2019-10
+ - tag: package-policy-2016-12
+ - tag: package-locks-2016-09
+ ```
\ No newline at end of file
diff --git a/specification/resources/resource-manager/readme.md b/specification/resources/resource-manager/readme.md
index 7bbe66ddb62a..8d8a18f6cee0 100644
--- a/specification/resources/resource-manager/readme.md
+++ b/specification/resources/resource-manager/readme.md
@@ -37,7 +37,7 @@ tag: package-locks-2016-09
```
``` yaml $(package-policy)
-tag: package-policy-2020-03
+tag: package-policy-2020-09
```
``` yaml $(package-resources)
@@ -61,18 +61,27 @@ tag: package-deploymentscripts-2020-10
```
``` yaml $(package-templatespecs)
-tag: package-preview-2020-08
+tag: package-2020-09
```
+### Tag: package-policy-2020-09
+
+These settings apply only when `--tag=package-policy-2020-09` is specified on the command line.
+
+``` yaml $(tag) == 'package-policy-2020-09'
+input-file:
+- Microsoft.Authorization/stable/2020-09-01/dataPolicyManifests.json
+```
### Tag: package-preview-2020-08
These settings apply only when `--tag=package-preview-2020-08` is specified on the command line.
-```yaml $(tag) == 'package-preview-2020-08'
+``` yaml $(tag) == 'package-preview-2020-08'
input-file:
- Microsoft.Solutions/preview/2020-08-21-preview/managedapplications.json
```
+
### Tag: package-resources-2020-06
These settings apply only when `--tag=package-resources-2020-06` is specified on the command line.
@@ -265,15 +274,6 @@ input-file:
- Microsoft.Resources/preview/2019-06-01-preview/templateSpecs.json
```
-### Tag: package-templatespecs-2020-10-preview
-
-These settings apply only when `--tag=package-templatespecs-2020-10-preview` is specified on the command line.
-
-``` yaml $(tag) == 'package-templatespecs-2020-10-preview'
-input-file:
-- Microsoft.Resources/preview/2020-10-01-preview/templateSpecs.json
-```
-
### Tag: package-policy-2016-12
These settings apply only when `--tag=package-policy-2016-12` is specified on the command line.
@@ -564,7 +564,7 @@ directive:
- suppress: BodyTopLevelProperties
from: resources.json
where: $.definitions.GenericResourceExpanded.properties
- reason: createdTime,changedTime & provisioningState are top-level properties
+ reason: 'createdTime,changedTime & provisioningState are top-level properties'
- suppress: BodyTopLevelProperties
from: resources.json
where: $.definitions.TagDetails.properties
@@ -583,7 +583,7 @@ directive:
reason: TagDetails will be deprecated soon
- suppress: XmsResourceInPutResponse
from: resources.json
- where: $.paths["/subscriptions/{subscriptionId}/tagNames/{tagName}"].put
+ where: '$.paths["/subscriptions/{subscriptionId}/tagNames/{tagName}"].put'
reason: TagDetails is not an Azure resource
- suppress: BodyTopLevelProperties
from: managedapplications.json
@@ -602,19 +602,19 @@ directive:
where: $.definitions.GenericResource.properties
reason: managedBy is a top level property
- from: deploymentScripts.json
- suppress: TrackedResourceGetOperation
+ suppress: TrackedResourceGetOperation
where: $.definitions.AzureCliScript
reason: Tooling issue.
- from: deploymentScripts.json
- suppress: TrackedResourcePatchOperation
+ suppress: TrackedResourcePatchOperation
where: $.definitions.AzureCliScript
reason: Tooling issue.
- from: deploymentScripts.json
- suppress: TrackedResourceGetOperation
+ suppress: TrackedResourceGetOperation
where: $.definitions.AzurePowerShellScript
reason: Tooling issue
- from: deploymentScripts.json
- suppress: TrackedResourcePatchOperation
+ suppress: TrackedResourcePatchOperation
where: $.definitions.AzurePowerShellScript
reason: Tooling issue
- from: deploymentScripts.json
@@ -622,23 +622,23 @@ directive:
where: $.paths
reason: OperationsAPI will come from Resources
- from: deploymentScripts.json
- suppress: R3006 #BodyTopLevelProperties
- where:
- - $.definitions.DeploymentScript.properties
- - $.definitions.AzureCliScript.properties
- - $.definitions.AzurePowerShellScript.properties
+ suppress: R3006
+ where:
+ - $.definitions.DeploymentScript.properties
+ - $.definitions.AzureCliScript.properties
+ - $.definitions.AzurePowerShellScript.properties
reason: Currently systemData is not allowed
- suppress: OperationsAPIImplementation
from: templateSpecs.json
where: $.paths
reason: OperationsAPI will come from Resources
- - suppress: R3006 #BodyTopLevelProperties
+ - suppress: R3006
from: templateSpecs.json
- where:
- - $.definitions.TemplateSpec.properties
- - $.definitions.TemplateSpecVersion.properties
- - $.definitions.TemplateSpecUpdateModel.properties
- - $.definitions.TemplateSpecVersionUpdateModel.properties
+ where:
+ - $.definitions.TemplateSpec.properties
+ - $.definitions.TemplateSpecVersion.properties
+ - $.definitions.TemplateSpecUpdateModel.properties
+ - $.definitions.TemplateSpecVersionUpdateModel.properties
reason: Currently systemData is not allowed
- suppress: TrackedResourceListByImmediateParent
from: templateSpecs.json
@@ -648,6 +648,26 @@ directive:
from: templateSpecs.json
where: $.definitions.TemplateSpecVersion
reason: Tooling issue
+ - suppress: OperationsAPIImplementation
+ where: $.paths
+ from: dataPolicyManifests.json
+ reason: operation APIs for Microsoft.Authorization are to be defined in RBAC swagger
+ - suppress: EnumInsteadOfBoolean
+ where: $.definitions.DataManifestCustomResourceFunctionDefinition.properties.allowCustomProperties
+ from: dataPolicyManifests.json
+ reason: 'This property can only have two values. '
+ - suppress: EnumInsteadOfBoolean
+ where: $.definitions.DataPolicyManifestProperties.properties.isBuiltInOnly
+ from: dataPolicyManifests.json
+ reason: 'This property can only have two values. '
+ - suppress: PageableOperation
+ where: '$.paths["/providers/Microsoft.Authorization/dataPolicyManifests"].get'
+ from: dataPolicyManifests.json
+ reason: Pagination not supported. The size of the result list is pretty limited
+ - suppress: DescriptionAndTitleMissing
+ where: $.definitions.AliasPathMetadata
+ from: resources.json
+ reason: This was already checked in - not my code
```
---
@@ -727,4 +747,3 @@ override-info:
## AzureResourceSchema
See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
-
diff --git a/specification/resources/resource-manager/readme.python.md b/specification/resources/resource-manager/readme.python.md
index 3d6c205a40fb..fc83b036dc42 100644
--- a/specification/resources/resource-manager/readme.python.md
+++ b/specification/resources/resource-manager/readme.python.md
@@ -60,7 +60,6 @@ batch:
- tag: package-deploymentscripts-2020-10
- tag: package-deploymentscripts-2019-10-preview
- tag: package-templatespecs-2019-06-preview
- - tag: package-templatespecs-2020-10-preview
```
```yaml $(multiapi) && $(track2)
@@ -106,7 +105,6 @@ batch:
- tag: package-deploymentscripts-2019-10-preview
- multiapiscript-deploymentscripts: true
- tag: package-templatespecs-2019-06-preview
- - tag: package-templatespecs-2020-10-preview
- multiapiscript-templatespecs: true
```
@@ -596,16 +594,3 @@ python:
namespace: azure.mgmt.resource.templatespecs.v2019_06_01_preview
output-folder: $(python-sdks-folder)/resources/azure-mgmt-resource/azure/mgmt/resource/templatespecs/v2019_06_01_preview
```
-
-### Tag: package-templatespecs-2020-10-preview and python
-
-These settings apply only when `--tag=package-templatespecs-2020-10-preview` is specified on the command line.
-Please also specify `--python-sdks-folder=`.
-
-``` yaml $(tag) == 'package-templatespecs-2020-10-preview'
-namespace: azure.mgmt.resource.templatespecs.v2020_10_01_preview
-output-folder: $(python-sdks-folder)/resources/azure-mgmt-resource/azure/mgmt/resource/templatespecs/v2020_10_01_preview
-python:
- namespace: azure.mgmt.resource.templatespecs.v2020_10_01_preview
- output-folder: $(python-sdks-folder)/resources/azure-mgmt-resource/azure/mgmt/resource/templatespecs/v2020_10_01_preview
-```
diff --git a/specification/resources/resource-manager/readme.typescript.md b/specification/resources/resource-manager/readme.typescript.md
index f864f915b27d..6c647e3fbffb 100644
--- a/specification/resources/resource-manager/readme.typescript.md
+++ b/specification/resources/resource-manager/readme.typescript.md
@@ -101,4 +101,48 @@ typescript:
clear-output-folder: true
batch:
- tag: package-subscriptions-2016-06
+```
+
+```yaml $(tag)=='package-resources-2019-10' && $(profile)=='profile-hybrid-2020-09-01'
+typescript:
+ azure-arm: true
+ generate-metadata: true
+ package-name: "@azure/arm-resources-profile-hybrid-2020-09-01"
+ output-folder: "$(typescript-sdks-folder)/sdk/resources/arm-resources-profile-hybrid-2020-09-01"
+ clear-output-folder: true
+ batch:
+ - tag: package-resources-2019-10
+```
+
+```yaml $(tag)=='package-policy-2016-12' && $(profile)=='profile-hybrid-2020-09-01'
+typescript:
+ azure-arm: true
+ generate-metadata: true
+ package-name: "@azure/arm-policy-profile-hybrid-2020-09-01"
+ output-folder: "$(typescript-sdks-folder)/sdk/resources/arm-policy-profile-hybrid-2020-09-01"
+ clear-output-folder: true
+ batch:
+ - tag: package-policy-2016-12
+```
+
+```yaml $(tag)=='package-locks-2016-09' && $(profile)=='profile-hybrid-2020-09-01'
+typescript:
+ azure-arm: true
+ generate-metadata: true
+ package-name: "@azure/arm-locks-profile-hybrid-2020-09-01"
+ output-folder: "$(typescript-sdks-folder)/sdk/resources/arm-locks-profile-hybrid-2020-09-01"
+ clear-output-folder: true
+ batch:
+ - tag: package-locks-2016-09
+```
+
+```yaml $(tag)=='package-subscriptions-2016-06' && $(profile)=='profile-hybrid-2020-09-01'
+typescript:
+ azure-arm: true
+ generate-metadata: true
+ package-name: "@azure/arm-subscriptions-profile-hybrid-2020-09-01"
+ output-folder: "$(typescript-sdks-folder)/sdk/subscription/arm-subscriptions-profile-hybrid-2020-09-01"
+ clear-output-folder: true
+ batch:
+ - tag: package-subscriptions-2016-06
```
\ No newline at end of file
diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2020-08-01-preview/search.json b/specification/search/resource-manager/Microsoft.Search/preview/2020-08-01-preview/search.json
index 5e6a16736b32..70879d44dbec 100644
--- a/specification/search/resource-manager/Microsoft.Search/preview/2020-08-01-preview/search.json
+++ b/specification/search/resource-manager/Microsoft.Search/preview/2020-08-01-preview/search.json
@@ -52,6 +52,12 @@
"schema": {
"$ref": "#/definitions/OperationListResult"
}
+ },
+ "default": {
+ "description": "Operations API failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
}
},
"x-ms-pageable": {
diff --git a/specification/search/resource-manager/Microsoft.Search/stable/2020-08-01/search.json b/specification/search/resource-manager/Microsoft.Search/stable/2020-08-01/search.json
index b7e40aba57e2..1b59faa764cb 100644
--- a/specification/search/resource-manager/Microsoft.Search/stable/2020-08-01/search.json
+++ b/specification/search/resource-manager/Microsoft.Search/stable/2020-08-01/search.json
@@ -52,6 +52,12 @@
"schema": {
"$ref": "#/definitions/OperationListResult"
}
+ },
+ "default": {
+ "description": "Operations API failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
}
},
"x-ms-pageable": {
diff --git a/specification/security/resource-manager/Microsoft.Security/preview/2020-01-01-preview/connectors.json b/specification/security/resource-manager/Microsoft.Security/preview/2020-01-01-preview/connectors.json
index 665e132c03d2..802d023d718e 100644
--- a/specification/security/resource-manager/Microsoft.Security/preview/2020-01-01-preview/connectors.json
+++ b/specification/security/resource-manager/Microsoft.Security/preview/2020-01-01-preview/connectors.json
@@ -37,7 +37,7 @@
"/subscriptions/{subscriptionId}/providers/Microsoft.Security/connectors": {
"get": {
"x-ms-examples": {
- "Get all Cloud accounts connectors of a subscription": {
+ "Get all cloud accounts connectors of a subscription": {
"$ref": "./examples/Connectors/GetListConnectorSubscription_example.json"
}
},
@@ -62,7 +62,7 @@
}
},
"default": {
- "description": "Error response describing why the operation failed.",
+ "description": "Error response describing why the operation failed",
"schema": {
"$ref": "../../../common/v1/types.json#/definitions/CloudError"
}
@@ -113,7 +113,7 @@
},
"put": {
"x-ms-examples": {
- "AwsCred - Create a cloud account connector for a subscription": {
+ "AwsCred - Create a cloud account connector for a subscription": {
"$ref": "./examples/Connectors/CreateUpdateAwsCredConnectorSubscription_example.json"
},
"AwsAssumeRole - Create a cloud account connector for a subscription": {
@@ -126,7 +126,7 @@
"tags": [
"Connectors"
],
- "description": "Create a cloud account connector or update an existing one. Connect to your AWS cloud account using either account credentials or role-based authentication.",
+ "description": "Create a cloud account connector or update an existing one. Connect to your cloud account. For AWS, use either account credentials or role-based authentication. For GCP, use account organization credentials.",
"operationId": "Connectors_CreateOrUpdate",
"parameters": [
{
@@ -233,10 +233,10 @@
},
"ConnectorSettingProperties": {
"type": "object",
- "description": "Describes properties of an connector setting",
+ "description": "Describes properties of a connector setting",
"properties": {
"hybridComputeSettings": {
- "description": "Settings for hybrid compute management, these settings are relevant only Arc autoProvision (Hybrid Compute).",
+ "description": "Settings for hybrid compute management. These settings are relevant only for Arc autoProvision (Hybrid Compute).",
"type": "object",
"$ref": "#/definitions/HybridComputeSettingsProperties"
},
@@ -292,11 +292,11 @@
"values": [
{
"value": "On",
- "description": "Install missing Azure Arc agent on VMs automatically"
+ "description": "Install missing Azure Arc agents on machines automatically"
},
{
"value": "Off",
- "description": "Do not install Azure Arc agent on the VMs automatically"
+ "description": "Do not install Azure Arc agent on the machines automatically"
}
]
}
@@ -307,7 +307,7 @@
},
"region": {
"type": "string",
- "description": "The location where the meta data of machines will be stored",
+ "description": "The location where the metadata of machines will be stored",
"x-ms-mutability": [
"create",
"read"
@@ -334,7 +334,7 @@
"properties": {
"applicationId": {
"type": "string",
- "description": "Application id of service principal."
+ "description": "Application ID of service principal."
},
"secret": {
"type": "string",
@@ -371,7 +371,7 @@
},
{
"value": "Expired",
- "description": "the connection is expired"
+ "description": "the connection has expired"
},
{
"value": "IncorrectPolicy",
@@ -422,7 +422,7 @@
},
"AwsCredsAuthenticationDetailsProperties": {
"type": "object",
- "description": "AWS cloud account connector based credentials, the credentials is composed of access key id and secret key, for more details, refer to Creating an IAM User in Your AWS Account (write only) ",
+ "description": "AWS cloud account connector based credentials, the credentials is composed of access key ID and secret key, for more details, refer to Creating an IAM User in Your AWS Account (write only) ",
"x-ms-discriminator-value": "awsCreds",
"allOf": [
{
@@ -451,7 +451,7 @@
},
"AwAssumeRoleAuthenticationDetailsProperties": {
"type": "object",
- "description": "AWS cloud account connector based assume role, the role enables delegating access to your AWS resources. The role is composed of role arn and external id, for more details, refer to Creating a Role to Delegate Permissions to an IAM User (write only) ",
+ "description": "AWS cloud account connector based assume role, the role enables delegating access to your AWS resources. The role is composed of role Amazon Resource Name (ARN) and external ID. For more details, refer to Creating a Role to Delegate Permissions to an IAM User (write only) ",
"x-ms-discriminator-value": "awsAssumeRole",
"allOf": [
{
@@ -480,7 +480,7 @@
},
"GcpCredentialsDetailsProperties": {
"type": "object",
- "description": "GCP cloud account connector based service to service credentials, the credentials is composed of organization id and json api key (write only)",
+ "description": "GCP cloud account connector based service to service credentials, the credentials are composed of the organization ID and a JSON API key (write only)",
"x-ms-discriminator-value": "gcpCredentials",
"allOf": [
{
@@ -489,7 +489,7 @@
],
"properties": {
"organizationId": {
- "description": "The Organization ID of the GCP cloud account",
+ "description": "The organization ID of the GCP cloud account",
"type": "string"
},
"type": {
@@ -498,11 +498,11 @@
},
"projectId": {
"type": "string",
- "description": "Project Id field of the API key (write only)"
+ "description": "Project ID field of the API key (write only)"
},
"privateKeyId": {
"type": "string",
- "description": "Private key Id field of the API key (write only)"
+ "description": "Private key ID field of the API key (write only)"
},
"privateKey": {
"type": "string",
@@ -514,23 +514,23 @@
},
"clientId": {
"type": "string",
- "description": "Client Id field of the API key (write only)"
+ "description": "Client ID field of the API key (write only)"
},
"authUri": {
"type": "string",
- "description": "Auth Uri field of the API key (write only)"
+ "description": "Auth URI field of the API key (write only)"
},
"tokenUri": {
"type": "string",
- "description": "Token Uri field of the API key (write only)"
+ "description": "Token URI field of the API key (write only)"
},
"authProviderX509CertUrl": {
"type": "string",
- "description": "Auth provider x509 certificate url field of the API key (write only)"
+ "description": "Auth provider x509 certificate URL field of the API key (write only)"
},
"clientX509CertUrl": {
"type": "string",
- "description": "Client x509 certificate url field of the API key (write only)"
+ "description": "Client x509 certificate URL field of the API key (write only)"
}
},
"required": [
diff --git a/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/examples/sqlVulnerabilityAssessmentScanOperations/ArcMachineScans_Get.json b/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/examples/sqlVulnerabilityAssessmentScanOperations/ArcMachineScans_Get.json
new file mode 100644
index 000000000000..c8f04a5824c7
--- /dev/null
+++ b/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/examples/sqlVulnerabilityAssessmentScanOperations/ArcMachineScans_Get.json
@@ -0,0 +1,33 @@
+{
+ "parameters": {
+ "scanId": "Scheduled-20200623",
+ "workspaceId": "55555555-6666-7777-8888-999999999999",
+ "api-version": "2020-07-01-preview",
+ "resourceId": "subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Rg/providers/Microsoft.HybridCompute/machines/MyMachine/sqlServers/server1/databases/master"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Rg/providers/Microsoft.HybridCompute/machines/MyMachine/sqlServers/server1/databases/master/providers/Microsoft.Security/sqlVulnerabilityAssessments/default/scans/Scheduled-20200623",
+ "name": "Scheduled-20200623",
+ "type": "Microsoft.Security/sqlVulnerabilityAssessments/scans",
+ "properties": {
+ "triggerType": "Recurring",
+ "state": "Failed",
+ "server": "server1",
+ "database": "master",
+ "sqlVersion": "15.0.2000",
+ "startTime": "2020-06-23T06:49:00.6455136+00:00",
+ "endTime": "2020-06-23T06:49:00.7236217Z",
+ "highSeverityFailedRulesCount": 3,
+ "mediumSeverityFailedRulesCount": 2,
+ "lowSeverityFailedRulesCount": 1,
+ "totalPassedRulesCount": 20,
+ "totalFailedRulesCount": 6,
+ "totalRulesCount": 26,
+ "isBaselineApplied": false
+ }
+ }
+ }
+ }
+}
diff --git a/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/examples/sqlVulnerabilityAssessmentScanOperations/ArcMachineScans_GetLatest.json b/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/examples/sqlVulnerabilityAssessmentScanOperations/ArcMachineScans_GetLatest.json
new file mode 100644
index 000000000000..7c2ff86ab55b
--- /dev/null
+++ b/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/examples/sqlVulnerabilityAssessmentScanOperations/ArcMachineScans_GetLatest.json
@@ -0,0 +1,33 @@
+{
+ "parameters": {
+ "scanId": "latest",
+ "workspaceId": "55555555-6666-7777-8888-999999999999",
+ "api-version": "2020-07-01-preview",
+ "resourceId": "subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Rg/providers/Microsoft.HybridCompute/machines/MyMachine/sqlServers/server1/databases/master"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Rg/providers/Microsoft.HybridCompute/machines/MyMachine/sqlServers/server1/databases/master/providers/Microsoft.Security/sqlVulnerabilityAssessments/default/scans/Scheduled-20200623",
+ "name": "Scheduled-20200623",
+ "type": "Microsoft.Security/sqlVulnerabilityAssessments/scans",
+ "properties": {
+ "triggerType": "Recurring",
+ "state": "Failed",
+ "server": "server1",
+ "database": "master",
+ "sqlVersion": "15.0.2000",
+ "startTime": "2020-06-23T06:49:00.6455136+00:00",
+ "endTime": "2020-06-23T06:49:00.7236217Z",
+ "highSeverityFailedRulesCount": 3,
+ "mediumSeverityFailedRulesCount": 2,
+ "lowSeverityFailedRulesCount": 1,
+ "totalPassedRulesCount": 20,
+ "totalFailedRulesCount": 6,
+ "totalRulesCount": 26,
+ "isBaselineApplied": false
+ }
+ }
+ }
+ }
+}
diff --git a/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/examples/sqlVulnerabilityAssessmentScanOperations/ArcMachineScans_List.json b/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/examples/sqlVulnerabilityAssessmentScanOperations/ArcMachineScans_List.json
new file mode 100644
index 000000000000..f5406e2aaaff
--- /dev/null
+++ b/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/examples/sqlVulnerabilityAssessmentScanOperations/ArcMachineScans_List.json
@@ -0,0 +1,57 @@
+{
+ "parameters": {
+ "workspaceId": "55555555-6666-7777-8888-999999999999",
+ "api-version": "2020-07-01-preview",
+ "resourceId": "subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Rg/providers/Microsoft.HybridCompute/machines/MyMachine/sqlServers/server1/databases/master"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Rg/providers/Microsoft.HybridCompute/machines/MyMachine/sqlServers/server1/databases/master/providers/Microsoft.Security/sqlVulnerabilityAssessments/default/scans/Scheduled-20200225",
+ "name": "Scheduled-20200225",
+ "type": "Microsoft.Security/sqlVulnerabilityAssessments/scans",
+ "properties": {
+ "triggerType": "Recurring",
+ "state": "Failed",
+ "server": "server1",
+ "database": "master",
+ "sqlVersion": "15.0.2000",
+ "startTime": "2020-02-25T11:34:29.1399864Z",
+ "endTime": "2020-02-25T11:38:07.8606151Z",
+ "highSeverityFailedRulesCount": 3,
+ "mediumSeverityFailedRulesCount": 2,
+ "lowSeverityFailedRulesCount": 1,
+ "totalPassedRulesCount": 20,
+ "totalFailedRulesCount": 6,
+ "totalRulesCount": 26,
+ "isBaselineApplied": false
+ }
+ },
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Rg/providers/Microsoft.HybridCompute/machines/MyMachine/sqlServers/server1/databases/master/providers/Microsoft.Security/sqlVulnerabilityAssessments/default/scans/scan_20200226_113429",
+ "name": "scan_20200226_113429",
+ "type": "Microsoft.Security/sqlVulnerabilityAssessments/scans",
+ "properties": {
+ "triggerType": "OnDemand",
+ "state": "Passed",
+ "server": "server1",
+ "database": "master",
+ "sqlVersion": "15.0.2000",
+ "startTime": "2020-02-26T11:34:29.1399864Z",
+ "endTime": "2020-02-26T11:38:07.8606151Z",
+ "highSeverityFailedRulesCount": 0,
+ "mediumSeverityFailedRulesCount": 0,
+ "lowSeverityFailedRulesCount": 0,
+ "totalPassedRulesCount": 26,
+ "totalFailedRulesCount": 0,
+ "totalRulesCount": 26,
+ "isBaselineApplied": true
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/examples/sqlVulnerabilityAssessmentsBaselineRuleOperations/ArcMachineBaselineRules_Add.json b/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/examples/sqlVulnerabilityAssessmentsBaselineRuleOperations/ArcMachineBaselineRules_Add.json
new file mode 100644
index 000000000000..e6577270110b
--- /dev/null
+++ b/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/examples/sqlVulnerabilityAssessmentsBaselineRuleOperations/ArcMachineBaselineRules_Add.json
@@ -0,0 +1,69 @@
+{
+ "parameters": {
+ "ruleId": "VA1234",
+ "workspaceId": "55555555-6666-7777-8888-999999999999",
+ "api-version": "2020-07-01-preview",
+ "resourceId": "subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Rg/providers/Microsoft.HybridCompute/machines/MyMachine/sqlServers/server1/databases/master",
+ "body": {
+ "latestScan": false,
+ "results": {
+ "VA1234": [
+ [
+ "userA",
+ "SELECT"
+ ],
+ [
+ "userB",
+ "SELECT"
+ ]
+ ],
+ "VA5678": [
+ [
+ "Test",
+ "0.0.0.0",
+ "125.125.125.125"
+ ]
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Rg/providers/Microsoft.HybridCompute/machines/MyMachine/sqlServers/server1/databases/master/providers/Microsoft.Security/sqlVulnerabilityAssessments/default/baselineRules/VA1234",
+ "name": "VA1234",
+ "type": "Microsoft.Security/sqlVulnerabilityAssessments/baselineRules",
+ "properties": {
+ "results": [
+ [
+ "userA",
+ "SELECT"
+ ],
+ [
+ "userB",
+ "SELECT"
+ ]
+ ]
+ }
+ },
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Rg/providers/Microsoft.HybridCompute/machines/MyMachine/sqlServers/server1/databases/master/providers/Microsoft.Security/sqlVulnerabilityAssessments/default/baselineRules/VA5678",
+ "name": "VA5678",
+ "type": "Microsoft.Security/sqlVulnerabilityAssessments/baselineRules",
+ "properties": {
+ "results": [
+ [
+ "Test",
+ "0.0.0.0",
+ "125.125.125.125"
+ ]
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/examples/sqlVulnerabilityAssessmentsBaselineRuleOperations/ArcMachineBaselineRules_AddLatest.json b/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/examples/sqlVulnerabilityAssessmentsBaselineRuleOperations/ArcMachineBaselineRules_AddLatest.json
new file mode 100644
index 000000000000..cfd21bb9f2e5
--- /dev/null
+++ b/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/examples/sqlVulnerabilityAssessmentsBaselineRuleOperations/ArcMachineBaselineRules_AddLatest.json
@@ -0,0 +1,51 @@
+{
+ "parameters": {
+ "ruleId": "VA1234",
+ "workspaceId": "55555555-6666-7777-8888-999999999999",
+ "api-version": "2020-07-01-preview",
+ "resourceId": "subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Rg/providers/Microsoft.HybridCompute/machines/MyMachine/sqlServers/server1/databases/master",
+ "body": {
+ "latestScan": true,
+ "results": {}
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Rg/providers/Microsoft.HybridCompute/machines/MyMachine/sqlServers/server1/databases/master/providers/Microsoft.Security/sqlVulnerabilityAssessments/default/baselineRules/VA1234",
+ "name": "VA1234",
+ "type": "Microsoft.Security/sqlVulnerabilityAssessments/baselineRules",
+ "properties": {
+ "results": [
+ [
+ "userA",
+ "SELECT"
+ ],
+ [
+ "userB",
+ "SELECT"
+ ]
+ ]
+ }
+ },
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Rg/providers/Microsoft.HybridCompute/machines/MyMachine/sqlServers/server1/databases/master/providers/Microsoft.Security/sqlVulnerabilityAssessments/default/baselineRules/VA5678",
+ "name": "VA5678",
+ "type": "Microsoft.Security/sqlVulnerabilityAssessments/baselineRules",
+ "properties": {
+ "results": [
+ [
+ "Test",
+ "0.0.0.0",
+ "125.125.125.125"
+ ]
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/examples/sqlVulnerabilityAssessmentsBaselineRuleOperations/ArcMachineBaselineRules_Delete.json b/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/examples/sqlVulnerabilityAssessmentsBaselineRuleOperations/ArcMachineBaselineRules_Delete.json
new file mode 100644
index 000000000000..99721025a616
--- /dev/null
+++ b/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/examples/sqlVulnerabilityAssessmentsBaselineRuleOperations/ArcMachineBaselineRules_Delete.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "ruleId": "VA1234",
+ "workspaceId": "55555555-6666-7777-8888-999999999999",
+ "api-version": "2020-07-01-preview",
+ "resourceId": "subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Rg/providers/Microsoft.HybridCompute/machines/MyMachine/sqlServers/server1/databases/master"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/examples/sqlVulnerabilityAssessmentsBaselineRuleOperations/ArcMachineBaselineRules_Get.json b/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/examples/sqlVulnerabilityAssessmentsBaselineRuleOperations/ArcMachineBaselineRules_Get.json
new file mode 100644
index 000000000000..9a7009d46b9e
--- /dev/null
+++ b/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/examples/sqlVulnerabilityAssessmentsBaselineRuleOperations/ArcMachineBaselineRules_Get.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "ruleId": "VA1234",
+ "workspaceId": "55555555-6666-7777-8888-999999999999",
+ "api-version": "2020-07-01-preview",
+ "resourceId": "subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Rg/providers/Microsoft.HybridCompute/machines/MyMachine/sqlServers/server1/databases/master"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Rg/providers/Microsoft.HybridCompute/machines/MyMachine/sqlServers/server1/databases/master/providers/Microsoft.Security/sqlVulnerabilityAssessments/default/baselineRules/VA1234",
+ "name": "VA1234",
+ "type": "Microsoft.Security/sqlVulnerabilityAssessments/baselineRules",
+ "properties": {
+ "results": [
+ [
+ "userA",
+ "SELECT"
+ ],
+ [
+ "userB",
+ "SELECT"
+ ]
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/examples/sqlVulnerabilityAssessmentsBaselineRuleOperations/ArcMachineBaselineRules_List.json b/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/examples/sqlVulnerabilityAssessmentsBaselineRuleOperations/ArcMachineBaselineRules_List.json
new file mode 100644
index 000000000000..760d38acecd6
--- /dev/null
+++ b/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/examples/sqlVulnerabilityAssessmentsBaselineRuleOperations/ArcMachineBaselineRules_List.json
@@ -0,0 +1,46 @@
+{
+ "parameters": {
+ "workspaceId": "55555555-6666-7777-8888-999999999999",
+ "api-version": "2020-07-01-preview",
+ "resourceId": "subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Rg/providers/Microsoft.HybridCompute/machines/MyMachine/sqlServers/server1/databases/master"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Rg/providers/Microsoft.HybridCompute/machines/MyMachine/sqlServers/server1/databases/master/providers/Microsoft.Security/sqlVulnerabilityAssessments/default/baselineRules/VA1234",
+ "name": "VA1234",
+ "type": "Microsoft.Security/sqlVulnerabilityAssessments/baselineRules",
+ "properties": {
+ "results": [
+ [
+ "userA",
+ "SELECT"
+ ],
+ [
+ "userB",
+ "SELECT"
+ ]
+ ]
+ }
+ },
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Rg/providers/Microsoft.HybridCompute/machines/MyMachine/sqlServers/server1/databases/master/providers/Microsoft.Security/sqlVulnerabilityAssessments/default/baselineRules/VA5678",
+ "name": "VA5678",
+ "type": "Microsoft.Security/sqlVulnerabilityAssessments/baselineRules",
+ "properties": {
+ "results": [
+ [
+ "Test",
+ "0.0.0.0",
+ "125.125.125.125"
+ ]
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/examples/sqlVulnerabilityAssessmentsBaselineRuleOperations/ArcMachineBaselineRules_Put.json b/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/examples/sqlVulnerabilityAssessmentsBaselineRuleOperations/ArcMachineBaselineRules_Put.json
new file mode 100644
index 000000000000..126a59175bca
--- /dev/null
+++ b/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/examples/sqlVulnerabilityAssessmentsBaselineRuleOperations/ArcMachineBaselineRules_Put.json
@@ -0,0 +1,42 @@
+{
+ "parameters": {
+ "ruleId": "VA1234",
+ "workspaceId": "55555555-6666-7777-8888-999999999999",
+ "api-version": "2020-07-01-preview",
+ "resourceId": "subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Rg/providers/Microsoft.HybridCompute/machines/MyMachine/sqlServers/server1/databases/master",
+ "body": {
+ "latestScan": false,
+ "results": [
+ [
+ "userA",
+ "SELECT"
+ ],
+ [
+ "userB",
+ "SELECT"
+ ]
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Rg/providers/Microsoft.HybridCompute/machines/MyMachine/sqlServers/server1/databases/master/providers/Microsoft.Security/sqlVulnerabilityAssessments/default/baselineRules/VA1234",
+ "name": "VA1234",
+ "type": "Microsoft.Security/sqlVulnerabilityAssessments/baselineRules",
+ "properties": {
+ "results": [
+ [
+ "userA",
+ "SELECT"
+ ],
+ [
+ "userB",
+ "SELECT"
+ ]
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/examples/sqlVulnerabilityAssessmentsBaselineRuleOperations/ArcMachineBaselineRules_PutLatest.json b/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/examples/sqlVulnerabilityAssessmentsBaselineRuleOperations/ArcMachineBaselineRules_PutLatest.json
new file mode 100644
index 000000000000..22bcefce9657
--- /dev/null
+++ b/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/examples/sqlVulnerabilityAssessmentsBaselineRuleOperations/ArcMachineBaselineRules_PutLatest.json
@@ -0,0 +1,33 @@
+{
+ "parameters": {
+ "ruleId": "VA1234",
+ "workspaceId": "55555555-6666-7777-8888-999999999999",
+ "api-version": "2020-07-01-preview",
+ "resourceId": "subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Rg/providers/Microsoft.HybridCompute/machines/MyMachine/sqlServers/server1/databases/master",
+ "body": {
+ "latestScan": true,
+ "results": []
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Rg/providers/Microsoft.HybridCompute/machines/MyMachine/sqlServers/server1/databases/master/providers/Microsoft.Security/sqlVulnerabilityAssessments/default/baselineRules/VA1234",
+ "name": "VA1234",
+ "type": "Microsoft.Security/sqlVulnerabilityAssessments/baselineRules",
+ "properties": {
+ "results": [
+ [
+ "userA",
+ "SELECT"
+ ],
+ [
+ "userB",
+ "SELECT"
+ ]
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/examples/sqlVulnerabilityAssessmentsScanResultsOperations/ArcMachineScanResults_Get.json b/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/examples/sqlVulnerabilityAssessmentsScanResultsOperations/ArcMachineScanResults_Get.json
new file mode 100644
index 000000000000..5aa776984cfd
--- /dev/null
+++ b/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/examples/sqlVulnerabilityAssessmentsScanResultsOperations/ArcMachineScanResults_Get.json
@@ -0,0 +1,72 @@
+{
+ "parameters": {
+ "scanId": "Scheduled-20200623",
+ "scanResultId": "VA2063",
+ "workspaceId": "55555555-6666-7777-8888-999999999999",
+ "api-version": "2020-07-01-preview",
+ "resourceId": "subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Rg/providers/Microsoft.HybridCompute/machines/MyMachine/sqlServers/server1/databases/master"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Rg/providers/Microsoft.HybridCompute/machines/MyMachine/sqlServers/server1/databases/master/providers/Microsoft.Security/sqlVulnerabilityAssessments/default/scans/Scheduled-20200623/scanResults/VA2063",
+ "name": "VA2063",
+ "type": "Microsoft.Security/sqlVulnerabilityAssessments/scans/scanResults",
+ "properties": {
+ "ruleId": "VA2063",
+ "status": "Finding",
+ "isTrimmed": false,
+ "queryResults": [
+ [
+ "Test",
+ "0.0.0.0",
+ "125.125.125.125"
+ ]
+ ],
+ "remediation": {
+ "description": "Remove server firewall rules that grant excessive access",
+ "scripts": [
+ "EXECUTE sp_delete_firewall_rule N'Test';"
+ ],
+ "automated": false,
+ "portalLink": "ReviewServerFirewallRules"
+ },
+ "baselineAdjustedResult": {
+ "baseline": {
+ "expectedResults": [
+ [
+ "Test",
+ "0.0.0.0",
+ "125.125.125.125"
+ ]
+ ],
+ "updatedTime": "2020-02-04T12:49:41.027771+00:00"
+ },
+ "status": "NonFinding",
+ "resultsNotInBaseline": [],
+ "resultsOnlyInBaseline": []
+ },
+ "ruleMetadata": {
+ "ruleId": "VA2063",
+ "severity": "High",
+ "category": "SurfaceAreaReduction",
+ "ruleType": "NegativeList",
+ "title": "Server-level firewall rules should not grant excessive access",
+ "description": "The Azure SQL server-level firewall helps protect your server by preventing all access to your databases until you specify which IP addresses have permission. Server-level firewall rules grant access to all databases that belong to the server based on the originating IP address of each request.\n\nServer-level firewall rules can only be created and managed through Transact-SQL as well as through the Azure portal or PowerShell. For more details please see: https://docs.microsoft.com/en-us/azure/sql-database/sql-database-firewall-configure\n\nThis check verifies that server-level firewall rules do not grant excessive access.",
+ "rationale": "Often, administrators add rules that grant excessive access as part of a troubleshooting process � to eliminate the firewall as the source of a problem, they simply create a rule that allows all traffic to pass to the affected server.\n\nGranting excessive access using server firewall rules is a clear security concern, as it violates the principle of least privilege by allowing unnecessary access to your databases. In fact, it's the equivalent of placing the server outside of the firewall.",
+ "queryCheck": {
+ "query": "SELECT name\n ,start_ip_address\n ,end_ip_address\nFROM sys.firewall_rules\nWHERE ( \n (CONVERT(bigint, parsename(end_ip_address, 1)) +\n CONVERT(bigint, parsename(end_ip_address, 2)) * 256 + \n CONVERT(bigint, parsename(end_ip_address, 3)) * 65536 + \n CONVERT(bigint, parsename(end_ip_address, 4)) * 16777216 ) \n - \n (CONVERT(bigint, parsename(start_ip_address, 1)) +\n CONVERT(bigint, parsename(start_ip_address, 2)) * 256 + \n CONVERT(bigint, parsename(start_ip_address, 3)) * 65536 + \n CONVERT(bigint, parsename(start_ip_address, 4)) * 16777216 )\n ) > 255;",
+ "expectedResult": [],
+ "columnNames": [
+ "Firewall Rule Name",
+ "Start Address",
+ "End Address"
+ ]
+ },
+ "benchmarkReferences": []
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/examples/sqlVulnerabilityAssessmentsScanResultsOperations/ArcMachineScanResults_GetLatest.json b/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/examples/sqlVulnerabilityAssessmentsScanResultsOperations/ArcMachineScanResults_GetLatest.json
new file mode 100644
index 000000000000..dd566b960b02
--- /dev/null
+++ b/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/examples/sqlVulnerabilityAssessmentsScanResultsOperations/ArcMachineScanResults_GetLatest.json
@@ -0,0 +1,72 @@
+{
+ "parameters": {
+ "scanId": "latest",
+ "scanResultId": "VA2063",
+ "workspaceId": "55555555-6666-7777-8888-999999999999",
+ "api-version": "2020-07-01-preview",
+ "resourceId": "subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Rg/providers/Microsoft.HybridCompute/machines/MyMachine/sqlServers/server1/databases/master"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Rg/providers/Microsoft.HybridCompute/machines/MyMachine/sqlServers/server1/databases/master/providers/Microsoft.Security/sqlVulnerabilityAssessments/default/scans/Scheduled-20200623/scanResults/VA2063",
+ "name": "VA2063",
+ "type": "Microsoft.Security/sqlVulnerabilityAssessments/scans/scanResults",
+ "properties": {
+ "ruleId": "VA2063",
+ "status": "Finding",
+ "isTrimmed": false,
+ "queryResults": [
+ [
+ "Test",
+ "0.0.0.0",
+ "125.125.125.125"
+ ]
+ ],
+ "remediation": {
+ "description": "Remove server firewall rules that grant excessive access",
+ "scripts": [
+ "EXECUTE sp_delete_firewall_rule N'Test';"
+ ],
+ "automated": false,
+ "portalLink": "ReviewServerFirewallRules"
+ },
+ "baselineAdjustedResult": {
+ "baseline": {
+ "expectedResults": [
+ [
+ "Test",
+ "0.0.0.0",
+ "125.125.125.125"
+ ]
+ ],
+ "updatedTime": "2020-02-04T12:49:41.027771+00:00"
+ },
+ "status": "NonFinding",
+ "resultsNotInBaseline": [],
+ "resultsOnlyInBaseline": []
+ },
+ "ruleMetadata": {
+ "ruleId": "VA2063",
+ "severity": "High",
+ "category": "SurfaceAreaReduction",
+ "ruleType": "NegativeList",
+ "title": "Server-level firewall rules should not grant excessive access",
+ "description": "The Azure SQL server-level firewall helps protect your server by preventing all access to your databases until you specify which IP addresses have permission. Server-level firewall rules grant access to all databases that belong to the server based on the originating IP address of each request.\n\nServer-level firewall rules can only be created and managed through Transact-SQL as well as through the Azure portal or PowerShell. For more details please see: https://docs.microsoft.com/en-us/azure/sql-database/sql-database-firewall-configure\n\nThis check verifies that server-level firewall rules do not grant excessive access.",
+ "rationale": "Often, administrators add rules that grant excessive access as part of a troubleshooting process � to eliminate the firewall as the source of a problem, they simply create a rule that allows all traffic to pass to the affected server.\n\nGranting excessive access using server firewall rules is a clear security concern, as it violates the principle of least privilege by allowing unnecessary access to your databases. In fact, it's the equivalent of placing the server outside of the firewall.",
+ "queryCheck": {
+ "query": "SELECT name\n ,start_ip_address\n ,end_ip_address\nFROM sys.firewall_rules\nWHERE ( \n (CONVERT(bigint, parsename(end_ip_address, 1)) +\n CONVERT(bigint, parsename(end_ip_address, 2)) * 256 + \n CONVERT(bigint, parsename(end_ip_address, 3)) * 65536 + \n CONVERT(bigint, parsename(end_ip_address, 4)) * 16777216 ) \n - \n (CONVERT(bigint, parsename(start_ip_address, 1)) +\n CONVERT(bigint, parsename(start_ip_address, 2)) * 256 + \n CONVERT(bigint, parsename(start_ip_address, 3)) * 65536 + \n CONVERT(bigint, parsename(start_ip_address, 4)) * 16777216 )\n ) > 255;",
+ "expectedResult": [],
+ "columnNames": [
+ "Firewall Rule Name",
+ "Start Address",
+ "End Address"
+ ]
+ },
+ "benchmarkReferences": []
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/examples/sqlVulnerabilityAssessmentsScanResultsOperations/ArcMachineScanResults_List.json b/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/examples/sqlVulnerabilityAssessmentsScanResultsOperations/ArcMachineScanResults_List.json
new file mode 100644
index 000000000000..d5162da4832c
--- /dev/null
+++ b/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/examples/sqlVulnerabilityAssessmentsScanResultsOperations/ArcMachineScanResults_List.json
@@ -0,0 +1,112 @@
+{
+ "parameters": {
+ "scanId": "Scheduled-20200623",
+ "workspaceId": "55555555-6666-7777-8888-999999999999",
+ "api-version": "2020-07-01-preview",
+ "resourceId": "subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Rg/providers/Microsoft.HybridCompute/machines/MyMachine/sqlServers/server1/databases/master"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Rg/providers/Microsoft.HybridCompute/machines/MyMachine/sqlServers/server1/databases/master/providers/Microsoft.Security/sqlVulnerabilityAssessments/default/scans/Scheduled-20200623/scanResults/VA2062",
+ "name": "VA2062",
+ "type": "Microsoft.Security/sqlVulnerabilityAssessments/scans/scanResults",
+ "properties": {
+ "ruleId": "VA2062",
+ "status": "NonFinding",
+ "isTrimmed": false,
+ "queryResults": [],
+ "remediation": {
+ "description": "Remove database firewall rules that grant excessive access",
+ "scripts": [],
+ "automated": false,
+ "portalLink": ""
+ },
+ "baselineAdjustedResult": null,
+ "ruleMetadata": {
+ "ruleId": "VA2062",
+ "severity": "High",
+ "category": "SurfaceAreaReduction",
+ "ruleType": "NegativeList",
+ "title": "Database-level firewall rules should not grant excessive access",
+ "description": "The Azure SQL Database-level firewall helps protect your data by preventing all access to your database until you specify which IP addresses have permission. Database-level firewall rules grant access to the specific database based on the originating IP address of each request.\n\nDatabase-level firewall rules for master and user databases can only be created and managed through Transact-SQL (unlike server-level firewall rules which can also be created and managed using the Azure portal or PowerShell). For more details please see: https://docs.microsoft.com/en-us/azure/sql-database/sql-database-firewall-configure\n\nThis check verifies that database-level firewall rules do not grant excessive access.",
+ "rationale": "Often, administrators add rules that grant excessive access as part of a troubleshooting process - to eliminate the firewall as the source of a problem, they simply create a rule that allows all traffic to pass to the affected database.\n\nGranting excessive access using database firewall rules is a clear security concern, as it violates the principle of least privilege by allowing unnecessary access to your database. In fact, it's the equivalent of placing the database outside of the firewall.",
+ "queryCheck": {
+ "query": "SELECT name\n ,start_ip_address\n ,end_ip_address\nFROM sys.database_firewall_rules\nWHERE ( \n (CONVERT(bigint, parsename(end_ip_address, 1)) +\n CONVERT(bigint, parsename(end_ip_address, 2)) * 256 + \n CONVERT(bigint, parsename(end_ip_address, 3)) * 65536 + \n CONVERT(bigint, parsename(end_ip_address, 4)) * 16777216 ) \n - \n (CONVERT(bigint, parsename(start_ip_address, 1)) +\n CONVERT(bigint, parsename(start_ip_address, 2)) * 256 + \n CONVERT(bigint, parsename(start_ip_address, 3)) * 65536 + \n CONVERT(bigint, parsename(start_ip_address, 4)) * 16777216 )\n ) > 255;",
+ "expectedResult": [],
+ "columnNames": [
+ "Firewall Rule Name",
+ "Start Address",
+ "End Address"
+ ]
+ },
+ "benchmarkReferences": []
+ }
+ }
+ },
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Rg/providers/Microsoft.HybridCompute/machines/MyMachine/sqlServers/server1/databases/master/providers/Microsoft.Security/sqlVulnerabilityAssessments/default/scans/Scheduled-20200623/scanResults/VA2063",
+ "name": "VA2063",
+ "type": "Microsoft.Security/sqlVulnerabilityAssessments/scans/scanResults",
+ "properties": {
+ "ruleId": "VA2063",
+ "status": "Finding",
+ "isTrimmed": false,
+ "queryResults": [
+ [
+ "Test",
+ "0.0.0.0",
+ "125.125.125.125"
+ ]
+ ],
+ "remediation": {
+ "description": "Remove server firewall rules that grant excessive access",
+ "scripts": [
+ "EXECUTE sp_delete_firewall_rule N'Test';"
+ ],
+ "automated": false,
+ "portalLink": "ReviewServerFirewallRules"
+ },
+ "baselineAdjustedResult": {
+ "baseline": {
+ "expectedResults": [
+ [
+ "Test",
+ "0.0.0.0",
+ "125.125.125.125"
+ ]
+ ],
+ "updatedTime": "2020-02-04T12:49:41.027771+00:00"
+ },
+ "status": "NonFinding",
+ "resultsNotInBaseline": [],
+ "resultsOnlyInBaseline": []
+ },
+ "ruleMetadata": {
+ "ruleId": "VA2063",
+ "severity": "High",
+ "category": "SurfaceAreaReduction",
+ "ruleType": "NegativeList",
+ "title": "Server-level firewall rules should not grant excessive access",
+ "description": "The Azure SQL server-level firewall helps protect your server by preventing all access to your databases until you specify which IP addresses have permission. Server-level firewall rules grant access to all databases that belong to the server based on the originating IP address of each request.\n\nServer-level firewall rules can only be created and managed through Transact-SQL as well as through the Azure portal or PowerShell. For more details please see: https://docs.microsoft.com/en-us/azure/sql-database/sql-database-firewall-configure\n\nThis check verifies that server-level firewall rules do not grant excessive access.",
+ "rationale": "Often, administrators add rules that grant excessive access as part of a troubleshooting process � to eliminate the firewall as the source of a problem, they simply create a rule that allows all traffic to pass to the affected server.\n\nGranting excessive access using server firewall rules is a clear security concern, as it violates the principle of least privilege by allowing unnecessary access to your databases. In fact, it's the equivalent of placing the server outside of the firewall.",
+ "queryCheck": {
+ "query": "SELECT name\n ,start_ip_address\n ,end_ip_address\nFROM sys.firewall_rules\nWHERE ( \n (CONVERT(bigint, parsename(end_ip_address, 1)) +\n CONVERT(bigint, parsename(end_ip_address, 2)) * 256 + \n CONVERT(bigint, parsename(end_ip_address, 3)) * 65536 + \n CONVERT(bigint, parsename(end_ip_address, 4)) * 16777216 ) \n - \n (CONVERT(bigint, parsename(start_ip_address, 1)) +\n CONVERT(bigint, parsename(start_ip_address, 2)) * 256 + \n CONVERT(bigint, parsename(start_ip_address, 3)) * 65536 + \n CONVERT(bigint, parsename(start_ip_address, 4)) * 16777216 )\n ) > 255;",
+ "expectedResult": [],
+ "columnNames": [
+ "Firewall Rule Name",
+ "Start Address",
+ "End Address"
+ ]
+ },
+ "benchmarkReferences": []
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/examples/sqlVulnerabilityAssessmentsScanResultsOperations/ArcMachineScanResults_ListLatest.json b/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/examples/sqlVulnerabilityAssessmentsScanResultsOperations/ArcMachineScanResults_ListLatest.json
new file mode 100644
index 000000000000..cfc44451420f
--- /dev/null
+++ b/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/examples/sqlVulnerabilityAssessmentsScanResultsOperations/ArcMachineScanResults_ListLatest.json
@@ -0,0 +1,112 @@
+{
+ "parameters": {
+ "scanId": "latest",
+ "workspaceId": "55555555-6666-7777-8888-999999999999",
+ "api-version": "2020-07-01-preview",
+ "resourceId": "subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Rg/providers/Microsoft.HybridCompute/machines/MyMachine/sqlServers/server1/databases/master"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Rg/providers/Microsoft.HybridCompute/machines/MyMachine/sqlServers/server1/databases/master/providers/Microsoft.Security/sqlVulnerabilityAssessments/default/scans/Scheduled-20200623/scanResults/VA2062",
+ "name": "VA2062",
+ "type": "Microsoft.Security/sqlVulnerabilityAssessments/scans/scanResults",
+ "properties": {
+ "ruleId": "VA2062",
+ "status": "NonFinding",
+ "isTrimmed": false,
+ "queryResults": [],
+ "remediation": {
+ "description": "Remove database firewall rules that grant excessive access",
+ "scripts": [],
+ "automated": false,
+ "portalLink": ""
+ },
+ "baselineAdjustedResult": null,
+ "ruleMetadata": {
+ "ruleId": "VA2062",
+ "severity": "High",
+ "category": "SurfaceAreaReduction",
+ "ruleType": "NegativeList",
+ "title": "Database-level firewall rules should not grant excessive access",
+ "description": "The Azure SQL Database-level firewall helps protect your data by preventing all access to your database until you specify which IP addresses have permission. Database-level firewall rules grant access to the specific database based on the originating IP address of each request.\n\nDatabase-level firewall rules for master and user databases can only be created and managed through Transact-SQL (unlike server-level firewall rules which can also be created and managed using the Azure portal or PowerShell). For more details please see: https://docs.microsoft.com/en-us/azure/sql-database/sql-database-firewall-configure\n\nThis check verifies that database-level firewall rules do not grant excessive access.",
+ "rationale": "Often, administrators add rules that grant excessive access as part of a troubleshooting process - to eliminate the firewall as the source of a problem, they simply create a rule that allows all traffic to pass to the affected database.\n\nGranting excessive access using database firewall rules is a clear security concern, as it violates the principle of least privilege by allowing unnecessary access to your database. In fact, it's the equivalent of placing the database outside of the firewall.",
+ "queryCheck": {
+ "query": "SELECT name\n ,start_ip_address\n ,end_ip_address\nFROM sys.database_firewall_rules\nWHERE ( \n (CONVERT(bigint, parsename(end_ip_address, 1)) +\n CONVERT(bigint, parsename(end_ip_address, 2)) * 256 + \n CONVERT(bigint, parsename(end_ip_address, 3)) * 65536 + \n CONVERT(bigint, parsename(end_ip_address, 4)) * 16777216 ) \n - \n (CONVERT(bigint, parsename(start_ip_address, 1)) +\n CONVERT(bigint, parsename(start_ip_address, 2)) * 256 + \n CONVERT(bigint, parsename(start_ip_address, 3)) * 65536 + \n CONVERT(bigint, parsename(start_ip_address, 4)) * 16777216 )\n ) > 255;",
+ "expectedResult": [],
+ "columnNames": [
+ "Firewall Rule Name",
+ "Start Address",
+ "End Address"
+ ]
+ },
+ "benchmarkReferences": []
+ }
+ }
+ },
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Rg/providers/Microsoft.HybridCompute/machines/MyMachine/sqlServers/server1/databases/master/providers/Microsoft.Security/sqlVulnerabilityAssessments/default/scans/Scheduled-20200623/scanResults/VA2063",
+ "name": "VA2063",
+ "type": "Microsoft.Security/sqlVulnerabilityAssessments/scans/scanResults",
+ "properties": {
+ "ruleId": "VA2063",
+ "status": "Finding",
+ "isTrimmed": false,
+ "queryResults": [
+ [
+ "Test",
+ "0.0.0.0",
+ "125.125.125.125"
+ ]
+ ],
+ "remediation": {
+ "description": "Remove server firewall rules that grant excessive access",
+ "scripts": [
+ "EXECUTE sp_delete_firewall_rule N'Test';"
+ ],
+ "automated": false,
+ "portalLink": "ReviewServerFirewallRules"
+ },
+ "baselineAdjustedResult": {
+ "baseline": {
+ "expectedResults": [
+ [
+ "Test",
+ "0.0.0.0",
+ "125.125.125.125"
+ ]
+ ],
+ "updatedTime": "2020-02-04T12:49:41.027771+00:00"
+ },
+ "status": "NonFinding",
+ "resultsNotInBaseline": [],
+ "resultsOnlyInBaseline": []
+ },
+ "ruleMetadata": {
+ "ruleId": "VA2063",
+ "severity": "High",
+ "category": "SurfaceAreaReduction",
+ "ruleType": "NegativeList",
+ "title": "Server-level firewall rules should not grant excessive access",
+ "description": "The Azure SQL server-level firewall helps protect your server by preventing all access to your databases until you specify which IP addresses have permission. Server-level firewall rules grant access to all databases that belong to the server based on the originating IP address of each request.\n\nServer-level firewall rules can only be created and managed through Transact-SQL as well as through the Azure portal or PowerShell. For more details please see: https://docs.microsoft.com/en-us/azure/sql-database/sql-database-firewall-configure\n\nThis check verifies that server-level firewall rules do not grant excessive access.",
+ "rationale": "Often, administrators add rules that grant excessive access as part of a troubleshooting process � to eliminate the firewall as the source of a problem, they simply create a rule that allows all traffic to pass to the affected server.\n\nGranting excessive access using server firewall rules is a clear security concern, as it violates the principle of least privilege by allowing unnecessary access to your databases. In fact, it's the equivalent of placing the server outside of the firewall.",
+ "queryCheck": {
+ "query": "SELECT name\n ,start_ip_address\n ,end_ip_address\nFROM sys.firewall_rules\nWHERE ( \n (CONVERT(bigint, parsename(end_ip_address, 1)) +\n CONVERT(bigint, parsename(end_ip_address, 2)) * 256 + \n CONVERT(bigint, parsename(end_ip_address, 3)) * 65536 + \n CONVERT(bigint, parsename(end_ip_address, 4)) * 16777216 ) \n - \n (CONVERT(bigint, parsename(start_ip_address, 1)) +\n CONVERT(bigint, parsename(start_ip_address, 2)) * 256 + \n CONVERT(bigint, parsename(start_ip_address, 3)) * 65536 + \n CONVERT(bigint, parsename(start_ip_address, 4)) * 16777216 )\n ) > 255;",
+ "expectedResult": [],
+ "columnNames": [
+ "Firewall Rule Name",
+ "Start Address",
+ "End Address"
+ ]
+ },
+ "benchmarkReferences": []
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/sqlVulnerabilityAssessmentsBaselineRuleOperations.json b/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/sqlVulnerabilityAssessmentsBaselineRuleOperations.json
new file mode 100644
index 000000000000..c48ce34bd212
--- /dev/null
+++ b/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/sqlVulnerabilityAssessmentsBaselineRuleOperations.json
@@ -0,0 +1,412 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "Security Center",
+ "version": "2020-07-01-preview"
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "paths": {
+ "/{resourceId}/providers/Microsoft.Security/sqlVulnerabilityAssessments/default/baselineRules/{ruleId}": {
+ "put": {
+ "tags": [
+ "Sql Vulnerability Assessment Baseline Rules"
+ ],
+ "summary": "Creates a Baseline for a rule in a database. Will overwrite any previously existing results.",
+ "operationId": "SqlVulnerabilityAssessmentBaselineRules_CreateOrUpdate",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "ruleId",
+ "description": "The rule Id.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "workspaceId",
+ "description": "The workspace Id.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The api version.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/ResourceId"
+ },
+ {
+ "in": "body",
+ "name": "body",
+ "description": "The baseline results for this rule.",
+ "schema": {
+ "$ref": "#/definitions/RuleResultsInput"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully set the vulnerability assessment rule baseline.",
+ "schema": {
+ "$ref": "#/definitions/RuleResults"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../common/v1/types.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create a baseline": {
+ "$ref": "./examples/sqlVulnerabilityAssessmentsBaselineRuleOperations/ArcMachineBaselineRules_Put.json"
+ },
+ "Create a baseline using the latest scan results": {
+ "$ref": "./examples/sqlVulnerabilityAssessmentsBaselineRuleOperations/ArcMachineBaselineRules_PutLatest.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Sql Vulnerability Assessment Baseline Rules"
+ ],
+ "summary": "Gets the results for a given rule in the Baseline.",
+ "operationId": "SqlVulnerabilityAssessmentBaselineRules_Get",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "ruleId",
+ "description": "The rule Id.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "workspaceId",
+ "description": "The workspace Id.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The api version.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/ResourceId"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully got the vulnerability assessment rule baseline.",
+ "schema": {
+ "$ref": "#/definitions/RuleResults"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../common/v1/types.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get the baseline": {
+ "$ref": "./examples/sqlVulnerabilityAssessmentsBaselineRuleOperations/ArcMachineBaselineRules_Get.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Sql Vulnerability Assessment Baseline Rules"
+ ],
+ "summary": "Deletes a rule from the Baseline of a given database.",
+ "operationId": "SqlVulnerabilityAssessmentBaselineRules_Delete",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "ruleId",
+ "description": "The rule Id.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "workspaceId",
+ "description": "The workspace Id.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The api version.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/ResourceId"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully removed the database vulnerability assessment rule baseline."
+ },
+ "204": {
+ "description": "Rule baseline doesn't exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../common/v1/types.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete the baseline": {
+ "$ref": "./examples/sqlVulnerabilityAssessmentsBaselineRuleOperations/ArcMachineBaselineRules_Delete.json"
+ }
+ }
+ }
+ },
+ "/{resourceId}/providers/Microsoft.Security/sqlVulnerabilityAssessments/default/baselineRules": {
+ "get": {
+ "tags": [
+ "Sql Vulnerability Assessment Baseline Rules"
+ ],
+ "summary": "Gets the results for all rules in the Baseline.",
+ "operationId": "SqlVulnerabilityAssessmentBaselineRules_List",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "query",
+ "name": "workspaceId",
+ "description": "The workspace Id.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The api version.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/ResourceId"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully removed the database vulnerability assessment rule baseline.",
+ "schema": {
+ "$ref": "#/definitions/RulesResults"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../common/v1/types.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List baseline for all rules": {
+ "$ref": "./examples/sqlVulnerabilityAssessmentsBaselineRuleOperations/ArcMachineBaselineRules_List.json"
+ }
+ }
+ },
+ "post": {
+ "tags": [
+ "Sql Vulnerability Assessment Baseline Rules"
+ ],
+ "summary": "Add a list of baseline rules. Will overwrite any previously existing results (for all rules).",
+ "operationId": "SqlVulnerabilityAssessmentBaselineRules_Add",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "query",
+ "name": "workspaceId",
+ "description": "The workspace Id.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The api version.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/ResourceId"
+ },
+ {
+ "in": "body",
+ "name": "body",
+ "description": "The baseline rules.",
+ "schema": {
+ "$ref": "#/definitions/RulesResultsInput"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully removed the database vulnerability assessment rule baseline.",
+ "schema": {
+ "$ref": "#/definitions/RulesResults"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../common/v1/types.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create a baseline for all rules": {
+ "$ref": "./examples/sqlVulnerabilityAssessmentsBaselineRuleOperations/ArcMachineBaselineRules_Add.json"
+ },
+ "Create a baseline for all rules using the latest scan results": {
+ "$ref": "./examples/sqlVulnerabilityAssessmentsBaselineRuleOperations/ArcMachineBaselineRules_AddLatest.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "RuleResultsInput": {
+ "description": "Rule results input.",
+ "type": "object",
+ "properties": {
+ "latestScan": {
+ "description": "Take results from latest scan.",
+ "type": "boolean"
+ },
+ "results": {
+ "description": "Expected results to be inserted into the baseline.\r\nLeave this field empty it LatestScan == true.",
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ "RuleResultsProperties": {
+ "description": "Rule results properties.",
+ "type": "object",
+ "properties": {
+ "results": {
+ "description": "Expected results in the baseline.",
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ "RuleResults": {
+ "description": "Rule results.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "../../../common/v1/types.json#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/RuleResultsProperties"
+ }
+ }
+ },
+ "RulesResults": {
+ "description": "A list of rules results.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of rule results.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RuleResults"
+ }
+ }
+ }
+ },
+ "RulesResultsInput": {
+ "description": "Rules results input.",
+ "type": "object",
+ "properties": {
+ "latestScan": {
+ "description": "Take results from latest scan.",
+ "type": "boolean"
+ },
+ "results": {
+ "description": "Expected results to be inserted into the baseline.\r\nLeave this field empty it LatestScan == true.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "flow": "implicit",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ },
+ "description": "Azure Active Directory OAuth2 Flow"
+ }
+ },
+ "security": [
+ {
+ "azure_auth": [
+ "user_impersonation"
+ ]
+ }
+ ]
+}
diff --git a/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/sqlVulnerabilityAssessmentsScanOperations.json b/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/sqlVulnerabilityAssessmentsScanOperations.json
new file mode 100644
index 000000000000..2ea38333fe25
--- /dev/null
+++ b/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/sqlVulnerabilityAssessmentsScanOperations.json
@@ -0,0 +1,292 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "Security Center",
+ "version": "2020-07-01-preview"
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "paths": {
+ "/{resourceId}/providers/Microsoft.Security/sqlVulnerabilityAssessments/default/scans/{scanId}": {
+ "get": {
+ "tags": [
+ "Sql Vulnerability Assessment Scans"
+ ],
+ "summary": "Gets the scan details of a single scan record.",
+ "operationId": "SqlVulnerabilityAssessmentScans_Get",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "scanId",
+ "description": "The scan Id. Type 'latest' to get the scan record for the latest scan.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "workspaceId",
+ "description": "The workspace Id.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The api version.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/ResourceId"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Returns the scan record details.",
+ "schema": {
+ "$ref": "#/definitions/Scan"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../common/v1/types.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get scan details of a scan record": {
+ "$ref": "./examples/sqlVulnerabilityAssessmentScanOperations/ArcMachineScans_Get.json"
+ },
+ "Get scan details of the latest scan record": {
+ "$ref": "./examples/sqlVulnerabilityAssessmentScanOperations/ArcMachineScans_GetLatest.json"
+ }
+ }
+ }
+ },
+ "/{resourceId}/providers/Microsoft.Security/sqlVulnerabilityAssessments/default/scans": {
+ "get": {
+ "tags": [
+ "Sql Vulnerability Assessment Scans"
+ ],
+ "summary": "Gets a list of scan records.",
+ "operationId": "SqlVulnerabilityAssessmentScans_List",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "query",
+ "name": "workspaceId",
+ "description": "The workspace Id.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The api version.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/ResourceId"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Returns the list of scan records.",
+ "schema": {
+ "$ref": "#/definitions/Scans"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../common/v1/types.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List scan details": {
+ "$ref": "./examples/sqlVulnerabilityAssessmentScanOperations/ArcMachineScans_List.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "ScanTriggerType": {
+ "description": "The scan trigger type.",
+ "enum": [
+ "OnDemand",
+ "Recurring"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "ScanTriggerType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "OnDemand",
+ "description": "OnDemand"
+ },
+ {
+ "value": "Recurring",
+ "description": "Recurring"
+ }
+ ]
+ }
+ },
+ "ScanState": {
+ "description": "The scan status.",
+ "enum": [
+ "Failed",
+ "FailedToRun",
+ "InProgress",
+ "Passed"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "ScanState",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Failed",
+ "description": "Failed"
+ },
+ {
+ "value": "FailedToRun",
+ "description": "FailedToRun"
+ },
+ {
+ "value": "InProgress",
+ "description": "InProgress"
+ },
+ {
+ "value": "Passed",
+ "description": "Passed"
+ }
+ ]
+ }
+ },
+ "ScanProperties": {
+ "description": "A vulnerability assessment scan record properties.",
+ "type": "object",
+ "properties": {
+ "triggerType": {
+ "$ref": "#/definitions/ScanTriggerType"
+ },
+ "state": {
+ "$ref": "#/definitions/ScanState"
+ },
+ "server": {
+ "description": "The server name.",
+ "type": "string"
+ },
+ "database": {
+ "description": "The database name.",
+ "type": "string"
+ },
+ "sqlVersion": {
+ "description": "The SQL version.",
+ "type": "string"
+ },
+ "startTime": {
+ "format": "date-time",
+ "description": "The scan start time (UTC).",
+ "type": "string"
+ },
+ "endTime": {
+ "format": "date-time",
+ "description": "Scan results are valid until end time (UTC).",
+ "type": "string"
+ },
+ "highSeverityFailedRulesCount": {
+ "format": "int32",
+ "description": "The number of failed rules with high severity.",
+ "type": "integer"
+ },
+ "mediumSeverityFailedRulesCount": {
+ "format": "int32",
+ "description": "The number of failed rules with medium severity.",
+ "type": "integer"
+ },
+ "lowSeverityFailedRulesCount": {
+ "format": "int32",
+ "description": "The number of failed rules with low severity.",
+ "type": "integer"
+ },
+ "totalPassedRulesCount": {
+ "format": "int32",
+ "description": "The number of total passed rules.",
+ "type": "integer"
+ },
+ "totalFailedRulesCount": {
+ "format": "int32",
+ "description": "The number of total failed rules.",
+ "type": "integer"
+ },
+ "totalRulesCount": {
+ "format": "int32",
+ "description": "The number of total rules assessed.",
+ "type": "integer"
+ },
+ "isBaselineApplied": {
+ "description": "Baseline created for this database, and has one or more rules.",
+ "type": "boolean"
+ }
+ }
+ },
+ "Scan": {
+ "description": "A vulnerability assessment scan record.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "../../../common/v1/types.json#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/ScanProperties"
+ }
+ }
+ },
+ "Scans": {
+ "description": "A list of vulnerability assessment scan records.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of vulnerability assessment scan records.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Scan"
+ }
+ }
+ }
+ }
+ },
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "flow": "implicit",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ },
+ "description": "Azure Active Directory OAuth2 Flow"
+ }
+ },
+ "security": [
+ {
+ "azure_auth": [
+ "user_impersonation"
+ ]
+ }
+ ]
+}
diff --git a/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/sqlVulnerabilityAssessmentsScanResultsOperations.json b/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/sqlVulnerabilityAssessmentsScanResultsOperations.json
new file mode 100644
index 000000000000..de9d8bc3aed9
--- /dev/null
+++ b/specification/security/resource-manager/Microsoft.Security/preview/2020-07-01-preview/sqlVulnerabilityAssessmentsScanResultsOperations.json
@@ -0,0 +1,480 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "Security Center",
+ "version": "2020-07-01-preview"
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "paths": {
+ "/{resourceId}/providers/Microsoft.Security/sqlVulnerabilityAssessments/default/scans/{scanId}/scanResults/{scanResultId}": {
+ "get": {
+ "tags": [
+ "Sql Vulnerability Assessment Scan Results"
+ ],
+ "summary": "Gets the scan results of a single rule in a scan record.",
+ "operationId": "SqlVulnerabilityAssessmentScanResults_Get",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "scanId",
+ "description": "The scan Id. Type 'latest' to get the scan results for the latest scan.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "scanResultId",
+ "description": "The rule Id of the results.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "workspaceId",
+ "description": "The workspace Id.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The api version.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/ResourceId"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Returns the scan results.",
+ "schema": {
+ "$ref": "#/definitions/ScanResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../common/v1/types.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get scan details of a scan record": {
+ "$ref": "./examples/sqlVulnerabilityAssessmentsScanResultsOperations/ArcMachineScanResults_Get.json"
+ },
+ "Get scan details of the latest scan record": {
+ "$ref": "./examples/sqlVulnerabilityAssessmentsScanResultsOperations/ArcMachineScanResults_GetLatest.json"
+ }
+ }
+ }
+ },
+ "/{resourceId}/providers/Microsoft.Security/sqlVulnerabilityAssessments/default/scans/{scanId}/scanResults": {
+ "get": {
+ "tags": [
+ "Sql Vulnerability Assessment Scan Results"
+ ],
+ "summary": "Gets a list of scan results for a single scan record.",
+ "operationId": "SqlVulnerabilityAssessmentScanResults_List",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "scanId",
+ "description": "The scan Id. Type 'latest' to get the scan results for the latest scan.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "workspaceId",
+ "description": "The workspace Id.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The api version.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/ResourceId"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Returns the list of scan results.",
+ "schema": {
+ "$ref": "#/definitions/ScanResults"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../common/v1/types.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List scan results": {
+ "$ref": "./examples/sqlVulnerabilityAssessmentsScanResultsOperations/ArcMachineScanResults_List.json"
+ },
+ "List scan results of the latest scan": {
+ "$ref": "./examples/sqlVulnerabilityAssessmentsScanResultsOperations/ArcMachineScanResults_ListLatest.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "RuleStatus": {
+ "description": "The rule result status.",
+ "enum": [
+ "NonFinding",
+ "Finding",
+ "InternalError"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "RuleStatus",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "NonFinding",
+ "description": "NonFinding"
+ },
+ {
+ "value": "Finding",
+ "description": "Finding"
+ },
+ {
+ "value": "InternalError",
+ "description": "InternalError"
+ }
+ ]
+ }
+ },
+ "Remediation": {
+ "description": "Remediation details.",
+ "type": "object",
+ "properties": {
+ "description": {
+ "description": "Remediation description.",
+ "type": "string"
+ },
+ "scripts": {
+ "description": "Remediation script.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "automated": {
+ "description": "Is remediation automated.",
+ "type": "boolean"
+ },
+ "portalLink": {
+ "description": "Optional link to remediate in Azure Portal.",
+ "type": "string"
+ }
+ }
+ },
+ "Baseline": {
+ "description": "Baseline details.",
+ "type": "object",
+ "properties": {
+ "expectedResults": {
+ "description": "Expected results.",
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "updatedTime": {
+ "format": "date-time",
+ "description": "Baseline update time (UTC).",
+ "type": "string"
+ }
+ }
+ },
+ "BaselineAdjustedResult": {
+ "description": "The rule result adjusted with baseline.",
+ "type": "object",
+ "properties": {
+ "baseline": {
+ "$ref": "#/definitions/Baseline"
+ },
+ "status": {
+ "$ref": "#/definitions/RuleStatus"
+ },
+ "resultsNotInBaseline": {
+ "description": "Results the are not in baseline.",
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "resultsOnlyInBaseline": {
+ "description": "Results the are in baseline.",
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ "RuleSeverity": {
+ "description": "The rule severity.",
+ "enum": [
+ "High",
+ "Medium",
+ "Low",
+ "Informational",
+ "Obsolete"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "RuleSeverity",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "High",
+ "description": "High"
+ },
+ {
+ "value": "Medium",
+ "description": "Medium"
+ },
+ {
+ "value": "Low",
+ "description": "Low"
+ },
+ {
+ "value": "Informational",
+ "description": "Informational"
+ },
+ {
+ "value": "Obsolete",
+ "description": "Obsolete"
+ }
+ ]
+ }
+ },
+ "RuleType": {
+ "description": "The rule type.",
+ "enum": [
+ "Binary",
+ "BaselineExpected",
+ "PositiveList",
+ "NegativeList"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "RuleType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Binary",
+ "description": "Binary"
+ },
+ {
+ "value": "BaselineExpected",
+ "description": "BaselineExpected"
+ },
+ {
+ "value": "PositiveList",
+ "description": "PositiveList"
+ },
+ {
+ "value": "NegativeList",
+ "description": "NegativeList"
+ }
+ ]
+ }
+ },
+ "QueryCheck": {
+ "description": "The rule query details.",
+ "type": "object",
+ "properties": {
+ "query": {
+ "description": "The rule query.",
+ "type": "string"
+ },
+ "expectedResult": {
+ "description": "Expected result.",
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "columnNames": {
+ "description": "Column names of expected result.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "BenchmarkReference": {
+ "description": "The benchmark references.",
+ "type": "object",
+ "properties": {
+ "benchmark": {
+ "description": "The benchmark name.",
+ "type": "string"
+ },
+ "reference": {
+ "description": "The benchmark reference.",
+ "type": "string"
+ }
+ }
+ },
+ "VaRule": {
+ "description": "vulnerability assessment rule metadata details.",
+ "type": "object",
+ "properties": {
+ "ruleId": {
+ "description": "The rule Id.",
+ "type": "string"
+ },
+ "severity": {
+ "$ref": "#/definitions/RuleSeverity"
+ },
+ "category": {
+ "description": "The rule category.",
+ "type": "string"
+ },
+ "ruleType": {
+ "$ref": "#/definitions/RuleType"
+ },
+ "title": {
+ "description": "The rule title.",
+ "type": "string"
+ },
+ "description": {
+ "description": "The rule description.",
+ "type": "string"
+ },
+ "rationale": {
+ "description": "The rule rationale.",
+ "type": "string"
+ },
+ "queryCheck": {
+ "$ref": "#/definitions/QueryCheck"
+ },
+ "benchmarkReferences": {
+ "description": "The benchmark references.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/BenchmarkReference"
+ }
+ }
+ }
+ },
+ "ScanResultProperties": {
+ "description": "A vulnerability assessment scan result properties for a single rule.",
+ "type": "object",
+ "properties": {
+ "ruleId": {
+ "description": "The rule Id.",
+ "type": "string"
+ },
+ "status": {
+ "$ref": "#/definitions/RuleStatus"
+ },
+ "isTrimmed": {
+ "description": "Indicated whether the results specified here are trimmed.",
+ "type": "boolean"
+ },
+ "queryResults": {
+ "description": "The results of the query that was run.",
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "remediation": {
+ "$ref": "#/definitions/Remediation"
+ },
+ "baselineAdjustedResult": {
+ "$ref": "#/definitions/BaselineAdjustedResult"
+ },
+ "ruleMetadata": {
+ "$ref": "#/definitions/VaRule"
+ }
+ }
+ },
+ "ScanResult": {
+ "description": "A vulnerability assessment scan result for a single rule.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "../../../common/v1/types.json#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/ScanResultProperties"
+ }
+ }
+ },
+ "ScanResults": {
+ "description": "A list of vulnerability assessment scan results.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of vulnerability assessment scan results.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ScanResult"
+ }
+ }
+ }
+ }
+ },
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "flow": "implicit",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ },
+ "description": "Azure Active Directory OAuth2 Flow"
+ }
+ },
+ "security": [
+ {
+ "azure_auth": [
+ "user_impersonation"
+ ]
+ }
+ ]
+}
diff --git a/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/devices.json b/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/devices.json
index be173e7e497b..6a3e58596326 100644
--- a/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/devices.json
+++ b/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/devices.json
@@ -420,20 +420,17 @@
"maximum": 100,
"description": "risk score of the device."
},
- "sensorName": {
+ "sensors": {
"readOnly": true,
- "type": "string",
- "description": "When the device is unmanaged, the sensor that scanned this device."
- },
- "siteName": {
- "readOnly": true,
- "type": "string",
- "description": "The sensor site name."
+ "type": "array",
+ "description": "List of sensors that scanned this device.",
+ "items": {
+ "$ref": "#/definitions/Sensor"
+ }
},
- "zoneName": {
+ "site": {
"readOnly": true,
- "type": "string",
- "description": "The sensor zone name."
+ "$ref": "#/definitions/Site"
},
"deviceStatus": {
"readOnly": true,
@@ -601,6 +598,33 @@
"description": "list of protocol identifiers."
}
}
+ },
+ "Sensor": {
+ "type": "object",
+ "description": "Sensor data",
+ "properties": {
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Sensor name"
+ },
+ "zone": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Zone Name."
+ }
+ }
+ },
+ "Site": {
+ "type": "object",
+ "description": "Site data",
+ "properties": {
+ "displayName": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Site display name"
+ }
+ }
}
},
"parameters": {
diff --git a/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/examples/Devices/GetDevice.json b/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/examples/Devices/GetDevice.json
index 162758cf19c3..b90115600eb5 100644
--- a/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/examples/Devices/GetDevice.json
+++ b/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/examples/Devices/GetDevice.json
@@ -62,9 +62,15 @@
"programmingState": "NotProgrammingDevice",
"scanningFunctionality": "NotScannerDevice",
"riskScore": 100,
- "sensorName": "mySensor",
- "siteName": "mySite",
- "zoneName": "myZone",
+ "sensors": [
+ {
+ "name": "mySensorName",
+ "zone": "myZoneName"
+ }
+ ],
+ "site": {
+ "displayName": "mySite"
+ },
"deviceStatus": "Active"
}
}
diff --git a/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/examples/Devices/GetDevicesListForHub.json b/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/examples/Devices/GetDevicesListForHub.json
index 9bff57945fd5..777df993569e 100644
--- a/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/examples/Devices/GetDevicesListForHub.json
+++ b/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/examples/Devices/GetDevicesListForHub.json
@@ -63,9 +63,15 @@
"programmingState": "NotProgrammingDevice",
"scanningFunctionality": "NotScannerDevice",
"riskScore": 100,
- "sensorName": "mySensor",
- "siteName": "mySite",
- "zoneName": "myZone",
+ "sensors": [
+ {
+ "name": "mySensorName",
+ "zone": "myZoneName"
+ }
+ ],
+ "site": {
+ "displayName": "mySite"
+ },
"deviceStatus": "Active"
}
}
diff --git a/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/examples/Devices/GetDevicesListForSubscription.json b/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/examples/Devices/GetDevicesListForSubscription.json
index 8552d79ac8a6..b4aca357ced5 100644
--- a/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/examples/Devices/GetDevicesListForSubscription.json
+++ b/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/examples/Devices/GetDevicesListForSubscription.json
@@ -63,9 +63,15 @@
"programmingState": "NotProgrammingDevice",
"scanningFunctionality": "NotScannerDevice",
"riskScore": 100,
- "sensorName": "mySensor",
- "siteName": "mySite",
- "zoneName": "myZone",
+ "sensors": [
+ {
+ "name": "mySensorName",
+ "zone": "myZoneName"
+ }
+ ],
+ "site": {
+ "displayName": "mySite"
+ },
"deviceStatus": "Active"
}
}
diff --git a/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/examples/IotAlertTypes/GetIoTAlertType.json b/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/examples/IotAlertTypes/GetIoTAlertType.json
new file mode 100644
index 000000000000..87ce81ea38b0
--- /dev/null
+++ b/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/examples/IotAlertTypes/GetIoTAlertType.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "api-version": "2020-08-06-preview",
+ "subscriptionId": "20ff7fc3-e762-44dd-bd96-b71116dcdc23",
+ "iotAlertTypeName": "IoT_PrivilegedContainer"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/iotAlertTypes/IoT_PrivilegedContainer",
+ "name": "IoT_PrivilegedContainer",
+ "type": "Microsoft.Security/iotAlertTypes",
+ "properties": {
+ "alertDisplayName": "Privileged container detected",
+ "severity": "Medium",
+ "description": "Machine logs indicate that a privileged Docker container is running. A privileged container has full access to host resources. If compromised, a malicious actor can use the privileged container to gain access to the host machine.",
+ "providerName": "IoTSecurity",
+ "remediationSteps": [
+ "If the container doesn't need to run in privileged mode, remove the privileges from the container."
+ ],
+ "intent": "Exploitation,Execution",
+ "vendorName": "Microsoft",
+ "productName": "Azure Security Center for IoT",
+ "productComponentName": "IoT Hub"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/examples/IotAlertTypes/GetIoTAlertTypeList.json b/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/examples/IotAlertTypes/GetIoTAlertTypeList.json
new file mode 100644
index 000000000000..80e82e38a730
--- /dev/null
+++ b/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/examples/IotAlertTypes/GetIoTAlertTypeList.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "api-version": "2020-08-06-preview",
+ "subscriptionId": "20ff7fc3-e762-44dd-bd96-b71116dcdc23"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/iotAlertTypes",
+ "name": "IoT_PrivilegedContainer",
+ "type": "Microsoft.Security/iotAlertTypes",
+ "properties": {
+ "alertDisplayName": "Privileged container detected",
+ "severity": "Medium",
+ "description": "Machine logs indicate that a privileged Docker container is running. A privileged container has full access to host resources. If compromised, a malicious actor can use the privileged container to gain access to the host machine.",
+ "providerName": "IoTSecurity",
+ "remediationSteps": [
+ "If the container doesn't need to run in privileged mode, remove the privileges from the container."
+ ],
+ "intent": "Exploitation,Execution",
+ "vendorName": "Microsoft",
+ "productName": "Azure Security Center for IoT",
+ "productComponentName": "IoT Hub"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/examples/IotAlerts/GetIoTAlert.json b/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/examples/IotAlerts/GetIoTAlert.json
new file mode 100644
index 000000000000..cc79de173fdf
--- /dev/null
+++ b/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/examples/IotAlerts/GetIoTAlert.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "api-version": "2020-08-06-preview",
+ "scope": "subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/myGroup/providers/Microsoft.Devices/IotHubs/myIotHub",
+ "iotAlertId": "903e76ff-17eb-4bac-ac8a-2bc31ab68fd8"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "systemAlertId": "903e76ff-17eb-4bac-ac8a-2bc31ab68fd8",
+ "compromisedEntity": "device-1",
+ "alertType": "IoT_PrivilegedContainer",
+ "startTimeUtc": "2020-05-13T06:32:25Z",
+ "endTimeUtc": "2020-05-13T06:32:25Z",
+ "entities": [
+ {
+ "$id": "1",
+ "CommandLine": "docker run --privileged",
+ "Type": "process"
+ }
+ ],
+ "extendedProperties": {
+ "CommandLine": "docker run --privileged",
+ "User Name": "aUser",
+ "UserId": "",
+ "ParentProcessId": 1593,
+ "DeviceId": "device-1"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/examples/IotAlerts/GetIoTAlertList.json b/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/examples/IotAlerts/GetIoTAlertList.json
new file mode 100644
index 000000000000..fb551a2c7ef1
--- /dev/null
+++ b/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/examples/IotAlerts/GetIoTAlertList.json
@@ -0,0 +1,43 @@
+{
+ "parameters": {
+ "api-version": "2020-08-06-preview",
+ "scope": "subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/myGroup/providers/Microsoft.Devices/IotHubs/myIotHub",
+ "alertType": "IoT_PrivilegedContainer",
+ "startTimeUtc>": "2020-05-12T06:32:25Z",
+ "startTimeUtc<": "2020-05-14T06:32:25Z",
+ "compromisedEntity": "device-1",
+ "$limit": 1
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "systemAlertId": "903e76ff-17eb-4bac-ac8a-2bc31ab68fd8",
+ "compromisedEntity": "device-1",
+ "alertType": "IoT_PrivilegedContainer",
+ "startTimeUtc": "2020-05-13T06:32:25Z",
+ "endTimeUtc": "2020-05-13T06:32:25Z",
+ "entities": [
+ {
+ "$id": "1",
+ "CommandLine": "docker run --privileged",
+ "Type": "process"
+ }
+ ],
+ "extendedProperties": {
+ "CommandLine": "docker run --privileged",
+ "User Name": "aUser",
+ "UserId": "",
+ "ParentProcessId": 1593,
+ "DeviceId": "device-1"
+ }
+ }
+ }
+ ],
+ "nextLink": "https://management.azure.com/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/myGroup/providers/Microsoft.Devices/iotHubs/myIotHub/providers/Microsoft.Security/iotAlerts?api-version=2020-08-06-preview&alertType=IoT_PrivilegedContainer&startTimeUtc>=2020-05-12T06:32:25Z&startTimeUtc<=2020-05-14T06:32:25Z&compromisedEntity=device-1&$limit=1&$skipToken=903e76ff-17eb-4bac-ac8a-2bc31ab68fd8"
+ }
+ }
+ }
+}
diff --git a/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/examples/IotRecommendationTypes/GetIoTRecommendationType.json b/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/examples/IotRecommendationTypes/GetIoTRecommendationType.json
new file mode 100644
index 000000000000..ecc8b4b4b15e
--- /dev/null
+++ b/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/examples/IotRecommendationTypes/GetIoTRecommendationType.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "api-version": "2020-08-06-preview",
+ "subscriptionId": "20ff7fc3-e762-44dd-bd96-b71116dcdc23",
+ "iotRecommendationTypeName": "IoT_VulnerableTLSCipherSuite"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/iotRecommendationTypes/IoT_VulnerableTLSCipherSuite",
+ "name": "IoT_VulnerableTLSCipherSuite",
+ "type": "Microsoft.Security/iotRecommendationTypes",
+ "properties": {
+ "recommendationDisplayName": "TLS cipher suite upgrade needed",
+ "severity": "Medium",
+ "description": "Insecure TLS configurations detected. Immediate TLS cipher suite upgrade recommended.",
+ "remediationSteps": [
+ "Upgrade your TLS cipher suite to a secure configuration. See the Guide to TLS Standards Compliance for more information."
+ ],
+ "vendorName": "Microsoft",
+ "control": "Communication between device and IoT Hub is not optimized",
+ "productName": "Azure Security Center for IoT",
+ "productComponentName": "IoT Hub"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/examples/IotRecommendationTypes/GetIoTRecommendationTypeList.json b/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/examples/IotRecommendationTypes/GetIoTRecommendationTypeList.json
new file mode 100644
index 000000000000..ba7a86b41b0b
--- /dev/null
+++ b/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/examples/IotRecommendationTypes/GetIoTRecommendationTypeList.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "api-version": "2020-08-06-preview",
+ "subscriptionId": "20ff7fc3-e762-44dd-bd96-b71116dcdc23"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/iotRecommendationTypes/IoT_VulnerableTLSCipherSuite",
+ "name": "IoT_VulnerableTLSCipherSuite",
+ "type": "Microsoft.Security/iotRecommendationTypes",
+ "properties": {
+ "recommendationDisplayName": "TLS cipher suite upgrade needed",
+ "severity": "Medium",
+ "description": "Insecure TLS configurations detected. Immediate TLS cipher suite upgrade recommended.",
+ "remediationSteps": [
+ "Upgrade your TLS cipher suite to a secure configuration. See the Guide to TLS Standards Compliance for more information."
+ ],
+ "vendorName": "Microsoft",
+ "control": "Communication between device and IoT Hub is not optimized",
+ "productName": "Azure Security Center for IoT",
+ "productComponentName": "IoT Hub"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/examples/IotRecommendations/GetIoTRecommendation.json b/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/examples/IotRecommendations/GetIoTRecommendation.json
new file mode 100644
index 000000000000..4c12cfdae65b
--- /dev/null
+++ b/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/examples/IotRecommendations/GetIoTRecommendation.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "api-version": "2020-08-06-preview",
+ "scope": "subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/myGroup/providers/Microsoft.Devices/IotHubs/myIotHub",
+ "iotRecommendationId": "903e76ff-17eb-4bac-ac8a-2bc31ab68fd8"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "IoT_Baseline|device-1",
+ "properties": {
+ "recommendationType": "IoT_Baseline",
+ "deviceId": "device-1",
+ "discoveredTimeUtc": "2020-05-13T06:32:25Z",
+ "recommendationAdditionalData": {
+ "SnapshotId": "48519d58-4e35-46cd-aed5-6251af95ed50",
+ "TotalFailedRules": "7",
+ "TotalRulesFailedDuoToError": "1",
+ "TotalInformationalFailedRules": "2",
+ "TotalCriticalFailedRules": "3",
+ "TotalWarningFailedRules": "1"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/examples/IotRecommendations/GetIoTRecommendationList.json b/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/examples/IotRecommendations/GetIoTRecommendationList.json
new file mode 100644
index 000000000000..b6f909d395bc
--- /dev/null
+++ b/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/examples/IotRecommendations/GetIoTRecommendationList.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "api-version": "2020-08-06-preview",
+ "scope": "subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/myGroup/providers/Microsoft.Devices/IotHubs/myIotHub",
+ "recommendationType": "IoT_Baseline",
+ "deviceId": "device-1",
+ "$limit": 1
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "IoT_Baseline|device-1",
+ "properties": {
+ "recommendationType": "IoT_Baseline",
+ "deviceId": "device-1",
+ "discoveredTimeUtc": "2020-05-13T06:32:25Z",
+ "recommendationAdditionalData": {
+ "SnapshotId": "48519d58-4e35-46cd-aed5-6251af95ed50",
+ "TotalFailedRules": "7",
+ "TotalRulesFailedDuoToError": "1",
+ "TotalInformationalFailedRules": "2",
+ "TotalCriticalFailedRules": "3",
+ "TotalWarningFailedRules": "1"
+ }
+ }
+ }
+ ],
+ "nextLink": "https://management.azure.com/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/myGroup/providers/Microsoft.Devices/iotHubs/myIotHub/providers/Microsoft.Security/iotRecommendations?api-version=2020-08-06-preview&recommendationType=IoT_Baseline&deviceId=device-1&$limit=1&$skipToken=903e76ff-17eb-4bac-ac8a-2bc31ab68fd8"
+ }
+ }
+ }
+}
diff --git a/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/iotAlertTypes.json b/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/iotAlertTypes.json
new file mode 100644
index 000000000000..a1dd8e2d4361
--- /dev/null
+++ b/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/iotAlertTypes.json
@@ -0,0 +1,307 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "Security Center",
+ "description": "API spec for Microsoft.Security (Azure Security Center) resource provider",
+ "version": "2020-08-06-preview"
+ },
+ "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}/providers/Microsoft.Security/iotAlertTypes": {
+ "get": {
+ "x-ms-examples": {
+ "Get IoT Alert Types": {
+ "$ref": "./examples/IotAlertTypes/GetIoTAlertTypeList.json"
+ }
+ },
+ "tags": [
+ "IoT Security Alert Types"
+ ],
+ "description": "List IoT alert types",
+ "operationId": "IotAlertTypes_List",
+ "parameters": [
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/ApiVersion"
+ },
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/SubscriptionId"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/IotAlertTypeList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../common/v1/types.json#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Security/iotAlertTypes/{iotAlertTypeName}": {
+ "get": {
+ "x-ms-examples": {
+ "Get IoT Alert Type": {
+ "$ref": "./examples/IotAlertTypes/GetIoTAlertType.json"
+ }
+ },
+ "tags": [
+ "IoT Security Alert Types"
+ ],
+ "operationId": "IotAlertTypes_Get",
+ "description": "Get IoT alert type",
+ "parameters": [
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/ApiVersion"
+ },
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/SubscriptionId"
+ },
+ {
+ "in": "path",
+ "name": "iotAlertTypeName",
+ "required": true,
+ "type": "string",
+ "description": "Name of the alert type"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "IoT alert type",
+ "schema": {
+ "$ref": "#/definitions/IotAlertType"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../common/v1/types.json#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "IotAlertTypeList": {
+ "type": "object",
+ "description": "List of alert types",
+ "properties": {
+ "value": {
+ "type": "array",
+ "description": "List data",
+ "items": {
+ "$ref": "#/definitions/IotAlertType"
+ }
+ }
+ }
+ },
+ "IotAlertType": {
+ "type": "object",
+ "description": "IoT alert type.",
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "description": "Alert type properties",
+ "$ref": "#/definitions/IotAlertTypeProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../../common/v1/types.json#/definitions/Resource"
+ }
+ ]
+ },
+ "IotAlertTypeProperties": {
+ "type": "object",
+ "description": "IoT alert type information.",
+ "properties": {
+ "alertDisplayName": {
+ "readOnly": true,
+ "type": "string",
+ "example": "Privileged container detected",
+ "description": "The display name of the alert"
+ },
+ "severity": {
+ "readOnly": true,
+ "type": "string",
+ "example": "Medium",
+ "description": "The severity of the alert",
+ "enum": [
+ "Informational",
+ "Low",
+ "Medium",
+ "High"
+ ],
+ "x-ms-enum": {
+ "name": "alertSeverity",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Informational"
+ },
+ {
+ "value": "Low"
+ },
+ {
+ "value": "Medium"
+ },
+ {
+ "value": "High"
+ }
+ ]
+ }
+ },
+ "description": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Description of the suspected vulnerability and meaning.",
+ "example": "Machine logs indicate that a privileged Docker container is running. A privileged container has full access to host resources. If compromised, a malicious actor can use the privileged container to gain access to the host machine."
+ },
+ "providerName": {
+ "readOnly": true,
+ "type": "string",
+ "example": "IoTSecurity",
+ "description": "The name of the alert provider or internal partner"
+ },
+ "productName": {
+ "readOnly": true,
+ "type": "string",
+ "example": "Azure Security Center for IoT",
+ "description": "The name of the product which published this alert"
+ },
+ "productComponentName": {
+ "readOnly": true,
+ "type": "string",
+ "example": "IoT Hub",
+ "description": "The name of a component inside the product which generated the alert"
+ },
+ "vendorName": {
+ "readOnly": true,
+ "type": "string",
+ "example": "Microsoft",
+ "description": "The name of the vendor that raise the alert"
+ },
+ "intent": {
+ "readOnly": true,
+ "type": "string",
+ "example": "Exploitation,Execution",
+ "description": "Kill chain related intent behind the alert. Could contain multiple enum values (separated by commas)",
+ "enum": [
+ "Unknown",
+ "PreAttack",
+ "InitialAccess",
+ "Persistence",
+ "PrivilegeEscalation",
+ "DefenseEvasion",
+ "CredentialAccess",
+ "Discovery",
+ "LateralMovement",
+ "Execution",
+ "Collection",
+ "Exfiltration",
+ "CommandAndControl",
+ "Impact",
+ "Probing",
+ "Exploitation"
+ ],
+ "x-ms-enum": {
+ "name": "alertIntent",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Unknown"
+ },
+ {
+ "value": "PreAttack"
+ },
+ {
+ "value": "InitialAccess"
+ },
+ {
+ "value": "Persistence"
+ },
+ {
+ "value": "PrivilegeEscalation"
+ },
+ {
+ "value": "DefenseEvasion"
+ },
+ {
+ "value": "CredentialAccess"
+ },
+ {
+ "value": "Discovery"
+ },
+ {
+ "value": "LateralMovement"
+ },
+ {
+ "value": "Execution"
+ },
+ {
+ "value": "Collection"
+ },
+ {
+ "value": "Exfiltration"
+ },
+ {
+ "value": "CommandAndControl"
+ },
+ {
+ "value": "Impact"
+ },
+ {
+ "value": "Probing"
+ },
+ {
+ "value": "Exploitation"
+ }
+ ]
+ }
+ },
+ "remediationSteps": {
+ "readOnly": true,
+ "description": "Manual action items to take to remediate the alert",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "example": "If the container doesn't need to run in privileged mode, remove the privileges from the container."
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/iotAlerts.json b/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/iotAlerts.json
new file mode 100644
index 000000000000..3c6af28c9e93
--- /dev/null
+++ b/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/iotAlerts.json
@@ -0,0 +1,284 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "Security Center",
+ "description": "API spec for Microsoft.Security (Azure Security Center) resource provider",
+ "version": "2020-08-06-preview"
+ },
+ "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": {
+ "/{scope}/providers/Microsoft.Security/iotAlerts": {
+ "get": {
+ "x-ms-examples": {
+ "List IoT Alerts": {
+ "$ref": "./examples/IotAlerts/GetIoTAlertList.json"
+ }
+ },
+ "tags": [
+ "IoT Security Alerts"
+ ],
+ "description": "List IoT alerts",
+ "operationId": "IotAlerts_List",
+ "parameters": [
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/ApiVersion"
+ },
+ {
+ "$ref": "#/parameters/IotAlertScope"
+ },
+ {
+ "in": "query",
+ "name": "startTimeUtc>",
+ "x-ms-client-name": "minStartTimeUtc",
+ "required": false,
+ "type": "string",
+ "description": "Filter by minimum startTimeUtc (ISO 8601 format)"
+ },
+ {
+ "in": "query",
+ "name": "startTimeUtc<",
+ "x-ms-client-name": "maxStartTimeUtc",
+ "required": false,
+ "type": "string",
+ "description": "Filter by maximum startTimeUtc (ISO 8601 format)"
+ },
+ {
+ "in": "query",
+ "name": "alertType",
+ "required": false,
+ "type": "string",
+ "description": "Filter by alert type"
+ },
+ {
+ "in": "query",
+ "name": "deviceManagementType",
+ "required": false,
+ "type": "string",
+ "enum": [
+ "Managed",
+ "Unmanaged"
+ ],
+ "description": "Get devices only from specific type, Managed or Unmanaged.",
+ "x-ms-enum": {
+ "name": "ManagementState",
+ "modelAsString": true
+ }
+ },
+ {
+ "in": "query",
+ "name": "compromisedEntity",
+ "required": false,
+ "type": "string",
+ "description": "Filter by compromised device"
+ },
+ {
+ "in": "query",
+ "name": "$limit",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "description": "Limit the number of items returned in a single page"
+ },
+ {
+ "in": "query",
+ "name": "$skipToken",
+ "required": false,
+ "type": "string",
+ "description": "Skip token used for pagination"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/IotAlertListModel"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../common/v1/types.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/{scope}/providers/Microsoft.Security/iotAlerts/{iotAlertId}": {
+ "get": {
+ "x-ms-examples": {
+ "Get IoT Alert": {
+ "$ref": "./examples/IotAlerts/GetIoTAlert.json"
+ }
+ },
+ "tags": [
+ "IoT Security Alerts"
+ ],
+ "operationId": "IotAlerts_Get",
+ "description": "Get IoT alert",
+ "parameters": [
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/ApiVersion"
+ },
+ {
+ "$ref": "#/parameters/IotAlertScope"
+ },
+ {
+ "in": "path",
+ "name": "iotAlertId",
+ "required": true,
+ "type": "string",
+ "description": "Id of the alert"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "IoT alert",
+ "schema": {
+ "$ref": "#/definitions/IotAlertModel"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../common/v1/types.json#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "IotAlertListModel": {
+ "description": "List of IoT alerts",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List data",
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/IotAlertModel"
+ }
+ },
+ "nextLink": {
+ "readOnly": true,
+ "type": "string",
+ "description": "When available, follow the URI to get the next page of data"
+ }
+ }
+ },
+ "IotAlertModel": {
+ "type": "object",
+ "description": "IoT alert",
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "description": "Alert properties",
+ "$ref": "#/definitions/IotAlertPropertiesModel"
+ }
+ }
+ },
+ "IotAlertPropertiesModel": {
+ "type": "object",
+ "description": "IoT alert properties",
+ "properties": {
+ "systemAlertId": {
+ "description": "Holds the product canonical identifier of the alert within the scope of a product",
+ "readOnly": true,
+ "type": "string",
+ "example": "903e76ff-17eb-4bac-ac8a-2bc31ab68fd8"
+ },
+ "compromisedEntity": {
+ "description": "Display name of the main entity being reported on",
+ "readOnly": true,
+ "type": "string",
+ "example": "device-1"
+ },
+ "alertType": {
+ "description": "The type name of the alert",
+ "readOnly": true,
+ "type": "string",
+ "example": "IoT_PrivilegedContainer"
+ },
+ "startTimeUtc": {
+ "description": "The impact start time of the alert (the time of the first event or activity included in the alert)",
+ "readOnly": true,
+ "type": "string",
+ "example": "2020-05-13T06:32:25Z"
+ },
+ "endTimeUtc": {
+ "description": "The impact end time of the alert (the time of the last event or activity included in the alert)",
+ "readOnly": true,
+ "type": "string",
+ "example": "2020-05-13T06:32:25Z"
+ },
+ "entities": {
+ "description": "A list of entities related to the alert",
+ "type": "array",
+ "items": {
+ "type": "object"
+ },
+ "example": [
+ {
+ "$id": "1",
+ "CommandLine": "docker run --privileged",
+ "Type": "process"
+ }
+ ]
+ },
+ "extendedProperties": {
+ "type": "object",
+ "description": "A bag of fields which extends the alert information",
+ "example": {
+ "CommandLine": "docker run --privileged",
+ "User Name": "aUser",
+ "UserId": "",
+ "ParentProcessId": 1593,
+ "DeviceId": "device-1"
+ }
+ }
+ }
+ }
+ },
+ "parameters": {
+ "IotAlertScope": {
+ "name": "scope",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Scope of the query: Subscription (i.e. /subscriptions/{subscriptionId}) or IoT Hub (i.e. /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Devices/iotHubs/{iotHubName})",
+ "x-ms-parameter-location": "method",
+ "x-ms-skip-url-encoding": true
+ }
+ }
+}
diff --git a/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/iotRecommendationTypes.json b/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/iotRecommendationTypes.json
new file mode 100644
index 000000000000..9299fa3006e2
--- /dev/null
+++ b/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/iotRecommendationTypes.json
@@ -0,0 +1,247 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "Security Center",
+ "description": "API spec for Microsoft.Security (Azure Security Center) resource provider",
+ "version": "2020-08-06-preview"
+ },
+ "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}/providers/Microsoft.Security/iotRecommendationTypes": {
+ "get": {
+ "x-ms-examples": {
+ "Get IoT Recommendation Types": {
+ "$ref": "./examples/IotRecommendationTypes/GetIoTRecommendationTypeList.json"
+ }
+ },
+ "tags": [
+ "IoT Security Recommendation Types"
+ ],
+ "description": "List IoT recommendation types",
+ "operationId": "IotRecommendationTypes_List",
+ "parameters": [
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/ApiVersion"
+ },
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/SubscriptionId"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/IotRecommendationTypeList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../common/v1/types.json#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Security/iotRecommendationTypes/{iotRecommendationTypeName}": {
+ "get": {
+ "x-ms-examples": {
+ "Get IoT Recommendation Type": {
+ "$ref": "./examples/IotRecommendationTypes/GetIoTRecommendationType.json"
+ }
+ },
+ "tags": [
+ "IoT Security Recommendation Types"
+ ],
+ "operationId": "IotRecommendationTypes_Get",
+ "description": "Get IoT recommendation type",
+ "parameters": [
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/ApiVersion"
+ },
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/SubscriptionId"
+ },
+ {
+ "in": "path",
+ "name": "iotRecommendationTypeName",
+ "required": true,
+ "type": "string",
+ "description": "Name of the recommendation type"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "IoT recommendation type",
+ "schema": {
+ "$ref": "#/definitions/IotRecommendationType"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../common/v1/types.json#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "IotRecommendationTypeList": {
+ "type": "object",
+ "description": "List of recommendation types",
+ "properties": {
+ "value": {
+ "type": "array",
+ "description": "List data",
+ "items": {
+ "$ref": "#/definitions/IotRecommendationType"
+ }
+ }
+ }
+ },
+ "IotRecommendationType": {
+ "type": "object",
+ "description": "IoT recommendation type.",
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "description": "Recommendation type properties",
+ "$ref": "#/definitions/IotRecommendationTypeProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../../common/v1/types.json#/definitions/Resource"
+ }
+ ]
+ },
+ "IotRecommendationTypeProperties": {
+ "type": "object",
+ "description": "IoT recommendation type information.",
+ "properties": {
+ "recommendationDisplayName": {
+ "readOnly": true,
+ "type": "string",
+ "example": "TLS cipher suite upgrade needed",
+ "description": "The display name of the recommendation"
+ },
+ "severity": {
+ "readOnly": true,
+ "type": "string",
+ "example": "Medium",
+ "description": "The severity of the recommendation",
+ "enum": [
+ "Unknown",
+ "NotApplicable",
+ "Healthy",
+ "OffByPolicy",
+ "Low",
+ "Medium",
+ "High"
+ ],
+ "x-ms-enum": {
+ "name": "recommendationSeverity",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Unknown"
+ },
+ {
+ "value": "NotApplicable"
+ },
+ {
+ "value": "Healthy"
+ },
+ {
+ "value": "OffByPolicy"
+ },
+ {
+ "value": "Low"
+ },
+ {
+ "value": "Medium"
+ },
+ {
+ "value": "High"
+ }
+ ]
+ }
+ },
+ "description": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Description of the suspected vulnerability and meaning.",
+ "example": "Insecure TLS configurations detected. Immediate TLS cipher suite upgrade recommended."
+ },
+ "productName": {
+ "readOnly": true,
+ "type": "string",
+ "example": "Azure Security Center for IoT",
+ "description": "The name of the product which published this recommendation"
+ },
+ "productComponentName": {
+ "readOnly": true,
+ "type": "string",
+ "example": "IoT Hub",
+ "description": "The name of a component inside the product which generated the recommendation"
+ },
+ "vendorName": {
+ "readOnly": true,
+ "type": "string",
+ "example": "Microsoft",
+ "description": "The name of the vendor that raised the recommendation"
+ },
+ "control": {
+ "readOnly": true,
+ "type": "string",
+ "example": "Communication between device and IoT Hub is not optimized",
+ "description": "The name of the recommendation's control category "
+ },
+ "remediationSteps": {
+ "readOnly": true,
+ "description": "Manual action items to take to resolve the recommendation",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "example": "Upgrade your TLS cipher suite to a secure configuration. See the Guide to TLS Standards Compliance for more information."
+ }
+ },
+ "dataSource": {
+ "readOnly": true,
+ "description": "The alert's data source",
+ "type": "string",
+ "example": "IoT Hub"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/iotRecommendations.json b/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/iotRecommendations.json
new file mode 100644
index 000000000000..325bc059bf72
--- /dev/null
+++ b/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/iotRecommendations.json
@@ -0,0 +1,233 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "Security Center",
+ "description": "API spec for Microsoft.Security (Azure Security Center) resource provider",
+ "version": "2020-08-06-preview"
+ },
+ "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": {
+ "/{scope}/providers/Microsoft.Security/iotRecommendations": {
+ "get": {
+ "x-ms-examples": {
+ "Get IoT Recommendations": {
+ "$ref": "./examples/IotRecommendations/GetIoTRecommendationList.json"
+ }
+ },
+ "tags": [
+ "IoT Security Recommendations"
+ ],
+ "description": "List IoT recommendations",
+ "operationId": "IotRecommendations_List",
+ "parameters": [
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/ApiVersion"
+ },
+ {
+ "$ref": "#/parameters/IotRecommendationScope"
+ },
+ {
+ "in": "query",
+ "name": "recommendationType",
+ "required": false,
+ "type": "string",
+ "description": "Filter by recommendation type"
+ },
+ {
+ "in": "query",
+ "name": "deviceId",
+ "required": false,
+ "type": "string",
+ "description": "Filter by device id"
+ },
+ {
+ "in": "query",
+ "name": "$limit",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "description": "Limit the number of items returned in a single page"
+ },
+ {
+ "in": "query",
+ "name": "$skipToken",
+ "required": false,
+ "type": "string",
+ "description": "Skip token used for pagination"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/IotRecommendationListModel"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../common/v1/types.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/{scope}/providers/Microsoft.Security/iotRecommendations/{iotRecommendationId}": {
+ "get": {
+ "x-ms-examples": {
+ "Get IoT Recommendation": {
+ "$ref": "./examples/IotRecommendations/GetIoTRecommendation.json"
+ }
+ },
+ "tags": [
+ "IoT Security Recommendations"
+ ],
+ "operationId": "IotRecommendations_Get",
+ "description": "Get IoT recommendation",
+ "parameters": [
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/ApiVersion"
+ },
+ {
+ "$ref": "#/parameters/IotRecommendationScope"
+ },
+ {
+ "in": "path",
+ "name": "iotRecommendationId",
+ "required": true,
+ "type": "string",
+ "description": "Id of the recommendation"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "IoT recommendation",
+ "schema": {
+ "$ref": "#/definitions/IotRecommendationModel"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../common/v1/types.json#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "IotRecommendationListModel": {
+ "description": "List of IoT recommendations",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List data",
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/IotRecommendationModel"
+ }
+ },
+ "nextLink": {
+ "readOnly": true,
+ "type": "string",
+ "description": "When available, follow the URI to get the next page of data"
+ }
+ }
+ },
+ "IotRecommendationModel": {
+ "type": "object",
+ "description": "IoT recommendation",
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "description": "Recommendation properties",
+ "$ref": "#/definitions/IotRecommendationPropertiesModel"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../../common/v1/types.json#/definitions/Resource"
+ }
+ ]
+ },
+ "IotRecommendationPropertiesModel": {
+ "type": "object",
+ "description": "IoT recommendation properties",
+ "properties": {
+ "deviceId": {
+ "description": "Identifier of the device being reported on",
+ "readOnly": true,
+ "type": "string",
+ "example": "device-1"
+ },
+ "recommendationType": {
+ "description": "The type name of the recommendation",
+ "readOnly": true,
+ "type": "string",
+ "example": "IoT_PrivilegedContainer"
+ },
+ "discoveredTimeUtc": {
+ "description": "The discovery time of the recommendation",
+ "readOnly": true,
+ "type": "string",
+ "example": "2020-05-13T06:32:25Z"
+ },
+ "recommendationAdditionalData": {
+ "type": "object",
+ "description": "A bag of fields which extends the recommendation information",
+ "example": {
+ "SnapshotId": "48519d58-4e35-46cd-aed5-6251af95ed50",
+ "TotalFailedRules": "7",
+ "TotalRulesFailedDuoToError": "1",
+ "TotalInformationalFailedRules": "2",
+ "TotalCriticalFailedRules": "3",
+ "TotalWarningFailedRules": "1"
+ }
+ }
+ }
+ }
+ },
+ "parameters": {
+ "IotRecommendationScope": {
+ "name": "scope",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Scope of the query: Subscription (i.e. /subscriptions/{subscriptionId}) or IoT Hub (i.e. /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Devices/iotHubs/{iotHubName})",
+ "x-ms-parameter-location": "method",
+ "x-ms-skip-url-encoding": true
+ }
+ }
+}
diff --git a/specification/security/resource-manager/readme.md b/specification/security/resource-manager/readme.md
index 0057730b4c8a..9e8651424d97 100644
--- a/specification/security/resource-manager/readme.md
+++ b/specification/security/resource-manager/readme.md
@@ -84,6 +84,9 @@ These settings apply only when `--tag=package-composite-v1` is specified on the
``` yaml $(tag) == 'package-composite-v1'
input-file:
+- Microsoft.Security/preview/2020-07-01-preview/sqlVulnerabilityAssessmentsScanOperations.json
+- Microsoft.Security/preview/2020-07-01-preview/sqlVulnerabilityAssessmentsScanResultsOperations.json
+- Microsoft.Security/preview/2020-07-01-preview/sqlVulnerabilityAssessmentsBaselineRuleOperations.json
- Microsoft.Security/preview/2020-01-01-preview/secureScore.json
- Microsoft.Security/preview/2020-01-01-preview/connectors.json
- Microsoft.Security/preview/2019-01-01-preview/automations.json
@@ -122,6 +125,9 @@ These settings apply only when `--tag=package-composite-v2` is specified on the
``` yaml $(tag) == 'package-composite-v2'
input-file:
+- Microsoft.Security/preview/2020-07-01-preview/sqlVulnerabilityAssessmentsScanOperations.json
+- Microsoft.Security/preview/2020-07-01-preview/sqlVulnerabilityAssessmentsScanResultsOperations.json
+- Microsoft.Security/preview/2020-07-01-preview/sqlVulnerabilityAssessmentsBaselineRuleOperations.json
- Microsoft.Security/preview/2020-01-01-preview/secureScore.json
- Microsoft.Security/preview/2020-01-01-preview/connectors.json
- Microsoft.Security/preview/2019-01-01-preview/automations.json
@@ -182,7 +188,6 @@ input-file:
- Microsoft.Security/preview/2017-08-01-preview/securityContacts.json
- Microsoft.Security/preview/2017-08-01-preview/workspaceSettings.json
- Microsoft.Security/preview/2019-01-01-preview/regulatoryCompliance.json
-
- Microsoft.Security/preview/2019-01-01-preview/subAssessments.json
- Microsoft.Security/preview/2019-01-01-preview/automations.json
- Microsoft.Security/preview/2019-01-01-preview/alertsSuppressionRules.json
@@ -201,10 +206,17 @@ input-file:
- Microsoft.Security/stable/2020-01-01/secureScore.json
- Microsoft.Security/stable/2020-01-01/SecuritySolutions.json
- Microsoft.Security/preview/2020-01-01-preview/connectors.json
+- Microsoft.Security/preview/2020-07-01-preview/sqlVulnerabilityAssessmentsScanOperations.json
+- Microsoft.Security/preview/2020-07-01-preview/sqlVulnerabilityAssessmentsScanResultsOperations.json
+- Microsoft.Security/preview/2020-07-01-preview/sqlVulnerabilityAssessmentsBaselineRuleOperations.json
- Microsoft.Security/preview/2020-08-06-preview/iotDefenderSettings.json
- Microsoft.Security/preview/2020-08-06-preview/iotSensors.json
- Microsoft.Security/preview/2020-08-06-preview/devices.json
- Microsoft.Security/preview/2020-08-06-preview/onPremiseIotSensors.json
+- Microsoft.Security/preview/2020-08-06-preview/iotAlerts.json
+- Microsoft.Security/preview/2020-08-06-preview/iotAlertTypes.json
+- Microsoft.Security/preview/2020-08-06-preview/iotRecommendations.json
+- Microsoft.Security/preview/2020-08-06-preview/iotRecommendationTypes.json
# Needed when there is more than one input file
override-info:
@@ -383,6 +395,21 @@ override-info:
title: SecurityCenter
```
+### Tag: package-2020-07-preview-only
+
+These settings apply only when `--tag=package-2020-07-preview-only` is specified on the command line. This tag is used for Ruby SDK.
+
+``` yaml $(tag) == 'package-2020-07-preview-only'
+input-file:
+- Microsoft.Security/preview/2020-07-01-preview/sqlVulnerabilityAssessmentsScanOperations.json
+- Microsoft.Security/preview/2020-07-01-preview/sqlVulnerabilityAssessmentsScanResultsOperations.json
+- Microsoft.Security/preview/2020-07-01-preview/sqlVulnerabilityAssessmentsBaselineRuleOperations.json
+
+# Needed when there is more than one input file
+override-info:
+ title: SecurityCenter
+```
+
### Tag: package-2020-08-preview-only
These settings apply only when `--tag=package-2020-08-preview-only` is specified on the command line. This tag is used for Ruby SDK.
@@ -393,6 +420,10 @@ input-file:
- Microsoft.Security/preview/2020-08-06-preview/iotSensors.json
- Microsoft.Security/preview/2020-08-06-preview/devices.json
- Microsoft.Security/preview/2020-08-06-preview/onPremiseIotSensors.json
+- Microsoft.Security/preview/2020-08-06-preview/iotAlerts.json
+- Microsoft.Security/preview/2020-08-06-preview/iotAlertTypes.json
+- Microsoft.Security/preview/2020-08-06-preview/iotRecommendations.json
+- Microsoft.Security/preview/2020-08-06-preview/iotRecommendationTypes.json
# Needed when there is more than one input file
override-info:
diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2019-01-01-preview/SecurityInsights.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2019-01-01-preview/SecurityInsights.json
index a9f2fd856708..319047bcc8fc 100644
--- a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2019-01-01-preview/SecurityInsights.json
+++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2019-01-01-preview/SecurityInsights.json
@@ -2140,6 +2140,57 @@
}
}
},
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{operationalInsightsResourceProvider}/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/entities/{entityId}/getTimeline": {
+ "post": {
+ "x-ms-examples": {
+ "Entity timeline": {
+ "$ref": "./examples/entities/timeline/PostTimelineEntity.json"
+ }
+ },
+ "tags": [
+ "Entities"
+ ],
+ "description": "Timeline for an entity.",
+ "operationId": "EntitiesGetTimeline_list",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/OperationalInsightsResourceProvider"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceName"
+ },
+ {
+ "$ref": "#/parameters/EntityId"
+ },
+ {
+ "$ref": "#/parameters/EntityTimelineRequestBody"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/EntityTimelineResponse"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{operationalInsightsResourceProvider}/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/entities/{entityId}/relations": {
"get": {
"x-ms-examples": {
@@ -3150,14 +3201,14 @@
},
"put": {
"x-ms-examples": {
- "Creates an incident comment.": {
+ "Creates or updates an incident comment.": {
"$ref": "./examples/incidents/comments/CreateIncidentComment.json"
}
},
"tags": [
"IncidentComments"
],
- "description": "Creates the incident comment.",
+ "description": "Creates or updates the incident comment.",
"operationId": "IncidentComments_CreateComment",
"parameters": [
{
@@ -3186,6 +3237,12 @@
}
],
"responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/IncidentComment"
+ }
+ },
"201": {
"description": "Created",
"schema": {
@@ -3199,6 +3256,55 @@
}
}
}
+ },
+ "delete": {
+ "x-ms-examples": {
+ "Delete the incident comment.": {
+ "$ref": "./examples/incidents/comments/DeleteIncidentComment.json"
+ }
+ },
+ "tags": [
+ "IncidentComments"
+ ],
+ "description": "Delete the incident comment.",
+ "operationId": "IncidentComments_DeleteComment",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/OperationalInsightsResourceProvider"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceName"
+ },
+ {
+ "$ref": "#/parameters/IncidentId"
+ },
+ {
+ "$ref": "#/parameters/IncidentCommentId"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "204": {
+ "description": "No Content"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
}
},
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{operationalInsightsResourceProvider}/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/incidents/{incidentId}/entities": {
@@ -3481,7 +3587,7 @@
"tags": [
"Watchlists"
],
- "description": "Gets all watchlists.",
+ "description": "Gets all watchlists, without watchlist items.",
"operationId": "Watchlists_List",
"parameters": [
{
@@ -3519,51 +3625,6 @@
}
}
},
- "/subscriptions/{subscriptionId}/providers/{operationalInsightsResourceProvider}/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/watchlists": {
- "get": {
- "x-ms-examples": {
- "Get all watchlists.": {
- "$ref": "./examples/watchlists/GetWatchlists.json"
- }
- },
- "tags": [
- "Watchlists"
- ],
- "description": "Gets all watchlists in a subscription.",
- "operationId": "Watchlists_ListBySubscription",
- "parameters": [
- {
- "$ref": "#/parameters/ApiVersion"
- },
- {
- "$ref": "#/parameters/SubscriptionId"
- },
- {
- "$ref": "#/parameters/OperationalInsightsResourceProvider"
- },
- {
- "$ref": "#/parameters/WorkspaceName"
- }
- ],
- "responses": {
- "200": {
- "description": "OK",
- "schema": {
- "$ref": "#/definitions/WatchlistList"
- }
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/CloudError"
- }
- }
- },
- "x-ms-pageable": {
- "nextLinkName": "nextLink"
- }
- }
- },
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{operationalInsightsResourceProvider}/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/watchlists/{watchlistAlias}": {
"get": {
"x-ms-examples": {
@@ -3574,7 +3635,7 @@
"tags": [
"Watchlists"
],
- "description": "Gets a watchlist.",
+ "description": "Gets a watchlist, without its watchlist items.",
"operationId": "Watchlists_Get",
"parameters": [
{
@@ -3666,7 +3727,7 @@
"tags": [
"Watchlists"
],
- "description": "Creates a watchlist",
+ "description": "Creates a watchlist and its watchlist items (bulk creation, e.g. through text/csv content type). To create a Watchlist and its Items, we should call this endpoint twice : the first call will create am empty Watchlist, and the second one will create its Items.",
"operationId": "Watchlists_Create",
"parameters": [
{
@@ -6029,6 +6090,37 @@
}
}
},
+ "EntityTimelineParameters": {
+ "description": "The parameters required to execute s timeline operation on the given entity.",
+ "properties": {
+ "kinds": {
+ "description": "Array of timeline Item kinds.",
+ "items": {
+ "$ref": "#/definitions/EntityTimelineKind"
+ },
+ "type": "array"
+ },
+ "startTime": {
+ "description": "The start timeline date, so the results returned are after this date.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "endTime": {
+ "description": "The end timeline date, so the results returned are before this date.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "numberOfBucket": {
+ "description": "The number of bucket for timeline queries aggregation.",
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ "required": [
+ "startTime",
+ "endTime"
+ ]
+ },
"EntityExpandResponse": {
"description": "The entity expansion result operation response.",
"properties": {
@@ -6051,6 +6143,22 @@
}
}
},
+ "EntityTimelineResponse": {
+ "description": "The entity timeline result operation response.",
+ "properties": {
+ "metaData": {
+ "$ref": "#/definitions/TimelineResultsMetadata",
+ "description": "The metadata from the timeline operation results."
+ },
+ "value": {
+ "description": "The timeline result values.",
+ "items": {
+ "$ref": "#/definitions/EntityTimelineItem"
+ },
+ "type": "array"
+ }
+ }
+ },
"EntityInnerKind": {
"description": "The kind of the entity",
"enum": [
@@ -6294,6 +6402,33 @@
},
"type": "object"
},
+ "EntityTimelineKind": {
+ "description": "The entity query kind",
+ "enum": [
+ "Activity",
+ "Bookmark",
+ "SecurityAlert"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "modelAsString": true,
+ "name": "EntityTimelineKind",
+ "values": [
+ {
+ "description": "activity",
+ "value": "Activity"
+ },
+ {
+ "description": "bookmarks",
+ "value": "Bookmark"
+ },
+ {
+ "description": "security alerts",
+ "value": "SecurityAlert"
+ }
+ ]
+ }
+ },
"EntityQueryList": {
"description": "List of all the entity queries.",
"properties": {
@@ -6395,6 +6530,90 @@
},
"type": "object"
},
+ "TimelineResultsMetadata": {
+ "description": "Expansion result metadata.",
+ "properties": {
+ "totalCount": {
+ "description": "the total items found for the timeline request",
+ "type": "integer",
+ "format": "int32"
+ },
+ "aggregations": {
+ "description": "timeline aggregation per kind",
+ "items": {
+ "$ref": "#/definitions/TimelineAggregation"
+ },
+ "type": "array"
+ },
+ "errors": {
+ "description": "information about the failure queries",
+ "items": {
+ "$ref": "#/definitions/TimelineError"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "totalCount",
+ "aggregations"
+ ],
+ "type": "object"
+ },
+ "TimelineError": {
+ "description": "Timeline Query Errors.",
+ "properties": {
+ "kind": {
+ "description": "the query kind",
+ "$ref": "#/definitions/EntityTimelineKind"
+ },
+ "queryId": {
+ "description": "the query id",
+ "type": "string"
+ },
+ "errorMessage": {
+ "description": "the error message",
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind",
+ "errorMessage"
+ ],
+ "type": "object"
+ },
+ "TimelineAggregation": {
+ "description": "timeline aggregation information per kind",
+ "properties": {
+ "count": {
+ "description": "the total items found for a kind",
+ "type": "integer",
+ "format": "int32"
+ },
+ "kind": {
+ "description": "the query kind",
+ "$ref": "#/definitions/EntityTimelineKind"
+ }
+ },
+ "required": [
+ "kind",
+ "count"
+ ],
+ "type": "object"
+ },
+ "EntityTimelineItem": {
+ "description": "Entity timeline Item.",
+ "discriminator": "kind",
+ "type": "object",
+ "properties": {
+ "kind": {
+ "$ref": "#/definitions/EntityTimelineKind",
+ "description": "The entity query kind type."
+ }
+ },
+ "required": [
+ "kind"
+ ]
+ },
"FileEntity": {
"allOf": [
{
@@ -6518,6 +6737,176 @@
},
"type": "object"
},
+ "ActivityTimelineItem": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/EntityTimelineItem"
+ }
+ ],
+ "description": "Represents Activity timeline item.",
+ "properties": {
+ "queryId": {
+ "type": "string",
+ "description": "The activity query id."
+ },
+ "bucketStartTimeUTC": {
+ "format": "date-time",
+ "type": "string",
+ "description": "The grouping bucket start time."
+ },
+ "bucketEndTimeUTC": {
+ "format": "date-time",
+ "type": "string",
+ "description": "The grouping bucket end time."
+ },
+ "firstActivityTimeUTC": {
+ "format": "date-time",
+ "type": "string",
+ "description": "The time of the first activity in the grouping bucket."
+ },
+ "lastActivityTimeUTC": {
+ "format": "date-time",
+ "type": "string",
+ "description": "The time of the last activity in the grouping bucket."
+ },
+ "content": {
+ "type": "string",
+ "description": "The activity timeline content."
+ },
+ "title": {
+ "type": "string",
+ "description": "The activity timeline title."
+ }
+ },
+ "required": [
+ "queryId",
+ "bucketStartTimeUTC",
+ "bucketEndTimeUTC",
+ "firstActivityTimeUTC",
+ "lastActivityTimeUTC",
+ "content",
+ "title"
+ ],
+ "type": "object",
+ "x-ms-discriminator-value": "Activity"
+ },
+ "SecurityAlertTimelineItem": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/EntityTimelineItem"
+ }
+ ],
+ "description": "Represents security alert timeline item.",
+ "properties": {
+ "azureResourceId": {
+ "type": "string",
+ "description": "The alert azure resource id."
+ },
+ "productName": {
+ "type": "string",
+ "description": "The alert product name."
+ },
+ "displayName": {
+ "type": "string",
+ "description": "The alert name."
+ },
+ "severity": {
+ "$ref": "#/definitions/AlertSeverity",
+ "description": "The alert severity."
+ },
+ "endTimeUtc": {
+ "format": "date-time",
+ "type": "string",
+ "description": "The alert end time."
+ },
+ "startTimeUtc": {
+ "format": "date-time",
+ "type": "string",
+ "description": "The alert start time."
+ },
+ "timeGenerated": {
+ "format": "date-time",
+ "type": "string",
+ "description": "The alert generated time."
+ },
+ "alertType": {
+ "type": "string",
+ "description": "The name of the alert type."
+ }
+ },
+ "required": [
+ "azureResourceId",
+ "productName",
+ "displayName",
+ "severity",
+ "endTimeUtc",
+ "startTimeUtc",
+ "timeGenerated",
+ "alertType"
+ ],
+ "type": "object",
+ "x-ms-discriminator-value": "SecurityAlert"
+ },
+ "BookmarkTimelineItem": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/EntityTimelineItem"
+ }
+ ],
+ "description": "Represents bookmark timeline item.",
+ "properties": {
+ "azureResourceId": {
+ "type": "string",
+ "description": "The bookmark azure resource id."
+ },
+ "displayName": {
+ "type": "string",
+ "description": "The bookmark display name."
+ },
+ "notes": {
+ "type": "string",
+ "description": "The notes of the bookmark"
+ },
+ "endTimeUtc": {
+ "format": "date-time",
+ "type": "string",
+ "description": "The bookmark end time."
+ },
+ "startTimeUtc": {
+ "format": "date-time",
+ "type": "string",
+ "description": "TThe bookmark start time."
+ },
+ "eventTime": {
+ "format": "date-time",
+ "type": "string",
+ "description": "The bookmark event time."
+ },
+ "createdBy": {
+ "$ref": "#/definitions/UserInfo",
+ "description": "Describes a user that created the bookmark",
+ "type": "object"
+ },
+ "labels": {
+ "description": "List of labels relevant to this bookmark",
+ "items": {
+ "$ref": "#/definitions/Label"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "azureResourceId",
+ "displayName",
+ "notes",
+ "endTimeUtc",
+ "startTimeUtc",
+ "createdBy",
+ "labels"
+ ],
+ "type": "object",
+ "x-ms-discriminator-value": "Bookmark"
+ },
"FusionAlertRule": {
"allOf": [
{
@@ -6939,7 +7328,7 @@
"IncidentComment": {
"allOf": [
{
- "$ref": "#/definitions/Resource"
+ "$ref": "#/definitions/ResourceWithEtag"
}
],
"description": "Represents an incident comment",
@@ -6981,6 +7370,12 @@
"readOnly": true,
"type": "string"
},
+ "lastModifiedTimeUtc": {
+ "description": "The time the comment was updated",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
"message": {
"description": "The comment message",
"type": "string"
@@ -9572,22 +9967,16 @@
"WatchlistProperties": {
"description": "Describes watchlist properties",
"properties": {
- "createdTimeUtc": {
- "description": "The time the watchlist was created",
- "format": "date-time",
+ "watchlistId": {
+ "description": "The id (a Guid) of the watchlist",
"type": "string"
},
- "createdBy": {
- "$ref": "#/definitions/UserInfo",
- "description": "Describes a user that created the watchlist",
- "type": "object"
- },
"displayName": {
"description": "The display name of the watchlist",
"type": "string"
},
- "watchlistType": {
- "description": "The type of the watchlist",
+ "provider": {
+ "description": "The provider of the watchlist",
"type": "string"
},
"source": {
@@ -9602,82 +9991,16 @@
"name": "source"
}
},
- "provider": {
- "description": "The provider of the watchlist",
- "type": "string"
- },
- "description": {
- "description": "A description of the watchlist",
- "type": "string"
- },
- "tenantId": {
- "description": "The tenantId where the watchlist belongs to.",
- "type": "string"
- },
- "workspaceId": {
- "description": "The workspaceId where the watchlist belongs to.",
- "type": "string"
- },
- "labels": {
- "description": "List of labels relevant to this watchlist",
- "items": {
- "$ref": "#/definitions/Label"
- },
- "type": "array"
- },
- "notes": {
- "description": "The notes of the watchlist",
+ "created": {
+ "description": "The time the watchlist was created",
+ "format": "date-time",
"type": "string"
},
- "lastUpdatedTimeUtc": {
+ "updated": {
"description": "The last time the watchlist was updated",
"format": "date-time",
"type": "string"
},
- "updatedBy": {
- "$ref": "#/definitions/UserInfo",
- "description": "Describes a user that updated the watchlist",
- "type": "object"
- },
- "defaultDuration": {
- "description": "The default duration of a watchlist (in ISO 8601 duration format)",
- "format": "duration",
- "type": "string"
- },
- "watchlistItems": {
- "description": "List of watchlist items.",
- "items": {
- "$ref": "#/definitions/WatchlistItem"
- },
- "type": "array"
- }
- },
- "required": [
- "displayName",
- "source",
- "provider"
- ],
- "type": "object"
- },
- "WatchlistItem": {
- "allOf": [
- {
- "$ref": "#/definitions/Resource"
- }
- ],
- "description": "Represents a Watchlist Item in Azure Security Insights.",
- "properties": {
- "properties": {
- "$ref": "#/definitions/WatchlistItemProperties",
- "description": "Watchlist item properties",
- "x-ms-client-flatten": true
- }
- },
- "type": "object"
- },
- "WatchlistItemProperties": {
- "description": "Describes watchlist item properties",
- "properties": {
"createdBy": {
"$ref": "#/definitions/UserInfo",
"description": "Describes a user that created the watchlist",
@@ -9688,49 +10011,56 @@
"description": "Describes a user that updated the watchlist",
"type": "object"
},
- "watchlistItemName": {
- "description": "Name of the watchlist item",
+ "description": {
+ "description": "A description of the watchlist",
"type": "string"
},
- "watchlistItemPair": {
- "description": "A key-value pair for a watchlist item",
- "type": "object"
- },
- "entityMapping": {
- "description": "A key-value pair for a watchlist item entity mapping",
- "type": "object"
- },
- "tenantId": {
- "description": "The tenantId to which this watchlist item belongs to",
+ "watchlistType": {
+ "description": "The type of the watchlist",
"type": "string"
},
- "createdTimeUtc": {
- "description": "The time the watchlist item was created",
- "format": "date-time",
+ "watchlistAlias": {
+ "description": "The alias of the watchlist",
"type": "string"
},
- "lastUpdatedTimeUtc": {
- "description": "The last time the watchlist item was updated",
- "format": "date-time",
+ "isDeleted": {
+ "description": "A flag that indicates if the watchlist is deleted or not",
+ "type": "boolean"
+ },
+ "labels": {
+ "description": "List of labels relevant to this watchlist",
+ "items": {
+ "$ref": "#/definitions/Label"
+ },
+ "type": "array"
+ },
+ "defaultDuration": {
+ "description": "The default duration of a watchlist (in ISO 8601 duration format)",
+ "format": "duration",
"type": "string"
},
- "timeToLiveUtc": {
- "description": "The time to live for the watchlist item",
- "format": "date-time",
+ "tenantId": {
+ "description": "The tenantId where the watchlist belongs to",
"type": "string"
},
- "watchlistItemType": {
- "description": "The type of the watchlist item",
+ "numberOfLinesToSkip": {
+ "description": "The number of lines in a csv/tsv content to skip before the header",
+ "type": "integer",
+ "format": "int32"
+ },
+ "rawContent": {
+ "description": "The raw content that represents to watchlist items to create. In case of csv/tsv content type, it's the content of the file that will parsed by the endpoint",
"type": "string"
},
- "watchlistId": {
- "description": "The watchlist id of the parent of this watchlist item",
+ "contentType": {
+ "description": "The content type of the raw content. Example : text/csv or text/tsv ",
"type": "string"
}
},
"required": [
- "watchlistId",
- "watchlistItemPair"
+ "displayName",
+ "source",
+ "provider"
],
"type": "object"
},
@@ -10394,6 +10724,16 @@
},
"x-ms-parameter-location": "method"
},
+ "EntityTimelineRequestBody": {
+ "description": "The parameters required to execute an timeline operation on the given entity.",
+ "in": "body",
+ "name": "parameters",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/EntityTimelineParameters"
+ },
+ "x-ms-parameter-location": "method"
+ },
"EntityId": {
"description": "entity ID",
"in": "path",
diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2019-01-01-preview/examples/entities/timeline/PostTimelineEntity.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2019-01-01-preview/examples/entities/timeline/PostTimelineEntity.json
new file mode 100644
index 000000000000..c242ec21b288
--- /dev/null
+++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2019-01-01-preview/examples/entities/timeline/PostTimelineEntity.json
@@ -0,0 +1,68 @@
+{
+ "parameters": {
+ "api-version": "2019-01-01-preview",
+ "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0",
+ "resourceGroupName": "myRg",
+ "workspaceName": "myWorkspace",
+ "operationalInsightsResourceProvider": "Microsoft.OperationalIinsights",
+ "entityId": "e1d3d618-e11f-478b-98e3-bb381539a8e1",
+ "parameters": {
+ "numberOfBucket": 4,
+ "startTime": "2019-04-25T00:00:00.000Z",
+ "endTime": "2019-05-26T00:00:00.000Z"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "kind": "SecurityAlert",
+ "azureResourceId": "4467341f-fb73-4f99-a9b3-29473532cf5a_bf7c3a2f-b743-6410-3ff0-ec64b5995d50",
+ "productName": "Azure Sentinel",
+ "displayName": "Alert display name",
+ "severity": "Medium",
+ "endTimeUtc": "2020-08-29T23:31:28.02Z",
+ "startTimeUtc": "2020-08-28T23:32:28.01Z",
+ "timeGenerated": "2020-08-29T23:37:25.8136594Z",
+ "alertType": "4467341f-fb73-4f99-a9b3-29473532cf5a_c93bf33e-055e-4972-9e7d-f84fe3fb61ae"
+ },
+ {
+ "kind": "Activity",
+ "queryId": "e0459780-ac9d-4b72-8bd4-fecf6b46a0a1",
+ "bucketStartTimeUTC": "2020-08-29T21:31:28.02Z",
+ "bucketEndTimeUTC": "2020-08-29T23:31:28.02Z",
+ "firstActivityTimeUTC": "2020-08-29T21:35:28.02Z",
+ "lastActivityTimeUTC": "2020-08-29T21:35:28.02Z",
+ "content": "he user has deleted the account 3 time(s)",
+ "title": "The user has deleted an account"
+ }
+ ],
+ "metaData": {
+ "totalCount": 6,
+ "aggregations": [
+ {
+ "count": 4,
+ "kind": "Activity"
+ },
+ {
+ "count": 2,
+ "kind": "SecurityAlert"
+ }
+ ],
+ "errors": [
+ {
+ "kind": "Activity",
+ "queryId": "11067f9f-d6a7-4488-887f-0ba564268879",
+ "errorMessage": "syntax error"
+ },
+ {
+ "kind": "SecurityAlert",
+ "errorMessage": "internal server error"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2019-01-01-preview/examples/incidents/comments/CreateIncidentComment.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2019-01-01-preview/examples/incidents/comments/CreateIncidentComment.json
index e82cacf4bc78..40faabcdc088 100644
--- a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2019-01-01-preview/examples/incidents/comments/CreateIncidentComment.json
+++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2019-01-01-preview/examples/incidents/comments/CreateIncidentComment.json
@@ -14,14 +14,35 @@
}
},
"responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/incidents/73e01a99-5cd7-4139-a149-9f2736ff2ab5/comments/4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014",
+ "name": "4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014",
+ "type": "Microsoft.SecurityInsights/incidents/comments",
+ "etag": "190057d0-0000-0d00-0000-5c6f5adb0000",
+ "properties": {
+ "message": "Some message",
+ "createdTimeUtc": "2019-01-01T13:15:30Z",
+ "lastModifiedTimeUtc": "2019-01-03T11:10:30Z",
+ "author": {
+ "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70",
+ "email": "john.doe@contoso.com",
+ "userPrincipalName": "john@contoso.com",
+ "name": "john doe"
+ }
+ }
+ }
+ },
"201": {
"body": {
"id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/incidents/73e01a99-5cd7-4139-a149-9f2736ff2ab5/comments/4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014",
"name": "4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014",
"type": "Microsoft.SecurityInsights/incidents/comments",
+ "etag": "190057d0-0000-0d00-0000-5c622adb0000",
"properties": {
"message": "Some message",
"createdTimeUtc": "2019-01-01T13:15:30Z",
+ "lastModifiedTimeUtc": "2019-01-01T13:15:30Z",
"author": {
"objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70",
"email": "john.doe@contoso.com",
diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2019-01-01-preview/examples/incidents/comments/DeleteIncidentComment.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2019-01-01-preview/examples/incidents/comments/DeleteIncidentComment.json
new file mode 100644
index 000000000000..77d29e520f83
--- /dev/null
+++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2019-01-01-preview/examples/incidents/comments/DeleteIncidentComment.json
@@ -0,0 +1,15 @@
+{
+ "parameters": {
+ "api-version": "2019-01-01-preview",
+ "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0",
+ "resourceGroupName": "myRg",
+ "workspaceName": "myWorkspace",
+ "operationalInsightsResourceProvider": "Microsoft.OperationalInsights",
+ "incidentId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5",
+ "incidentCommentId": "4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2019-01-01-preview/examples/incidents/comments/GetAllIncidentComments.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2019-01-01-preview/examples/incidents/comments/GetAllIncidentComments.json
index 87dbdd886e30..b820b7626c63 100644
--- a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2019-01-01-preview/examples/incidents/comments/GetAllIncidentComments.json
+++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2019-01-01-preview/examples/incidents/comments/GetAllIncidentComments.json
@@ -15,9 +15,11 @@
"id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/incidents/73e01a99-5cd7-4139-a149-9f2736ff2ab5/comments/4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014",
"name": "4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014",
"type": "Microsoft.SecurityInsights/incidents/comments",
+ "etag": "190057d0-0000-0d00-0000-5c6f5adb0000",
"properties": {
"message": "Some message",
"createdTimeUtc": "2019-01-01T13:15:30Z",
+ "lastModifiedTimeUtc": "2019-01-03T11:10:30Z",
"author": {
"objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70",
"email": "john.doe@contoso.com",
diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2019-01-01-preview/examples/incidents/comments/GetIncidentCommentById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2019-01-01-preview/examples/incidents/comments/GetIncidentCommentById.json
index fe757de317b3..315f614edc5e 100644
--- a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2019-01-01-preview/examples/incidents/comments/GetIncidentCommentById.json
+++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2019-01-01-preview/examples/incidents/comments/GetIncidentCommentById.json
@@ -14,9 +14,11 @@
"id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/incidents/73e01a99-5cd7-4139-a149-9f2736ff2ab5/comments/4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014",
"name": "4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014",
"type": "Microsoft.SecurityInsights/incidents/comments",
+ "etag": "190057d0-0000-0d00-0000-5c6f5adb0000",
"properties": {
"message": "Some message",
"createdTimeUtc": "2019-01-01T13:15:30Z",
+ "lastModifiedTimeUtc": "2019-01-03T11:10:30Z",
"author": {
"objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70",
"email": "john.doe@contoso.com",
diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2019-01-01-preview/examples/watchlists/CreateWatchlist.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2019-01-01-preview/examples/watchlists/CreateWatchlist.json
index 07cf84ce8165..7f904a3d9ef0 100644
--- a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2019-01-01-preview/examples/watchlists/CreateWatchlist.json
+++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2019-01-01-preview/examples/watchlists/CreateWatchlist.json
@@ -12,22 +12,18 @@
"createdBy": {
"objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70"
},
- "updatedBy": {
- "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70"
- },
- "lastUpdatedTimeUtc": "2019-01-01T13:15:30Z",
- "createdTimeUtc": "2019-01-01T13:15:30Z",
"displayName": "High Value Assets Watchlist",
- "watchlistType": "watchlist",
"source": "Local file",
- "provider": "Azure Sentinel",
- "description": "Watchlist Description",
- "notes": "A note for the watchlist",
+ "provider": "Microsoft",
+ "description": "Watchlist from CSV content",
"labels": [
"Tag1",
"Tag2"
],
- "defaultDuration": "P1D2H3M4S"
+ "defaultDuration": "P1279DT12H30M5S",
+ "numberOfLinesToSkip": 1,
+ "rawContent": "This line will be skipped\nheader1,header2\nvalue1,value2",
+ "contentType": "text/csv"
}
}
},
@@ -36,9 +32,15 @@
"body": {
"id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/watchlists/highValueAsset",
"name": "highValueAsset",
- "type": "Microsoft.SecurityInsights/Watchlists",
"etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"",
+ "type": "Microsoft.SecurityInsights/Watchlists",
"properties": {
+ "watchlistId": "76d5a51f-ba1f-4038-9d22-59fda38dc017",
+ "displayName": "High Value Assets Watchlist",
+ "provider": "Microsoft",
+ "source": "Local file",
+ "created": "2020-09-28T00:26:54.7746089+00:00",
+ "updated": "2020-09-28T00:26:57+00:00",
"createdBy": {
"objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70",
"email": "john@contoso.com",
@@ -49,19 +51,16 @@
"email": "john@contoso.com",
"name": "john doe"
},
- "lastUpdatedTimeUtc": "2019-01-01T13:15:30Z",
- "createdTimeUtc": "2019-01-01T13:15:30Z",
- "displayName": "High Value Assets Watchlist",
+ "description": "Watchlist from CSV content",
"watchlistType": "watchlist",
- "source": "Local file",
- "provider": "Azure Sentinel",
- "description": "Watchlist Description",
- "notes": "A note for the watchlist",
+ "watchlistAlias": "highValueAsset",
+ "isDeleted": false,
"labels": [
"Tag1",
"Tag2"
],
- "defaultDuration": "P1D2H3M4S"
+ "defaultDuration": "P1279DT12H30M5S",
+ "tenantId": "f686d426-8d16-42db-81b7-ab578e110ccd"
}
}
},
@@ -69,9 +68,15 @@
"body": {
"id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/watchlists/highValueAsset",
"name": "highValueAsset",
- "type": "Microsoft.SecurityInsights/Watchlists",
"etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"",
+ "type": "Microsoft.SecurityInsights/Watchlists",
"properties": {
+ "watchlistId": "76d5a51f-ba1f-4038-9d22-59fda38dc017",
+ "displayName": "High Value Assets Watchlist",
+ "provider": "Microsoft",
+ "source": "Local file",
+ "created": "2020-09-28T00:26:54.7746089+00:00",
+ "updated": "2020-09-28T00:26:57+00:00",
"createdBy": {
"objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70",
"email": "john@contoso.com",
@@ -82,19 +87,16 @@
"email": "john@contoso.com",
"name": "john doe"
},
- "lastUpdatedTimeUtc": "2019-01-01T13:15:30Z",
- "createdTimeUtc": "2019-01-01T13:15:30Z",
- "displayName": "High Value Assets Watchlist",
+ "description": "Watchlist from CSV content",
"watchlistType": "watchlist",
- "source": "Local file",
- "provider": "Azure Sentinel",
- "description": "Watchlist Description",
- "notes": "A note for the watchlist",
+ "watchlistAlias": "highValueAsset",
+ "isDeleted": false,
"labels": [
"Tag1",
"Tag2"
],
- "defaultDuration": "P1D2H3M4S"
+ "defaultDuration": "P1279DT12H30M5S",
+ "tenantId": "f686d426-8d16-42db-81b7-ab578e110ccd"
}
}
}
diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2019-01-01-preview/examples/watchlists/DeleteWatchlist.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2019-01-01-preview/examples/watchlists/DeleteWatchlist.json
index f466add6d9f0..9ee1aed03821 100644
--- a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2019-01-01-preview/examples/watchlists/DeleteWatchlist.json
+++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2019-01-01-preview/examples/watchlists/DeleteWatchlist.json
@@ -4,7 +4,7 @@
"subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0",
"resourceGroupName": "myRg",
"workspaceName": "myWorkspace",
- "operationalInsightsResourceProvider": "Microsoft.OperationalIinsights",
+ "operationalInsightsResourceProvider": "Microsoft.OperationalInsights",
"watchlistAlias": "highValueAsset"
},
"responses": {
diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2019-01-01-preview/examples/watchlists/GetWatchlistByAlias.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2019-01-01-preview/examples/watchlists/GetWatchlistByAlias.json
index 7e8db045c713..47992b08f1fc 100644
--- a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2019-01-01-preview/examples/watchlists/GetWatchlistByAlias.json
+++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2019-01-01-preview/examples/watchlists/GetWatchlistByAlias.json
@@ -4,7 +4,7 @@
"subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0",
"resourceGroupName": "myRg",
"workspaceName": "myWorkspace",
- "operationalInsightsResourceProvider": "Microsoft.OperationalIinsights",
+ "operationalInsightsResourceProvider": "Microsoft.OperationalInsights",
"watchlistAlias": "highValueAsset"
},
"responses": {
@@ -15,31 +15,32 @@
"type": "Microsoft.SecurityInsights/Watchlists",
"etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"",
"properties": {
- "createdTimeUtc": "2019-01-01T13:15:30Z",
+ "watchlistId": "76d5a51f-ba1f-4038-9d22-59fda38dc017",
+ "displayName": "High Value Assets Watchlist",
+ "provider": "Microsoft",
+ "source": "Local file",
+ "created": "2020-09-28T00:26:54.7746089+00:00",
+ "updated": "2020-09-28T00:26:57+00:00",
"createdBy": {
"objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70",
"email": "john@contoso.com",
"name": "john doe"
},
- "displayName": "High Value Assets Watchlist",
- "watchlistType": "watchlist",
- "source": "Local file",
- "provider": "Azure Sentinel",
- "description": "A description",
- "tenantId": "9ad7a5a8-490c-4f6e-b906-be97a89fa92a",
- "workspaceId": "8a6c62fc-325f-48b2-a330-7863bf73eb45",
- "labels": [
- "Tag1",
- "Tag2"
- ],
- "notes": "A note for the watchlist",
- "lastUpdatedTimeUtc": "2019-01-01T13:15:30Z",
"updatedBy": {
"objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70",
"email": "john@contoso.com",
"name": "john doe"
},
- "defaultDuration": "P1D2H3M4S"
+ "description": "Watchlist from CSV content",
+ "watchlistType": "watchlist",
+ "watchlistAlias": "highValueAsset",
+ "isDeleted": false,
+ "labels": [
+ "Tag1",
+ "Tag2"
+ ],
+ "defaultDuration": "P1279DT12H30M5S",
+ "tenantId": "f686d426-8d16-42db-81b7-ab578e110ccd"
}
}
}
diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2019-01-01-preview/examples/watchlists/GetWatchlists.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2019-01-01-preview/examples/watchlists/GetWatchlists.json
index 35fe3af660a4..a19b9a45da58 100644
--- a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2019-01-01-preview/examples/watchlists/GetWatchlists.json
+++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2019-01-01-preview/examples/watchlists/GetWatchlists.json
@@ -4,7 +4,7 @@
"subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0",
"resourceGroupName": "myRg",
"workspaceName": "myWorkspace",
- "operationalInsightsResourceProvider": "Microsoft.OperationalIinsights"
+ "operationalInsightsResourceProvider": "Microsoft.OperationalInsights"
},
"responses": {
"200": {
@@ -16,31 +16,32 @@
"type": "Microsoft.SecurityInsights/Watchlists",
"etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"",
"properties": {
- "createdTimeUtc": "2019-01-01T13:15:30Z",
+ "watchlistId": "76d5a51f-ba1f-4038-9d22-59fda38dc017",
+ "displayName": "High Value Assets Watchlist",
+ "provider": "Microsoft",
+ "source": "Local file",
+ "created": "2020-09-28T00:26:54.7746089+00:00",
+ "updated": "2020-09-28T00:26:57+00:00",
"createdBy": {
"objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70",
"email": "john@contoso.com",
"name": "john doe"
},
- "displayName": "High Value Assets Watchlist",
- "watchlistType": "watchlist",
- "source": "Local file",
- "provider": "Azure Sentinel",
- "description": "A description",
- "tenantId": "9ad7a5a8-490c-4f6e-b906-be97a89fa92a",
- "workspaceId": "8a6c62fc-325f-48b2-a330-7863bf73eb45",
- "labels": [
- "Tag1",
- "Tag2"
- ],
- "notes": "A note for the watchlist",
- "lastUpdatedTimeUtc": "2019-01-01T13:15:30Z",
"updatedBy": {
"objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70",
"email": "john@contoso.com",
"name": "john doe"
},
- "defaultDuration": "P1D2H3M4S"
+ "description": "Watchlist from CSV content",
+ "watchlistType": "watchlist",
+ "watchlistAlias": "highValueAsset",
+ "isDeleted": false,
+ "labels": [
+ "Tag1",
+ "Tag2"
+ ],
+ "defaultDuration": "P1279DT12H30M5S",
+ "tenantId": "f686d426-8d16-42db-81b7-ab578e110ccd"
}
}
]
diff --git a/specification/securityinsights/resource-manager/readme.md b/specification/securityinsights/resource-manager/readme.md
index e9bf77101153..547566c2f1b5 100644
--- a/specification/securityinsights/resource-manager/readme.md
+++ b/specification/securityinsights/resource-manager/readme.md
@@ -58,6 +58,10 @@ directive:
where: $.definitions.ThreatIntelligenceResource
reason: Our API is designed based on per region per workspace concept. There is no use case of our customers to get all indicators in multiple workspaces.
approved-by: "@cheggert"
+ - suppress: R4017
+ from: Microsoft.SecurityInsights/preview/2019-01-01-preview/SecurityInsights.json
+ where: $.definitions.Watchlist
+ reason: The Watchlist does not support list by subscription. It's not a top-level resource. To get the Watchlist, we should have a subscription as well as a resource group and Log Analytics workspace.
```
---
@@ -74,6 +78,7 @@ swagger-to-sdk:
- repo: azure-sdk-for-net
- repo: azure-sdk-for-go
- repo: azure-sdk-for-python
+ - repo: azure-sdk-for-python-track2
- repo: azure-sdk-for-js
- repo: azure-sdk-for-node
- repo: azure-cli-extensions
diff --git a/specification/securityinsights/resource-manager/readme.python.md b/specification/securityinsights/resource-manager/readme.python.md
index 1818849662fd..e7c2576215ec 100644
--- a/specification/securityinsights/resource-manager/readme.python.md
+++ b/specification/securityinsights/resource-manager/readme.python.md
@@ -4,7 +4,7 @@ These settings apply only when `--python` is specified on the command line.
Please also specify `--python-sdks-folder=`.
Use `--python-mode=update` if you already have a setup.py and just want to update the code itself.
-``` yaml $(python)
+``` yaml $(python) && !$(track2)
python-mode: create
python:
azure-arm: true
@@ -15,13 +15,34 @@ python:
package-version: 0.1.0
clear-output-folder: true
```
-``` yaml $(python) && $(python-mode) == 'update'
+``` yaml $(python) && $(track2)
+python-mode: create
+azure-arm: true
+license-header: MICROSOFT_MIT_NO_VERSION
+payload-flattening-threshold: 2
+namespace: azure.mgmt.securityinsight
+package-name: azure-mgmt-securityinsight
+package-version: 0.1.0
+clear-output-folder: true
+```
+``` yaml $(python) && $(python-mode) == 'update' && !$(track2)
python:
no-namespace-folders: true
output-folder: $(python-sdks-folder)/azure-mgmt-securityinsight/azure/mgmt/securityinsight
```
-``` yaml $(python) && $(python-mode) == 'create'
+
+``` yaml $(python) && $(python-mode) == 'create' && !$(track2)
python:
basic-setup-py: true
output-folder: $(python-sdks-folder)/azure-mgmt-securityinsight
```
+
+``` yaml $(python) && $(python-mode) == 'update' && $(track2)
+no-namespace-folders: true
+output-folder: $(python-sdks-folder)/azure-mgmt-securityinsight/azure/mgmt/securityinsight
+```
+
+``` yaml $(python) && $(python-mode) == 'create' && $(track2)
+basic-setup-py: true
+output-folder: $(python-sdks-folder)/azure-mgmt-securityinsight
+```
diff --git a/specification/servicebus/resource-manager/Microsoft.ServiceBus/preview/2018-01-01-preview/DisasterRecoveryConfig.json b/specification/servicebus/resource-manager/Microsoft.ServiceBus/preview/2018-01-01-preview/DisasterRecoveryConfig.json
new file mode 100644
index 000000000000..0461931481d1
--- /dev/null
+++ b/specification/servicebus/resource-manager/Microsoft.ServiceBus/preview/2018-01-01-preview/DisasterRecoveryConfig.json
@@ -0,0 +1,774 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "ServiceBusManagementClient",
+ "description": "Azure Service Bus client",
+ "version": "2018-01-01-preview"
+ },
+ "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.ServiceBus/namespaces/{namespaceName}/disasterRecoveryConfigs/CheckNameAvailability": {
+ "post": {
+ "tags": [
+ "DisasterRecoveryConfigs"
+ ],
+ "operationId": "DisasterRecoveryConfigs_CheckNameAvailability",
+ "x-ms-examples": {
+ "AliasNameAvailability": {
+ "$ref": "./examples/disasterRecoveryConfigs/SBAliasCheckNameAvailability.json"
+ }
+ },
+ "description": "Check the give namespace name availability.",
+ "parameters": [
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CheckNameAvailability"
+ },
+ "description": "Parameters to check availability of the given namespace name"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "check availability returned successfully.",
+ "schema": {
+ "$ref": "#/definitions/CheckNameAvailabilityResult"
+ }
+ },
+ "default": {
+ "description": "ServiceBus error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceBus/namespaces/{namespaceName}/disasterRecoveryConfigs": {
+ "get": {
+ "tags": [
+ "DisasterRecoveryConfigs"
+ ],
+ "operationId": "DisasterRecoveryConfigs_List",
+ "x-ms-examples": {
+ "SBAliasList": {
+ "$ref": "./examples/disasterRecoveryConfigs/SBAliasList.json"
+ }
+ },
+ "description": "Gets all Alias(Disaster Recovery configurations)",
+ "parameters": [
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved the list of Alias(Disaster Recovery configurations) for servicebus namespace",
+ "schema": {
+ "$ref": "#/definitions/ArmDisasterRecoveryListResult"
+ }
+ },
+ "default": {
+ "description": "ServiceBus error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceBus/namespaces/{namespaceName}/disasterRecoveryConfigs/{alias}": {
+ "put": {
+ "tags": [
+ "DisasterRecoveryConfigs"
+ ],
+ "operationId": "DisasterRecoveryConfigs_CreateOrUpdate",
+ "x-ms-examples": {
+ "SBAliasCreate": {
+ "$ref": "./examples/disasterRecoveryConfigs/SBAliasCreate.json"
+ }
+ },
+ "description": "Creates or updates a new Alias(Disaster Recovery configuration)",
+ "parameters": [
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/AliasNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ArmDisasterRecovery"
+ },
+ "description": "Parameters required to create an Alias(Disaster Recovery configuration)"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Alias(Disaster Recovery configuration) successfully created",
+ "schema": {
+ "$ref": "#/definitions/ArmDisasterRecovery"
+ }
+ },
+ "201": {
+ "description": "Alias(Disaster Recovery configuration) creation request received"
+ },
+ "default": {
+ "description": "ServiceBus error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "DisasterRecoveryConfigs"
+ ],
+ "operationId": "DisasterRecoveryConfigs_Delete",
+ "x-ms-examples": {
+ "SBAliasDelete": {
+ "$ref": "./examples/disasterRecoveryConfigs/SBAliasDelete.json"
+ }
+ },
+ "description": "Deletes an Alias(Disaster Recovery configuration)",
+ "parameters": [
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/AliasNameParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Delete Alias(Disaster Recovery configuration) request accepted"
+ },
+ "default": {
+ "description": "ServiceBus error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "DisasterRecoveryConfigs"
+ ],
+ "operationId": "DisasterRecoveryConfigs_Get",
+ "x-ms-examples": {
+ "SBAliasGet": {
+ "$ref": "./examples/disasterRecoveryConfigs/SBAliasGet.json"
+ }
+ },
+ "description": "Retrieves Alias(Disaster Recovery configuration) for primary or secondary namespace",
+ "parameters": [
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/AliasNameParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved the Alias(Disaster Recovery configurations)",
+ "schema": {
+ "$ref": "#/definitions/ArmDisasterRecovery"
+ }
+ },
+ "default": {
+ "description": "ServiceBus error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceBus/namespaces/{namespaceName}/disasterRecoveryConfigs/{alias}/breakPairing": {
+ "post": {
+ "tags": [
+ "DisasterRecoveryConfigs"
+ ],
+ "operationId": "DisasterRecoveryConfigs_BreakPairing",
+ "x-ms-examples": {
+ "SBEHAliasBreakPairing": {
+ "$ref": "./examples/disasterRecoveryConfigs/SBEHAliasBreakPairing.json"
+ }
+ },
+ "description": "This operation disables the Disaster Recovery and stops replicating changes from primary to secondary namespaces",
+ "parameters": [
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/AliasNameParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Break-Pairing operation is successful."
+ },
+ "default": {
+ "description": "ServiceBus error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceBus/namespaces/{namespaceName}/disasterRecoveryConfigs/{alias}/failover": {
+ "post": {
+ "tags": [
+ "DisasterRecoveryConfigs"
+ ],
+ "operationId": "DisasterRecoveryConfigs_FailOver",
+ "x-ms-examples": {
+ "SBAliasFailOver": {
+ "$ref": "./examples/disasterRecoveryConfigs/SBAliasFailOver.json"
+ }
+ },
+ "description": "Invokes GEO DR failover and reconfigure the alias to point to the secondary namespace",
+ "parameters": [
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/AliasNameParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/FailoverProperties"
+ },
+ "description": "Parameters required to create an Alias(Disaster Recovery configuration)"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Failover operation is successful."
+ },
+ "default": {
+ "description": "ServiceBus error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceBus/namespaces/{namespaceName}/disasterRecoveryConfigs/{alias}/authorizationRules": {
+ "get": {
+ "tags": [
+ "DisasterRecoveryConfigs"
+ ],
+ "operationId": "DisasterRecoveryConfigs_ListAuthorizationRules",
+ "x-ms-examples": {
+ "NameSpaceAuthorizationRuleListAll": {
+ "$ref": "./examples/disasterRecoveryConfigs/SBAliasAuthorizationRuleListAll.json"
+ }
+ },
+ "description": "Gets the authorization rules for a namespace.",
+ "externalDocs": {
+ "url": "https://msdn.microsoft.com/en-us/library/azure/mt639376.aspx"
+ },
+ "parameters": [
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/AliasNameParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "DisasterRecoveryConfigs authorization rules returned successfully.",
+ "schema": {
+ "$ref": "#/definitions/SBAuthorizationRuleListResult"
+ }
+ },
+ "default": {
+ "description": "ServiceBus error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceBus/namespaces/{namespaceName}/disasterRecoveryConfigs/{alias}/authorizationRules/{authorizationRuleName}": {
+ "get": {
+ "tags": [
+ "DisasterRecoveryConfigs"
+ ],
+ "operationId": "DisasterRecoveryConfigs_GetAuthorizationRule",
+ "x-ms-examples": {
+ "DisasterRecoveryConfigsAuthorizationRuleGet": {
+ "$ref": "./examples/disasterRecoveryConfigs/SBAliasAuthorizationRuleGet.json"
+ }
+ },
+ "description": "Gets an authorization rule for a namespace by rule name.",
+ "externalDocs": {
+ "url": "https://msdn.microsoft.com/en-us/library/azure/mt639392.aspx"
+ },
+ "parameters": [
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/AliasNameParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/AuthorizationRuleNameParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "DisasterRecoveryConfigs authorization rule returned successfully.",
+ "schema": {
+ "$ref": "#/definitions/SBAuthorizationRule"
+ }
+ },
+ "default": {
+ "description": "ServiceBus error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceBus/namespaces/{namespaceName}/disasterRecoveryConfigs/{alias}/authorizationRules/{authorizationRuleName}/listKeys": {
+ "post": {
+ "tags": [
+ "DisasterRecoveryConfigs"
+ ],
+ "operationId": "DisasterRecoveryConfigs_ListKeys",
+ "x-ms-examples": {
+ "DisasterRecoveryConfigsAuthorizationRuleListKey": {
+ "$ref": "./examples/disasterRecoveryConfigs/SBAliasAuthorizationRuleListKey.json"
+ }
+ },
+ "description": "Gets the primary and secondary connection strings for the namespace.",
+ "externalDocs": {
+ "url": "https://msdn.microsoft.com/en-us/library/azure/mt639398.aspx"
+ },
+ "parameters": [
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/AliasNameParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/AuthorizationRuleNameParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Connection strings successfully returned.",
+ "schema": {
+ "$ref": "#/definitions/AccessKeys"
+ }
+ },
+ "default": {
+ "description": "ServiceBus error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "SBAuthorizationRuleListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SBAuthorizationRule"
+ },
+ "description": "Result of the List Authorization Rules operation."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "Link to the next set of results. Not empty if Value contains incomplete list of Authorization Rules."
+ }
+ },
+ "description": "The response to the List Namespace operation."
+ },
+ "SBAuthorizationRule": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "properties": {
+ "rights": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "Manage",
+ "Send",
+ "Listen"
+ ],
+ "x-ms-enum": {
+ "name": "AccessRights",
+ "modelAsString": false
+ }
+ },
+ "description": "The rights associated with the rule."
+ }
+ },
+ "required": [
+ "rights"
+ ],
+ "description": "AuthorizationRule properties."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../../common/v1/definitions.json#/definitions/Resource"
+ }
+ ],
+ "description": "Description of a namespace authorization rule."
+ },
+ "AccessKeys": {
+ "properties": {
+ "primaryConnectionString": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Primary connection string of the created namespace authorization rule."
+ },
+ "secondaryConnectionString": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Secondary connection string of the created namespace authorization rule."
+ },
+ "aliasPrimaryConnectionString": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Primary connection string of the alias if GEO DR is enabled"
+ },
+ "aliasSecondaryConnectionString": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Secondary connection string of the alias if GEO DR is enabled"
+ },
+ "primaryKey": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A base64-encoded 256-bit primary key for signing and validating the SAS token."
+ },
+ "secondaryKey": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A base64-encoded 256-bit primary key for signing and validating the SAS token."
+ },
+ "keyName": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A string that describes the authorization rule."
+ }
+ },
+ "description": "Namespace/ServiceBus Connection String"
+ },
+ "RegenerateAccessKeyParameters": {
+ "properties": {
+ "keyType": {
+ "type": "string",
+ "description": "The access key to regenerate.",
+ "enum": [
+ "PrimaryKey",
+ "SecondaryKey"
+ ],
+ "x-ms-enum": {
+ "name": "KeyType",
+ "modelAsString": false
+ }
+ },
+ "key": {
+ "type": "string",
+ "description": "Optional, if the key value provided, is reset for KeyType value or autogenerate Key value set for keyType"
+ }
+ },
+ "required": [
+ "keyType"
+ ],
+ "description": "Parameters supplied to the Regenerate Authorization Rule operation, specifies which key needs to be reset."
+ },
+ "UnavailableReason": {
+ "type": "string",
+ "enum": [
+ "None",
+ "InvalidName",
+ "SubscriptionIsDisabled",
+ "NameInUse",
+ "NameInLockdown",
+ "TooManyNamespaceInCurrentSubscription"
+ ],
+ "x-ms-enum": {
+ "name": "UnavailableReason",
+ "modelAsString": false
+ },
+ "description": "Specifies the reason for the unavailability of the service."
+ },
+ "CheckNameAvailability": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The Name to check the namespace name availability and The namespace name can contain only letters, numbers, and hyphens. The namespace must start with a letter, and it must end with a letter or number."
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "description": "Description of a Check Name availability request properties."
+ },
+ "CheckNameAvailabilityResult": {
+ "properties": {
+ "message": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The detailed info regarding the reason associated with the namespace."
+ },
+ "nameAvailable": {
+ "type": "boolean",
+ "description": "Value indicating namespace is availability, true if the namespace is available; otherwise, false."
+ },
+ "reason": {
+ "$ref": "#/definitions/UnavailableReason",
+ "description": "The reason for unavailability of a namespace."
+ }
+ },
+ "description": "Description of a Check Name availability request properties."
+ },
+ "ArmDisasterRecovery": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "properties": {
+ "provisioningState": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Provisioning state of the Alias(Disaster Recovery configuration) - possible values 'Accepted' or 'Succeeded' or 'Failed'",
+ "enum": [
+ "Accepted",
+ "Succeeded",
+ "Failed"
+ ],
+ "x-ms-enum": {
+ "name": "ProvisioningStateDR",
+ "modelAsString": false
+ }
+ },
+ "pendingReplicationOperationsCount": {
+ "readOnly": true,
+ "format": "int64",
+ "type": "integer",
+ "description": "Number of entities pending to be replicated."
+ },
+ "partnerNamespace": {
+ "type": "string",
+ "description": "ARM Id of the Primary/Secondary eventhub namespace name, which is part of GEO DR pairing"
+ },
+ "alternateName": {
+ "type": "string",
+ "description": "Primary/Secondary eventhub namespace name, which is part of GEO DR pairing"
+ },
+ "role": {
+ "readOnly": true,
+ "type": "string",
+ "description": "role of namespace in GEO DR - possible values 'Primary' or 'PrimaryNotReplicating' or 'Secondary'",
+ "enum": [
+ "Primary",
+ "PrimaryNotReplicating",
+ "Secondary"
+ ],
+ "x-ms-enum": {
+ "name": "RoleDisasterRecovery",
+ "modelAsString": false
+ }
+ }
+ },
+ "description": "Properties required to the Create Or Update Alias(Disaster Recovery configurations)"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../../common/v1/definitions.json#/definitions/Resource"
+ }
+ ],
+ "description": "Single item in List or Get Alias(Disaster Recovery configuration) operation"
+ },
+ "FailoverProperties": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "properties": {
+ "IsSafeFailover": {
+ "type": "boolean",
+ "description": "Safe failover is to indicate the service should wait for pending replication to finish before switching to the secondary."
+ }
+ },
+ "description": "Safe failover is to indicate the service should wait for pending replication to finish before switching to the secondary."
+ }
+ },
+ "description": "Safe failover is to indicate the service should wait for pending replication to finish before switching to the secondary."
+ },
+ "ArmDisasterRecoveryListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ArmDisasterRecovery"
+ },
+ "description": "List of Alias(Disaster Recovery configurations)"
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Link to the next set of results. Not empty if Value contains incomplete list of Alias(Disaster Recovery configuration)"
+ }
+ },
+ "description": "The result of the List Alias(Disaster Recovery configuration) operation."
+ }
+ },
+ "parameters": {}
+}
diff --git a/specification/servicebus/resource-manager/Microsoft.ServiceBus/preview/2018-01-01-preview/examples/disasterRecoveryConfigs/SBAliasAuthorizationRuleGet.json b/specification/servicebus/resource-manager/Microsoft.ServiceBus/preview/2018-01-01-preview/examples/disasterRecoveryConfigs/SBAliasAuthorizationRuleGet.json
new file mode 100644
index 000000000000..ad1cc2b7ea76
--- /dev/null
+++ b/specification/servicebus/resource-manager/Microsoft.ServiceBus/preview/2018-01-01-preview/examples/disasterRecoveryConfigs/SBAliasAuthorizationRuleGet.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "namespaceName": "sdk-Namespace-9080",
+ "authorizationRuleName": "sdk-Authrules-4879",
+ "resourceGroupName": "exampleResourceGroup",
+ "alias": "sdk-DisasterRecovery-4879",
+ "api-version": "2018-01-01-preview",
+ "subscriptionId": "exampleSubscriptionId"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/exampleSubscriptionId/resourceGroups/exampleResourceGroup/providers/Microsoft.ServiceBus/namespaces/sdk-Namespace-9080/disasterRecoveryConfigs/sdk-DisasterRecovery-4047/AuthorizationRules/sdk-Authrules-4879",
+ "name": "sdk-Authrules-4879",
+ "type": "Microsoft.ServiceBus/Namespaces/AuthorizationRules",
+ "properties": {
+ "rights": [
+ "Listen",
+ "Send"
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/servicebus/resource-manager/Microsoft.ServiceBus/preview/2018-01-01-preview/examples/disasterRecoveryConfigs/SBAliasAuthorizationRuleListAll.json b/specification/servicebus/resource-manager/Microsoft.ServiceBus/preview/2018-01-01-preview/examples/disasterRecoveryConfigs/SBAliasAuthorizationRuleListAll.json
new file mode 100644
index 000000000000..5456b271891c
--- /dev/null
+++ b/specification/servicebus/resource-manager/Microsoft.ServiceBus/preview/2018-01-01-preview/examples/disasterRecoveryConfigs/SBAliasAuthorizationRuleListAll.json
@@ -0,0 +1,62 @@
+{
+ "parameters": {
+ "namespaceName": "sdk-Namespace-9080",
+ "resourceGroupName": "exampleResourceGroup",
+ "alias": "sdk-DisasterRecovery-4047",
+ "api-version": "2018-01-01-preview",
+ "subscriptionId": "exampleSubscriptionId"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/exampleSubscriptionId/resourceGroups/exampleResourceGroup/providers/Microsoft.ServiceBus/namespaces/sdk-Namespace-9080/disasterRecoveryConfigs/sdk-DisasterRecovery-4047/AuthorizationRules/RootManageSharedAccessKey",
+ "name": "RootManageSharedAccessKey",
+ "type": "Microsoft.ServiceBus/Namespaces/AuthorizationRules",
+ "properties": {
+ "rights": [
+ "Listen",
+ "Manage",
+ "Send"
+ ]
+ }
+ },
+ {
+ "id": "/subscriptions/exampleSubscriptionId/resourceGroups/exampleResourceGroup/providers/Microsoft.ServiceBus/namespaces/sdk-Namespace-9080/disasterRecoveryConfigs/sdk-DisasterRecovery-4047/AuthorizationRules/sdk-Authrules-1067",
+ "name": "sdk-Authrules-1067",
+ "type": "Microsoft.ServiceBus/Namespaces/AuthorizationRules",
+ "properties": {
+ "rights": [
+ "Listen",
+ "Send"
+ ]
+ }
+ },
+ {
+ "id": "/subscriptions/exampleSubscriptionId/resourceGroups/exampleResourceGroup/providers/Microsoft.ServiceBus/namespaces/sdk-Namespace-9080/disasterRecoveryConfigs/sdk-DisasterRecovery-4047/AuthorizationRules/sdk-Authrules-1684",
+ "name": "sdk-Authrules-1684",
+ "type": "Microsoft.ServiceBus/Namespaces/AuthorizationRules",
+ "properties": {
+ "rights": [
+ "Listen",
+ "Send"
+ ]
+ }
+ },
+ {
+ "id": "/subscriptions/exampleSubscriptionId/resourceGroups/exampleResourceGroup/providers/Microsoft.ServiceBus/namespaces/sdk-Namespace-9080/disasterRecoveryConfigs/sdk-DisasterRecovery-4047/AuthorizationRules/sdk-Authrules-4879",
+ "name": "sdk-Authrules-4879",
+ "type": "Microsoft.ServiceBus/Namespaces/AuthorizationRules",
+ "properties": {
+ "rights": [
+ "Listen",
+ "Send"
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicebus/resource-manager/Microsoft.ServiceBus/preview/2018-01-01-preview/examples/disasterRecoveryConfigs/SBAliasAuthorizationRuleListKey.json b/specification/servicebus/resource-manager/Microsoft.ServiceBus/preview/2018-01-01-preview/examples/disasterRecoveryConfigs/SBAliasAuthorizationRuleListKey.json
new file mode 100644
index 000000000000..c12b0814203c
--- /dev/null
+++ b/specification/servicebus/resource-manager/Microsoft.ServiceBus/preview/2018-01-01-preview/examples/disasterRecoveryConfigs/SBAliasAuthorizationRuleListKey.json
@@ -0,0 +1,21 @@
+{
+ "parameters": {
+ "namespaceName": "sdk-Namespace-2702",
+ "authorizationRuleName": "sdk-Authrules-1746",
+ "resourceGroupName": "exampleResourceGroup",
+ "alias": "sdk-DisasterRecovery-4047",
+ "api-version": "2018-01-01-preview",
+ "subscriptionId": "exampleSubscriptionId"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "aliasPrimaryConnectionString": "Endpoint=sb://sdk-disasterrecovery-4047.servicebus.windows-int.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=############################################",
+ "aliasSecondaryConnectionString": "Endpoint=sb://sdk-disasterrecovery-4047.servicebus.windows-int.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=############################################",
+ "primaryKey": "############################################",
+ "secondaryKey": "############################################",
+ "keyName": "sdk-Authrules-1746"
+ }
+ }
+ }
+}
diff --git a/specification/servicebus/resource-manager/Microsoft.ServiceBus/preview/2018-01-01-preview/examples/disasterRecoveryConfigs/SBAliasCheckNameAvailability.json b/specification/servicebus/resource-manager/Microsoft.ServiceBus/preview/2018-01-01-preview/examples/disasterRecoveryConfigs/SBAliasCheckNameAvailability.json
new file mode 100644
index 000000000000..f6bd905b38c4
--- /dev/null
+++ b/specification/servicebus/resource-manager/Microsoft.ServiceBus/preview/2018-01-01-preview/examples/disasterRecoveryConfigs/SBAliasCheckNameAvailability.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "api-version": "2018-01-01-preview",
+ "subscriptionId": "exampleSubscriptionId",
+ "namespaceName": "sdk-Namespace-9080",
+ "resourceGroupName": "exampleResourceGroup",
+ "parameters": {
+ "name": "sdk-DisasterRecovery-9474"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "nameAvailable": true,
+ "reason": "None",
+ "message": ""
+ }
+ }
+ }
+}
diff --git a/specification/servicebus/resource-manager/Microsoft.ServiceBus/preview/2018-01-01-preview/examples/disasterRecoveryConfigs/SBAliasCreate.json b/specification/servicebus/resource-manager/Microsoft.ServiceBus/preview/2018-01-01-preview/examples/disasterRecoveryConfigs/SBAliasCreate.json
new file mode 100644
index 000000000000..0dacbcf5d311
--- /dev/null
+++ b/specification/servicebus/resource-manager/Microsoft.ServiceBus/preview/2018-01-01-preview/examples/disasterRecoveryConfigs/SBAliasCreate.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "namespaceName": "sdk-Namespace-8860",
+ "resourceGroupName": "ardsouzatestRG",
+ "alias": "sdk-Namespace-8860",
+ "api-version": "2018-01-01-preview",
+ "subscriptionId": "5f750a97-50d9-4e36-8081-c9ee4c0210d4",
+ "parameters": {
+ "properties": {
+ "partnerNamespace": "sdk-Namespace-37",
+ "alternateName": "alternameforAlias-Namespace-8860"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/5f750a97-50d9-4e36-8081-c9ee4c0210d4/resourceGroups/ardsouzatestRG/providers/Microsoft.ServiceBus/namespaces/sdk-Namespace-8860/disasterRecoveryConfig/sdk-Namespace-8860",
+ "name": "sdk-Namespace-8860",
+ "type": "Microsoft.ServiceBus/Namespaces/DisasterRecoveryConfig",
+ "properties": {
+ "provisioningState": "Accepted",
+ "partnerNamespace": "sdk-Namespace-37",
+ "alternateName": "alternameforAlias-Namespace-8860",
+ "role": "Primary"
+ }
+ }
+ },
+ "201": {}
+ }
+}
diff --git a/specification/servicebus/resource-manager/Microsoft.ServiceBus/preview/2018-01-01-preview/examples/disasterRecoveryConfigs/SBAliasDelete.json b/specification/servicebus/resource-manager/Microsoft.ServiceBus/preview/2018-01-01-preview/examples/disasterRecoveryConfigs/SBAliasDelete.json
new file mode 100644
index 000000000000..0247501e321e
--- /dev/null
+++ b/specification/servicebus/resource-manager/Microsoft.ServiceBus/preview/2018-01-01-preview/examples/disasterRecoveryConfigs/SBAliasDelete.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "namespaceName": "sdk-Namespace-8860",
+ "resourceGroupName": "SouthCentralUS",
+ "alias": "sdk-DisasterRecovery-3814",
+ "api-version": "2018-01-01-preview",
+ "subscriptionId": "5f750a97-50d9-4e36-8081-c9ee4c0210d4"
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/servicebus/resource-manager/Microsoft.ServiceBus/preview/2018-01-01-preview/examples/disasterRecoveryConfigs/SBAliasFailOver.json b/specification/servicebus/resource-manager/Microsoft.ServiceBus/preview/2018-01-01-preview/examples/disasterRecoveryConfigs/SBAliasFailOver.json
new file mode 100644
index 000000000000..d003c4b4f2ae
--- /dev/null
+++ b/specification/servicebus/resource-manager/Microsoft.ServiceBus/preview/2018-01-01-preview/examples/disasterRecoveryConfigs/SBAliasFailOver.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "namespaceName": "sdk-Namespace-8860",
+ "resourceGroupName": "ardsouzatestRG",
+ "alias": "sdk-DisasterRecovery-3814",
+ "api-version": "2018-01-01-preview",
+ "subscriptionId": "5f750a97-50d9-4e36-8081-c9ee4c0210d4"
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/servicebus/resource-manager/Microsoft.ServiceBus/preview/2018-01-01-preview/examples/disasterRecoveryConfigs/SBAliasGet.json b/specification/servicebus/resource-manager/Microsoft.ServiceBus/preview/2018-01-01-preview/examples/disasterRecoveryConfigs/SBAliasGet.json
new file mode 100644
index 000000000000..318643995e5d
--- /dev/null
+++ b/specification/servicebus/resource-manager/Microsoft.ServiceBus/preview/2018-01-01-preview/examples/disasterRecoveryConfigs/SBAliasGet.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "namespaceName": "sdk-Namespace-8860",
+ "resourceGroupName": "ardsouzatestRG",
+ "alias": "sdk-DisasterRecovery-3814",
+ "api-version": "2018-01-01-preview",
+ "subscriptionId": "5f750a97-50d9-4e36-8081-c9ee4c0210d4"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/5f750a97-50d9-4e36-8081-c9ee4c0210d4/resourceGroups/ardsouzatestRG/providers/Microsoft.ServiceBus/namespaces/sdk-Namespace-37/disasterRecoveryConfig/sdk-DisasterRecovery-3814",
+ "name": "sdk-DisasterRecovery-3814",
+ "type": "Microsoft.ServiceBus/Namespaces/DisasterRecoveryConfig",
+ "properties": {
+ "provisioningState": "Accepted",
+ "partnerNamespace": "sdk-Namespace-8860",
+ "role": "Secondary",
+ "pendingReplicationOperationsCount": 0
+ }
+ }
+ }
+ }
+}
diff --git a/specification/servicebus/resource-manager/Microsoft.ServiceBus/preview/2018-01-01-preview/examples/disasterRecoveryConfigs/SBAliasList.json b/specification/servicebus/resource-manager/Microsoft.ServiceBus/preview/2018-01-01-preview/examples/disasterRecoveryConfigs/SBAliasList.json
new file mode 100644
index 000000000000..e65d1fb8a7b4
--- /dev/null
+++ b/specification/servicebus/resource-manager/Microsoft.ServiceBus/preview/2018-01-01-preview/examples/disasterRecoveryConfigs/SBAliasList.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "namespaceName": "sdk-Namespace-8860",
+ "resourceGroupName": "ardsouzatestRG",
+ "alias": "sdk-DisasterRecovery-3814",
+ "api-version": "2018-01-01-preview",
+ "subscriptionId": "5f750a97-50d9-4e36-8081-c9ee4c0210d4"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/5f750a97-50d9-4e36-8081-c9ee4c0210d4/resourceGroups/ardsouzatestRG/providers/Microsoft.ServiceBus/namespaces/sdk-Namespace-8860/disasterRecoveryConfig/sdk-DisasterRecovery-3814",
+ "name": "sdk-DisasterRecovery-3814",
+ "type": "Microsoft.ServiceBus/Namespaces/DisasterRecoveryConfig",
+ "properties": {
+ "provisioningState": "Accepted",
+ "partnerNamespace": "sdk-Namespace-37",
+ "role": "Primary"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicebus/resource-manager/Microsoft.ServiceBus/preview/2018-01-01-preview/examples/disasterRecoveryConfigs/SBEHAliasBreakPairing.json b/specification/servicebus/resource-manager/Microsoft.ServiceBus/preview/2018-01-01-preview/examples/disasterRecoveryConfigs/SBEHAliasBreakPairing.json
new file mode 100644
index 000000000000..d003c4b4f2ae
--- /dev/null
+++ b/specification/servicebus/resource-manager/Microsoft.ServiceBus/preview/2018-01-01-preview/examples/disasterRecoveryConfigs/SBEHAliasBreakPairing.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "namespaceName": "sdk-Namespace-8860",
+ "resourceGroupName": "ardsouzatestRG",
+ "alias": "sdk-DisasterRecovery-3814",
+ "api-version": "2018-01-01-preview",
+ "subscriptionId": "5f750a97-50d9-4e36-8081-c9ee4c0210d4"
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/servicebus/resource-manager/readme.md b/specification/servicebus/resource-manager/readme.md
index c615a3072a32..f8c2c8c3a1f0 100644
--- a/specification/servicebus/resource-manager/readme.md
+++ b/specification/servicebus/resource-manager/readme.md
@@ -40,9 +40,9 @@ input-file:
- Microsoft.ServiceBus/preview/2018-01-01-preview/NetworkRuleSet-preview.json
- Microsoft.ServiceBus/preview/2018-01-01-preview/VirtualNetworkRules-preview.json
- Microsoft.ServiceBus/preview/2018-01-01-preview/operationlist-preview.json
+- Microsoft.ServiceBus/preview/2018-01-01-preview/DisasterRecoveryConfig.json
- Microsoft.ServiceBus/stable/2017-04-01/AuthorizationRules.json
- Microsoft.ServiceBus/stable/2017-04-01/CheckNameAvailability.json
-- Microsoft.ServiceBus/stable/2017-04-01/DisasterRecoveryConfig.json
- Microsoft.ServiceBus/stable/2017-04-01/eventhubs.json
- Microsoft.ServiceBus/stable/2017-04-01/migrate.json
- Microsoft.ServiceBus/stable/2017-04-01/migrationconfigs.json
diff --git a/specification/servicefabric/resource-manager/readme.typescript.md b/specification/servicefabric/resource-manager/readme.typescript.md
new file mode 100644
index 000000000000..64ec2032b91d
--- /dev/null
+++ b/specification/servicefabric/resource-manager/readme.typescript.md
@@ -0,0 +1,13 @@
+## TypeScript
+
+These settings apply only when `--typescript` is specified on the command line.
+Please also specify `--typescript-sdks-folder=`.
+
+``` yaml $(typescript)
+typescript:
+ azure-arm: true
+ package-name: "@azure/arm-servicefabric"
+ output-folder: "$(typescript-sdks-folder)/sdk/servicefabric/arm-servicefabric"
+ clear-output-folder: true
+ generate-metadata: true
+```
\ No newline at end of file
diff --git a/specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/examples/GetShortTermRetentionPolicy.json b/specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/examples/GetShortTermRetentionPolicy.json
deleted file mode 100644
index d902e38ed53b..000000000000
--- a/specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/examples/GetShortTermRetentionPolicy.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "parameters": {
- "subscriptionId": "00000000-1111-2222-3333-444444444444",
- "resourceGroupName": "Default-SQL-SouthEastAsia",
- "serverName": "testsvr",
- "databaseName": "testdb",
- "policyName": "default",
- "api-version": "2020-02-02-preview"
- },
- "responses": {
- "200": {
- "body": {
- "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Default-SQL-SouthEastAsia/providers/Microsoft.Sql/servers/testsvr/databases/testdb/backupShortTermRetentionPolicies/default",
- "name": "default",
- "type": "Microsoft.Sql/locations/servers/databases/backupShortTermRetentionPolicies",
- "properties": {
- "retentionDays": 14,
- "diffBackupIntervalInHours": 24
- }
- }
- }
- }
-}
diff --git a/specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/examples/ListShortTermRetentionPoliciesByDatabase.json b/specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/examples/ListShortTermRetentionPoliciesByDatabase.json
deleted file mode 100644
index 6379ca16c4c9..000000000000
--- a/specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/examples/ListShortTermRetentionPoliciesByDatabase.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "parameters": {
- "subscriptionId": "00000000-1111-2222-3333-444444444444",
- "resourceGroupName": "Default-SQL-SouthEastAsia",
- "serverName": "testsvr",
- "databaseName": "testdb",
- "policyName": "default",
- "api-version": "2020-02-02-preview"
- },
- "responses": {
- "200": {
- "body": {
- "value": [
- {
- "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Default-SQL-SouthEastAsia/providers/Microsoft.Sql/servers/testsvr/databases/testdb/backupShortTermRetentionPolicies/default",
- "name": "default",
- "type": "Microsoft.Sql/locations/servers/databases/backupShortTermRetentionPolicies",
- "properties": {
- "retentionDays": 14,
- "diffBackupIntervalInHours": 24
- }
- }
- ]
- }
- }
- }
-}
diff --git a/specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/examples/UpdateShortTermRetentionPolicy.json b/specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/examples/UpdateShortTermRetentionPolicy.json
deleted file mode 100644
index 80cc04f681f9..000000000000
--- a/specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/examples/UpdateShortTermRetentionPolicy.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "parameters": {
- "subscriptionId": "00000000-1111-2222-3333-444444444444",
- "resourceGroupName": "resourceGroup",
- "serverName": "testsvr",
- "databaseName": "testdb",
- "policyName": "default",
- "api-version": "2020-02-02-preview",
- "parameters": {
- "properties": {
- "retentionDays": 14,
- "diffBackupIntervalInHours": 24
- }
- }
- },
- "responses": {
- "200": {
- "body": {
- "id": "/subscriptions/00000000-1111-2222-3333-444444444444/providers/Microsoft.Sql/resourceGroups/resourceGroup/servers/testsvr/databases/testdb/backupShortTermRetentionPolicies/default",
- "name": "default",
- "type": "Microsoft.Sql/locations/servers/databases/backupShortTermRetentionPolicies",
- "properties": {
- "retentionDays": 14,
- "diffBackupIntervalInHours": 24
- }
- }
- },
- "202": {}
- }
-}
diff --git a/specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/shortTermRetentionPolicies.json b/specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/shortTermRetentionPolicies.json
deleted file mode 100644
index 1acb5f22460f..000000000000
--- a/specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/shortTermRetentionPolicies.json
+++ /dev/null
@@ -1,468 +0,0 @@
-{
- "swagger": "2.0",
- "info": {
- "version": "2020-02-02-preview",
- "title": "SqlManagementClient",
- "description": "The Azure SQL Database management API provides a RESTful set of web APIs that interact with Azure SQL Database services to manage your databases. The API enables users to create, retrieve, update, and delete databases, servers, and other entities."
- },
- "host": "management.azure.com",
- "schemes": [
- "https"
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "paths": {
- "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/backupShortTermRetentionPolicies/{policyName}": {
- "get": {
- "tags": [
- "BackupShortTermRetentionPolicies"
- ],
- "description": "Gets a database's short term retention policy.",
- "operationId": "BackupShortTermRetentionPolicies_Get",
- "parameters": [
- {
- "$ref": "#/parameters/ResourceGroupParameter"
- },
- {
- "$ref": "#/parameters/ServerNameParameter"
- },
- {
- "$ref": "#/parameters/DatabaseNameParameter"
- },
- {
- "name": "policyName",
- "in": "path",
- "description": "The policy name. Should always be \"default\".",
- "required": true,
- "type": "string",
- "enum": [
- "default"
- ],
- "x-ms-enum": {
- "name": "ShortTermRetentionPolicyName",
- "modelAsString": true
- }
- },
- {
- "$ref": "#/parameters/SubscriptionIdParameter"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Successfully retrieved the policy.",
- "schema": {
- "$ref": "#/definitions/BackupShortTermRetentionPolicy"
- }
- },
- "default": {
- "description": "*** Error Responses: ***\n\n * 400 InvalidParameterValue - An invalid value was given to a parameter.\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found\n\n * 404 ServerNotInSubscriptionResourceGroup - Specified server does not exist in the specified resource group and subscription.\n\n * 404 ResourceNotFound - The requested resource was not found."
- }
- },
- "x-ms-examples": {
- "Get the short term retention policy for the database.": {
- "$ref": "./examples/GetShortTermRetentionPolicy.json"
- }
- }
- },
- "put": {
- "tags": [
- "BackupShortTermRetentionPolicies"
- ],
- "description": "Updates a database's short term retention policy.",
- "operationId": "BackupShortTermRetentionPolicies_CreateOrUpdate",
- "parameters": [
- {
- "$ref": "#/parameters/ResourceGroupParameter"
- },
- {
- "$ref": "#/parameters/ServerNameParameter"
- },
- {
- "$ref": "#/parameters/DatabaseNameParameter"
- },
- {
- "name": "policyName",
- "in": "path",
- "description": "The policy name. Should always be \"default\".",
- "required": true,
- "type": "string",
- "enum": [
- "default"
- ],
- "x-ms-enum": {
- "name": "ShortTermRetentionPolicyName",
- "modelAsString": true
- }
- },
- {
- "name": "parameters",
- "in": "body",
- "description": "The short term retention policy info.",
- "required": true,
- "schema": {
- "$ref": "#/definitions/BackupShortTermRetentionPolicy"
- }
- },
- {
- "$ref": "#/parameters/SubscriptionIdParameter"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Successfully updated the policy.",
- "schema": {
- "$ref": "#/definitions/BackupShortTermRetentionPolicy"
- }
- },
- "default": {
- "description": "*** Error Responses: ***\n\n * 400 InvalidParameterValue - An invalid value was given to a parameter.\n\n * 400 InvalidBackupRetentionPeriod - The retention days of {0} is not a valid configuration. Valid backup retention in days must be between {1} and {2}\n\n * 400 InvalidDiffBackupIntervalHours - The differential backup interval hours of {0} is not a valid configuration. Valid differential backup interval must be {1} hours.\n\n * 400 FeatureDisabledOnSelectedEdition - User attempted to use a feature which is disabled on current database edition.\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found\n\n * 404 ServerNotInSubscriptionResourceGroup - Specified server does not exist in the specified resource group and subscription.\n\n * 404 ResourceNotFound - The requested resource was not found.\n\n * 404 SourceDatabaseNotFound - The source database does not exist.\n\n * 404 CannotFindObject - Cannot find the object because it does not exist or you do not have permissions\n\n * 409 ConflictingDatabaseOperation - There is already some operation on the database and the current operation should wait till it is done.\n\n * 409 ConflictingSystemOperationInProgress - A system maintenance operation is in progress on the database and further operations need to wait until it is completed.\n\n * 429 SubscriptionTooManyCreateUpdateRequests - Requests beyond max requests that can be processed by available resources.\n\n * 429 SubscriptionTooManyRequests - Requests beyond max requests that can be processed by available resources.\n\n * 503 TooManyRequests - Requests beyond max requests that can be processed by available resources.\n\n * 504 RequestTimeout - Service request exceeded the allowed timeout."
- },
- "202": {
- "description": "Accepted"
- }
- },
- "x-ms-long-running-operation": true,
- "x-ms-examples": {
- "Update the short term retention policy for the database.": {
- "$ref": "./examples/UpdateShortTermRetentionPolicy.json"
- }
- }
- },
- "patch": {
- "tags": [
- "BackupShortTermRetentionPolicies"
- ],
- "description": "Updates a database's short term retention policy.",
- "operationId": "BackupShortTermRetentionPolicies_Update",
- "parameters": [
- {
- "$ref": "#/parameters/ResourceGroupParameter"
- },
- {
- "$ref": "#/parameters/ServerNameParameter"
- },
- {
- "$ref": "#/parameters/DatabaseNameParameter"
- },
- {
- "name": "policyName",
- "in": "path",
- "description": "The policy name. Should always be \"default\".",
- "required": true,
- "type": "string",
- "enum": [
- "default"
- ],
- "x-ms-enum": {
- "name": "ShortTermRetentionPolicyName",
- "modelAsString": true
- }
- },
- {
- "name": "parameters",
- "in": "body",
- "description": "The short term retention policy info.",
- "required": true,
- "schema": {
- "$ref": "#/definitions/BackupShortTermRetentionPolicy"
- }
- },
- {
- "$ref": "#/parameters/SubscriptionIdParameter"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Successfully updated the policy.",
- "schema": {
- "$ref": "#/definitions/BackupShortTermRetentionPolicy"
- }
- },
- "default": {
- "description": "*** Error Responses: ***\n\n * 400 InvalidParameterValue - An invalid value was given to a parameter.\n\n * 400 InvalidBackupRetentionPeriod - The retention days of {0} is not a valid configuration. Valid backup retention in days must be between {1} and {2}\n\n * 400 InvalidDiffBackupIntervalHours - The differential backup interval hours of {0} is not a valid configuration. Valid differential backup interval must be {1} hours.\n\n * 400 FeatureDisabledOnSelectedEdition - User attempted to use a feature which is disabled on current database edition.\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found\n\n * 404 ServerNotInSubscriptionResourceGroup - Specified server does not exist in the specified resource group and subscription.\n\n * 404 ResourceNotFound - The requested resource was not found.\n\n * 404 SourceDatabaseNotFound - The source database does not exist.\n\n * 404 CannotFindObject - Cannot find the object because it does not exist or you do not have permissions\n\n * 409 ConflictingDatabaseOperation - There is already some operation on the database and the current operation should wait till it is done.\n\n * 409 ConflictingSystemOperationInProgress - A system maintenance operation is in progress on the database and further operations need to wait until it is completed.\n\n * 429 SubscriptionTooManyCreateUpdateRequests - Requests beyond max requests that can be processed by available resources.\n\n * 429 SubscriptionTooManyRequests - Requests beyond max requests that can be processed by available resources.\n\n * 503 TooManyRequests - Requests beyond max requests that can be processed by available resources.\n\n * 504 RequestTimeout - Service request exceeded the allowed timeout."
- },
- "202": {
- "description": "Accepted"
- }
- },
- "x-ms-long-running-operation": true,
- "x-ms-examples": {
- "Update the short term retention policy for the database.": {
- "$ref": "./examples/UpdateShortTermRetentionPolicy.json"
- }
- }
- }
- },
- "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/backupShortTermRetentionPolicies": {
- "get": {
- "tags": [
- "BackupShortTermRetentionPolicies"
- ],
- "description": "Gets a database's short term retention policy.",
- "operationId": "BackupShortTermRetentionPolicies_ListByDatabase",
- "parameters": [
- {
- "$ref": "#/parameters/ResourceGroupParameter"
- },
- {
- "$ref": "#/parameters/ServerNameParameter"
- },
- {
- "$ref": "#/parameters/DatabaseNameParameter"
- },
- {
- "$ref": "#/parameters/SubscriptionIdParameter"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Successfully retrieved the policy.",
- "schema": {
- "$ref": "#/definitions/BackupShortTermRetentionPolicyListResult"
- }
- },
- "default": {
- "description": "*** Error Responses: ***\n\n * 400 InvalidParameterValue - An invalid value was given to a parameter.\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found\n\n * 404 ServerNotInSubscriptionResourceGroup - Specified server does not exist in the specified resource group and subscription.\n\n * 404 ResourceNotFound - The requested resource was not found."
- }
- },
- "x-ms-pageable": {
- "nextLinkName": "nextLink"
- },
- "x-ms-examples": {
- "Get the short term retention policy for the database.": {
- "$ref": "./examples/ListShortTermRetentionPoliciesByDatabase.json"
- }
- }
- }
- }
- },
- "definitions": {
- "BackupShortTermRetentionPolicyProperties": {
- "description": "Properties of a short term retention policy",
- "type": "object",
- "properties": {
- "retentionDays": {
- "format": "int32",
- "description": "The backup retention period in days. This is how many days Point-in-Time Restore will be supported.",
- "type": "integer"
- },
- "diffBackupIntervalInHours": {
- "format": "int32",
- "description": "The differential backup interval in hours. This is how many interval hours between each differential backup will be supported. This is only applicable to live databases but not dropped databases.",
- "enum": [
- "12",
- "24"
- ],
- "type": "integer",
- "x-ms-enum": {
- "name": "DiffBackupIntervalInHours",
- "modelAsString": true
- }
- }
- }
- },
- "Resource": {
- "description": "ARM resource.",
- "type": "object",
- "properties": {
- "id": {
- "description": "Resource ID.",
- "type": "string",
- "readOnly": true
- },
- "name": {
- "description": "Resource name.",
- "type": "string",
- "readOnly": true
- },
- "type": {
- "description": "Resource type.",
- "type": "string",
- "readOnly": true
- }
- },
- "x-ms-azure-resource": true
- },
- "ProxyResource": {
- "description": "ARM proxy resource.",
- "type": "object",
- "allOf": [
- {
- "$ref": "#/definitions/Resource"
- }
- ],
- "properties": {}
- },
- "BackupShortTermRetentionPolicy": {
- "description": "A short term retention policy.",
- "type": "object",
- "allOf": [
- {
- "$ref": "#/definitions/ProxyResource"
- }
- ],
- "properties": {
- "properties": {
- "$ref": "#/definitions/BackupShortTermRetentionPolicyProperties",
- "description": "Resource properties.",
- "x-ms-client-flatten": true
- }
- }
- },
- "BackupShortTermRetentionPolicyListResult": {
- "description": "A list of short term retention policies.",
- "type": "object",
- "properties": {
- "value": {
- "description": "Array of results.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/BackupShortTermRetentionPolicy"
- },
- "readOnly": true
- },
- "nextLink": {
- "description": "Link to retrieve next page of results.",
- "type": "string",
- "readOnly": true
- }
- }
- }
- },
- "parameters": {
- "SubscriptionIdParameter": {
- "name": "subscriptionId",
- "in": "path",
- "description": "The subscription ID that identifies an Azure subscription.",
- "required": true,
- "type": "string",
- "x-ms-parameter-location": "client"
- },
- "ApiVersionParameter": {
- "name": "api-version",
- "in": "query",
- "description": "The API version to use for the request.",
- "required": true,
- "type": "string",
- "x-ms-parameter-location": "client"
- },
- "ResourceGroupParameter": {
- "name": "resourceGroupName",
- "in": "path",
- "description": "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.",
- "required": true,
- "type": "string",
- "x-ms-parameter-location": "method"
- },
- "ServerNameParameter": {
- "name": "serverName",
- "in": "path",
- "description": "The name of the server.",
- "required": true,
- "type": "string",
- "x-ms-parameter-location": "method"
- },
- "ManagedInstanceNameParameter": {
- "name": "managedInstanceName",
- "in": "path",
- "description": "The name of the managed instance.",
- "required": true,
- "type": "string",
- "x-ms-parameter-location": "method"
- },
- "DatabaseNameParameter": {
- "name": "databaseName",
- "in": "path",
- "description": "The name of the database.",
- "required": true,
- "type": "string",
- "x-ms-parameter-location": "method"
- },
- "BlobAuditingPolicyNameParameter": {
- "name": "blobAuditingPolicyName",
- "in": "path",
- "description": "The name of the blob auditing policy.",
- "required": true,
- "type": "string",
- "enum": [
- "default"
- ],
- "x-ms-parameter-location": "method"
- },
- "SqlVirtualMachineInstanceNameParameter": {
- "name": "sqlVirtualMachineInstanceName",
- "in": "path",
- "description": "The name of the SqlVirtualMachineInstance.",
- "required": true,
- "type": "string",
- "x-ms-parameter-location": "method"
- },
- "SqlVirtualMachineContainerNameParameter": {
- "name": "sqlVirtualMachineContainerName",
- "in": "path",
- "description": "The name of the SqlVirtualMachineContainer.",
- "required": true,
- "type": "string",
- "x-ms-parameter-location": "method"
- },
- "VirtualClusterNameParameter": {
- "name": "virtualClusterName",
- "in": "path",
- "description": "The name of the virtual cluster.",
- "required": true,
- "type": "string",
- "x-ms-parameter-location": "method"
- },
- "WorkspaceNameParameter": {
- "name": "workspaceName",
- "in": "path",
- "description": "The name of the workspace.",
- "required": true,
- "type": "string",
- "x-ms-parameter-location": "method"
- },
- "SqlPoolNameParameter": {
- "name": "sqlPoolName",
- "in": "path",
- "description": "The name of the sql pool.",
- "required": true,
- "type": "string",
- "x-ms-parameter-location": "method"
- },
- "SqlDatabaseNameParameter": {
- "name": "sqlDatabaseName",
- "in": "path",
- "description": "The name of the sql database.",
- "required": true,
- "type": "string",
- "x-ms-parameter-location": "method"
- }
- },
- "securityDefinitions": {
- "azure_auth": {
- "type": "oauth2",
- "description": "Azure Active Directory OAuth2 Flow",
- "flow": "implicit",
- "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
- "scopes": {
- "user_impersonation": "impersonate your user account"
- }
- }
- }
-}
diff --git a/specification/sql/resource-manager/readme.azureresourceschema.md b/specification/sql/resource-manager/readme.azureresourceschema.md
index 8f7212bea7af..ab6398a6b4a9 100644
--- a/specification/sql/resource-manager/readme.azureresourceschema.md
+++ b/specification/sql/resource-manager/readme.azureresourceschema.md
@@ -39,7 +39,6 @@ output-folder: $(azureresourceschema-folder)/schemas
# all the input files in this apiVersion
input-file:
- - Microsoft.Sql/preview/2020-02-02-preview/shortTermRetentionPolicies.json
- Microsoft.Sql/preview/2020-02-02-preview/managedDatabases.json
- Microsoft.Sql/preview/2020-02-02-preview/ServerAzureADOnlyAuthentications.json
- Microsoft.Sql/preview/2020-02-02-preview/managedInstances.json
diff --git a/specification/sql/resource-manager/readme.md b/specification/sql/resource-manager/readme.md
index c6080b659d8d..ea265f583a6f 100644
--- a/specification/sql/resource-manager/readme.md
+++ b/specification/sql/resource-manager/readme.md
@@ -24,7 +24,7 @@ These are the global settings for the Sql API.
title: SqlManagementClient
description: 'The Azure SQL Database management API provides a RESTful set of web services that interact with Azure SQL Database services to manage your databases. The API enables you to create, retrieve, update, and delete databases.'
openapi-type: arm
-tag: package-composite-v3
+tag: package-composite-v4
```
## Composite packages
@@ -101,6 +101,7 @@ input-file:
- Microsoft.Sql/preview/2017-10-01-preview/ManagedInstanceKeys.json
- Microsoft.Sql/preview/2017-10-01-preview/ManagedInstanceEncryptionProtectors.json
- Microsoft.Sql/preview/2017-10-01-preview/recoverableManagedDatabases.json
+- Microsoft.Sql/preview/2017-10-01-preview/shortTermRetentionPolicies.json
- Microsoft.Sql/preview/2018-06-01-preview/ManagedInstanceVulnerabilityAssessments.json
- Microsoft.Sql/preview/2018-06-01-preview/ServerVulnerabilityAssessments.json
- Microsoft.Sql/preview/2018-06-01-preview/managedDatabaseSensitivityLabels.json
@@ -119,7 +120,6 @@ input-file:
- Microsoft.Sql/preview/2019-06-01-preview/syncGroups.json
- Microsoft.Sql/preview/2019-06-01-preview/syncMembers.json
- Microsoft.Sql/preview/2019-06-01-preview/FailoverManagedInstance.json
-- Microsoft.Sql/preview/2020-02-02-preview/shortTermRetentionPolicies.json
- Microsoft.Sql/preview/2020-02-02-preview/managedDatabases.json
- Microsoft.Sql/preview/2020-02-02-preview/ServerAzureADOnlyAuthentications.json
- Microsoft.Sql/preview/2020-02-02-preview/managedInstances.json
@@ -218,6 +218,7 @@ input-file:
- Microsoft.Sql/preview/2017-10-01-preview/ManagedInstanceKeys.json
- Microsoft.Sql/preview/2017-10-01-preview/ManagedInstanceEncryptionProtectors.json
- Microsoft.Sql/preview/2017-10-01-preview/recoverableManagedDatabases.json
+- Microsoft.Sql/preview/2017-10-01-preview/shortTermRetentionPolicies.json
- Microsoft.Sql/preview/2018-06-01-preview/ManagedInstanceVulnerabilityAssessments.json
- Microsoft.Sql/preview/2018-06-01-preview/ServerVulnerabilityAssessments.json
- Microsoft.Sql/preview/2018-06-01-preview/managedDatabaseSensitivityLabels.json
@@ -238,7 +239,6 @@ input-file:
- Microsoft.Sql/preview/2019-06-01-preview/syncGroups.json
- Microsoft.Sql/preview/2019-06-01-preview/syncMembers.json
- Microsoft.Sql/preview/2019-06-01-preview/FailoverManagedInstance.json
-- Microsoft.Sql/preview/2020-02-02-preview/shortTermRetentionPolicies.json
- Microsoft.Sql/preview/2020-02-02-preview/managedDatabases.json
- Microsoft.Sql/preview/2020-02-02-preview/ServerAzureADOnlyAuthentications.json
- Microsoft.Sql/preview/2020-02-02-preview/managedInstances.json
diff --git a/specification/storage/resource-manager/Microsoft.Storage/preview/2020-08-01-preview/examples/FileShareSnapshotsList.json b/specification/storage/resource-manager/Microsoft.Storage/preview/2020-08-01-preview/examples/FileShareSnapshotsList.json
new file mode 100644
index 000000000000..9410c953b651
--- /dev/null
+++ b/specification/storage/resource-manager/Microsoft.Storage/preview/2020-08-01-preview/examples/FileShareSnapshotsList.json
@@ -0,0 +1,39 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "res9290",
+ "accountName": "sto1590",
+ "$expand": "snapshots",
+ "api-version": "2020-08-01-preview",
+ "monitor": "true"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/fileServices/default/shares/share4052",
+ "name": "share4052",
+ "type": "Microsoft.Storage/storageAccounts/fileServices/shares",
+ "etag": "\"0x8D589847DAB5AF9\"",
+ "properties": {
+ "lastModifiedTime": "2020-10-26T05:47:05.0000000Z",
+ "shareQuota": 1024
+ }
+ },
+ {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/fileServices/default/shares/share4052",
+ "name": "share4052",
+ "type": "Microsoft.Storage/storageAccounts/fileServices/shares",
+ "etag": "\"0x8D589847DAB5AF9\"",
+ "properties": {
+ "lastModifiedTime": "2020-10-26T05:47:05.0000000Z",
+ "shareQuota": 1024,
+ "snapshotTime": "2020-10-26T05:48:07.0000000Z"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/storage/resource-manager/Microsoft.Storage/preview/2020-08-01-preview/examples/StorageAccountDeleteBlobInventoryPolicy.json b/specification/storage/resource-manager/Microsoft.Storage/preview/2020-08-01-preview/examples/StorageAccountDeleteBlobInventoryPolicy.json
new file mode 100644
index 000000000000..257bd12d0eb4
--- /dev/null
+++ b/specification/storage/resource-manager/Microsoft.Storage/preview/2020-08-01-preview/examples/StorageAccountDeleteBlobInventoryPolicy.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "res6977",
+ "accountName": "sto2527",
+ "blobInventoryPolicyName": "default",
+ "api-version": "2020-08-01-preview",
+ "monitor": "true"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/storage/resource-manager/Microsoft.Storage/preview/2020-08-01-preview/examples/StorageAccountGetBlobInventoryPolicy.json b/specification/storage/resource-manager/Microsoft.Storage/preview/2020-08-01-preview/examples/StorageAccountGetBlobInventoryPolicy.json
new file mode 100644
index 000000000000..24e85d9cbabe
--- /dev/null
+++ b/specification/storage/resource-manager/Microsoft.Storage/preview/2020-08-01-preview/examples/StorageAccountGetBlobInventoryPolicy.json
@@ -0,0 +1,48 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "res7687",
+ "accountName": "sto9699",
+ "blobInventoryPolicyName": "default",
+ "api-version": "2020-08-01-preview",
+ "monitor": "true"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/res7687/providers/Microsoft.Storage/storageAccounts/sto9699/inventoryPolicies/default",
+ "name": "DefaultInventoryPolicy",
+ "type": "Microsoft.Storage/storageAccounts/inventoryPolicies",
+ "properties": {
+ "policy": {
+ "enabled": true,
+ "type": "Inventory",
+ "destination": "containerName",
+ "rules": [
+ {
+ "enabled": true,
+ "name": "inventoryPolicyRule1",
+ "definition": {
+ "filters": {
+ "blobTypes": [
+ "blockBlob",
+ "appendBlob",
+ "pageBlob"
+ ],
+ "prefixMatch": [
+ "inventoryprefix1",
+ "inventoryprefix2"
+ ],
+ "includeSnapshots": true,
+ "includeBlobVersions": true
+ }
+ }
+ }
+ ]
+ },
+ "lastModifiedTime": "2020-10-05T02:53:39.0932539Z"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/storage/resource-manager/Microsoft.Storage/preview/2020-08-01-preview/examples/StorageAccountListBlobInventoryPolicy.json b/specification/storage/resource-manager/Microsoft.Storage/preview/2020-08-01-preview/examples/StorageAccountListBlobInventoryPolicy.json
new file mode 100644
index 000000000000..657a525b6b8a
--- /dev/null
+++ b/specification/storage/resource-manager/Microsoft.Storage/preview/2020-08-01-preview/examples/StorageAccountListBlobInventoryPolicy.json
@@ -0,0 +1,51 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "res7687",
+ "accountName": "sto9699",
+ "api-version": "2020-08-01-preview",
+ "monitor": "true"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/res7687/providers/Microsoft.Storage/storageAccounts/sto9699/inventoryPolicies/default",
+ "name": "DefaultInventoryPolicy",
+ "type": "Microsoft.Storage/storageAccounts/inventoryPolicies",
+ "properties": {
+ "policy": {
+ "enabled": true,
+ "type": "Inventory",
+ "destination": "containerName",
+ "rules": [
+ {
+ "enabled": true,
+ "name": "inventoryPolicyRule1",
+ "definition": {
+ "filters": {
+ "blobTypes": [
+ "blockBlob",
+ "appendBlob",
+ "pageBlob"
+ ],
+ "prefixMatch": [
+ "inventoryprefix1",
+ "inventoryprefix2"
+ ],
+ "includeSnapshots": true,
+ "includeBlobVersions": true
+ }
+ }
+ }
+ ]
+ },
+ "lastModifiedTime": "2020-10-05T02:53:39.0932539Z"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/storage/resource-manager/Microsoft.Storage/preview/2020-08-01-preview/examples/StorageAccountSetBlobInventoryPolicy.json b/specification/storage/resource-manager/Microsoft.Storage/preview/2020-08-01-preview/examples/StorageAccountSetBlobInventoryPolicy.json
new file mode 100644
index 000000000000..e97814f1b784
--- /dev/null
+++ b/specification/storage/resource-manager/Microsoft.Storage/preview/2020-08-01-preview/examples/StorageAccountSetBlobInventoryPolicy.json
@@ -0,0 +1,78 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "res7687",
+ "accountName": "sto9699",
+ "blobInventoryPolicyName": "default",
+ "api-version": "2020-08-01-preview",
+ "monitor": "true",
+ "properties": {
+ "properties": {
+ "policy": {
+ "enabled": true,
+ "type": "Inventory",
+ "destination": "containerName",
+ "rules": [
+ {
+ "enabled": true,
+ "name": "inventoryPolicyRule1",
+ "definition": {
+ "filters": {
+ "blobTypes": [
+ "blockBlob",
+ "appendBlob",
+ "pageBlob"
+ ],
+ "prefixMatch": [
+ "inventoryprefix1",
+ "inventoryprefix2"
+ ],
+ "includeSnapshots": true,
+ "includeBlobVersions": true
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/res7687/providers/Microsoft.Storage/storageAccounts/sto9699/inventoryPolicies/default",
+ "name": "DefaultInventoryPolicy",
+ "type": "Microsoft.Storage/storageAccounts/inventoryPolicies",
+ "properties": {
+ "policy": {
+ "enabled": true,
+ "type": "Inventory",
+ "destination": "containerName",
+ "rules": [
+ {
+ "enabled": true,
+ "name": "inventoryPolicyRule1",
+ "definition": {
+ "filters": {
+ "blobTypes": [
+ "blockBlob",
+ "appendBlob",
+ "pageBlob"
+ ],
+ "prefixMatch": [
+ "inventoryprefix1",
+ "inventoryprefix2"
+ ],
+ "includeSnapshots": true,
+ "includeBlobVersions": true
+ }
+ }
+ }
+ ]
+ },
+ "lastModifiedTime": "2020-10-05T02:53:39.0932539Z"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/storage/resource-manager/Microsoft.Storage/preview/2020-08-01-preview/file.json b/specification/storage/resource-manager/Microsoft.Storage/preview/2020-08-01-preview/file.json
index 1f4729ed5ef9..ad9109b8a593 100644
--- a/specification/storage/resource-manager/Microsoft.Storage/preview/2020-08-01-preview/file.json
+++ b/specification/storage/resource-manager/Microsoft.Storage/preview/2020-08-01-preview/file.json
@@ -170,6 +170,9 @@
},
"ListDeletedShares": {
"$ref": "./examples/DeletedFileSharesList.json"
+ },
+ "ListShareSnapshots": {
+ "$ref": "./examples/FileShareSnapshotsList.json"
}
},
"description": "Lists all shares.",
@@ -204,7 +207,8 @@
"required": false,
"type": "string",
"enum": [
- "deleted"
+ "deleted",
+ "snapshots"
],
"x-ms-enum": {
"name": "ListSharesExpand",
@@ -269,6 +273,20 @@
},
"description": "Properties of the file share to create."
},
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "enum": [
+ "snapshots"
+ ],
+ "x-ms-enum": {
+ "name": "PutSharesExpand",
+ "modelAsString": false
+ },
+ "description": "Optional, used to create a snapshot."
+ },
{
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
},
@@ -393,6 +411,13 @@
"modelAsString": false
},
"description": "Optional, used to expand the properties within share's properties."
+ },
+ {
+ "name": "x-ms-snapshot",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "Optional, used to retrieve properties of a snapshot."
}
],
"responses": {
@@ -436,6 +461,13 @@
},
{
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "x-ms-snapshot",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "Optional, used to delete a snapshot."
}
],
"responses": {
@@ -746,6 +778,12 @@
"format": "int64",
"readOnly": true,
"description": "The approximate size of the data stored on the share. Note that this value may not include all recently created or recently resized files."
+ },
+ "snapshotTime": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true,
+ "description": "Creation time of share snapshot returned in the response of list shares with expand param \"snapshots\"."
}
},
"description": "The properties of the file share."
diff --git a/specification/storage/resource-manager/Microsoft.Storage/preview/2020-08-01-preview/storage.json b/specification/storage/resource-manager/Microsoft.Storage/preview/2020-08-01-preview/storage.json
index 82cb21fda43a..9b4b10b75728 100644
--- a/specification/storage/resource-manager/Microsoft.Storage/preview/2020-08-01-preview/storage.json
+++ b/specification/storage/resource-manager/Microsoft.Storage/preview/2020-08-01-preview/storage.json
@@ -903,6 +903,191 @@
}
}
},
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/inventoryPolicies/{blobInventoryPolicyName}": {
+ "get": {
+ "tags": [
+ "BlobInventoryPolicies"
+ ],
+ "operationId": "BlobInventoryPolicies_Get",
+ "description": "Gets the blob inventory policy associated with the specified storage account.",
+ "x-ms-examples": {
+ "StorageAccountGetBlobInventoryPolicy": {
+ "$ref": "./examples/StorageAccountGetBlobInventoryPolicy.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/StorageAccountName"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/BlobInventoryPolicyName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK -- Get the blob inventory policy successfully.",
+ "schema": {
+ "$ref": "#/definitions/BlobInventoryPolicy"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "BlobInventoryPolicies"
+ ],
+ "operationId": "BlobInventoryPolicies_CreateOrUpdate",
+ "description": "Sets the blob inventory policy to the specified storage account.",
+ "x-ms-examples": {
+ "StorageAccountSetBlobInventoryPolicy": {
+ "$ref": "./examples/StorageAccountSetBlobInventoryPolicy.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/StorageAccountName"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/BlobInventoryPolicyName"
+ },
+ {
+ "name": "properties",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/BlobInventoryPolicy"
+ },
+ "description": "The blob inventory policy set to a storage account."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK -- Put blob inventory policy successfully.",
+ "schema": {
+ "$ref": "#/definitions/BlobInventoryPolicy"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "BlobInventoryPolicies"
+ ],
+ "operationId": "BlobInventoryPolicies_Delete",
+ "description": "Deletes the blob inventory policy associated with the specified storage account.",
+ "x-ms-examples": {
+ "StorageAccountDeleteBlobInventoryPolicy": {
+ "$ref": "./examples/StorageAccountDeleteBlobInventoryPolicy.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/StorageAccountName"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/BlobInventoryPolicyName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK -- Delete the blob inventory policy successfully."
+ },
+ "204": {
+ "description": "No Content -- The blob inventory policy does not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/inventoryPolicies": {
+ "get": {
+ "tags": [
+ "BlobInventoryPolicies"
+ ],
+ "operationId": "BlobInventoryPolicies_List",
+ "description": "Gets the blob inventory policy associated with the specified storage account.",
+ "x-ms-examples": {
+ "StorageAccountGetBlobInventoryPolicy": {
+ "$ref": "./examples/StorageAccountListBlobInventoryPolicy.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/StorageAccountName"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK -- Get the blob inventory policies successfully.",
+ "schema": {
+ "$ref": "#/definitions/ListBlobInventoryPolicy"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ }
+ }
+ },
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/privateEndpointConnections": {
"get": {
"tags": [
@@ -3798,6 +3983,156 @@
},
"description": "Filters limit replication to a subset of blobs within the storage account. A logical OR is performed on values in the filter. If multiple filters are defined, a logical AND is performed on all filters."
},
+ "ListBlobInventoryPolicy": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/BlobInventoryPolicy"
+ },
+ "description": "List of blob inventory policies.",
+ "readOnly": true
+ }
+ },
+ "description": "List of blob inventory policies returned."
+ },
+ "BlobInventoryPolicy": {
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/BlobInventoryPolicyProperties",
+ "x-ms-client-flatten": true,
+ "description": "Returns the storage account blob inventory policy rules."
+ },
+ "systemData": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/systemData"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/Resource"
+ }
+ ],
+ "description": "The storage account blob inventory policy."
+ },
+ "BlobInventoryPolicyProperties": {
+ "properties": {
+ "lastModifiedTime": {
+ "readOnly": true,
+ "type": "string",
+ "format": "date-time",
+ "description": "Returns the last modified date and time of the blob inventory policy."
+ },
+ "policy": {
+ "$ref": "#/definitions/BlobInventoryPolicySchema",
+ "description": "The storage account blob inventory policy object. It is composed of policy rules."
+ }
+ },
+ "required": [
+ "policy"
+ ],
+ "description": "The storage account blob inventory policy properties."
+ },
+ "BlobInventoryPolicySchema": {
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "description": "Policy is enabled if set to true."
+ },
+ "destination": {
+ "type": "string",
+ "description": "Container name where blob inventory files are stored. Must be pre-created."
+ },
+ "type": {
+ "type": "string",
+ "description": "The valid value is Inventory",
+ "enum": [
+ "Inventory"
+ ],
+ "x-ms-enum": {
+ "name": "InventoryRuleType",
+ "modelAsString": true
+ }
+ },
+ "rules": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/BlobInventoryPolicyRule"
+ },
+ "description": "The storage account blob inventory policy rules. The rule is applied when it is enabled."
+ }
+ },
+ "required": [
+ "enabled",
+ "destination",
+ "type",
+ "rules"
+ ],
+ "description": "The storage account blob inventory policy rules."
+ },
+ "BlobInventoryPolicyRule": {
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "description": "Rule is enabled when set to true."
+ },
+ "name": {
+ "type": "string",
+ "description": "A rule name can contain any combination of alpha numeric characters. Rule name is case-sensitive. It must be unique within a policy."
+ },
+ "definition": {
+ "$ref": "#/definitions/BlobInventoryPolicyDefinition",
+ "description": "An object that defines the blob inventory policy rule."
+ }
+ },
+ "required": [
+ "name",
+ "enabled",
+ "definition"
+ ],
+ "description": "An object that wraps the blob inventory rule. Each rule is uniquely defined by name."
+ },
+ "BlobInventoryPolicyDefinition": {
+ "properties": {
+ "filters": {
+ "$ref": "#/definitions/BlobInventoryPolicyFilter",
+ "description": "An object that defines the filter set."
+ }
+ },
+ "required": [
+ "filters"
+ ],
+ "description": "An object that defines the blob inventory rule. Each definition consists of a set of filters."
+ },
+ "BlobInventoryPolicyFilter": {
+ "properties": {
+ "prefixMatch": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "An array of strings for blob prefixes to be matched."
+ },
+ "blobTypes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "An array of predefined enum values. Valid values include blockBlob, appendBlob, pageBlob. Hns accounts does not support pageBlobs."
+ },
+ "includeBlobVersions": {
+ "type": "boolean",
+ "description": "Includes blob versions in blob inventory when value set to true."
+ },
+ "includeSnapshots": {
+ "type": "boolean",
+ "description": "Includes blob snapshots in blob inventory when value set to true."
+ }
+ },
+ "required": [
+ "blobTypes"
+ ],
+ "description": "An object that defines the blob inventory rule filter conditions."
+ },
"ErrorResponseBody": {
"properties": {
"code": {
@@ -3886,6 +4221,21 @@
"description": "The ID of object replication policy or 'default' if the policy ID is unknown.",
"minLength": 1,
"x-ms-parameter-location": "method"
+ },
+ "BlobInventoryPolicyName": {
+ "name": "blobInventoryPolicyName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the storage account blob inventory policy. It should always be 'default'",
+ "enum": [
+ "default"
+ ],
+ "x-ms-enum": {
+ "name": "BlobInventoryPolicyName",
+ "modelAsString": true
+ },
+ "x-ms-parameter-location": "method"
}
},
"securityDefinitions": {
diff --git a/specification/storage/resource-manager/readme.csharp.md b/specification/storage/resource-manager/readme.csharp.md
index 5e96bc4de262..4e72310df959 100644
--- a/specification/storage/resource-manager/readme.csharp.md
+++ b/specification/storage/resource-manager/readme.csharp.md
@@ -70,3 +70,14 @@ output-folder: $(csharp-sdks-folder)/$(csharp-profile)/storage/Microsoft.Azure.M
batch:
- tag: profile-hybrid-2019-03-01
```
+
+### Profile: hybrid_2020_09_01
+
+These settings apply only when `--csharp-profile=hybrid_2020_09_01` is specified on the command line.
+
+```yaml $(csharp-profile)=='hybrid_2020_09_01'
+namespace: Microsoft.Azure.Management.Profiles.$(csharp-profile).Storage
+output-folder: $(csharp-sdks-folder)/$(csharp-profile)/storage/Microsoft.Azure.Management.Storage/src/Generated
+batch:
+ - tag: profile-hybrid-2020-09-01
+```
diff --git a/specification/storage/resource-manager/readme.go.md b/specification/storage/resource-manager/readme.go.md
index 96bcfeb1d9fe..5fcce3bf8143 100644
--- a/specification/storage/resource-manager/readme.go.md
+++ b/specification/storage/resource-manager/readme.go.md
@@ -35,7 +35,7 @@ These settings apply only when `--tag=package-2020-08-preview --go` is specified
Please also specify `--go-sdk-folder=`.
``` yaml $(tag) == 'package-2020-08-preview' && $(go)
-output-folder: $(go-sdk-folder)/services/preview/$(namespace)/mgmt/2020-08-preview/$(namespace)
+output-folder: $(go-sdk-folder)/services/preview/$(namespace)/mgmt/2020-08-01-preview/$(namespace)
```
### Tag: package-2019-06 and go
diff --git a/specification/storage/resource-manager/readme.md b/specification/storage/resource-manager/readme.md
index eb7b621c27fa..6bc239b38cda 100644
--- a/specification/storage/resource-manager/readme.md
+++ b/specification/storage/resource-manager/readme.md
@@ -279,6 +279,15 @@ input-file:
- Microsoft.Storage/preview/2015-05-01-preview/storage.json
```
+### Tag: profile-hybrid-2020-09-01
+
+These settings apply only when `--tag=profile-hybrid-2020-09-01` is specified on the command line.
+Creating this tag to pick proper resources from the hybrid profile.
+
+``` yaml $(tag) == 'profile-hybrid-2020-09-01'
+input-file:
+- Microsoft.Storage/stable/2019-06-01/storage.json
+```
---
# Code Generation
diff --git a/specification/storage/resource-manager/readme.typescript.md b/specification/storage/resource-manager/readme.typescript.md
index 0e532d33b959..00eb3aad2f58 100644
--- a/specification/storage/resource-manager/readme.typescript.md
+++ b/specification/storage/resource-manager/readme.typescript.md
@@ -32,3 +32,18 @@ typescript:
batch:
- tag: profile-hybrid-2019-03-01
```
+
+### Profile: profile-hybrid-2020-09-01
+
+These settings apply only when `--profile=profile-hybrid-2020-09-01` is specified on the command line.
+
+``` yaml $(profile)=='profile-hybrid-2020-09-01'
+typescript:
+ package-name: "@azure/arm-storage-profile-2020-09-01-hybrid"
+ output-folder: "$(typescript-sdks-folder)/sdk/storage/arm-storage-profile-2020-09-01-hybrid"
+ clear-output-folder: true
+ azure-arm: true
+ generate-metadata: true
+ batch:
+ - tag: profile-hybrid-2020-09-01
+```
diff --git a/specification/streamanalytics/resource-manager/readme.az.md b/specification/streamanalytics/resource-manager/readme.az.md
new file mode 100644
index 000000000000..34bd207b4dd1
--- /dev/null
+++ b/specification/streamanalytics/resource-manager/readme.az.md
@@ -0,0 +1,12 @@
+## AZ
+
+These settings apply only when `--az` is specified on the command line.
+
+``` yaml $(az)
+az:
+ extensions: streamanalytics
+ package-name: azure-mgmt-streamanalytics
+ namespace: azure.mgmt.streamanalytics
+az-output-folder: $(azure-cli-extension-folder)/src/streamanalytics
+python-sdk-output-folder: "$(az-output-folder)/azext_streamanalytics/vendored_sdks/streamanalytics"
+```
diff --git a/specification/streamanalytics/resource-manager/readme.cli.md b/specification/streamanalytics/resource-manager/readme.cli.md
new file mode 100644
index 000000000000..4b69b6bf3ba9
--- /dev/null
+++ b/specification/streamanalytics/resource-manager/readme.cli.md
@@ -0,0 +1,10 @@
+## CLI
+
+These settings apply only when `--cli` is specified on the command line.
+
+``` yaml $(cli)
+cli:
+ cli-name: streamanalytics
+ package-name: azure-mgmt-streamanalytics
+ namespace: azure.mgmt.streamanalytics
+```
diff --git a/specification/streamanalytics/resource-manager/readme.python.md b/specification/streamanalytics/resource-manager/readme.python.md
index f13ae0206aff..a74b0b5aaff2 100644
--- a/specification/streamanalytics/resource-manager/readme.python.md
+++ b/specification/streamanalytics/resource-manager/readme.python.md
@@ -24,7 +24,6 @@ azure-arm: true
license-header: MICROSOFT_MIT_NO_VERSION
package-name: azure-mgmt-streamanalytics
no-namespace-folders: true
-package-version: 0.1.0
```
``` yaml $(python-mode) == 'update'
@@ -36,8 +35,10 @@ output-folder: $(python-sdks-folder)/streamanalytics/azure-mgmt-streamanalytics/
```
``` yaml $(python-mode) == 'create'
python:
+ package-version: 0.1.0
basic-setup-py: true
output-folder: $(python-sdks-folder)/streamanalytics/azure-mgmt-streamanalytics
+package-version: 0.1.0
basic-setup-py: true
output-folder: $(python-sdks-folder)/streamanalytics/azure-mgmt-streamanalytics
```
diff --git a/specification/subscription/resource-manager/readme.csharp.md b/specification/subscription/resource-manager/readme.csharp.md
index f54aada53323..81a16f8d2f8d 100644
--- a/specification/subscription/resource-manager/readme.csharp.md
+++ b/specification/subscription/resource-manager/readme.csharp.md
@@ -52,6 +52,17 @@ These settings apply only when `--csharp-profile=hybrid_2019_03_01` is specified
``` yaml $(csharp-profile)=='hybrid_2019_03_01'
namespace: Microsoft.Azure.Management.Profiles.$(profile).Subscription
output-folder: $(csharp-sdks-folder)/$(profile)/Subscription/Management.Subscription/Generated
+batch:
+ - tag: package-2016-06-01
+ ```
+
+ ### Profile: hybrid_2020_09_01
+
+These settings apply only when `--csharp-profile=hybrid_2020_09_01` is specified on the command line.
+
+``` yaml $(csharp-profile)=='hybrid_2020_09_01'
+namespace: Microsoft.Azure.Management.Profiles.$(profile).Subscription
+output-folder: $(csharp-sdks-folder)/$(profile)/Subscription/Management.Subscription/Generated
batch:
- tag: package-2016-06-01
```
\ No newline at end of file
diff --git a/specification/synapse/common/v1/privateEndpointConnection.json b/specification/synapse/common/v1/privateEndpointConnection.json
new file mode 100644
index 000000000000..4bde9f896361
--- /dev/null
+++ b/specification/synapse/common/v1/privateEndpointConnection.json
@@ -0,0 +1,437 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "v1",
+ "title": "PrivateEndpointConnection types"
+ },
+ "paths": {},
+ "definitions": {
+ "PrivateEndpointConnectionList": {
+ "description": "A list of private endpoint connections",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Array of results.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ },
+ "readOnly": true
+ },
+ "nextLink": {
+ "description": "Link to retrieve next page of results.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "PrivateEndpointConnection": {
+ "description": "A private endpoint connection",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "../../../common-types/resource-management/v1/types.json#/definitions/ProxyResource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/PrivateEndpointConnectionProperties",
+ "description": "Private endpoint connection properties.",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "PrivateEndpointConnectionProperties": {
+ "description": "Properties of a private endpoint connection.",
+ "type": "object",
+ "properties": {
+ "privateEndpoint": {
+ "$ref": "#/definitions/PrivateEndpoint",
+ "description": "The private endpoint which the connection belongs to."
+ },
+ "privateLinkServiceConnectionState": {
+ "$ref": "#/definitions/PrivateLinkServiceConnectionState",
+ "description": "Connection state of the private endpoint connection."
+ },
+ "provisioningState": {
+ "description": "Provisioning state of the private endpoint connection.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "PrivateEndpoint": {
+ "description": "Private endpoint details",
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "Resource id of the private endpoint.",
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "x-ms-azure-resource": true
+ },
+ "PrivateLinkServiceConnectionState": {
+ "description": "Connection state details of the private endpoint",
+ "type": "object",
+ "properties": {
+ "status": {
+ "description": "The private link service connection status.",
+ "type": "string"
+ },
+ "description": {
+ "description": "The private link service connection description.",
+ "type": "string"
+ },
+ "actionsRequired": {
+ "description": "The actions required for private link service connection.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "ConnectionDetail": {
+ "properties": {
+ "groupId": {
+ "type": "string"
+ },
+ "memberName": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "privateIpAddress": {
+ "type": "string"
+ },
+ "linkIdentifier": {
+ "type": "string"
+ }
+ }
+ },
+ "PrivateLinkServiceConnection": {
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "groupIds": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "requestMessage": {
+ "type": "string"
+ }
+ }
+ },
+ "RemotePrivateEndpointConnection": {
+ "properties": {
+ "id": {
+ "type": "string"
+ }
+ }
+ },
+ "PrivateLinkServiceProxyBase": {
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "remotePrivateLinkServiceConnectionState": {
+ "type": "object",
+ "$ref": "#/definitions/PrivateLinkServiceConnectionState"
+ },
+ "remotePrivateEndpointConnection": {
+ "type": "string",
+ "$ref": "#/definitions/RemotePrivateEndpointConnection"
+ }
+ }
+ },
+ "GroupConnectivityInformationBase": {
+ "properties": {
+ "groupId": {
+ "type": "string"
+ },
+ "memberName": {
+ "type": "string"
+ },
+ "customerVisibleFqdns": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "internalFqdn": {
+ "type": "string"
+ },
+ "redirectMapId": {
+ "type": "string"
+ },
+ "privateLinkServiceArmRegion": {
+ "type": "string"
+ }
+ }
+ },
+ "GroupConnectivityInformation": {
+ "description": "Group connectivity information",
+ "allOf": [
+ {
+ "$ref": "#/definitions/GroupConnectivityInformationBase"
+ }
+ ]
+ },
+ "GroupConnectivityInformationForPrivateLinkHub": {
+ "description": "Group connectivity information for PrivateLinkHub",
+ "allOf": [
+ {
+ "$ref": "#/definitions/GroupConnectivityInformationBase"
+ }
+ ]
+ },
+ "PrivateLinkServiceProxy": {
+ "description": "PrivateLink service proxy",
+ "allOf": [
+ {
+ "$ref": "#/definitions/PrivateLinkServiceProxyBase"
+ },
+ {
+ "properties": {
+ "groupConnectivityInformation": {
+ "description": "Group connectivity information",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/GroupConnectivityInformation"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "PrivateLinkServiceProxyForPrivateLinkHub": {
+ "description": "PrivateLink service proxy for PrivateLinkHub",
+ "allOf": [
+ {
+ "$ref": "#/definitions/PrivateLinkServiceProxyBase"
+ },
+ {
+ "properties": {
+ "id": {
+ "description": "PrivateLinkServiceProxyForPrivateLinkHub ID",
+ "type": "string"
+ },
+ "groupConnectivityInformation": {
+ "description": "Group connectivity information",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/GroupConnectivityInformationForPrivateLinkHub"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "RemotePrivateEndpointBase": {
+ "properties": {
+ "id": {
+ "description": "Remote Private endpoint ID",
+ "type": "string"
+ },
+ "location": {
+ "description": "Location (region) or remote private endpoint",
+ "type": "string"
+ },
+ "immutableSubscriptionId": {
+ "description": "Immutable subscription ID",
+ "type": "string"
+ },
+ "immutableResourceId": {
+ "description": "Immutable resource ID",
+ "type": "string"
+ },
+ "manualPrivateLinkServiceConnections": {
+ "description": "Manual private link service connections",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PrivateLinkServiceConnection"
+ }
+ },
+ "privateLinkServiceConnections": {
+ "description": "Private link service connections",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PrivateLinkServiceConnection"
+ }
+ },
+ "connectionDetails": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ConnectionDetail"
+ }
+ }
+ }
+ },
+ "RemotePrivateEndpoint": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/RemotePrivateEndpointBase"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "privateLinkServiceProxies": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PrivateLinkServiceProxy"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "RemotePrivateEndpointForPrivateLinkHub": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/RemotePrivateEndpointBase"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "privateLinkServiceProxies": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PrivateLinkServiceProxyForPrivateLinkHub"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "PrivateEndpointConnectionForPrivateLinkHubBasic": {
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "properties": {
+ "type": "object",
+ "$ref": "#/definitions/PrivateEndpointConnectionProperties"
+ }
+ }
+ },
+ "PrivateEndpointConnectionForPrivateLinkHub": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/PrivateEndpointConnectionForPrivateLinkHubBasic"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string"
+ }
+ }
+ }
+ ]
+ },
+ "PrivateEndpointConnectionForPrivateLinkHub_ResourceCollectionResponse": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PrivateEndpointConnectionForPrivateLinkHub"
+ }
+ },
+ "nextLink": {
+ "type": "string"
+ }
+ }
+ },
+ "PrivateEndpointConnectionBasic": {
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "properties": {
+ "type": "object",
+ "$ref": "#/definitions/PrivateEndpointConnectionProperties"
+ }
+ }
+ },
+ "PrivateEndpointConnectionProxyBase": {
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string"
+ },
+ "location": {
+ "type": "string"
+ },
+ "remotePrivateEndpoint": {
+ "type": "object",
+ "$ref": "#/definitions/RemotePrivateEndpoint"
+ }
+ }
+ },
+ "PrivateEndpointConnectionProxy": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/PrivateEndpointConnectionProxyBase"
+ }
+ ]
+ },
+ "PrivateEndpointConnectionForPrivateLinkHubProxyBase": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string"
+ },
+ "location": {
+ "type": "string"
+ },
+ "remotePrivateEndpoint": {
+ "type": "object",
+ "$ref": "#/definitions/RemotePrivateEndpointForPrivateLinkHub"
+ }
+ }
+ },
+ "PrivateEndpointConnectionForPrivateLinkHubProxy": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/PrivateEndpointConnectionForPrivateLinkHubProxyBase"
+ }
+ ]
+ }
+ },
+ "parameters": {
+ "PrivateEndpointConnectionNameParameter": {
+ "name": "privateEndpointConnectionName",
+ "in": "path",
+ "description": "Name of the PrivateEndpointConnection",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "PrivateEndpointConnectionProxyNameParameter": {
+ "name": "privateEndpointConnectionProxyName",
+ "in": "path",
+ "description": "The name of the PrivateEndpointConnectionProxy",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/synapse/common/v1/types.json b/specification/synapse/common/v1/types.json
index 6aaf16bf83f5..fd2acd86d045 100644
--- a/specification/synapse/common/v1/types.json
+++ b/specification/synapse/common/v1/types.json
@@ -17,6 +17,46 @@
}
}
},
+ "ErrorDetail": {
+ "description": "Error details",
+ "type": "object",
+ "properties": {
+ "message": {
+ "description": "Error message",
+ "type": "string"
+ },
+ "code": {
+ "description": "Error code",
+ "type": "string"
+ },
+ "target": {
+ "description": "Error target",
+ "type": "string"
+ }
+ }
+ },
+ "WorkspaceSubResource": {
+ "allOf": [
+ {
+ "$ref": "../../../common-types/resource-management/v1/types.json#/definitions/Resource"
+ },
+ {
+ "properties": {
+ "location": {
+ "description": "Location (region) of workspace",
+ "type": "string"
+ },
+ "tags": {
+ "type": "object",
+ "description": "Resource tags",
+ "additionalProperties": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ ]
+ },
"Sku": {
"description": "An ARM Resource SKU.",
"required": [
@@ -84,6 +124,36 @@
}
},
"x-ms-azure-resource": true
+ },
+ "ResourcePropertiesBase": {
+ "properties": {
+ "provisioningState": {
+ "description": "Provisioning state of the resource",
+ "type": "string"
+ }
+ }
+ },
+ "AsyncOperationState": {
+ "type": "string",
+ "enum": [
+ "None",
+ "InProgress",
+ "Succeeded",
+ "Failed",
+ "Canceled"
+ ]
+ },
+ "OperationResource_Common": {
+ "properties": {
+ "status": {
+ "type": "string",
+ "$ref": "#/definitions/AsyncOperationState"
+ },
+ "error": {
+ "type": "object",
+ "$ref": "#/definitions/ErrorDetail"
+ }
+ }
}
},
"parameters": {
@@ -95,6 +165,14 @@
"type": "string",
"x-ms-parameter-location": "method"
},
+ "PrivateLinkHubNameParameter": {
+ "name": "privateLinkHubName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of the privateLinkHub",
+ "x-ms-parameter-location": "method"
+ },
"SqlPoolNameParameter": {
"name": "sqlPoolName",
"in": "path",
@@ -110,6 +188,14 @@
"required": true,
"type": "string",
"x-ms-parameter-location": "method"
+ },
+ "KeyNameParameter": {
+ "name": "keyName",
+ "in": "path",
+ "description": "The name of a workspace key.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
}
}
}
diff --git a/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/artifacts.json b/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/artifacts.json
index d854487114f7..c0fecaa3a02b 100644
--- a/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/artifacts.json
+++ b/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/artifacts.json
@@ -203,6 +203,52 @@
}
}
},
+ "/linkedservices/{linkedServiceName}/rename": {
+ "post": {
+ "tags": [
+ "linkedServices"
+ ],
+ "operationId": "LinkedServices_Rename",
+ "x-ms-examples": {
+ "LinkedServices_Rename": {
+ "$ref": "./examples/LinkedServices_Rename.json"
+ }
+ },
+ "description": "Renames a linked service.",
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "#/parameters/linkedServiceName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "request",
+ "description": "proposed new name.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ArtifactRenameRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK."
+ },
+ "202": {
+ "description": "Accepted."
+ },
+ "default": {
+ "description": "An error response received from the Azure Synapse service.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
"/datasets": {
"get": {
"tags": [
@@ -380,6 +426,52 @@
}
}
},
+ "/datasets/{datasetName}/rename": {
+ "post": {
+ "tags": [
+ "datasets"
+ ],
+ "operationId": "Datasets_Rename",
+ "x-ms-examples": {
+ "Datasets_Rename": {
+ "$ref": "./examples/Datasets_Rename.json"
+ }
+ },
+ "description": "Renames a dataset.",
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "#/parameters/datasetName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "request",
+ "description": "proposed new name.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ArtifactRenameRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK."
+ },
+ "202": {
+ "description": "Accepted."
+ },
+ "default": {
+ "description": "An error response received from the Azure Synapse service.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
"/pipelines": {
"get": {
"tags": [
@@ -557,6 +649,52 @@
}
}
},
+ "/pipelines/{pipelineName}/rename": {
+ "post": {
+ "tags": [
+ "pipelines"
+ ],
+ "operationId": "Pipelines_Rename",
+ "x-ms-examples": {
+ "Pipelines_Rename": {
+ "$ref": "./examples/Pipelines_Rename.json"
+ }
+ },
+ "description": "Renames a pipeline.",
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "#/parameters/pipelineName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "request",
+ "description": "proposed new name.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ArtifactRenameRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK."
+ },
+ "202": {
+ "description": "Accepted."
+ },
+ "default": {
+ "description": "An error response received from the Azure Synapse service.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
"/pipelines/{pipelineName}/createRun": {
"post": {
"tags": [
@@ -1405,6 +1543,52 @@
}
}
},
+ "/dataflows/{dataFlowName}/rename": {
+ "post": {
+ "tags": [
+ "dataflows"
+ ],
+ "operationId": "DataFlows_Rename",
+ "x-ms-examples": {
+ "DataFlows_Rename": {
+ "$ref": "./examples/DataFlows_Rename.json"
+ }
+ },
+ "description": "Renames a dataflow.",
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "#/parameters/dataFlowName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "request",
+ "description": "proposed new name.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ArtifactRenameRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK."
+ },
+ "202": {
+ "description": "Accepted."
+ },
+ "default": {
+ "description": "An error response received from the Azure Synapse service.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
"/dataflows": {
"get": {
"tags": [
@@ -1831,6 +2015,52 @@
}
}
},
+ "/sqlScripts/{sqlScriptName}/rename": {
+ "post": {
+ "tags": [
+ "sqlScripts"
+ ],
+ "operationId": "SqlScripts_Rename",
+ "x-ms-examples": {
+ "SqlScripts_Rename": {
+ "$ref": "./examples/SqlScripts_Rename.json"
+ }
+ },
+ "description": "Renames a sqlScript.",
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "#/parameters/sqlScriptName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "request",
+ "description": "proposed new name.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ArtifactRenameRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK."
+ },
+ "202": {
+ "description": "Accepted."
+ },
+ "default": {
+ "description": "An error response received from the Azure Synapse service.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
"/sparkJobDefinitions": {
"get": {
"tags": [
@@ -2046,6 +2276,52 @@
}
}
},
+ "/sparkJobDefinitions/{sparkJobDefinitionName}/rename": {
+ "post": {
+ "tags": [
+ "sparkJobDefinitions"
+ ],
+ "operationId": "SparkJobDefinitions_Rename",
+ "x-ms-examples": {
+ "SparkJobDefinitions_Rename": {
+ "$ref": "./examples/SparkJobDefinitions_Rename.json"
+ }
+ },
+ "description": "Renames a sparkJobDefinition.",
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "#/parameters/sparkJobDefinitionName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "request",
+ "description": "proposed new name.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ArtifactRenameRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK."
+ },
+ "202": {
+ "description": "Accepted."
+ },
+ "default": {
+ "description": "An error response received from the Azure Synapse service.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
"/debugSparkJobDefinition": {
"post": {
"tags": [
@@ -2310,6 +2586,52 @@
}
}
}
+ },
+ "/notebooks/{notebookName}/rename": {
+ "post": {
+ "tags": [
+ "notebooks"
+ ],
+ "operationId": "Notebooks_Rename",
+ "x-ms-examples": {
+ "Notebooks_Rename": {
+ "$ref": "./examples/Notebooks_Rename.json"
+ }
+ },
+ "description": "Renames a notebook.",
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "#/parameters/NotebookName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "request",
+ "description": "proposed new name.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ArtifactRenameRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK."
+ },
+ "202": {
+ "description": "Accepted."
+ },
+ "default": {
+ "description": "An error response received from the Azure Synapse service.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
}
},
"definitions": {
@@ -3285,18 +3607,33 @@
},
"SqlScriptResource": {
"description": "Sql Script resource type.",
- "allOf": [
- {
- "$ref": "#/definitions/SubResource"
- }
- ],
"properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Fully qualified resource Id for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of the resource"
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The type of the resource. Ex- Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts."
+ },
+ "etag": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource Etag."
+ },
"properties": {
"$ref": "./entityTypes/SqlScript.json#/definitions/SqlScript",
"description": "Properties of sql script."
}
},
"required": [
+ "name",
"properties"
]
},
@@ -3359,18 +3696,33 @@
},
"NotebookResource": {
"description": "Notebook resource type.",
- "allOf": [
- {
- "$ref": "#/definitions/SubResource"
- }
- ],
"properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Fully qualified resource Id for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of the resource"
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The type of the resource. Ex- Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts."
+ },
+ "etag": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource Etag."
+ },
"properties": {
"$ref": "./entityTypes/Notebook.json#/definitions/Notebook",
"description": "Properties of Notebook."
}
},
"required": [
+ "name",
"properties"
]
},
@@ -4177,6 +4529,19 @@
"type",
"referenceName"
]
+ },
+ "ArtifactRenameRequest": {
+ "description": "Request body structure for rename artifact.",
+ "type": "object",
+ "properties": {
+ "newName": {
+ "description": "New name of the artifact.",
+ "type": "string",
+ "pattern": "^[A-Za-z0-9_][^<>*#.%&:\\\\+?/]*$",
+ "minLength": 1,
+ "maxLength": 260
+ }
+ }
}
},
"parameters": {
diff --git a/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/entityTypes/Notebook.json b/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/entityTypes/Notebook.json
index 9035e958e8b9..a5eac7aa387d 100644
--- a/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/entityTypes/Notebook.json
+++ b/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/entityTypes/Notebook.json
@@ -16,11 +16,13 @@
},
"bigDataPool": {
"description": "Big data pool reference.",
- "$ref": "#/definitions/BigDataPoolReference"
+ "$ref": "#/definitions/BigDataPoolReference",
+ "x-nullable": true
},
"sessionProperties": {
"description": "Session properties.",
- "$ref": "#/definitions/NotebookSessionProperties"
+ "$ref": "#/definitions/NotebookSessionProperties",
+ "x-nullable": true
},
"metadata": {
"description": "Notebook root-level metadata.",
diff --git a/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/DataFlows_Rename.json b/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/DataFlows_Rename.json
new file mode 100644
index 000000000000..9083cb21746d
--- /dev/null
+++ b/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/DataFlows_Rename.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "endpoint": "exampleWorkspace.dev.azuresynapse.net",
+ "dataFlowName": "exampleDataFlow",
+ "api-version": "2019-06-01-preview",
+ "request": {
+ "newName": "newdataflow"
+ }
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/Datasets_Rename.json b/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/Datasets_Rename.json
new file mode 100644
index 000000000000..3c6ff2ca67df
--- /dev/null
+++ b/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/Datasets_Rename.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "endpoint": "exampleWorkspace.dev.azuresynapse.net",
+ "datasetName": "exampleDataset",
+ "api-version": "2019-06-01-preview",
+ "request": {
+ "newName": "newdataset"
+ }
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/LinkedServices_Rename.json b/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/LinkedServices_Rename.json
new file mode 100644
index 000000000000..3b2eb9cdcc12
--- /dev/null
+++ b/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/LinkedServices_Rename.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "endpoint": "exampleWorkspace.dev.azuresynapse.net",
+ "linkedServiceName": "exampleLinkedService",
+ "api-version": "2019-06-01-preview",
+ "request": {
+ "newName": "newLinkedService"
+ }
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/Notebooks_Create.json b/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/Notebooks_Create.json
index fbfd87d5af67..64e79fd0d946 100644
--- a/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/Notebooks_Create.json
+++ b/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/Notebooks_Create.json
@@ -4,6 +4,7 @@
"notebookName": "exampleNotebook",
"ifMatch": null,
"Notebook": {
+ "name": "exampleNotebook",
"properties": {
"description": "A sample Notebook",
"nbformat": 4,
diff --git a/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/Notebooks_Rename.json b/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/Notebooks_Rename.json
new file mode 100644
index 000000000000..02960098ab3e
--- /dev/null
+++ b/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/Notebooks_Rename.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "endpoint": "exampleWorkspace.dev.azuresynapse.net",
+ "notebookName": "exampleNotebook",
+ "api-version": "2019-06-01-preview",
+ "request": {
+ "newName": "newNotebook"
+ }
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/Notebooks_Update.json b/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/Notebooks_Update.json
index 2bb3761e3bc4..1f714d7a6ae5 100644
--- a/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/Notebooks_Update.json
+++ b/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/Notebooks_Update.json
@@ -4,6 +4,7 @@
"notebookName": "exampleNotebook",
"ifMatch": null,
"Notebook": {
+ "name": "exampleNotebook",
"properties": {
"description": "Modified description",
"nbformat": 4,
diff --git a/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/Pipelines_Rename.json b/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/Pipelines_Rename.json
new file mode 100644
index 000000000000..71ea5f3cd03e
--- /dev/null
+++ b/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/Pipelines_Rename.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "endpoint": "exampleWorkspace.dev.azuresynapse.net",
+ "pipelineName": "examplePipeline",
+ "api-version": "2019-06-01-preview",
+ "request": {
+ "newName": "newPipeline"
+ }
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/SparkJobDefinitions_Rename.json b/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/SparkJobDefinitions_Rename.json
new file mode 100644
index 000000000000..a4289ba946c9
--- /dev/null
+++ b/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/SparkJobDefinitions_Rename.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "endpoint": "exampleWorkspace.dev.azuresynapse.net",
+ "sparkJobDefinitionName": "examplesparkJobDefinition",
+ "api-version": "2019-06-01-preview",
+ "request": {
+ "newName": "newSparkJobDefinition"
+ }
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/SqlScripts_Create.json b/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/SqlScripts_Create.json
index aa96d82b50df..fda2cffe022a 100644
--- a/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/SqlScripts_Create.json
+++ b/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/SqlScripts_Create.json
@@ -4,6 +4,7 @@
"sqlScriptName": "exampleSqlScript",
"ifMatch": null,
"sqlScript": {
+ "name": "exampleSqlScript",
"properties": {
"description": "Covers the data transformation and LDW scenarios in one brief e2e story",
"content": {
diff --git a/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/SqlScripts_Rename.json b/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/SqlScripts_Rename.json
new file mode 100644
index 000000000000..68dfa4ac574d
--- /dev/null
+++ b/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/SqlScripts_Rename.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "endpoint": "exampleWorkspace.dev.azuresynapse.net",
+ "sqlScriptName": "exampleSqlScript",
+ "api-version": "2019-06-01-preview",
+ "request": {
+ "newName": "newSqlScript"
+ }
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/SqlScripts_Update.json b/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/SqlScripts_Update.json
index cd482ba8c7e9..2ca6a02f3253 100644
--- a/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/SqlScripts_Update.json
+++ b/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/SqlScripts_Update.json
@@ -4,6 +4,7 @@
"sqlScriptName": "exampleSqlScript",
"ifMatch": null,
"sqlScript": {
+ "name": "exampleSqlScript",
"properties": {
"description": "modified description",
"content": {
diff --git a/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/WorkspaceGitRepoManagement_getGitHubAccessToken.json b/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/WorkspaceGitRepoManagement_getGitHubAccessToken.json
new file mode 100644
index 000000000000..27258fc6430d
--- /dev/null
+++ b/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/WorkspaceGitRepoManagement_getGitHubAccessToken.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "workspaceName": "workspace1",
+ "api-version": "2019-06-01-preview",
+ "x-ms-client-request-id": "c8b9a072-76f6-4383-8350-db4431deb921",
+ "gitHubAccessTokenRequest": {
+ "gitHubClientId": "wvwvwvwvwv",
+ "gitHubAccessCode": "cwvcwvwev",
+ "gitHubAccessTokenBaseUrl": "https://github.com/login/oauth/access_token"
+ },
+ "endpoint": "https://azure.com"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "gitHubAccessToken": "zycdwcsdc"
+ }
+ }
+ }
+}
diff --git a/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/Workspace_Get.json b/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/Workspace_Get.json
index 24d30b931091..7a64f90fa8b3 100644
--- a/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/Workspace_Get.json
+++ b/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/Workspace_Get.json
@@ -30,6 +30,15 @@
},
"sqlAdministratorLogin": "sqladminuser",
"privateEndpointConnections": [],
+ "workspaceRepositoryConfiguration": {
+ "type": "FactoryGitHubConfiguration",
+ "hostName": "",
+ "accountName": "myGithubAccount",
+ "projectName": "myProject",
+ "repositoryName": "myRepository",
+ "collaborationBranch": "master",
+ "rootFolder": "/"
+ },
"provisioningState": "Succeeded"
}
}
diff --git a/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/gitintegration.json b/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/gitintegration.json
new file mode 100644
index 000000000000..010f6e11d9f2
--- /dev/null
+++ b/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/gitintegration.json
@@ -0,0 +1,123 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2019-06-01-preview",
+ "title": "ArtifactsClient"
+ },
+ "x-ms-parameterized-host": {
+ "hostTemplate": "{endpoint}",
+ "useSchemePrefix": false,
+ "parameters": [
+ {
+ "$ref": "#/parameters/Endpoint"
+ }
+ ]
+ },
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "paths": {
+ "/getGitHubAccessToken": {
+ "post": {
+ "tags": [
+ "WorkspaceGitRepoManagement"
+ ],
+ "operationId": "WorkspaceGitRepoManagement_getGitHubAccessToken",
+ "description": "Get the GitHub access token.",
+ "x-ms-examples": {
+ "Get SOL job query string": {
+ "$ref": "./examples/WorkspaceGitRepoManagement_getGitHubAccessToken.json"
+ }
+ },
+ "parameters": [
+ {
+ "name": "x-ms-client-request-id",
+ "x-ms-client-name": "ClientRequestId",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "Can provide a guid, which is helpful for debugging and to provide better customer support"
+ },
+ {
+ "name": "api-version",
+ "in": "query",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "gitHubAccessTokenRequest",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/GitHubAccessTokenRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/GitHubAccessTokenResponse"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "GitHubAccessTokenRequest": {
+ "type": "object",
+ "properties": {
+ "gitHubClientId": {
+ "description": "The GitHub Client Id.",
+ "type": "string"
+ },
+ "gitHubAccessCode": {
+ "description": "The GitHub Access code.",
+ "type": "string"
+ },
+ "gitHubAccessTokenBaseUrl": {
+ "description": "The GitHub access token base URL.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "gitHubClientId",
+ "gitHubAccessCode",
+ "gitHubAccessTokenBaseUrl"
+ ]
+ },
+ "GitHubAccessTokenResponse": {
+ "type": "object",
+ "properties": {
+ "gitHubAccessToken": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "parameters": {
+ "Endpoint": {
+ "name": "endpoint",
+ "description": "The workspace development endpoint, for example https://myworkspace.dev.azuresynapse.net.",
+ "required": true,
+ "type": "string",
+ "in": "path",
+ "x-ms-skip-url-encoding": true,
+ "x-ms-parameter-location": "client"
+ },
+ "ApiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "The Synapse client API Version."
+ }
+ }
+}
diff --git a/specification/synapse/data-plane/readme.md b/specification/synapse/data-plane/readme.md
index 8512d34cd14f..afa6ec3bc6df 100644
--- a/specification/synapse/data-plane/readme.md
+++ b/specification/synapse/data-plane/readme.md
@@ -75,6 +75,7 @@ input-file:
- Microsoft.Synapse/preview/2019-06-01-preview/entityTypes/SparkJobDefinition.json
- Microsoft.Synapse/preview/2019-06-01-preview/entityTypes/SqlScript.json
- Microsoft.Synapse/preview/2019-06-01-preview/entityTypes/Trigger.json
+- Microsoft.Synapse/preview/2019-06-01-preview/gitintegration.json
```
### Tag: package-access-control-2020-02-01-preview
@@ -183,6 +184,7 @@ input-file:
- $(this-folder)/Microsoft.Synapse/preview/2020-02-01-preview/roleAssignments.json
- $(this-folder)/Microsoft.Synapse/preview/2019-06-01-preview/managedPrivateEndpoints.json
- $(this-folder)/Microsoft.Synapse/preview/2019-11-01-preview/monitoring.json
+ - $(this-folder)/Microsoft.Synapse/preview/2019-06-01-preview/gitintegration.json
```
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/bigDataPool.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/bigDataPool.json
index 9a4769f7aae7..ddc61caf359c 100644
--- a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/bigDataPool.json
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/bigDataPool.json
@@ -60,7 +60,7 @@
},
"default": {
"schema": {
- "$ref": "./workspace.json#/definitions/ErrorContract"
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
},
"description": ""
}
@@ -122,7 +122,7 @@
},
"default": {
"schema": {
- "$ref": "./workspace.json#/definitions/ErrorContract"
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
},
"description": ""
}
@@ -200,7 +200,7 @@
},
"default": {
"schema": {
- "$ref": "./workspace.json#/definitions/ErrorContract"
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
},
"description": ""
}
@@ -268,7 +268,7 @@
},
"default": {
"schema": {
- "$ref": "./workspace.json#/definitions/ErrorContract"
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
},
"description": ""
}
@@ -317,6 +317,12 @@
"$ref": "#/definitions/BigDataPoolResourceInfoListResult"
},
"description": ""
+ },
+ "default": {
+ "schema": {
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
+ },
+ "description": ""
}
},
"consumes": [],
@@ -410,6 +416,10 @@
"type": "boolean",
"description": "Whether compute isolation is required or not."
},
+ "sessionLevelPackagesEnabled": {
+ "type": "boolean",
+ "description": "Whether session level library/package management is enabled or not."
+ },
"sparkEventsFolder": {
"type": "string",
"description": "The Spark events folder"
@@ -423,6 +433,13 @@
"$ref": "#/definitions/LibraryRequirements",
"description": "Library version requirements"
},
+ "customLibraries": {
+ "description": "List of custom libraries/packages associated with the spark pool.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/LibraryInfo"
+ }
+ },
"sparkConfigProperties": {
"$ref": "#/definitions/LibraryRequirements",
"description": "Spark configuration file to specify additional properties"
@@ -503,6 +520,44 @@
}
}
},
+ "LibraryInfo": {
+ "type": "object",
+ "description": "Library/package information of a Big Data pool powered by Apache Spark",
+ "title": "Information about a library/package created at the workspace level.",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name of the library."
+ },
+ "path": {
+ "type": "string",
+ "description": "Storage blob path of library."
+ },
+ "containerName": {
+ "type": "string",
+ "description": "Storage blob container name."
+ },
+ "uploadedTimestamp": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The last update time of the library."
+ },
+ "type": {
+ "type": "string",
+ "description": "Type of the library."
+ },
+ "provisioningStatus": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Provisioning status of the library/package."
+ },
+ "creatorId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Creator Id of the library/package."
+ }
+ }
+ },
"LibraryRequirements": {
"type": "object",
"description": "Library requirements for a Big Data pool powered by Apache Spark",
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/checkNameAvailability.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/checkNameAvailability.json
index 28e52974b500..2c9354e90fbb 100644
--- a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/checkNameAvailability.json
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/checkNameAvailability.json
@@ -56,7 +56,7 @@
},
"default": {
"schema": {
- "$ref": "./workspace.json#/definitions/ErrorContract"
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
},
"description": ""
}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/ApprovePrivateEndpointConnection.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/ApprovePrivateEndpointConnection.json
index d2b7cdc9fb4a..95760d9503bf 100644
--- a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/ApprovePrivateEndpointConnection.json
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/ApprovePrivateEndpointConnection.json
@@ -5,7 +5,7 @@
"workspaceName": "ExampleWorkspace",
"privateEndpointConnectionName": "ExamplePrivateEndpointConnection",
"api-version": "2019-06-01-preview",
- "parameters": {
+ "request": {
"properties": {
"privateLinkServiceConnectionState": {
"status": "Approved",
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/CreateOrUpdateKey.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/CreateOrUpdateKey.json
new file mode 100644
index 000000000000..fd4c825f2822
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/CreateOrUpdateKey.json
@@ -0,0 +1,36 @@
+{
+ "parameters": {
+ "subscriptionId": "01234567-89ab-4def-0123-456789abcdef",
+ "resourceGroupName": "ExampleResourceGroup",
+ "workspaceName": "ExampleWorkspace",
+ "keyName": "somekey",
+ "api-version": "2019-06-01-preview",
+ "keyProperties": {
+ "properties": {
+ "isActiveCMK": true,
+ "keyVaultUrl": "https://vault.azure.net/keys/somesecret"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/01234567-89ab-4def-0123-456789abcdef/resourceGroups/ExampleResourceGroup/providers/Microsoft.Synapse/workspaces/ExampleWorkspace/keys/somekey",
+ "type": "Microsoft.Synapse/workspaces/keys",
+ "name": "somekey",
+ "properties": {
+ "isActiveCMK": true,
+ "keyVaultUrl": "https://vault.azure.net/keys/somesecret"
+ }
+ }
+ },
+ "default": {
+ "body": {
+ "error": {
+ "code": "Error code",
+ "message": "Error message"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/CreateOrUpdateSqlPoolWorkloadClassifierMax.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/CreateOrUpdateSqlPoolWorkloadClassifierMax.json
new file mode 100644
index 000000000000..401dca29d26f
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/CreateOrUpdateSqlPoolWorkloadClassifierMax.json
@@ -0,0 +1,54 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "sqlcrudtest-6852",
+ "workspaceName": "sqlcrudtest-2080",
+ "sqlPoolName": "sqlcrudtest-9187",
+ "workloadGroupName": "wlm_workloadgroup",
+ "workloadClassifierName": "wlm_workloadclassifier",
+ "api-version": "2019-06-01-preview",
+ "parameters": {
+ "properties": {
+ "memberName": "dbo",
+ "label": "test_label",
+ "context": "test_context",
+ "startTime": "12:00",
+ "endTime": "14:00",
+ "importance": "high"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "memberName": "dbo",
+ "label": "test_label",
+ "context": "test_context",
+ "startTime": "12:00",
+ "endTime": "14:00",
+ "importance": "high"
+ },
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/sqlcrudtest-6852/providers/Microsoft.Synapse/workspaces/sqlcrudtest-2080/sqlPools/sqlcrudtest-9187/workloadGroups/wlm_workloadgroup/workloadClassifiers/wlm_workloadclassifier",
+ "name": "wlm_workloadclassifier",
+ "type": "Microsoft.Synapse/workspaces/sqlPools/workloadGroups/workloadClassifiers"
+ }
+ },
+ "201": {
+ "body": {
+ "properties": {
+ "memberName": "dbo",
+ "label": "test_label",
+ "context": "test_context",
+ "startTime": "12:00",
+ "endTime": "14:00",
+ "importance": "high"
+ },
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/sqlcrudtest-6852/providers/Microsoft.Synapse/workspaces/sqlcrudtest-2080/sqlPools/sqlcrudtest-9187/workloadGroups/wlm_workloadgroup/workloadClassifiers/wlm_workloadclassifier",
+ "name": "wlm_workloadclassifier",
+ "type": "Microsoft.Synapse/workspaces/sqlPools/workloadGroups/workloadClassifiers"
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/CreateOrUpdateSqlPoolWorkloadClassifierMin.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/CreateOrUpdateSqlPoolWorkloadClassifierMin.json
new file mode 100644
index 000000000000..dce7bca178d2
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/CreateOrUpdateSqlPoolWorkloadClassifierMin.json
@@ -0,0 +1,49 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "sqlcrudtest-6852",
+ "workspaceName": "sqlcrudtest-2080",
+ "sqlPoolName": "sqlcrudtest-9187",
+ "workloadGroupName": "wlm_workloadgroup",
+ "workloadClassifierName": "wlm_workloadclassifier",
+ "api-version": "2019-06-01-preview",
+ "parameters": {
+ "properties": {
+ "memberName": "dbo"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "memberName": "dbo",
+ "label": "",
+ "context": "",
+ "startTime": "",
+ "endTime": "",
+ "importance": ""
+ },
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/sqlcrudtest-6852/providers/Microsoft.Synapse/workspaces/sqlcrudtest-2080/sqlPools/sqlcrudtest-9187/workloadGroups/wlm_workloadgroup/workloadClassifiers/wlm_workloadclassifier",
+ "name": "wlm_workloadclassifier",
+ "type": "Microsoft.Synapse/workspaces/sqlPools/workloadGroups/workloadClassifiers"
+ }
+ },
+ "201": {
+ "body": {
+ "properties": {
+ "memberName": "dbo",
+ "label": "",
+ "context": "",
+ "startTime": "",
+ "endTime": "",
+ "importance": ""
+ },
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/sqlcrudtest-6852/providers/Microsoft.Synapse/workspaces/sqlcrudtest-2080/sqlPools/sqlcrudtest-9187/workloadGroups/wlm_workloadgroup/workloadClassifiers/wlm_workloadclassifier",
+ "name": "wlm_workloadclassifier",
+ "type": "Microsoft.Synapse/workspaces/sqlPools/workloadGroups/workloadClassifiers"
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/CreateOrUpdateSqlPoolWorkloadGroupMax.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/CreateOrUpdateSqlPoolWorkloadGroupMax.json
new file mode 100644
index 000000000000..030e0da748b7
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/CreateOrUpdateSqlPoolWorkloadGroupMax.json
@@ -0,0 +1,53 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "sqlcrudtest-6852",
+ "workspaceName": "sqlcrudtest-2080",
+ "sqlPoolName": "sqlcrudtest-9187",
+ "workloadGroupName": "smallrc",
+ "api-version": "2019-06-01-preview",
+ "parameters": {
+ "properties": {
+ "minResourcePercent": 0,
+ "maxResourcePercent": 100,
+ "minResourcePercentPerRequest": 3.0,
+ "maxResourcePercentPerRequest": 3.0,
+ "importance": "normal",
+ "queryExecutionTimeout": 0
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "minResourcePercent": 0,
+ "maxResourcePercent": 100,
+ "minResourcePercentPerRequest": 3.0,
+ "maxResourcePercentPerRequest": 3.0,
+ "importance": "normal",
+ "queryExecutionTimeout": 0
+ },
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/sqlcrudtest-6852/providers/Microsoft.Synapse/workspaces/sqlcrudtest-2080/sqlPools/workloadGroups/smallrc",
+ "name": "smallrc",
+ "type": "Microsoft.Synapse/workspaces/sqlPools/workloadGroups"
+ }
+ },
+ "201": {
+ "body": {
+ "properties": {
+ "minResourcePercent": 0,
+ "maxResourcePercent": 100,
+ "minResourcePercentPerRequest": 3.0,
+ "maxResourcePercentPerRequest": 3.0,
+ "importance": "normal",
+ "queryExecutionTimeout": 0
+ },
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/sqlcrudtest-6852/providers/Microsoft.Synapse/workspaces/sqlcrudtest-2080/sqlPools/workloadGroups/smallrc",
+ "name": "smallrc",
+ "type": "Microsoft.Synapse/workspaces/sqlPools/workloadGroups"
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/CreateOrUpdateSqlPoolWorkloadGroupMin.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/CreateOrUpdateSqlPoolWorkloadGroupMin.json
new file mode 100644
index 000000000000..a928207ef9d3
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/CreateOrUpdateSqlPoolWorkloadGroupMin.json
@@ -0,0 +1,50 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "sqlcrudtest-6852",
+ "workspaceName": "sqlcrudtest-2080",
+ "sqlPoolName": "sqlcrudtest-9187",
+ "workloadGroupName": "smallrc",
+ "api-version": "2019-06-01-preview",
+ "parameters": {
+ "properties": {
+ "minResourcePercent": 0,
+ "maxResourcePercent": 100,
+ "minResourcePercentPerRequest": 3.0
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "minResourcePercent": 0,
+ "maxResourcePercent": 100,
+ "minResourcePercentPerRequest": 3.0,
+ "maxResourcePercentPerRequest": 3.0,
+ "importance": "normal",
+ "queryExecutionTimeout": 0
+ },
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/sqlcrudtest-6852/providers/Microsoft.Synapse/workspaces/sqlcrudtest-2080/sqlPools/workloadGroups/smallrc",
+ "name": "smallrc",
+ "type": "Microsoft.Synapse/workspaces/sqlPools/workloadGroups"
+ }
+ },
+ "201": {
+ "body": {
+ "properties": {
+ "minResourcePercent": 0,
+ "maxResourcePercent": 100,
+ "minResourcePercentPerRequest": 3.0,
+ "maxResourcePercentPerRequest": 3.0,
+ "importance": "normal",
+ "queryExecutionTimeout": 0
+ },
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/sqlcrudtest-6852/providers/Microsoft.Synapse/workspaces/sqlcrudtest-2080/sqlPools/workloadGroups/smallrc",
+ "name": "smallrc",
+ "type": "Microsoft.Synapse/workspaces/sqlPools/workloadGroups"
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/CreateOrUpdateWorkspace.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/CreateOrUpdateWorkspace.json
index 45024b169fef..599f0cfa4598 100644
--- a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/CreateOrUpdateWorkspace.json
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/CreateOrUpdateWorkspace.json
@@ -20,10 +20,22 @@
"740239CE-A25B-485B-86A0-262F29F6EBDB"
]
},
+ "babylonConfiguration": {
+ "babylonResourceId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroup1/providers/Microsoft.ProjectBabylon/accounts/accountname1"
+ },
"sqlAdministratorLogin": "login",
"sqlAdministratorLoginPassword": "password",
"managedVirtualNetwork": "default",
- "managedResourceGroupName": "workspaceManagedResourceGroupUnique"
+ "managedResourceGroupName": "workspaceManagedResourceGroupUnique",
+ "workspaceRepositoryConfiguration": {
+ "type": "FactoryGitHubConfiguration",
+ "hostName": "",
+ "accountName": "mygithubaccount",
+ "projectName": "myproject",
+ "repositoryName": "myrepository",
+ "collaborationBranch": "master",
+ "rootFolder": "/"
+ }
},
"location": "East US",
"tags": {
@@ -59,8 +71,10 @@
"740239CE-A25B-485B-86A0-262F29F6EBDB"
]
},
+ "babylonConfiguration": {
+ "babylonResourceId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroup1/providers/Microsoft.ProjectBabylon/accounts/accountname1"
+ },
"sqlAdministratorLogin": "login",
- "sqlAdministratorLoginPassword": "password",
"managedResourceGroupName": "workspaceManagedResourceGroupUnique",
"managedVirtualNetwork": "default",
"provisioningState": "Succeeded",
@@ -81,7 +95,8 @@
}
}
}
- ]
+ ],
+ "workspaceUID": "999b999q-b888-4b44-bacd-2c222cc2222d"
},
"tags": {
"key": "value"
@@ -106,15 +121,18 @@
"740239CE-A25B-485B-86A0-262F29F6EBDB"
]
},
+ "babylonConfiguration": {
+ "babylonResourceId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroup1/providers/Microsoft.ProjectBabylon/accounts/accountname1"
+ },
"connectivityEndpoints": {
"dev": "workspace1.dev.projectarcadia.net",
"sql": "workspace1.sql.projectarcadia.net"
},
"sqlAdministratorLogin": "login",
- "sqlAdministratorLoginPassword": "password",
"managedResourceGroupName": "workspaceManagedResourceGroupUnique",
"managedVirtualNetwork": "default",
- "provisioningState": "Provisioning"
+ "provisioningState": "Provisioning",
+ "workspaceUID": "86984b43-b873-4b91-bacd-2ca083a104c7"
},
"tags": {
"key": "value"
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/CreateSqlPool.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/CreateSqlPool.json
index 2ff38b799943..e6a198170238 100644
--- a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/CreateSqlPool.json
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/CreateSqlPool.json
@@ -17,9 +17,7 @@
"collation": "",
"sourceDatabaseId": "",
"recoverableDatabaseId": "",
- "restorePointInTime": "1970-01-01T00:00:00.000Z",
- "createMode": "",
- "creationDate": "1970-01-01T00:00:00.000Z"
+ "createMode": ""
}
}
},
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/CreateWorkspaceManagedSqlServerBlobAuditingSettingsWithAllParameters.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/CreateWorkspaceManagedSqlServerBlobAuditingSettingsWithAllParameters.json
new file mode 100644
index 000000000000..0517b47d9d99
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/CreateWorkspaceManagedSqlServerBlobAuditingSettingsWithAllParameters.json
@@ -0,0 +1,53 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "wsg-7398",
+ "workspaceName": "testWorkspace",
+ "blobAuditingPolicyName": "default",
+ "api-version": "2019-06-01-preview",
+ "parameters": {
+ "properties": {
+ "state": "Enabled",
+ "storageAccountAccessKey": "sdlfkjabc+sdlfkjsdlkfsjdfLDKFTERLKFDFKLjsdfksjdflsdkfD2342309432849328476458/3RSD==",
+ "storageEndpoint": "https://mystorage.blob.core.windows.net",
+ "retentionDays": 6,
+ "storageAccountSubscriptionId": "00000000-1234-0000-5678-000000000000",
+ "isStorageSecondaryKeyInUse": false,
+ "queueDelayMs": 4000,
+ "auditActionsAndGroups": [
+ "SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP",
+ "FAILED_DATABASE_AUTHENTICATION_GROUP",
+ "BATCH_COMPLETED_GROUP"
+ ],
+ "isAzureMonitorTargetEnabled": true
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/wsg-7398/providers/Microsoft.Synapse/workspaces/testWorkspace/auditingSettings/default",
+ "name": "default",
+ "type": "Microsoft.Synapse/workspaces/auditingSettings",
+ "properties": {
+ "state": "Enabled",
+ "storageEndpoint": "https://mystorage.blob.core.windows.net",
+ "retentionDays": 6,
+ "storageAccountSubscriptionId": "00000000-1234-0000-5678-000000000000",
+ "isStorageSecondaryKeyInUse": false,
+ "queueDelayMs": 4000,
+ "auditActionsAndGroups": [
+ "SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP",
+ "FAILED_DATABASE_AUTHENTICATION_GROUP",
+ "BATCH_COMPLETED_GROUP"
+ ],
+ "isAzureMonitorTargetEnabled": true
+ }
+ }
+ },
+ "202": {
+ "startTime": "2017-11-22T09:34:54.72Z",
+ "operation": "UpsertServerEngineAuditingPolicy"
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/CreateWorkspaceManagedSqlServerBlobAuditingSettingsWithMinParameters.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/CreateWorkspaceManagedSqlServerBlobAuditingSettingsWithMinParameters.json
new file mode 100644
index 000000000000..accd9e00a1f3
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/CreateWorkspaceManagedSqlServerBlobAuditingSettingsWithMinParameters.json
@@ -0,0 +1,41 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "wsg-7398",
+ "workspaceName": "testWorkspace",
+ "blobAuditingPolicyName": "default",
+ "api-version": "2019-06-01-preview",
+ "parameters": {
+ "properties": {
+ "state": "Enabled",
+ "storageAccountAccessKey": "sdlfkjabc+sdlfkjsdlkfsjdfLDKFTERLKFDFKLjsdfksjdflsdkfD2342309432849328476458/3RSD==",
+ "storageEndpoint": "https://mystorage.blob.core.windows.net"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/wsg-7398/providers/Microsoft.Synapse/workspaces/testWorkspace/auditingSettings/default",
+ "name": "default",
+ "type": "Microsoft.Synapse/workspaces/auditingSettings",
+ "properties": {
+ "state": "Enabled",
+ "storageEndpoint": "https://mystorage.blob.core.windows.net",
+ "retentionDays": 6,
+ "storageAccountSubscriptionId": "00000000-1234-0000-5678-000000000000",
+ "isStorageSecondaryKeyInUse": false,
+ "auditActionsAndGroups": [
+ "SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP",
+ "FAILED_DATABASE_AUTHENTICATION_GROUP",
+ "BATCH_COMPLETED_GROUP"
+ ]
+ }
+ }
+ },
+ "202": {
+ "startTime": "2017-11-22T09:34:54.72Z",
+ "operation": "UpsertServerEngineAuditingPolicy"
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/CreateWorkspaceManagedSqlServerExetendedBlobAuditingSettingsWithMinParameters.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/CreateWorkspaceManagedSqlServerExetendedBlobAuditingSettingsWithMinParameters.json
new file mode 100644
index 000000000000..4822f170f74a
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/CreateWorkspaceManagedSqlServerExetendedBlobAuditingSettingsWithMinParameters.json
@@ -0,0 +1,42 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "wsg-7398",
+ "workspaceName": "testWorkspace",
+ "blobAuditingPolicyName": "default",
+ "api-version": "2019-06-01-preview",
+ "parameters": {
+ "properties": {
+ "state": "Enabled",
+ "storageAccountAccessKey": "sdlfkjabc+sdlfkjsdlkfsjdfLDKFTERLKFDFKLjsdfksjdflsdkfD2342309432849328476458/3RSD==",
+ "storageEndpoint": "https://mystorage.blob.core.windows.net"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/wsg-7398/providers/Microsoft.Synapse/workspaces/testWorkspace/extendedAuditingSettings/default",
+ "name": "default",
+ "type": "Microsoft.Synapse/workspaces/extendedAuditingSettings",
+ "properties": {
+ "state": "Enabled",
+ "storageEndpoint": "https://mystorage.blob.core.windows.net",
+ "retentionDays": 6,
+ "storageAccountSubscriptionId": "00000000-1234-0000-5678-000000000000",
+ "isStorageSecondaryKeyInUse": false,
+ "auditActionsAndGroups": [
+ "SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP",
+ "FAILED_DATABASE_AUTHENTICATION_GROUP",
+ "BATCH_COMPLETED_GROUP"
+ ],
+ "isAzureMonitorTargetEnabled": false
+ }
+ }
+ },
+ "202": {
+ "startTime": "2017-11-22T09:34:54.72Z",
+ "operation": "UpsertServerEngineAuditingPolicy"
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/CreateWorkspaceManagedSqlServerExtendedBlobAuditingSettingsWithAllParameters.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/CreateWorkspaceManagedSqlServerExtendedBlobAuditingSettingsWithAllParameters.json
new file mode 100644
index 000000000000..b0972a854f84
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/CreateWorkspaceManagedSqlServerExtendedBlobAuditingSettingsWithAllParameters.json
@@ -0,0 +1,53 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "wsg-7398",
+ "workspaceName": "testWorkspace",
+ "blobAuditingPolicyName": "default",
+ "api-version": "2019-06-01-preview",
+ "parameters": {
+ "properties": {
+ "state": "Enabled",
+ "storageAccountAccessKey": "sdlfkjabc+sdlfkjsdlkfsjdfLDKFTERLKFDFKLjsdfksjdflsdkfD2342309432849328476458/3RSD==",
+ "storageEndpoint": "https://mystorage.blob.core.windows.net",
+ "retentionDays": 6,
+ "storageAccountSubscriptionId": "00000000-1234-0000-5678-000000000000",
+ "isStorageSecondaryKeyInUse": false,
+ "auditActionsAndGroups": [
+ "SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP",
+ "FAILED_DATABASE_AUTHENTICATION_GROUP",
+ "BATCH_COMPLETED_GROUP"
+ ],
+ "predicateExpression": "object_name = 'SensitiveData'",
+ "isAzureMonitorTargetEnabled": true
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/wsg-7398/providers/Microsoft.Synapse/workspaces/testWorkspace/extendedAuditingSettings/default",
+ "name": "default",
+ "type": "Microsoft.Synapse/workspaces/extendedAuditingSettings",
+ "properties": {
+ "state": "Enabled",
+ "storageEndpoint": "https://mystorage.blob.core.windows.net",
+ "retentionDays": 6,
+ "storageAccountSubscriptionId": "00000000-1234-0000-5678-000000000000",
+ "isStorageSecondaryKeyInUse": false,
+ "auditActionsAndGroups": [
+ "SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP",
+ "FAILED_DATABASE_AUTHENTICATION_GROUP",
+ "BATCH_COMPLETED_GROUP"
+ ],
+ "predicateExpression": "object_name = 'SensitiveData'",
+ "isAzureMonitorTargetEnabled": true
+ }
+ }
+ },
+ "202": {
+ "startTime": "2017-11-22T09:34:54.72Z",
+ "operation": "UpsertServerEngineAuditingPolicy"
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DeleteKey.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DeleteKey.json
new file mode 100644
index 000000000000..a7495bfd40fe
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DeleteKey.json
@@ -0,0 +1,23 @@
+{
+ "parameters": {
+ "subscriptionId": "01234567-89ab-4def-0123-456789abcdef",
+ "resourceGroupName": "ExampleResourceGroup",
+ "workspaceName": "ExampleWorkspace",
+ "keyName": "somekey",
+ "api-version": "2019-06-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/01234567-89ab-4def-0123-456789abcdef/resourceGroups/ExampleResourceGroup/providers/Microsoft.Synapse/workspaces/ExampleWorkspace/keys/somekey",
+ "type": "Microsoft.Synapse/workspaces/keys",
+ "name": "somekey",
+ "properties": {
+ "isActiveCMK": true,
+ "keyVaultUrl": "https://vault.azure.net/keys/key1"
+ }
+ }
+ },
+ "204": {}
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DeletePrivateEndpointConnection.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DeletePrivateEndpointConnection.json
index c870df7d7f65..39eb260e066a 100644
--- a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DeletePrivateEndpointConnection.json
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DeletePrivateEndpointConnection.json
@@ -7,6 +7,7 @@
"api-version": "2019-06-01-preview"
},
"responses": {
+ "200": {},
"202": {
"body": {
"status": "InProgress"
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DeletePrivateLinkHub.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DeletePrivateLinkHub.json
index b78a84f12fc2..1b1aea479c80 100644
--- a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DeletePrivateLinkHub.json
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DeletePrivateLinkHub.json
@@ -6,8 +6,9 @@
"api-version": "2019-06-01-preview"
},
"responses": {
- "204": {},
"200": {},
+ "202": {},
+ "204": {},
"default": {
"body": {
"error": {
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DeleteSqlPoolColumnSensitivityLabel.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DeleteSqlPoolColumnSensitivityLabel.json
index dd115823d9d3..ca5241e6d948 100644
--- a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DeleteSqlPoolColumnSensitivityLabel.json
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DeleteSqlPoolColumnSensitivityLabel.json
@@ -11,6 +11,7 @@
"api-version": "2019-06-01-preview"
},
"responses": {
- "200": {}
+ "200": {},
+ "204": {}
}
}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DeleteSqlPoolVulnerabilityAssessment.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DeleteSqlPoolVulnerabilityAssessment.json
index f602085474f7..84180ce34568 100644
--- a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DeleteSqlPoolVulnerabilityAssessment.json
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DeleteSqlPoolVulnerabilityAssessment.json
@@ -8,6 +8,7 @@
"api-version": "2019-06-01-preview"
},
"responses": {
- "200": {}
+ "200": {},
+ "204": {}
}
}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DeleteSqlPoolVulnerabilityAssessmentRuleBaseline.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DeleteSqlPoolVulnerabilityAssessmentRuleBaseline.json
index 433fcf057396..42376f9e636e 100644
--- a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DeleteSqlPoolVulnerabilityAssessmentRuleBaseline.json
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DeleteSqlPoolVulnerabilityAssessmentRuleBaseline.json
@@ -10,6 +10,7 @@
"api-version": "2019-06-01-preview"
},
"responses": {
- "200": {}
+ "200": {},
+ "204": {}
}
}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DeleteSqlPoolWorkloadGroup.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DeleteSqlPoolWorkloadGroup.json
new file mode 100644
index 000000000000..850c549ee1f0
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DeleteSqlPoolWorkloadGroup.json
@@ -0,0 +1,15 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "sqlcrudtest-6852",
+ "workspaceName": "sqlcrudtest-2080",
+ "sqlPoolName": "sqlcrudtest-9187",
+ "workloadGroupName": "wlm_workloadgroup",
+ "api-version": "2019-06-01-preview"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DeleteSqlPoolWorkloadGroupWorkloadClassifer.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DeleteSqlPoolWorkloadGroupWorkloadClassifer.json
new file mode 100644
index 000000000000..03f7afd671bf
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DeleteSqlPoolWorkloadGroupWorkloadClassifer.json
@@ -0,0 +1,16 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "sqlcrudtest-6852",
+ "workspaceName": "sqlcrudtest-2080",
+ "sqlPoolName": "sqlcrudtest-9187",
+ "workloadGroupName": "wlm_workloadgroup",
+ "workloadClassifierName": "wlm_workloadclassifier",
+ "api-version": "2019-06-01-preview"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DeleteWorkspace.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DeleteWorkspace.json
index 114f42b37450..40faead19617 100644
--- a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DeleteWorkspace.json
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DeleteWorkspace.json
@@ -22,7 +22,6 @@
"sql": "workspace1.sql.projectarcadia.net"
},
"sqlAdministratorLogin": "login",
- "sqlAdministratorLoginPassword": "password",
"managedResourceGroupName": "resourceGroup2",
"provisioningState": "Deleting"
},
@@ -48,7 +47,6 @@
"sql": "workspace1.sql.projectarcadia.net"
},
"sqlAdministratorLogin": "login",
- "sqlAdministratorLoginPassword": "password",
"managedResourceGroupName": "resourceGroup2",
"provisioningState": "Deleting"
},
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DeleteWorkspaceAadAdmin.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DeleteWorkspaceAadAdmin.json
index b966039dd651..49f59b0c406e 100644
--- a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DeleteWorkspaceAadAdmin.json
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DeleteWorkspaceAadAdmin.json
@@ -7,6 +7,7 @@
},
"responses": {
"200": {},
+ "204": {},
"202": {},
"default": {
"body": {
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DeleteWorkspaceManagedSqlServerVulnerabilityAssessment.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DeleteWorkspaceManagedSqlServerVulnerabilityAssessment.json
new file mode 100644
index 000000000000..bb4021d67eba
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DeleteWorkspaceManagedSqlServerVulnerabilityAssessment.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "wsg-7398",
+ "workspaceName": "testWorkspace",
+ "vulnerabilityAssessmentName": "default",
+ "api-version": "2019-06-01-preview"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetAvailableOperations.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetAvailableOperations.json
index 7cb3e1caceaa..3c4e35d31b42 100644
--- a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetAvailableOperations.json
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetAvailableOperations.json
@@ -1008,6 +1008,160 @@
},
"origin": "user"
},
+ {
+ "name": "Microsoft.Synapse/workspaces/serverKeys/write",
+ "isDataAction": "false",
+ "display": {
+ "provider": "Analytics 365 Resource Provider.",
+ "resource": "SQL Server Key",
+ "operation": "Creates or updates a server key",
+ "description": "Creates or updates a server key"
+ },
+ "origin": "user, system"
+ },
+ {
+ "name": "Microsoft.Synapse/workspaces/serverKeys/delete",
+ "isDataAction": "false",
+ "display": {
+ "provider": "Analytics 365 Resource Provider.",
+ "resource": "SQL Server Key",
+ "operation": "Deletes the server key with the given name.",
+ "description": "Deletes the server key with the given name."
+ },
+ "origin": "user, system"
+ },
+ {
+ "name": "Microsoft.Synapse/workspaces/extendedAuditingSettings/write",
+ "isDataAction": "false",
+ "display": {
+ "provider": "Analytics 365 Resource Provider.",
+ "resource": "SQL Server Extended Auditing Settings",
+ "operation": "Create or Update SQL server extended auditing settings.",
+ "description": "Create or Update SQL server extended auditing settings."
+ },
+ "origin": "user, system"
+ },
+ {
+ "name": "Microsoft.Synapse/workspaces/extendedAuditingSettings/read",
+ "isDataAction": "false",
+ "display": {
+ "provider": "Analytics 365 Resource Provider.",
+ "resource": "SQL Server Extended Auditing Settings",
+ "operation": "Read SQL server extended auditing settings.",
+ "description": "Read SQL server extended auditing settings."
+ },
+ "origin": "user, system"
+ },
+ {
+ "name": "Microsoft.Synapse/workspaces/auditingSettings/write",
+ "isDataAction": "false",
+ "display": {
+ "provider": "Analytics 365 Resource Provider.",
+ "resource": "SQL Server Auditing Settings",
+ "operation": "Create or Update SQL server auditing settings.",
+ "description": "Create or Update SQL server auditing settings."
+ },
+ "origin": "user, system"
+ },
+ {
+ "name": "Microsoft.Synapse/workspaces/auditingSettings/read",
+ "isDataAction": "false",
+ "display": {
+ "provider": "Analytics 365 Resource Provider.",
+ "resource": "SQL Server Auditing Settings",
+ "operation": "Read SQL server auditing settings.",
+ "description": "Read SQL server auditing settings."
+ },
+ "origin": "user, system"
+ },
+ {
+ "name": "Microsoft.Synapse/workspaces/securityAlertPolicies/write",
+ "isDataAction": "false",
+ "display": {
+ "provider": "Analytics 365 Resource Provider.",
+ "resource": "SQL Server Security Alert Policy",
+ "operation": "Create or Update SQL server security alert policies.",
+ "description": "Create or Update SQL server security alert policies."
+ },
+ "origin": "user, system"
+ },
+ {
+ "name": "Microsoft.Synapse/workspaces/securityAlertPolicies/read",
+ "isDataAction": "false",
+ "display": {
+ "provider": "Analytics 365 Resource Provider.",
+ "resource": "SQL Server Security Alert Policy",
+ "operation": "Read SQL server security alert policies.",
+ "description": "Read SQL server security alert policies."
+ },
+ "origin": "user, system"
+ },
+ {
+ "name": "Microsoft.Synapse/workspaces/vulnerabilityAssessments/write",
+ "isDataAction": "false",
+ "display": {
+ "provider": "Analytics 365 Resource Provider.",
+ "resource": "SQL Server Vulnerability Assesment",
+ "operation": "Create or Update SQL server vulnerability assement report.",
+ "description": "Create or Update SQL server vulnerability assement report."
+ },
+ "origin": "user, system"
+ },
+ {
+ "name": "Microsoft.Synapse/workspaces/vulnerabilityAssessments/read",
+ "isDataAction": "false",
+ "display": {
+ "provider": "Analytics 365 Resource Provider.",
+ "resource": "SQL Server Vulnerability Assesment",
+ "operation": "Read SQL server vulnerability assement report.",
+ "description": "Read SQL server vulnerability assement report."
+ },
+ "origin": "user, system"
+ },
+ {
+ "name": "Microsoft.Synapse/workspaces/vulnerabilityAssessments/delete",
+ "isDataAction": "false",
+ "display": {
+ "provider": "Analytics 365 Resource Provider.",
+ "resource": "SQL Server Vulnerability Assesment",
+ "operation": "Delete SQL server vulnerability assement report.",
+ "description": "Delete SQL server vulnerability assement report."
+ },
+ "origin": "user, system"
+ },
+ {
+ "name": "Microsoft.Synapse/workspaces/encryptionProtector/write",
+ "isDataAction": "false",
+ "display": {
+ "provider": "Analytics 365 Resource Provider.",
+ "resource": "SQL Server Encryption Protector",
+ "operation": "Update the properties for the specified Server Encryption Protector.",
+ "description": "Update the properties for the specified Server Encryption Protector."
+ },
+ "origin": "user, system"
+ },
+ {
+ "name": "Microsoft.Synapse/workspaces/encryptionProtector/read",
+ "isDataAction": "false",
+ "display": {
+ "provider": "Analytics 365 Resource Provider.",
+ "resource": "SQL Server Encryption Protector",
+ "operation": "Returns a list of server encryption protectors or gets the properties for the specified server encryption protector.",
+ "description": "Returns a list of server encryption protectors or gets the properties for the specified server encryption protector."
+ },
+ "origin": "user, system"
+ },
+ {
+ "name": "Microsoft.Synapse/workspaces/encryptionProtector/revalidate/action",
+ "isDataAction": "false",
+ "display": {
+ "provider": "Analytics 365 Resource Provider.",
+ "resource": "SQL Server Encryption Protector",
+ "operation": "Revalidates an existing encryption protector.",
+ "description": "Revalidates an existing encryption protector."
+ },
+ "origin": "user, system"
+ },
{
"name": "Microsoft.Synapse/workspaces/providers/Microsoft.Insights/metricDefinitions/read",
"isDataAction": null,
@@ -1297,6 +1451,28 @@
]
}
}
+ },
+ {
+ "name": "Microsoft.Synapse/workspaces/recoverableSqlPools/read",
+ "isDataAction": "false",
+ "display": {
+ "provider": "Analytics 365 Resource Provider.",
+ "resource": "Recoverable Sql Analytics Pools",
+ "operation": "Gets recoverable SQL Analytics Pools.",
+ "description": "Gets recoverable SQL Analytics Pools, which are the resources representing geo backups of SQL Analytics Pools."
+ },
+ "origin": "user, system"
+ },
+ {
+ "name": "Microsoft.Synapse/workspaces/sqlUsages/read",
+ "isDataAction": "false",
+ "display": {
+ "provider": "Analytics 365 Resource Provider.",
+ "resource": "SQL Analytics pool Usages",
+ "operation": "Gets usage limits available for SQL Analytics Pools.",
+ "description": "Gets usage limits available for SQL Analytics Pools."
+ },
+ "origin": "user, system"
}
]
}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetAzureAsyncOperationHeader.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetAzureAsyncOperationHeader.json
index 2883c2f2c3c2..4acdfe4e433e 100644
--- a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetAzureAsyncOperationHeader.json
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetAzureAsyncOperationHeader.json
@@ -12,14 +12,6 @@
"status": "InProgress"
}
},
- "404": {},
- "500": {
- "body": {
- "error": {
- "code": "Error code",
- "message": "Error message"
- }
- }
- }
+ "404": {}
}
}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetKey.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetKey.json
new file mode 100644
index 000000000000..401880d6ed85
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetKey.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "ExampleResourceGroup",
+ "workspaceName": "ExampleWorkspace",
+ "keyName": "somekey",
+ "api-version": "2019-06-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/ExampleResourceGroup/providers/Microsoft.Synapse/workspaces/ExampleWorkspace/keys/somekey",
+ "name": "somekey",
+ "type": "Microsoft.Synapse/workspaces/keys",
+ "properties": {
+ "isActiveCMK": true,
+ "keyVaultUrl": "https://vault.azure.net/keys/key1"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetLocationHeader.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetLocationHeader.json
index d67fbd8f288f..58683cbbae22 100644
--- a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetLocationHeader.json
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetLocationHeader.json
@@ -8,6 +8,8 @@
},
"responses": {
"200": {},
+ "201": {},
+ "202": {},
"204": {},
"default": {
"body": {
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetLocationHeaderResultWithSqlPool.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetLocationHeaderResultWithSqlPool.json
index c56c95fb0b23..1e919546deb3 100644
--- a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetLocationHeaderResultWithSqlPool.json
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetLocationHeaderResultWithSqlPool.json
@@ -10,6 +10,9 @@
"responses": {
"200": {
"body": {}
+ },
+ "202": {
+ "body": {}
}
}
}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetSqlPoolTransparentDataEncryptionList.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetSqlPoolTransparentDataEncryptionList.json
new file mode 100644
index 000000000000..3e0f65640030
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetSqlPoolTransparentDataEncryptionList.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "sqlcrudtest-6852",
+ "workspaceName": "sqlcrudtest-2080",
+ "sqlPoolName": "sqlcrudtest-9187",
+ "api-version": "2019-06-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "current",
+ "location": "North Europe",
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/sqlcrudtest-6852/providers/Microsoft.Synapse/workspaces/sqlcrudtest-2080/sqlPools/sqlcrudtest-9187/transparentDataEncryption/current",
+ "type": "Microsoft.Synapse/workspaces/sqlPools/transparentDataEncryption",
+ "properties": {
+ "status": "Enabled"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetSqlPoolWorkloadGroup.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetSqlPoolWorkloadGroup.json
new file mode 100644
index 000000000000..67bc56ca4c31
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetSqlPoolWorkloadGroup.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "sqlcrudtest-6852",
+ "workspaceName": "sqlcrudtest-2080",
+ "sqlPoolName": "sqlcrudtest-9187",
+ "workloadGroupName": "smallrc",
+ "api-version": "2019-06-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "minResourcePercent": 0,
+ "maxResourcePercent": 100,
+ "minResourcePercentPerRequest": 3.0,
+ "maxResourcePercentPerRequest": 3.0,
+ "importance": "normal",
+ "queryExecutionTimeout": 0
+ },
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/sqlcrudtest-6852/providers/Microsoft.Synapse/workspaces/sqlcrudtest-2080/sqlPools/sqlcrudtest-9187/workloadGroups/smallrc",
+ "name": "smallrc",
+ "type": "Microsoft.Synapse/workspaces/sqlPools/workloadGroups"
+ }
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetSqlPoolWorkloadGroupList.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetSqlPoolWorkloadGroupList.json
new file mode 100644
index 000000000000..e84d6efce7dd
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetSqlPoolWorkloadGroupList.json
@@ -0,0 +1,56 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "sqlcrudtest-6852",
+ "workspaceName": "sqlcrudtest-2080",
+ "sqlPoolName": "sqlcrudtest-9187",
+ "api-version": "2019-06-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "minResourcePercent": 0,
+ "maxResourcePercent": 100,
+ "minResourcePercentPerRequest": 5,
+ "maxResourcePercentPerRequest": 5,
+ "importance": "normal",
+ "queryExecutionTimeout": 0
+ },
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/sqlcrudtest-6852/providers/Microsoft.Synapse/workspaces/sqlcrudtest-2080/sqlPools/sqlcrudtest-9187/workloadGroups/smallrc",
+ "name": "smallrc",
+ "type": "Microsoft.Synapse/workspaces/sqlPools/workloadGroups"
+ },
+ {
+ "properties": {
+ "minResourcePercent": 0,
+ "maxResourcePercent": 100,
+ "minResourcePercentPerRequest": 10,
+ "maxResourcePercentPerRequest": 10,
+ "importance": "normal",
+ "queryExecutionTimeout": 0
+ },
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/sqlcrudtest-6852/providers/Microsoft.Synapse/workspaces/sqlcrudtest-2080/sqlPools/sqlcrudtest-9187/workloadGroups/mediumrc",
+ "name": "mediumrc",
+ "type": "Microsoft.Synapse/workspaces/sqlPools/workloadGroups"
+ },
+ {
+ "properties": {
+ "minResourcePercent": 0,
+ "maxResourcePercent": 100,
+ "minResourcePercentPerRequest": 20,
+ "maxResourcePercentPerRequest": 20,
+ "importance": "high",
+ "queryExecutionTimeout": 0
+ },
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/sqlcrudtest-6852/providers/Microsoft.Synapse/workspaces/sqlcrudtest-2080/sqlPools/sqlcrudtest-9187/workloadGroups/largerc",
+ "name": "largerc",
+ "type": "Microsoft.Synapse/workspaces/sqlPools/workloadGroups"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetSqlPoolWorkloadGroupWorkloadClassifier.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetSqlPoolWorkloadGroupWorkloadClassifier.json
new file mode 100644
index 000000000000..afb218d52d1e
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetSqlPoolWorkloadGroupWorkloadClassifier.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "sqlcrudtest-6852",
+ "workspaceName": "sqlcrudtest-2080",
+ "sqlPoolName": "sqlcrudtest-9187",
+ "workloadGroupName": "wlm_workloadgroup",
+ "workloadClassifierName": "wlm_classifier",
+ "api-version": "2019-06-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "memberName": "dbo",
+ "label": "test_label",
+ "context": "test_context",
+ "startTime": "12:00",
+ "endTime": "14:00",
+ "importance": "high"
+ },
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/sqlcrudtest-6852/providers/Microsoft.Synapse/workspaces/sqlcrudtest-2080/sqlPools/sqlcrudtest-9187/workloadGroups/wlm_workloadgroup/workloadClassifiers/wlm_classifier",
+ "name": "wlm_classifier",
+ "type": "Microsoft.Synapse/workspaces/sqlPools/workloadGroups/workloadClassifiers"
+ }
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetSqlPoolWorkloadGroupWorkloadClassifierList.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetSqlPoolWorkloadGroupWorkloadClassifierList.json
new file mode 100644
index 000000000000..99a95126d40f
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetSqlPoolWorkloadGroupWorkloadClassifierList.json
@@ -0,0 +1,57 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "sqlcrudtest-6852",
+ "workspaceName": "sqlcrudtest-2080",
+ "sqlPoolName": "sqlcrudtest-9187",
+ "workloadGroupName": "wlm_workloadgroup",
+ "api-version": "2019-06-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "memberName": "dbo",
+ "label": "",
+ "context": "",
+ "startTime": "",
+ "endTime": "",
+ "importance": "high"
+ },
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/sqlcrudtest-6852/providers/Microsoft.Synapse/workspaces/sqlcrudtest-2080/sqlPools/sqlcrudtest-9187/workloadGroups/wlm_workloadgroup/workloadClassifiers/classifier3",
+ "name": "classifier3",
+ "type": "Microsoft.Synapse/workspaces/sqlPools/workloadGroups/workloadClassifiers"
+ },
+ {
+ "properties": {
+ "memberName": "dbo",
+ "label": "test_label",
+ "context": "test_context",
+ "startTime": "12:00",
+ "endTime": "14:00",
+ "importance": "high"
+ },
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/sqlcrudtest-6852/providers/Microsoft.Synapse/workspaces/sqlcrudtest-2080/sqlPools/sqlcrudtest-9187/workloadGroups/wlm_workloadgroup/workloadClassifiers/classifier1",
+ "name": "classifier1",
+ "type": "Microsoft.Synapse/workspaces/sqlPools/workloadGroups/workloadClassifiers"
+ },
+ {
+ "properties": {
+ "memberName": "dbo",
+ "label": "",
+ "context": "",
+ "startTime": "11:00",
+ "endTime": "17:00",
+ "importance": "high"
+ },
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/sqlcrudtest-6852/providers/Microsoft.Synapse/workspaces/sqlcrudtest-2080/sqlPools/sqlcrudtest-9187/workloadGroups/wlm_workloadgroup/workloadClassifiers/classifier2",
+ "name": "classifier2",
+ "type": "Microsoft.Synapse/workspaces/sqlPools/workloadGroups/workloadClassifiers"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetWorkspace.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetWorkspace.json
index ea7289112cc0..c5c388a221c7 100644
--- a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetWorkspace.json
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetWorkspace.json
@@ -28,9 +28,20 @@
"740239CE-A25B-485B-86A0-262F29F6EBDB"
]
},
+ "babylonConfiguration": {
+ "babylonResourceId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroup1/providers/Microsoft.ProjectBabylon/accounts/accountname1"
+ },
"sqlAdministratorLogin": "login",
- "sqlAdministratorLoginPassword": "password",
"managedResourceGroupName": "resourceGroup2",
+ "workspaceRepositoryConfiguration": {
+ "type": "FactoryGitHubConfiguration",
+ "hostName": "",
+ "accountName": "myGithubAccount",
+ "projectName": "myProject",
+ "repositoryName": "myRepository",
+ "collaborationBranch": "master",
+ "rootFolder": "/"
+ },
"provisioningState": "Succeeded",
"privateEndpointConnections": [
{
@@ -50,8 +61,10 @@
}
}
],
+ "workspaceUID": "999b999q-b888-4b44-bacd-2c222cc2222d",
"extraProperties": {
- "IsScopeEnabled": "false"
+ "IsScopeEnabled": "false",
+ "WorkspaceType": "Normal"
}
},
"tags": {
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetWorkspaceManagedSqlExtendedServerBlobAuditingSettings.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetWorkspaceManagedSqlExtendedServerBlobAuditingSettings.json
new file mode 100644
index 000000000000..4cbbca5e80f1
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetWorkspaceManagedSqlExtendedServerBlobAuditingSettings.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "wsg-7398",
+ "workspaceName": "testWorkspace",
+ "blobAuditingPolicyName": "default",
+ "api-version": "2019-06-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/wsg-7398/providers/Microsoft.Synapse/workspaces/testWorkspace/extendedAuditingSettings/default",
+ "name": "default",
+ "type": "Microsoft.Synapse/workspaces/extendedAuditingSettings",
+ "properties": {
+ "state": "Disabled",
+ "storageEndpoint": "",
+ "retentionDays": 0,
+ "auditActionsAndGroups": [],
+ "storageAccountSubscriptionId": "00000000-0000-0000-0000-000000000000",
+ "isStorageSecondaryKeyInUse": false,
+ "predicateExpression": "object_name = 'SensitiveData'",
+ "isAzureMonitorTargetEnabled": false
+ }
+ }
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetWorkspaceManagedSqlServerBlobAuditingSettings.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetWorkspaceManagedSqlServerBlobAuditingSettings.json
new file mode 100644
index 000000000000..143058e63d04
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetWorkspaceManagedSqlServerBlobAuditingSettings.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "wsg-7398",
+ "workspaceName": "testWorkspace",
+ "blobAuditingPolicyName": "default",
+ "api-version": "2019-06-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/wsg-7398/providers/Microsoft.Synapse/workspaces/testWorkspace/auditingSettings/default",
+ "name": "default",
+ "type": "Microsoft.Synapse/workspaces/auditingSettings",
+ "properties": {
+ "state": "Disabled",
+ "storageEndpoint": "",
+ "retentionDays": 0,
+ "auditActionsAndGroups": [],
+ "storageAccountSubscriptionId": "00000000-0000-0000-0000-000000000000",
+ "isStorageSecondaryKeyInUse": false,
+ "isAzureMonitorTargetEnabled": false
+ }
+ }
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetWorkspaceManagedSqlServerEncryptionProtector.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetWorkspaceManagedSqlServerEncryptionProtector.json
new file mode 100644
index 000000000000..c07918dcb4ee
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetWorkspaceManagedSqlServerEncryptionProtector.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "wsg-7398",
+ "workspaceName": "testWorkspace",
+ "encryptionProtectorName": "current",
+ "api-version": "2019-06-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/wsg-7398/providers/Microsoft.Synapse/workspaces/testWorkspace/encryptionProtector/current",
+ "name": "current",
+ "type": "Microsoft.Synapse/workspaces/encryptionProtector",
+ "location": "Japan East",
+ "kind": "azurekeyvault",
+ "properties": {
+ "serverKeyName": "someVault_someKey_01234567890123456789012345678901",
+ "serverKeyType": "AzureKeyVault",
+ "uri": "https://someVault.vault.azure.net/keys/someKey/01234567890123456789012345678901"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetWorkspaceManagedSqlServerEncryptionProtectorList.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetWorkspaceManagedSqlServerEncryptionProtectorList.json
new file mode 100644
index 000000000000..f69187bfe623
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetWorkspaceManagedSqlServerEncryptionProtectorList.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "wsg-7398",
+ "workspaceName": "testWorkspace",
+ "api-version": "2019-06-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/wsg-7398/providers/Microsoft.Synapse/workspaces/testWorkspace/encryptionProtector/current",
+ "name": "current",
+ "type": "Microsoft.Synapse/workspaces/encryptionProtector",
+ "location": "Japan East",
+ "kind": "azurekeyvault",
+ "properties": {
+ "serverKeyName": "someVault_someKey_01234567890123456789012345678901",
+ "serverKeyType": "AzureKeyVault",
+ "uri": "https://someVault.vault.azure.net/keys/someKey/01234567890123456789012345678901"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetWorkspaceManagedSqlServerRecoverableSqlPool.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetWorkspaceManagedSqlServerRecoverableSqlPool.json
new file mode 100644
index 000000000000..95ff8af660b6
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetWorkspaceManagedSqlServerRecoverableSqlPool.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "wsg-7398",
+ "workspaceName": "testWorkspace",
+ "sqlComputeName": "recoverableSqlpools-1235",
+ "api-version": "2019-06-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/wsg-7398/providers/Microsoft.Synapse/workspaces/testWorkspace/recoverableSqlpools/recoverableSqlpools-1235",
+ "name": "recoverableSqlpools-1235",
+ "type": "Microsoft.Synapse/workspaces/recoverableSqlpools",
+ "properties": {
+ "edition": "Standard",
+ "serviceLevelObjective": "S0",
+ "lastAvailableBackupDate": "2017-05-26T01:06:29.78Z",
+ "elasticPoolName": null
+ }
+ }
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetWorkspaceManagedSqlServerSecurityAlertPolicy.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetWorkspaceManagedSqlServerSecurityAlertPolicy.json
new file mode 100644
index 000000000000..93b521cd3321
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetWorkspaceManagedSqlServerSecurityAlertPolicy.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "wsg-7398",
+ "workspaceName": "testWorkspace",
+ "securityAlertPolicyName": "Default",
+ "api-version": "2019-06-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/wsg-7398/providers/Microsoft.Synapse/workspaces/testWorkspace/securityAlertPolicies/Default",
+ "name": "Default",
+ "type": "Microsoft.Synapse/workspaces/securityAlertPolicies",
+ "properties": {
+ "state": "Disabled",
+ "emailAccountAdmins": true,
+ "emailAddresses": [
+ "test@microsoft.com;user@microsoft.com"
+ ],
+ "disabledAlerts": [
+ "Access_Anomaly"
+ ],
+ "creationTime": "2020-10-23T04:52:49.52Z",
+ "retentionDays": 0,
+ "storageAccountAccessKey": "",
+ "storageEndpoint": "https://mystorage.blob.core.windows.net"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetWorkspaceManagedSqlServerVulnerabilityAssessment.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetWorkspaceManagedSqlServerVulnerabilityAssessment.json
new file mode 100644
index 000000000000..4292b7b45ded
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetWorkspaceManagedSqlServerVulnerabilityAssessment.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "wsg-7398",
+ "workspaceName": "testWorkspace",
+ "vulnerabilityAssessmentName": "default",
+ "api-version": "2019-06-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/wsg-7398/providers/Microsoft.Synapse/workspaces/testWorkspace/vulnerabilityAssessments/default",
+ "name": "default",
+ "type": "Microsoft.Synapse/workspaces/vulnerabilityAssessments",
+ "properties": {
+ "storageContainerPath": "https://myStorage.blob.core.windows.net/vulnerability-assessment/",
+ "recurringScans": {
+ "isEnabled": true,
+ "emailSubscriptionAdmins": true,
+ "emails": [
+ "email1@mail.com",
+ "email2@mail.com"
+ ]
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/IntegrationRuntimes_GetMonitoringData.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/IntegrationRuntimeMonitoringData_List.json
similarity index 100%
rename from specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/IntegrationRuntimes_GetMonitoringData.json
rename to specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/IntegrationRuntimeMonitoringData_List.json
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/IntegrationRuntimeObjectMetadata_Get.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/IntegrationRuntimeObjectMetadata_List.json
similarity index 100%
rename from specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/IntegrationRuntimeObjectMetadata_Get.json
rename to specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/IntegrationRuntimeObjectMetadata_List.json
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/IntegrationRuntimes_DisableInteractiveQuery.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/IntegrationRuntimes_DisableInteractiveQuery.json
new file mode 100644
index 000000000000..b6638ec59d52
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/IntegrationRuntimes_DisableInteractiveQuery.json
@@ -0,0 +1,21 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-12345678abc",
+ "resourceGroupName": "exampleResourceGroup",
+ "workspaceName": "exampleWorkspace",
+ "integrationRuntimeName": "exampleManagedIntegrationRuntime",
+ "api-version": "2019-06-01-preview"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "default": {
+ "body": {
+ "error": {
+ "code": "Error code",
+ "message": "Error message"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/IntegrationRuntimes_EnableInteractiveQuery.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/IntegrationRuntimes_EnableInteractiveQuery.json
new file mode 100644
index 000000000000..b6638ec59d52
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/IntegrationRuntimes_EnableInteractiveQuery.json
@@ -0,0 +1,21 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-12345678abc",
+ "resourceGroupName": "exampleResourceGroup",
+ "workspaceName": "exampleWorkspace",
+ "integrationRuntimeName": "exampleManagedIntegrationRuntime",
+ "api-version": "2019-06-01-preview"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "default": {
+ "body": {
+ "error": {
+ "code": "Error code",
+ "message": "Error message"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/ListKeysInWorkspace.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/ListKeysInWorkspace.json
new file mode 100644
index 000000000000..0d5ec5d9d04f
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/ListKeysInWorkspace.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "subscriptionId": "01234567-89ab-4def-0123-456789abcdef",
+ "resourceGroupName": "ExampleResourceGroup",
+ "workspaceName": "ExampleWorkspace",
+ "api-version": "2019-06-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/01234567-89ab-4def-0123-456789abcdef/resourceGroups/ExampleResourceGroup/providers/Microsoft.Synapse/workspaces/ExampleWorkspace/keys/key1",
+ "name": "key1",
+ "type": "Microsoft.Synapse/workspaces/keys",
+ "properties": {
+ "keyVaultUrl": "https://vault.azure.net/keys/somesecret1",
+ "isActiveCMK": false
+ }
+ },
+ {
+ "id": "/subscriptions/01234567-89ab-4def-0123-456789abcdef/resourceGroups/ExampleResourceGroup/providers/Microsoft.Synapse/workspaces/ExampleWorkspace/keys/key2",
+ "name": "key2",
+ "type": "Microsoft.Synapse/workspaces/keys",
+ "properties": {
+ "keyVaultUrl": "https://vault.azure.net/keys/somesecret2",
+ "isActiveCMK": true
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/ListWorkspaceManagedSqlServerBlobAuditingSettings.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/ListWorkspaceManagedSqlServerBlobAuditingSettings.json
new file mode 100644
index 000000000000..d7f9ef63de9a
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/ListWorkspaceManagedSqlServerBlobAuditingSettings.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "wsg-7398",
+ "workspaceName": "testWorkspace",
+ "api-version": "2019-06-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/wsg-7398/providers/Microsoft.Synapse/workspaces/testWorkspace/auditingSettings/default",
+ "name": "default",
+ "type": "Microsoft.Synapse/workspaces/auditingSettings",
+ "properties": {
+ "state": "Disabled",
+ "storageEndpoint": "",
+ "retentionDays": 0,
+ "auditActionsAndGroups": [],
+ "storageAccountSubscriptionId": "00000000-0000-0000-0000-000000000000",
+ "isStorageSecondaryKeyInUse": false,
+ "isAzureMonitorTargetEnabled": false
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/ListWorkspaceManagedSqlServerExtendedBlobAuditingSettings.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/ListWorkspaceManagedSqlServerExtendedBlobAuditingSettings.json
new file mode 100644
index 000000000000..c9b58455b4c5
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/ListWorkspaceManagedSqlServerExtendedBlobAuditingSettings.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "wsg-7398",
+ "workspaceName": "testWorkspace",
+ "api-version": "2019-06-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/wsg-7398/providers/Microsoft.Synapse/workspaces/testWorkspace/extendedAuditingSettings/default",
+ "name": "default",
+ "type": "Microsoft.Synapse/workspaces/extendedAuditingSettings",
+ "properties": {
+ "state": "Disabled",
+ "storageEndpoint": "",
+ "retentionDays": 0,
+ "auditActionsAndGroups": [],
+ "storageAccountSubscriptionId": "00000000-0000-0000-0000-000000000000",
+ "isStorageSecondaryKeyInUse": false,
+ "predicateExpression": "object_name = 'SensitiveData'",
+ "isAzureMonitorTargetEnabled": false
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/ListWorkspaceManagedSqlServerRecoverableSqlPool.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/ListWorkspaceManagedSqlServerRecoverableSqlPool.json
new file mode 100644
index 000000000000..64d5915bbea8
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/ListWorkspaceManagedSqlServerRecoverableSqlPool.json
@@ -0,0 +1,49 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "wsg-7398",
+ "workspaceName": "testWorkspace",
+ "api-version": "2019-06-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/wsg-7398/providers/Microsoft.Synapse/workspaces/testWorkspace/recoverableSqlpools/recoverableSqlpools-1235",
+ "name": "recoverableSqlpools-1235",
+ "type": "Microsoft.Synapse/workspaces/recoverableSqlpools",
+ "properties": {
+ "edition": "Standard",
+ "serviceLevelObjective": "S0",
+ "lastAvailableBackupDate": "2017-05-26T01:06:29.78Z",
+ "elasticPoolName": null
+ }
+ },
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/wsg-7398/providers/Microsoft.Synapse/workspaces/testWorkspace/recoverableSqlpools/recoverableSqlpools-9231",
+ "name": "recoverableSqlpools-9231",
+ "type": "Microsoft.Synapse/workspaces/recoverableSqlpools",
+ "properties": {
+ "edition": "Premium",
+ "serviceLevelObjective": "P1",
+ "lastAvailableBackupDate": "2017-05-26T03:20:31.78Z",
+ "elasticPoolName": null
+ }
+ },
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/wsg-7398/providers/Microsoft.Synapse/workspaces/testWorkspace/recoverableSqlpools/recoverableSqlpools-0342",
+ "name": "recoverableSqlpools-0342",
+ "type": "Microsoft.Synapse/workspaces/recoverableSqlpools",
+ "properties": {
+ "edition": "Basic",
+ "serviceLevelObjective": "Basic",
+ "lastAvailableBackupDate": "2017-05-24T02:06:18.78Z",
+ "elasticPoolName": null
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/ListWorkspaceManagedSqlServerSecurityAlertPolicies.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/ListWorkspaceManagedSqlServerSecurityAlertPolicies.json
new file mode 100644
index 000000000000..87c12dec00b6
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/ListWorkspaceManagedSqlServerSecurityAlertPolicies.json
@@ -0,0 +1,35 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "wsg-7398",
+ "workspaceName": "testWorkspace",
+ "api-version": "2019-06-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/wsg-7398/providers/Microsoft.Synapse/workspaces/testWorkspace/securityAlertPolicies",
+ "name": "Default",
+ "type": "Microsoft.Synapse/workspaces/securityAlertPolicies",
+ "properties": {
+ "state": "Disabled",
+ "emailAccountAdmins": true,
+ "emailAddresses": [
+ "test@microsoft.com;user@microsoft.com"
+ ],
+ "disabledAlerts": [
+ "Access_Anomaly"
+ ],
+ "creationTime": "2020-10-23T04:52:49.52Z",
+ "retentionDays": 0,
+ "storageAccountAccessKey": "",
+ "storageEndpoint": "https://mystorage.blob.core.windows.net"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/ListWorkspaceManagedSqlServerUsages.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/ListWorkspaceManagedSqlServerUsages.json
new file mode 100644
index 000000000000..8a6df1a9fdba
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/ListWorkspaceManagedSqlServerUsages.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "wsg-7398",
+ "workspaceName": "testWorkspace",
+ "api-version": "2019-06-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "server_dtu_quota",
+ "resourceName": "testWorkspace",
+ "displayName": "Database Throughput Unit Quota",
+ "currentValue": 0,
+ "limit": 45000,
+ "unit": "DTUs",
+ "nextResetTime": null
+ },
+ {
+ "name": "server_dtu_quota_current",
+ "resourceName": "testWorkspace",
+ "displayName": "Database Throughput Unit Quota",
+ "currentValue": 0,
+ "limit": 45000,
+ "unit": "DTUs",
+ "nextResetTime": null
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/ListWorkspaceManagedSqlServerVulnerabilityAssessmentPolicies.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/ListWorkspaceManagedSqlServerVulnerabilityAssessmentPolicies.json
new file mode 100644
index 000000000000..faf453ad0851
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/ListWorkspaceManagedSqlServerVulnerabilityAssessmentPolicies.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "wsg-7398",
+ "workspaceName": "testWorkspace",
+ "api-version": "2019-06-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/wsg-7398/providers/Microsoft.Synapse/workspaces/testWorkspace/vulnerabilityAssessments/default",
+ "name": "default",
+ "type": "Microsoft.Synapse/workspaces/vulnerabilityAssessments",
+ "properties": {
+ "storageContainerPath": "https://myStorage.blob.core.windows.net/vulnerability-assessment/",
+ "recurringScans": {
+ "isEnabled": true,
+ "emailSubscriptionAdmins": true,
+ "emails": [
+ "email1@mail.com",
+ "email2@mail.com"
+ ]
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/ListWorkspacesInSubscription.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/ListWorkspacesInSubscription.json
index 36f8be349aab..4f7622aa5fff 100644
--- a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/ListWorkspacesInSubscription.json
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/ListWorkspacesInSubscription.json
@@ -22,9 +22,9 @@
"sql": "workspace1.sql.projectarcadia.net"
},
"sqlAdministratorLogin": "login",
- "sqlAdministratorLoginPassword": "password",
"managedResourceGroupName": "resourceGroup2",
- "provisioningState": "Succeeded"
+ "provisioningState": "Succeeded",
+ "workspaceUID": "999b999q-b888-4b44-bacd-2c222cc2222d"
},
"tags": {
"key": "value"
@@ -45,9 +45,9 @@
"sql": "workspace2.sql.projectarcadia.net"
},
"sqlAdministratorLogin": "login",
- "sqlAdministratorLoginPassword": "password",
"managedResourceGroupName": "resourceGroup2",
- "provisioningState": "Succeeded"
+ "provisioningState": "Succeeded",
+ "workspaceUID": "999b999q-b888-4b44-bacd-2c222cc2222d"
},
"tags": {
"key": "value"
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/PrivateEndpointConnectionsPrivateLinkHub_List.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/PrivateEndpointConnectionsPrivateLinkHub_List.json
new file mode 100644
index 000000000000..bf10f43a771a
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/PrivateEndpointConnectionsPrivateLinkHub_List.json
@@ -0,0 +1,44 @@
+{
+ "parameters": {
+ "subscriptionId": "48b08652-d7a1-4d52-b13f-5a2471dce57b",
+ "resourceGroupName": "gh-res-grp",
+ "privateLinkHubName": "pe0",
+ "api-version": "2019-06-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "pe0-f3ed30f5-338c-4855-a542-24a403694ad2",
+ "type": "Microsoft.Synapse/privateLinkHubs/privateEndpointConnections",
+ "id": "/subscriptions/48b08652-d7a1-4d52-b13f-5a2471dce57b/resourceGroups/gh-res-grp/providers/Microsoft.Synapse/privateLinkHubs/plh900/privateEndpointConnections/pe0-f3ed30f5-338c-4855-a542-24a403694ad2",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateEndpoint": {
+ "id": "/subscriptions/48b08652-d7a1-4d52-b13f-5a2471dce57b/resourceGroups/gh-res-grp/providers/Microsoft.Network/privateEndpoints/pe0"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved"
+ }
+ }
+ },
+ {
+ "name": "pe-xbox-3e425dc3-edd9-434c-9bca-3ac6cecbc7e4",
+ "type": "Microsoft.Synapse/privateLinkHubs/privateEndpointConnections",
+ "id": "/subscriptions/48b08652-d7a1-4d52-b13f-5a2471dce57b/resourceGroups/gh-res-grp/providers/Microsoft.Synapse/privateLinkHubs/plh900/privateEndpointConnections/pe-xbox-3e425dc3-edd9-434c-9bca-3ac6cecbc7e4",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateEndpoint": {
+ "id": "/subscriptions/48b08652-d7a1-4d52-b13f-5a2471dce57b/resourceGroups/gh-res-grp/providers/Microsoft.Network/privateEndpoints/pe-xbox"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/PutWorkspaceManagedSqlServerVulnerabilityAssessmentWithAllParameters.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/PutWorkspaceManagedSqlServerVulnerabilityAssessmentWithAllParameters.json
new file mode 100644
index 000000000000..caa3f6343e8f
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/PutWorkspaceManagedSqlServerVulnerabilityAssessmentWithAllParameters.json
@@ -0,0 +1,62 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "wsg-7398",
+ "workspaceName": "testWorkspace",
+ "vulnerabilityAssessmentName": "default",
+ "api-version": "2019-06-01-preview",
+ "parameters": {
+ "properties": {
+ "storageContainerPath": "https://myStorage.blob.core.windows.net/vulnerability-assessment/",
+ "storageContainerSasKey": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
+ "storageAccountAccessKey": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
+ "recurringScans": {
+ "isEnabled": true,
+ "emailSubscriptionAdmins": true,
+ "emails": [
+ "email1@mail.com",
+ "email2@mail.com"
+ ]
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/wsg-7398/providers/Microsoft.Synapse/workspaces/testWorkspace/vulnerabilityAssessments/default",
+ "name": "default",
+ "type": "Microsoft.Synapse/workspaces/vulnerabilityAssessments",
+ "properties": {
+ "storageContainerPath": "https://myStorage.blob.core.windows.net/vulnerability-assessment/",
+ "recurringScans": {
+ "isEnabled": true,
+ "emailSubscriptionAdmins": true,
+ "emails": [
+ "email1@mail.com",
+ "email2@mail.com"
+ ]
+ }
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/wsg-7398/providers/Microsoft.Synapse/workspaces/testWorkspace/vulnerabilityAssessments/default",
+ "name": "default",
+ "type": "Microsoft.Synapse/workspaces/vulnerabilityAssessments",
+ "properties": {
+ "storageContainerPath": "https://myStorage.blob.core.windows.net/vulnerability-assessment/",
+ "recurringScans": {
+ "isEnabled": true,
+ "emailSubscriptionAdmins": true,
+ "emails": [
+ "email1@mail.com",
+ "email2@mail.com"
+ ]
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/PutWorkspaceMangedSqlServerVulnerabilityAssessmentCreateContainerSasKeyMin.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/PutWorkspaceMangedSqlServerVulnerabilityAssessmentCreateContainerSasKeyMin.json
new file mode 100644
index 000000000000..1b3cb5367a78
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/PutWorkspaceMangedSqlServerVulnerabilityAssessmentCreateContainerSasKeyMin.json
@@ -0,0 +1,47 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "wsg-7398",
+ "workspaceName": "testWorkspace",
+ "vulnerabilityAssessmentName": "default",
+ "api-version": "2019-06-01-preview",
+ "parameters": {
+ "properties": {
+ "storageContainerPath": "https://myStorage.blob.core.windows.net/vulnerability-assessment/",
+ "storageContainerSasKey": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/wsg-7398/providers/Microsoft.Synapse/workspaces/testWorkspace/vulnerabilityAssessments/default",
+ "name": "default",
+ "type": "Microsoft.Synapse/workspaces/vulnerabilityAssessments",
+ "properties": {
+ "storageContainerPath": "https://myStorage.blob.core.windows.net/vulnerability-assessment/",
+ "recurringScans": {
+ "isEnabled": true,
+ "emailSubscriptionAdmins": false,
+ "emails": []
+ }
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/wsg-7398/providers/Microsoft.Synapse/workspaces/testWorkspace/vulnerabilityAssessments/default",
+ "name": "default",
+ "type": "Microsoft.Synapse/workspaces/vulnerabilityAssessments",
+ "properties": {
+ "storageContainerPath": "https://myStorage.blob.core.windows.net/vulnerability-assessment/",
+ "recurringScans": {
+ "isEnabled": true,
+ "emailSubscriptionAdmins": false,
+ "emails": []
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/PutWorkspaceMangedSqlServerVulnerabilityAssessmentCreateStorageAccessKeyMin.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/PutWorkspaceMangedSqlServerVulnerabilityAssessmentCreateStorageAccessKeyMin.json
new file mode 100644
index 000000000000..78a533156161
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/PutWorkspaceMangedSqlServerVulnerabilityAssessmentCreateStorageAccessKeyMin.json
@@ -0,0 +1,47 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "wsg-7398",
+ "workspaceName": "testWorkspace",
+ "vulnerabilityAssessmentName": "default",
+ "api-version": "2019-06-01-preview",
+ "parameters": {
+ "properties": {
+ "storageContainerPath": "https://myStorage.blob.core.windows.net/vulnerability-assessment/",
+ "storageAccountAccessKey": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/wsg-7398/providers/Microsoft.Synapse/workspaces/testWorkspace/vulnerabilityAssessments/default",
+ "name": "default",
+ "type": "Microsoft.Synapse/workspaces/vulnerabilityAssessments",
+ "properties": {
+ "storageContainerPath": "https://myStorage.blob.core.windows.net/vulnerability-assessment/",
+ "recurringScans": {
+ "isEnabled": true,
+ "emailSubscriptionAdmins": false,
+ "emails": []
+ }
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/wsg-7398/providers/Microsoft.Synapse/workspaces/testWorkspace/vulnerabilityAssessments/default",
+ "name": "default",
+ "type": "Microsoft.Synapse/workspaces/vulnerabilityAssessments",
+ "properties": {
+ "storageContainerPath": "https://myStorage.blob.core.windows.net/vulnerability-assessment/",
+ "recurringScans": {
+ "isEnabled": true,
+ "emailSubscriptionAdmins": false,
+ "emails": []
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/RestorableDroppedSqlPoolGet.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/RestorableDroppedSqlPoolGet.json
new file mode 100644
index 000000000000..0c3fc6cb9104
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/RestorableDroppedSqlPoolGet.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "restorabledroppeddatabasetest-1257",
+ "workspaceName": "restorabledroppeddatabasetest-2389",
+ "restorableDroppedSqlPoolId": "restorabledroppeddatabasetest-7654,131403269876900000",
+ "api-version": "2019-06-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/restorabledroppeddatabasetest-1257/providers/Microsoft.Synapse/workspaces/restorabledroppeddatabasetest-2389/restorableDroppedSqlPools/restorabledroppeddatabasetest-7654,131403269876900000",
+ "name": "restorabledroppeddatabasetest-7654,131403269876900000",
+ "type": "Microsoft.Synapse/workspaces/restorableDroppedSqlPools",
+ "location": "Japan East",
+ "properties": {
+ "databaseName": "restorabledroppeddatabasetest-7654",
+ "edition": "Datawarehouse",
+ "maxSizeBytes": "2147483648",
+ "serviceLevelObjective": "DW100c",
+ "elasticPoolName": null,
+ "creationDate": "2017-02-10T00:56:19.2Z",
+ "deletionDate": "2017-05-27T02:49:47.69Z",
+ "earliestRestoreDate": "2017-05-20T02:49:47.69Z"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/RestorableDroppedSqlpoolList.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/RestorableDroppedSqlpoolList.json
new file mode 100644
index 000000000000..d62de7d3ef58
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/RestorableDroppedSqlpoolList.json
@@ -0,0 +1,48 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "restorabledroppeddatabasetest-1349",
+ "workspaceName": "restorabledroppeddatabasetest-1840",
+ "api-version": "2019-06-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/restorabledroppeddatabasetest-1349/providers/Microsoft.Synapse/workspaces/restorabledroppeddatabasetest-1840/restorableDroppedSqlPools/restorabledroppeddatabasetest-1345,131403269876900000",
+ "name": "restorabledroppeddatabasetest-1345,131403269876900000",
+ "type": "Microsoft.Synapse/workspaces/restorableDroppedSqlPools",
+ "location": "Japan East",
+ "properties": {
+ "databaseName": "restorabledroppeddatabasetest-1345",
+ "edition": "Basic",
+ "maxSizeBytes": "2147483648",
+ "serviceLevelObjective": "Basic",
+ "elasticPoolName": null,
+ "creationDate": "2017-02-10T00:56:19.2Z",
+ "deletionDate": "2017-05-27T02:49:47.69Z",
+ "earliestRestoreDate": "2017-05-20T02:49:47.69Z"
+ }
+ },
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/restorabledroppeddatabasetest-1349/providers/Microsoft.Synapse/workspaces/restorabledroppeddatabasetest-1840/restorableDroppedSqlPools/restorabledroppeddatabasetest-2764,131403249684030000",
+ "name": "restorabledroppeddatabasetest-2764,131403249684030000",
+ "type": "Microsoft.Synapse/workspaces/restorableDroppedSqlPools",
+ "location": "Japan East",
+ "properties": {
+ "databaseName": "restorabledroppeddatabasetest-2764",
+ "edition": "Standard",
+ "maxSizeBytes": "268435456000",
+ "serviceLevelObjective": "S0",
+ "elasticPoolName": null,
+ "creationDate": "2016-05-10T00:56:19.2Z",
+ "deletionDate": "2017-05-27T02:16:08.403Z",
+ "earliestRestoreDate": "2017-04-21T02:49:47.69Z"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/SqlPoolGeoBackupPolicies_List.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/SqlPoolGeoBackupPolicies_List.json
new file mode 100644
index 000000000000..beec5db51981
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/SqlPoolGeoBackupPolicies_List.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "sqlcrudtest-4799",
+ "workspaceName": "sqlcrudtest-5961",
+ "sqlPoolName": "testdw",
+ "api-version": "2019-06-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/sqlcrudtest-4799/providers/Microsoft.Synapse/workspaces/sqlcrudtest-5961/sqlPools/testdw/geoBackupPolicies/Default",
+ "name": "Default",
+ "type": "Microsoft.Synapse/workspaces/sqlPools/geoBackupPolicies",
+ "location": "Central US",
+ "kind": null,
+ "properties": {
+ "state": "Enabled",
+ "storageType": "Premium"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/SqlPoolReplicationLinks_GetByName.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/SqlPoolReplicationLinks_GetByName.json
new file mode 100644
index 000000000000..99ddf384d276
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/SqlPoolReplicationLinks_GetByName.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "sqlcrudtest-4799",
+ "workspaceName": "sqlcrudtest-6440",
+ "sqlPoolName": "testdb",
+ "linkId": "5b301b68-03f6-4b26-b0f4-73ebb8634238",
+ "api-version": "2019-06-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/sqlcrudtest-4799/providers/Microsoft.Synapse/workspaces/sqlcrudtest-6440/sqlPools/testdb/replicationLinks/5b301b68-03f6-4b26-b0f4-73ebb8634238",
+ "name": "5b301b68-03f6-4b26-b0f4-73ebb8634238",
+ "type": "Microsoft.Synapse/workspaces/sqlPools/replicationLinks",
+ "location": "Japan East",
+ "properties": {
+ "partnerServer": "sqlcrudtest-5961",
+ "partnerDatabase": "testdb",
+ "partnerLocation": "Japan East",
+ "role": "Secondary",
+ "partnerRole": "Primary",
+ "replicationMode": "ASYNC",
+ "startTime": "2017-02-10T01:44:27.117Z",
+ "percentComplete": 100,
+ "replicationState": "CATCH_UP",
+ "isTerminationAllowed": true
+ }
+ }
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/SqlPoolRestorePointsDelete.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/SqlPoolRestorePointsDelete.json
new file mode 100644
index 000000000000..d822108f2419
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/SqlPoolRestorePointsDelete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "Default-SQL-SouthEastAsia",
+ "restorePointName": "131546477590000000",
+ "location": "japaneast",
+ "workspaceName": "testws",
+ "sqlPoolName": "testpool",
+ "api-version": "2019-06-01-preview"
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/SqlPoolRestorePointsGet.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/SqlPoolRestorePointsGet.json
new file mode 100644
index 000000000000..1050659f3a80
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/SqlPoolRestorePointsGet.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "Default-SQL-SouthEastAsia",
+ "restorePointName": "131546477590000000",
+ "location": "japaneast",
+ "workspaceName": "testws",
+ "sqlPoolName": "testpool",
+ "api-version": "2019-06-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/providers/Microsoft.Synapse/workspaces/testws/sqlPools/testpool/restorePoints/131546477590000000",
+ "name": "131546477590000000",
+ "type": "Microsoft.Synapse/workspaces/sqlPools/restorePoints",
+ "location": "japaneast",
+ "properties": {
+ "restorePointType": "DISCRETE",
+ "restorePointCreationDate": "2017-03-10T08:00:00.000Z",
+ "restorePointLabel": "mylabel"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/SqlPoolSecurityAlertPolicies_List.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/SqlPoolSecurityAlertPolicies_List.json
new file mode 100644
index 000000000000..57e4aa2c6e98
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/SqlPoolSecurityAlertPolicies_List.json
@@ -0,0 +1,36 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "securityalert-6852",
+ "workspaceName": "securityalert-2080",
+ "sqlPoolName": "testdb",
+ "api-version": "2019-06-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/securityalert-6852/providers/Microsoft.Synapse/workspaces/securityalert-2080/sqlPools/testdb",
+ "name": "default",
+ "type": "Microsoft.Synapse/workspaces/sqlPools/securityAlertPolicies",
+ "properties": {
+ "state": "Enabled",
+ "emailAccountAdmins": true,
+ "emailAddresses": [
+ "test@microsoft.com",
+ "user@microsoft.com"
+ ],
+ "disabledAlerts": [
+ "Usage_Anomaly"
+ ],
+ "retentionDays": 0,
+ "storageAccountAccessKey": "",
+ "creationTime": "2018-10-08T00:00:00Z"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/UpdateSqlPool.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/UpdateSqlPool.json
index 14abbbfe6c6f..0d6c2c85bb07 100644
--- a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/UpdateSqlPool.json
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/UpdateSqlPool.json
@@ -48,7 +48,6 @@
"creationDate": "1970-01-01T00:00:00.000Z"
}
}
- },
- "202": {}
+ }
}
}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/UpdateWorkspace.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/UpdateWorkspace.json
index c64c464f96f3..c14d0d83dd36 100644
--- a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/UpdateWorkspace.json
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/UpdateWorkspace.json
@@ -11,15 +11,27 @@
"identity": {
"type": "SystemAssigned"
},
- "managedVirtualNetworkSettings": {
- "preventDataExfiltration": false,
- "linkedAccessCheckOnTargetResource": false,
- "allowedAadTenantIdsForLinking": [
- "740239CE-A25B-485B-86A0-262F29F6EBDB"
- ]
- },
"properties": {
- "sqlAdministratorLoginPassword": "password"
+ "sqlAdministratorLoginPassword": "password",
+ "managedVirtualNetworkSettings": {
+ "preventDataExfiltration": false,
+ "linkedAccessCheckOnTargetResource": false,
+ "allowedAadTenantIdsForLinking": [
+ "740239CE-A25B-485B-86A0-262F29F6EBDB"
+ ]
+ },
+ "workspaceRepositoryConfiguration": {
+ "type": "FactoryGitHubConfiguration",
+ "hostName": "",
+ "accountName": "adifferentacount",
+ "projectName": "myproject",
+ "repositoryName": "myrepository",
+ "collaborationBranch": "master",
+ "rootFolder": "/"
+ },
+ "babylonConfiguration": {
+ "babylonResourceId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroup1/providers/Microsoft.ProjectBabylon/accounts/accountname1"
+ }
}
}
},
@@ -42,14 +54,17 @@
"740239CE-A25B-485B-86A0-262F29F6EBDB"
]
},
+ "babylonConfiguration": {
+ "babylonResourceId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroup1/providers/Microsoft.ProjectBabylon/accounts/accountname1"
+ },
"connectivityEndpoints": {
"dev": "workspace1.dev.projectarcadia.net",
"sql": "workspace1.sql.projectarcadia.net"
},
"sqlAdministratorLogin": "login",
- "sqlAdministratorLoginPassword": "password",
"managedResourceGroupName": "resourceGroup2",
- "provisioningState": "Succeeded"
+ "provisioningState": "Succeeded",
+ "workspaceUID": "999b999q-b888-4b44-bacd-2c222cc2222d"
},
"tags": {
"key": "value"
@@ -74,14 +89,17 @@
"740239CE-A25B-485B-86A0-262F29F6EBDB"
]
},
+ "babylonConfiguration": {
+ "babylonResourceId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroup1/providers/Microsoft.ProjectBabylon/accounts/accountname1"
+ },
"connectivityEndpoints": {
"dev": "workspace1.dev.projectarcadia.net",
"sql": "workspace1.sql.projectarcadia.net"
},
"sqlAdministratorLogin": "login",
- "sqlAdministratorLoginPassword": "password",
"managedResourceGroupName": "resourceGroup2",
- "provisioningState": "Provisioning"
+ "provisioningState": "Provisioning",
+ "workspaceUID": "999b999q-b888-4b44-bacd-2c222cc2222d"
},
"tags": {
"key": "value"
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/WorkspaceManagedSqlServerEncryptionProtectorCreateOrUpdateKeyVault.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/WorkspaceManagedSqlServerEncryptionProtectorCreateOrUpdateKeyVault.json
new file mode 100644
index 000000000000..c10115933062
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/WorkspaceManagedSqlServerEncryptionProtectorCreateOrUpdateKeyVault.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "wsg-7398",
+ "workspaceName": "testWorkspace",
+ "encryptionProtectorName": "current",
+ "api-version": "2019-06-01-preview",
+ "parameters": {
+ "properties": {
+ "serverKeyType": "AzureKeyVault",
+ "serverKeyName": "someVault_someKey_01234567890123456789012345678901"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/wsg-7398/providers/Microsoft.Synapse/workspaces/testWorkspace/encryptionProtector/current",
+ "name": "current",
+ "type": "Microsoft.Synapse/workspaces/encryptionProtector",
+ "location": "West US",
+ "kind": "azurekeyvault",
+ "properties": {
+ "serverKeyName": "someVault_someKey_01234567890123456789012345678901",
+ "serverKeyType": "AzureKeyVault"
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/WorkspaceManagedSqlServerEncryptionProtectorCreateOrUpdateServiceManaged.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/WorkspaceManagedSqlServerEncryptionProtectorCreateOrUpdateServiceManaged.json
new file mode 100644
index 000000000000..f48cac0d3c5e
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/WorkspaceManagedSqlServerEncryptionProtectorCreateOrUpdateServiceManaged.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "wsg-7398",
+ "workspaceName": "testWorkspace",
+ "encryptionProtectorName": "current",
+ "api-version": "2019-06-01-preview",
+ "parameters": {
+ "properties": {
+ "serverKeyType": "ServiceManaged",
+ "serverKeyName": "ServiceManaged"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/wsg-7398/providers/Microsoft.Synapse/workspaces/testWorkspace/encryptionProtector/current",
+ "name": "current",
+ "type": "Microsoft.Synapse/workspaces/encryptionProtector",
+ "location": "West US",
+ "kind": "servicemanaged",
+ "properties": {
+ "serverKeyName": "ServiceManaged",
+ "serverKeyType": "ServiceManaged"
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/WorkspaceManagedSqlServerEncryptionProtectorRevalidate.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/WorkspaceManagedSqlServerEncryptionProtectorRevalidate.json
new file mode 100644
index 000000000000..254d24c738ac
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/WorkspaceManagedSqlServerEncryptionProtectorRevalidate.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "wsg-7398",
+ "workspaceName": "testWorkspace",
+ "encryptionProtectorName": "current",
+ "api-version": "2019-06-01-preview"
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/WorkspaceManagedSqlServerSecurityAlertCreateWithMinParameters.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/WorkspaceManagedSqlServerSecurityAlertCreateWithMinParameters.json
new file mode 100644
index 000000000000..34bd4a13e57c
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/WorkspaceManagedSqlServerSecurityAlertCreateWithMinParameters.json
@@ -0,0 +1,41 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "wsg-7398",
+ "workspaceName": "testWorkspace",
+ "securityAlertPolicyName": "Default",
+ "api-version": "2019-06-01-preview",
+ "parameters": {
+ "properties": {
+ "state": "Disabled",
+ "emailAccountAdmins": true,
+ "storageAccountAccessKey": "sdlfkjabc+sdlfkjsdlkfsjdfLDKFTERLKFDFKLjsdfksjdflsdkfD2342309432849328476458/3RSD==",
+ "storageEndpoint": "https://mystorage.blob.core.windows.net"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/wsg-7398/providers/Microsoft.Synapse/workspaces/testWorkspace/securityAlertPolicies/Default",
+ "name": "Default",
+ "type": "Microsoft.Synapse/workspaces/securityAlertPolicies",
+ "properties": {
+ "state": "Enabled",
+ "emailAccountAdmins": true,
+ "emailAddresses": [
+ ""
+ ],
+ "disabledAlerts": [
+ ""
+ ],
+ "creationTime": "2020-10-23T04:52:49.52Z",
+ "retentionDays": 0,
+ "storageAccountAccessKey": "",
+ "storageEndpoint": "https://mystorage.blob.core.windows.net"
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/WorkspaceManagedSqlServerSecurityAlertWithAllParameters.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/WorkspaceManagedSqlServerSecurityAlertWithAllParameters.json
new file mode 100644
index 000000000000..b001e1077cdc
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/WorkspaceManagedSqlServerSecurityAlertWithAllParameters.json
@@ -0,0 +1,50 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "wsg-7398",
+ "workspaceName": "testWorkspace",
+ "securityAlertPolicyName": "Default",
+ "api-version": "2019-06-01-preview",
+ "parameters": {
+ "properties": {
+ "state": "Enabled",
+ "emailAccountAdmins": true,
+ "emailAddresses": [
+ "testSecurityAlert@microsoft.com"
+ ],
+ "disabledAlerts": [
+ "Access_Anomaly",
+ "Usage_Anomaly"
+ ],
+ "retentionDays": 5,
+ "storageAccountAccessKey": "sdlfkjabc+sdlfkjsdlkfsjdfLDKFTERLKFDFKLjsdfksjdflsdkfD2342309432849328476458/3RSD==",
+ "storageEndpoint": "https://mystorage.blob.core.windows.net"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/wsg-7398/providers/Microsoft.Synapse/workspaces/testWorkspace/securityAlertPolicies/Default",
+ "name": "Default",
+ "type": "Microsoft.Synapse/workspaces/securityAlertPolicies",
+ "properties": {
+ "state": "Enabled",
+ "emailAccountAdmins": true,
+ "emailAddresses": [
+ "testSecurityAlert@microsoft.com"
+ ],
+ "disabledAlerts": [
+ "Access_Anomaly",
+ "Usage_Anomaly"
+ ],
+ "creationTime": "2020-10-23T04:52:49.52Z",
+ "retentionDays": 5,
+ "storageAccountAccessKey": "",
+ "storageEndpoint": "https://mystorage.blob.core.windows.net"
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/firewallRule.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/firewallRule.json
index 67c279d4fc02..8e9c6b662403 100644
--- a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/firewallRule.json
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/firewallRule.json
@@ -49,6 +49,12 @@
"$ref": "#/definitions/IpFirewallRuleInfoListResult"
},
"description": ""
+ },
+ "default": {
+ "schema": {
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
+ },
+ "description": ""
}
},
"consumes": [],
@@ -115,7 +121,7 @@
},
"default": {
"schema": {
- "$ref": "./workspace.json#/definitions/ErrorContract"
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
},
"description": ""
}
@@ -172,6 +178,12 @@
},
"202": {
"description": "Accepted"
+ },
+ "default": {
+ "schema": {
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
+ },
+ "description": ""
}
},
"consumes": [],
@@ -220,7 +232,7 @@
},
"default": {
"schema": {
- "$ref": "./workspace.json#/definitions/ErrorContract"
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
},
"description": ""
}
@@ -279,7 +291,7 @@
},
"default": {
"schema": {
- "$ref": "./workspace.json#/definitions/ErrorContract"
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
},
"description": ""
}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/integrationRuntime.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/integrationRuntime.json
index b5a21da45644..acba0e142fe1 100644
--- a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/integrationRuntime.json
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/integrationRuntime.json
@@ -41,7 +41,7 @@
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ "$ref": "../../../../common/v1/types.json#/parameters/WorkspaceNameParameter"
},
{
"$ref": "#/parameters/IntegrationRuntimeNameParameter"
@@ -101,7 +101,7 @@
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ "$ref": "../../../../common/v1/types.json#/parameters/WorkspaceNameParameter"
},
{
"$ref": "#/parameters/IntegrationRuntimeNameParameter"
@@ -163,7 +163,7 @@
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ "$ref": "../../../../common/v1/types.json#/parameters/WorkspaceNameParameter"
},
{
"$ref": "#/parameters/IntegrationRuntimeNameParameter"
@@ -234,7 +234,7 @@
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ "$ref": "../../../../common/v1/types.json#/parameters/WorkspaceNameParameter"
},
{
"$ref": "#/parameters/IntegrationRuntimeNameParameter"
@@ -290,7 +290,7 @@
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ "$ref": "../../../../common/v1/types.json#/parameters/WorkspaceNameParameter"
},
{
"$ref": "#/parameters/IntegrationRuntimeNameParameter"
@@ -350,7 +350,7 @@
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ "$ref": "../../../../common/v1/types.json#/parameters/WorkspaceNameParameter"
},
{
"$ref": "#/parameters/IntegrationRuntimeNameParameter"
@@ -382,7 +382,7 @@
},
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/integrationRuntimes/{integrationRuntimeName}/getObjectMetadata": {
"post": {
- "operationId": "IntegrationRuntimeObjectMetadata_Get",
+ "operationId": "IntegrationRuntimeObjectMetadata_List",
"summary": "Get integration runtime object metadata",
"description": "Get object metadata from an integration runtime",
"tags": [
@@ -400,7 +400,7 @@
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ "$ref": "../../../../common/v1/types.json#/parameters/WorkspaceNameParameter"
},
{
"$ref": "#/parameters/IntegrationRuntimeNameParameter"
@@ -437,7 +437,7 @@
],
"x-ms-examples": {
"Get integration runtime object metadata": {
- "$ref": "./examples/IntegrationRuntimeObjectMetadata_Get.json"
+ "$ref": "./examples/IntegrationRuntimeObjectMetadata_List.json"
}
}
}
@@ -462,7 +462,7 @@
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ "$ref": "../../../../common/v1/types.json#/parameters/WorkspaceNameParameter"
},
{
"$ref": "#/parameters/IntegrationRuntimeNameParameter"
@@ -518,7 +518,7 @@
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ "$ref": "../../../../common/v1/types.json#/parameters/WorkspaceNameParameter"
},
{
"$ref": "#/parameters/IntegrationRuntimeNameParameter"
@@ -585,7 +585,7 @@
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ "$ref": "../../../../common/v1/types.json#/parameters/WorkspaceNameParameter"
},
{
"$ref": "#/parameters/IntegrationRuntimeNameParameter"
@@ -643,7 +643,7 @@
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ "$ref": "../../../../common/v1/types.json#/parameters/WorkspaceNameParameter"
},
{
"$ref": "#/parameters/IntegrationRuntimeNameParameter"
@@ -693,7 +693,7 @@
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ "$ref": "../../../../common/v1/types.json#/parameters/WorkspaceNameParameter"
}
],
"responses": {
@@ -744,7 +744,7 @@
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ "$ref": "../../../../common/v1/types.json#/parameters/WorkspaceNameParameter"
},
{
"$ref": "#/parameters/IntegrationRuntimeNameParameter"
@@ -797,7 +797,7 @@
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ "$ref": "../../../../common/v1/types.json#/parameters/WorkspaceNameParameter"
},
{
"$ref": "#/parameters/IntegrationRuntimeNameParameter"
@@ -826,6 +826,7 @@
"produces": [
"application/json"
],
+ "x-ms-long-running-operation": true,
"x-ms-examples": {
"Start integration runtime": {
"$ref": "./examples/IntegrationRuntimes_Start.json"
@@ -853,7 +854,7 @@
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ "$ref": "../../../../common/v1/types.json#/parameters/WorkspaceNameParameter"
},
{
"$ref": "#/parameters/IntegrationRuntimeNameParameter"
@@ -915,7 +916,7 @@
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ "$ref": "../../../../common/v1/types.json#/parameters/WorkspaceNameParameter"
},
{
"$ref": "#/parameters/IntegrationRuntimeNameParameter"
@@ -950,7 +951,7 @@
},
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/integrationRuntimes/{integrationRuntimeName}/monitoringData": {
"post": {
- "operationId": "IntegrationRuntimeMonitoringData_Get",
+ "operationId": "IntegrationRuntimeMonitoringData_List",
"summary": "Get integration runtime monitoring data",
"description": "Get monitoring data for an integration runtime",
"tags": [
@@ -968,7 +969,7 @@
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ "$ref": "../../../../common/v1/types.json#/parameters/WorkspaceNameParameter"
},
{
"$ref": "#/parameters/IntegrationRuntimeNameParameter"
@@ -996,7 +997,7 @@
],
"x-ms-examples": {
"Get monitoring data": {
- "$ref": "./examples/IntegrationRuntimes_GetMonitoringData.json"
+ "$ref": "./examples/IntegrationRuntimeMonitoringData_List.json"
}
}
}
@@ -1021,7 +1022,7 @@
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ "$ref": "../../../../common/v1/types.json#/parameters/WorkspaceNameParameter"
},
{
"$ref": "#/parameters/IntegrationRuntimeNameParameter"
@@ -1047,6 +1048,7 @@
"produces": [
"application/json"
],
+ "x-ms-long-running-operation": true,
"x-ms-examples": {
"Stop integration runtime": {
"$ref": "./examples/IntegrationRuntimes_Stop.json"
@@ -1074,7 +1076,7 @@
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ "$ref": "../../../../common/v1/types.json#/parameters/WorkspaceNameParameter"
},
{
"$ref": "#/parameters/IntegrationRuntimeNameParameter"
@@ -1103,6 +1105,7 @@
"produces": [
"application/json"
],
+ "x-ms-long-running-operation": true,
"x-ms-examples": {
"Refresh object metadata": {
"$ref": "./examples/IntegrationRuntimeObjectMetadata_Refresh.json"
@@ -1130,7 +1133,7 @@
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ "$ref": "../../../../common/v1/types.json#/parameters/WorkspaceNameParameter"
},
{
"$ref": "#/parameters/IntegrationRuntimeNameParameter"
@@ -1162,6 +1165,112 @@
}
}
}
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/integrationRuntimes/{integrationRuntimeName}/enableInteractiveQuery": {
+ "post": {
+ "operationId": "IntegrationRuntimes_EnableInteractiveQuery",
+ "description": "Enable interactive query in integration runtime",
+ "tags": [
+ "IntegrationRuntime"
+ ],
+ "deprecated": false,
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../common/v1/types.json#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/IntegrationRuntimeNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "An error response received from the Azure Synapse service.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Stop integration runtime": {
+ "$ref": "./examples/IntegrationRuntimes_EnableInteractiveQuery.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/integrationRuntimes/{integrationRuntimeName}/disableInteractiveQuery": {
+ "post": {
+ "operationId": "IntegrationRuntimes_DisableInteractiveQuery",
+ "description": "Disable interactive query in integration runtime",
+ "tags": [
+ "IntegrationRuntime"
+ ],
+ "deprecated": false,
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../common/v1/types.json#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/IntegrationRuntimeNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "An error response received from the Azure Synapse service.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Stop integration runtime": {
+ "$ref": "./examples/IntegrationRuntimes_DisableInteractiveQuery.json"
+ }
+ }
+ }
}
},
"definitions": {
@@ -1260,11 +1369,13 @@
"numberOfNodes": {
"description": "The required number of nodes for managed integration runtime.",
"type": "integer",
+ "format": "int32",
"minimum": 1
},
"maxParallelExecutionsPerNode": {
"description": "Maximum parallel executions count per node for managed integration runtime.",
"type": "integer",
+ "format": "int32",
"minimum": 1
},
"dataFlowProperties": {
@@ -1299,11 +1410,13 @@
},
"coreCount": {
"description": "Core count of the cluster which will execute data flow job. Supported values are: 8, 16, 32, 48, 80, 144 and 272.",
- "type": "integer"
+ "type": "integer",
+ "format": "int32"
},
"timeToLive": {
"description": "Time to live (in minutes) setting of the cluster which will execute data flow job.",
"type": "integer",
+ "format": "int32",
"minimum": 0
}
},
@@ -1663,7 +1776,8 @@
"type": "object",
"properties": {
"linkedInfo": {
- "$ref": "#/definitions/LinkedIntegrationRuntimeType"
+ "$ref": "#/definitions/LinkedIntegrationRuntimeType",
+ "description": "Linked integration runtime type from data factory"
}
}
},
@@ -1966,6 +2080,11 @@
"type": "string",
"readOnly": true
},
+ "nodeCommunicationChannelEncryptionMode": {
+ "description": "The node communication Channel encryption mode",
+ "type": "string",
+ "readOnly": true
+ },
"internalChannelEncryption": {
"description": "It is used to set the encryption mode for node-node communication channel (when more than 2 self-hosted integration runtime nodes exist).",
"type": "string",
@@ -2222,11 +2341,13 @@
"concurrentJobsLimit": {
"description": "Maximum concurrent jobs on the integration runtime node.",
"type": "integer",
+ "format": "int32",
"readOnly": true
},
"maxConcurrentJobs": {
"description": "The maximum concurrent jobs in this integration runtime.",
"type": "integer",
+ "format": "int32",
"readOnly": true
}
},
@@ -2334,26 +2455,31 @@
"availableMemoryInMB": {
"description": "Available memory (MB) on the integration runtime node.",
"type": "integer",
+ "format": "int32",
"readOnly": true
},
"cpuUtilization": {
"description": "CPU percentage on the integration runtime node.",
"type": "integer",
+ "format": "int32",
"readOnly": true
},
"concurrentJobsLimit": {
"description": "Maximum concurrent jobs on the integration runtime node.",
"type": "integer",
+ "format": "int32",
"readOnly": true
},
"concurrentJobsRunning": {
"description": "The number of jobs currently running on the integration runtime node.",
"type": "integer",
+ "format": "int32",
"readOnly": true
},
"maxConcurrentJobs": {
"description": "The maximum concurrent jobs in this integration runtime.",
"type": "integer",
+ "format": "int32",
"readOnly": true
},
"sentBytes": {
@@ -2750,6 +2876,7 @@
"concurrentJobsLimit": {
"description": "The number of concurrent jobs permitted to run on the integration runtime node. Values between 1 and maxConcurrentJobs(inclusive) are allowed.",
"type": "integer",
+ "format": "int32",
"minimum": 1
}
}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/keys.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/keys.json
new file mode 100644
index 000000000000..1475148b89c6
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/keys.json
@@ -0,0 +1,323 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2019-06-01-preview",
+ "title": "SynapseManagementClient",
+ "description": "Azure Synapse Analytics APIs"
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "securityDefinitions": {
+ "azure_auth": {
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "type": "oauth2",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ },
+ "description": "Azure Active Directory OAuth2 Flow"
+ }
+ },
+ "paths": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/keys": {
+ "get": {
+ "operationId": "Keys_ListByWorkspace",
+ "description": "Returns a list of keys in a workspace",
+ "tags": [
+ "Keys"
+ ],
+ "deprecated": false,
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "schema": {
+ "$ref": "#/definitions/KeyInfoListResult"
+ },
+ "description": "The list of workspace keys."
+ },
+ "default": {
+ "schema": {
+ "$ref": "#/definitions/ErrorContract"
+ },
+ "description": "*** Error Responses: ***\n\n * 400 BadRequest - Invalid request to create a Workspace Key.\n\n * 500 InternalServerError- Some error occurred while creating Workspace Key."
+ }
+ },
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "List keys in workspace": {
+ "$ref": "./examples/ListKeysInWorkspace.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/keys/{keyName}": {
+ "get": {
+ "operationId": "Keys_Get",
+ "description": "Gets a workspace key",
+ "tags": [
+ "Keys"
+ ],
+ "deprecated": false,
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/keyNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "schema": {
+ "$ref": "#/definitions/Key"
+ },
+ "description": "Workspace Key details"
+ },
+ "default": {
+ "schema": {
+ "$ref": "#/definitions/ErrorContract"
+ },
+ "description": "*** Error Responses: ***\n\n * 500 InternalServerError- Some error occurred while trying to get details for Workspace Keys."
+ }
+ },
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "Get a workspace key": {
+ "$ref": "./examples/GetKey.json"
+ }
+ }
+ },
+ "put": {
+ "operationId": "Keys_CreateOrUpdate",
+ "description": "Creates or updates a workspace key",
+ "tags": [
+ "Keys"
+ ],
+ "deprecated": false,
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/keyNameParameter"
+ },
+ {
+ "schema": {
+ "$ref": "#/definitions/Key"
+ },
+ "in": "body",
+ "name": "keyProperties",
+ "required": true,
+ "description": "Key put request properties"
+ }
+ ],
+ "responses": {
+ "200": {
+ "schema": {
+ "$ref": "#/definitions/Key"
+ },
+ "description": "Workspace Key resource details"
+ },
+ "default": {
+ "schema": {
+ "$ref": "#/definitions/ErrorContract"
+ },
+ "description": "*** Error Responses: ***\n\n * 400 BadRequest - Invalid request to create a Workspace Key.\n\n * 500 InternalServerError- Some error occurred while creating Workspace Key."
+ }
+ },
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "Create or update a workspace key": {
+ "$ref": "./examples/CreateOrUpdateKey.json"
+ }
+ }
+ },
+ "delete": {
+ "operationId": "Keys_Delete",
+ "description": "Deletes a workspace key",
+ "tags": [
+ "Keys"
+ ],
+ "deprecated": false,
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/keyNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/Key"
+ }
+ },
+ "204": {
+ "description": "Keys resource not found."
+ },
+ "default": {
+ "schema": {
+ "$ref": "#/definitions/ErrorContract"
+ },
+ "description": "*** Error Responses: ***\n\n * 500 InternalServerError- Some error occurred while deleting Workspace Key."
+ }
+ },
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "Delete a workspace key": {
+ "$ref": "./examples/DeleteKey.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "ErrorDetail": {
+ "description": "Error details",
+ "type": "object",
+ "properties": {
+ "message": {
+ "description": "Error message",
+ "type": "string"
+ },
+ "code": {
+ "description": "Error code",
+ "type": "string"
+ },
+ "target": {
+ "description": "Error target",
+ "type": "string"
+ }
+ }
+ },
+ "ErrorContract": {
+ "title": "Error details.",
+ "description": "Contains details when the response code indicates an error.",
+ "type": "object",
+ "properties": {
+ "error": {
+ "description": "The error details.",
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "KeyInfoListResult": {
+ "description": "List of keys",
+ "type": "object",
+ "properties": {
+ "nextLink": {
+ "description": "Link to the next page of results",
+ "type": "string"
+ },
+ "value": {
+ "description": "List of keys",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Key"
+ }
+ }
+ }
+ },
+ "Key": {
+ "description": "A workspace key",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ProxyResource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "description": "Keys resource properties",
+ "$ref": "#/definitions/KeyProperties",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "KeyProperties": {
+ "description": "Key properties",
+ "type": "object",
+ "properties": {
+ "isActiveCMK": {
+ "type": "boolean",
+ "description": "Used to activate the workspace after a customer managed key is provided."
+ },
+ "keyVaultUrl": {
+ "type": "string",
+ "description": "The Key Vault Url of the workspace key."
+ }
+ }
+ }
+ },
+ "parameters": {
+ "keyNameParameter": {
+ "name": "keyName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the workspace key",
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/operations.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/operations.json
index 6095876908ae..fa0b096f1471 100644
--- a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/operations.json
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/operations.json
@@ -43,6 +43,12 @@
}
},
"description": ""
+ },
+ "default": {
+ "schema": {
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
+ },
+ "description": ""
}
},
"x-ms-examples": {
@@ -90,12 +96,18 @@
"200": {
"description": ""
},
+ "201": {
+ "description": ""
+ },
+ "202": {
+ "description": ""
+ },
"204": {
"description": ""
},
"default": {
"schema": {
- "$ref": "./workspace.json#/definitions/ErrorContract"
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
},
"description": ""
}
@@ -149,11 +161,11 @@
"description": ""
},
"404": {
- "description": ""
+ "description": "Not found"
},
- "500": {
+ "default": {
"schema": {
- "$ref": "./workspace.json#/definitions/ErrorContract"
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
},
"description": ""
}
@@ -226,7 +238,7 @@
"x-ms-client-flatten": true
},
"error": {
- "$ref": "./workspace.json#/definitions/ErrorDetail",
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorDetail",
"description": "Errors from the operation"
},
"startTime": {
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/privateEndpointConnections.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/privateEndpointConnections.json
index 77a31fdda411..a1f6e84dc084 100644
--- a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/privateEndpointConnections.json
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/privateEndpointConnections.json
@@ -22,33 +22,33 @@
},
"paths": {
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/privateEndpointConnections/{privateEndpointConnectionName}": {
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../common/v1/types.json#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "name": "privateEndpointConnectionName",
+ "in": "path",
+ "description": "The name of the private endpoint connection.",
+ "required": true,
+ "type": "string"
+ }
+ ],
"get": {
"tags": [
"PrivateEndpointConnections"
],
"description": "Gets a private endpoint connection.",
"operationId": "PrivateEndpointConnections_Get",
- "parameters": [
- {
- "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
- },
- {
- "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
- },
- {
- "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
- },
- {
- "$ref": "./workspace.json#/parameters/workspaceNameParameter"
- },
- {
- "name": "privateEndpointConnectionName",
- "in": "path",
- "description": "The name of the private endpoint connection.",
- "required": true,
- "type": "string"
- }
- ],
"consumes": [],
"produces": [
"application/json"
@@ -56,13 +56,13 @@
"responses": {
"200": {
"schema": {
- "$ref": "#/definitions/PrivateEndpointConnection"
+ "$ref": "../../../../common/v1/privateEndpointConnection.json#/definitions/PrivateEndpointConnection"
},
"description": "Private endpoint connection"
},
"default": {
"schema": {
- "$ref": "./workspace.json#/definitions/ErrorContract"
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
},
"description": ""
}
@@ -81,23 +81,13 @@
"operationId": "PrivateEndpointConnections_Create",
"parameters": [
{
- "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
- },
- {
- "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
- },
- {
- "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
- },
- {
- "$ref": "./workspace.json#/parameters/workspaceNameParameter"
- },
- {
- "name": "privateEndpointConnectionName",
- "in": "path",
- "description": "The name of the private endpoint connection.",
+ "name": "request",
+ "in": "body",
+ "description": "Request body of private endpoint connection to create.",
"required": true,
- "type": "string"
+ "schema": {
+ "$ref": "../../../../common/v1/privateEndpointConnection.json#/definitions/PrivateEndpointConnection"
+ }
}
],
"consumes": [
@@ -106,27 +96,30 @@
"produces": [
"application/json"
],
- "x-ms-long-running-operation": true,
"responses": {
- "201": {
+ "200": {
"schema": {
- "$ref": "#/definitions/PrivateEndpointConnection"
+ "$ref": "../../../../common/v1/privateEndpointConnection.json#/definitions/PrivateEndpointConnection"
},
"description": "Private endpoint connection"
},
- "200": {
+ "201": {
"schema": {
- "$ref": "#/definitions/PrivateEndpointConnection"
+ "$ref": "../../../../common/v1/privateEndpointConnection.json#/definitions/PrivateEndpointConnection"
},
"description": "Private endpoint connection"
},
"default": {
"schema": {
- "$ref": "./workspace.json#/definitions/ErrorContract"
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
},
"description": ""
}
},
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ },
"x-ms-examples": {
"Approve private endpoint connection": {
"$ref": "./examples/ApprovePrivateEndpointConnection.json"
@@ -139,27 +132,6 @@
],
"description": "Delete a private endpoint connection.",
"operationId": "PrivateEndpointConnections_Delete",
- "parameters": [
- {
- "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
- },
- {
- "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
- },
- {
- "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
- },
- {
- "$ref": "./workspace.json#/parameters/workspaceNameParameter"
- },
- {
- "name": "privateEndpointConnectionName",
- "in": "path",
- "description": "The name of the private endpoint connection.",
- "required": true,
- "type": "string"
- }
- ],
"consumes": [
"application/json"
],
@@ -168,6 +140,9 @@
],
"x-ms-long-running-operation": true,
"responses": {
+ "200": {
+ "description": ""
+ },
"202": {
"schema": {
"$ref": "./operations.json#/definitions/OperationResource"
@@ -179,7 +154,7 @@
},
"default": {
"schema": {
- "$ref": "./workspace.json#/definitions/ErrorContract"
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
},
"description": ""
}
@@ -209,7 +184,7 @@
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ "$ref": "../../../../common/v1/types.json#/parameters/WorkspaceNameParameter"
}
],
"consumes": [],
@@ -222,13 +197,13 @@
"responses": {
"200": {
"schema": {
- "$ref": "#/definitions/PrivateEndpointConnectionList"
+ "$ref": "../../../../common/v1/privateEndpointConnection.json#/definitions/PrivateEndpointConnectionList"
},
"description": "Private endpoint connection"
},
"default": {
"schema": {
- "$ref": "./workspace.json#/definitions/ErrorContract"
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
},
"description": ""
}
@@ -240,98 +215,5 @@
}
}
}
- },
- "definitions": {
- "PrivateEndpointConnectionList": {
- "description": "A list of private endpoint connections",
- "type": "object",
- "properties": {
- "value": {
- "description": "Array of results.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/PrivateEndpointConnection"
- },
- "readOnly": true
- },
- "nextLink": {
- "description": "Link to retrieve next page of results.",
- "type": "string",
- "readOnly": true
- }
- }
- },
- "PrivateEndpointConnection": {
- "description": "A private endpoint connection",
- "type": "object",
- "allOf": [
- {
- "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ProxyResource"
- }
- ],
- "properties": {
- "properties": {
- "$ref": "#/definitions/PrivateEndpointConnectionProperties",
- "description": "Private endpoint connection properties.",
- "x-ms-client-flatten": true
- }
- }
- },
- "PrivateEndpointConnectionProperties": {
- "description": "Properties of a private endpoint connection.",
- "type": "object",
- "properties": {
- "privateEndpoint": {
- "$ref": "#/definitions/PrivateEndpoint",
- "description": "The private endpoint which the connection belongs to."
- },
- "privateLinkServiceConnectionState": {
- "$ref": "#/definitions/PrivateLinkServiceConnectionState",
- "description": "Connection state of the private endpoint connection."
- },
- "provisioningState": {
- "description": "Provisioning state of the private endpoint connection.",
- "type": "string",
- "readOnly": true
- }
- }
- },
- "PrivateEndpoint": {
- "description": "Private endpoint details",
- "type": "object",
- "properties": {
- "id": {
- "description": "Resource id of the private endpoint.",
- "type": "string",
- "readOnly": true
- }
- },
- "x-ms-azure-resource": true
- },
- "PrivateLinkServiceConnectionState": {
- "description": "Connection state details of the private endpoint",
- "type": "object",
- "properties": {
- "status": {
- "description": "The private link service connection status.",
- "type": "string",
- "enum": [
- "Approved",
- "Pending",
- "Rejected",
- "Disconnected"
- ]
- },
- "description": {
- "description": "The private link service connection description.",
- "type": "string"
- },
- "actionsRequired": {
- "description": "The actions required for private link service connection.",
- "type": "string",
- "readOnly": true
- }
- }
- }
}
}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/privateLinkResources.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/privateLinkResources.json
index 8479ec512d4f..c29b6b6b2c17 100644
--- a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/privateLinkResources.json
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/privateLinkResources.json
@@ -56,6 +56,12 @@
"$ref": "#/definitions/PrivateLinkResourceListResult"
},
"description": "List of private link resources"
+ },
+ "default": {
+ "schema": {
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
+ },
+ "description": ""
}
},
"x-ms-examples": {
@@ -100,6 +106,12 @@
"$ref": "#/definitions/PrivateLinkResource"
},
"description": "Private link resource details"
+ },
+ "default": {
+ "schema": {
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
+ },
+ "description": ""
}
},
"x-ms-examples": {
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/privatelinkhub.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/privatelinkhub.json
index adf77edd801f..f74735df03e3 100644
--- a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/privatelinkhub.json
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/privatelinkhub.json
@@ -21,7 +21,18 @@
}
},
"paths": {
- "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/privateLinkHub": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/privateLinkHubs": {
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ }
+ ],
"get": {
"operationId": "PrivateLinkHubs_ListByResourceGroup",
"description": "Returns a list of privateLinkHubs in a resource group",
@@ -29,23 +40,18 @@
"PrivateLinkHubs"
],
"deprecated": false,
- "parameters": [
- {
- "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
- },
- {
- "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
- },
- {
- "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
- }
- ],
"responses": {
"200": {
"schema": {
"$ref": "#/definitions/PrivateLinkHubInfoListResult"
},
"description": ""
+ },
+ "default": {
+ "schema": {
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
+ },
+ "description": ""
}
},
"consumes": [],
@@ -63,6 +69,20 @@
}
},
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/privateLinkHubs/{privateLinkHubName}": {
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../common/v1/types.json#/parameters/PrivateLinkHubNameParameter"
+ }
+ ],
"get": {
"operationId": "PrivateLinkHubs_Get",
"description": "Gets a privateLinkHub",
@@ -70,20 +90,6 @@
"PrivateLinkHubs"
],
"deprecated": false,
- "parameters": [
- {
- "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
- },
- {
- "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
- },
- {
- "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
- },
- {
- "$ref": "#/parameters/privateLinkHubNameParameter"
- }
- ],
"responses": {
"200": {
"schema": {
@@ -93,7 +99,7 @@
},
"default": {
"schema": {
- "$ref": "#/definitions/ErrorContract"
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
},
"description": "*** Error Responses: ***\n\n * 500 InternalServerError- Some error occurred while trying to get details for PrivateLinkHub."
}
@@ -116,18 +122,6 @@
],
"deprecated": false,
"parameters": [
- {
- "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
- },
- {
- "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
- },
- {
- "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
- },
- {
- "$ref": "#/parameters/privateLinkHubNameParameter"
- },
{
"schema": {
"$ref": "#/definitions/PrivateLinkHubPatchInfo"
@@ -153,7 +147,7 @@
},
"default": {
"schema": {
- "$ref": "#/definitions/ErrorContract"
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
},
"description": "*** Error Responses: ***\n\n * 400 BadRequest - Invalid request to create a PrivateLinkHub.\n\n * 500 InternalServerError- Some error occurred while creating PrivateLinkHub."
}
@@ -178,18 +172,6 @@
],
"deprecated": false,
"parameters": [
- {
- "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
- },
- {
- "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
- },
- {
- "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
- },
- {
- "$ref": "#/parameters/privateLinkHubNameParameter"
- },
{
"description": "PrivateLinkHub create or update request properties",
"schema": {
@@ -215,7 +197,7 @@
},
"default": {
"schema": {
- "$ref": "#/definitions/ErrorContract"
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
},
"description": "*** Error Responses: ***\n\n * 400 BadRequest - Invalid request to create a PrivateLinkHub.\n\n * 500 InternalServerError- Some error occurred while creating PrivateLinkHub."
}
@@ -239,30 +221,19 @@
"PrivateLinkHubs"
],
"deprecated": false,
- "parameters": [
- {
- "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
- },
- {
- "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
- },
- {
- "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
- },
- {
- "$ref": "#/parameters/privateLinkHubNameParameter"
- }
- ],
"responses": {
"200": {
"description": "OK"
},
+ "202": {
+ "description": "Accepted"
+ },
"204": {
"description": "PrivateLinkHub resource not found."
},
"default": {
"schema": {
- "$ref": "#/definitions/ErrorContract"
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
},
"description": "*** Error Responses: ***\n\n * 500 InternalServerError- Some error occurred while deleting PrivateLinkHub."
}
@@ -271,6 +242,7 @@
"produces": [
"application/json"
],
+ "x-ms-long-running-operation": true,
"x-ms-examples": {
"Delete a privateLinkHub": {
"$ref": "./examples/DeletePrivateLinkHub.json"
@@ -300,6 +272,12 @@
"$ref": "#/definitions/PrivateLinkHubInfoListResult"
},
"description": "PrivateLinkHub resource details"
+ },
+ "default": {
+ "schema": {
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
+ },
+ "description": ""
}
},
"consumes": [],
@@ -315,38 +293,60 @@
}
}
}
- }
- },
- "definitions": {
- "ErrorDetail": {
- "description": "Error details",
- "type": "object",
- "properties": {
- "message": {
- "description": "Error message",
- "type": "string"
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/privateLinkHubs/{privateLinkHubName}/privateEndpointConnections": {
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
},
- "code": {
- "description": "Error code",
- "type": "string"
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
},
- "target": {
- "description": "Error target",
- "type": "string"
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../common/v1/types.json#/parameters/PrivateLinkHubNameParameter"
}
- }
- },
- "ErrorContract": {
- "title": "Error details.",
- "description": "Contains details when the response code indicates an error.",
- "type": "object",
- "properties": {
- "error": {
- "description": "The error details.",
- "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ErrorResponse"
+ ],
+ "get": {
+ "operationId": "PrivateEndpointConnectionsPrivateLinkHub_List",
+ "description": "Get all PrivateEndpointConnections in the PrivateLinkHub",
+ "tags": [
+ "PrivateLinkHubs",
+ "PrivateEndpointConnections"
+ ],
+ "deprecated": false,
+ "responses": {
+ "200": {
+ "schema": {
+ "$ref": "../../../../common/v1/privateEndpointConnection.json#/definitions/PrivateEndpointConnectionForPrivateLinkHub_ResourceCollectionResponse"
+ },
+ "description": "List of PrivateEndpointConnections in PrivateLinkHub"
+ },
+ "default": {
+ "schema": {
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
+ },
+ "description": ""
+ }
+ },
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Get a privateLinkHub": {
+ "$ref": "./examples/PrivateEndpointConnectionsPrivateLinkHub_List.json"
+ }
}
}
- },
+ }
+ },
+ "definitions": {
"PrivateLinkHubInfoListResult": {
"description": "List of privateLinkHubs",
"type": "object",
@@ -399,24 +399,34 @@
"properties": {
"provisioningState": {
"description": "PrivateLinkHub provisioning state",
+ "type": "string"
+ },
+ "privateEndpointConnections": {
+ "description": "List of private endpoint connections",
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PrivateEndpointConnectionForPrivateLinkHubBasic"
+ }
+ }
+ }
+ },
+ "PrivateEndpointConnectionForPrivateLinkHubBasic": {
+ "description": "Private Endpoint Connection For Private Link Hub - Basic",
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "identifier",
"type": "string",
- "enum": [
- "Succeeded",
- "Failed"
- ],
"readOnly": true
+ },
+ "properties": {
+ "description": "Properties of private endpoint connection for private link hub",
+ "type": "object",
+ "$ref": "../../../../common/v1/privateEndpointConnection.json#/definitions/PrivateEndpointConnectionProperties",
+ "x-ms-client-flatten": true
}
}
}
- },
- "parameters": {
- "privateLinkHubNameParameter": {
- "name": "privateLinkHubName",
- "in": "path",
- "required": true,
- "type": "string",
- "description": "The name of the privateLinkHub",
- "x-ms-parameter-location": "method"
- }
}
}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/sqlPool.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/sqlPool.json
index 4529f02a7bcc..74724525c6fd 100644
--- a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/sqlPool.json
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/sqlPool.json
@@ -57,6 +57,12 @@
"$ref": "#/definitions/SqlPool"
},
"description": "OK"
+ },
+ "default": {
+ "schema": {
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
+ },
+ "description": ""
}
},
"consumes": [],
@@ -114,8 +120,11 @@
},
"description": "OK"
},
- "202": {
- "description": "Accepted"
+ "default": {
+ "schema": {
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
+ },
+ "description": ""
}
},
"consumes": [],
@@ -181,7 +190,7 @@
},
"default": {
"schema": {
- "$ref": "./workspace.json#/definitions/ErrorContract"
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
},
"description": ""
}
@@ -249,7 +258,7 @@
},
"default": {
"schema": {
- "$ref": "./workspace.json#/definitions/ErrorContract"
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
},
"description": ""
}
@@ -298,6 +307,12 @@
"$ref": "#/definitions/SqlPoolInfoListResult"
},
"description": ""
+ },
+ "default": {
+ "schema": {
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
+ },
+ "description": ""
}
},
"consumes": [],
@@ -356,6 +371,12 @@
},
"202": {
"description": "Accepted"
+ },
+ "default": {
+ "schema": {
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
+ },
+ "description": ""
}
},
"consumes": [],
@@ -412,6 +433,12 @@
},
"202": {
"description": "Accepted"
+ },
+ "default": {
+ "schema": {
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
+ },
+ "description": ""
}
},
"consumes": [],
@@ -528,7 +555,7 @@
},
"default": {
"schema": {
- "$ref": "./workspace.json#/definitions/ErrorContract"
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
},
"description": ""
}
@@ -593,7 +620,7 @@
},
"default": {
"schema": {
- "$ref": "./workspace.json#/definitions/ErrorContract"
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
},
"description": ""
}
@@ -652,6 +679,18 @@
"type": "object"
},
"description": "OK"
+ },
+ "202": {
+ "schema": {
+ "type": "object"
+ },
+ "description": "Accepted"
+ },
+ "default": {
+ "schema": {
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
+ },
+ "description": ""
}
},
"consumes": [],
@@ -665,6 +704,64 @@
}
}
},
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}/geoBackupPolicies": {
+ "get": {
+ "operationId": "SqlPoolGeoBackupPolicies_List",
+ "summary": "List SQL pool geo backup policies",
+ "description": "Get list of SQL pool geo backup policies",
+ "tags": [
+ "SqlPools, GeoBackupPolicies"
+ ],
+ "deprecated": false,
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ },
+ {
+ "type": "string",
+ "in": "path",
+ "name": "sqlPoolName",
+ "description": "SQL pool name",
+ "required": true
+ }
+ ],
+ "responses": {
+ "200": {
+ "schema": {
+ "$ref": "#/definitions/GeoBackupPolicyListResult"
+ },
+ "description": "OK"
+ },
+ "default": {
+ "schema": {
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
+ },
+ "description": ""
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "Get Sql pool geo backup policy": {
+ "$ref": "./examples/SqlPoolGeoBackupPolicies_List.json"
+ }
+ }
+ }
+ },
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}/geoBackupPolicies/{geoBackupPolicyName}": {
"get": {
"operationId": "SqlPoolGeoBackupPolicies_Get",
@@ -716,6 +813,12 @@
"$ref": "#/definitions/GeoBackupPolicy"
},
"description": "OK"
+ },
+ "default": {
+ "schema": {
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
+ },
+ "description": ""
}
},
"consumes": [],
@@ -831,6 +934,12 @@
"$ref": "#/definitions/RestorePointListResult"
},
"description": "OK"
+ },
+ "default": {
+ "schema": {
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
+ },
+ "description": ""
}
},
"x-ms-pageable": {
@@ -952,6 +1061,12 @@
"schema": {
"$ref": "#/definitions/ReplicationLinkListResult"
}
+ },
+ "default": {
+ "schema": {
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
+ },
+ "description": ""
}
},
"consumes": [],
@@ -968,6 +1083,67 @@
}
}
},
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}/replicationLinks/{linkId}": {
+ "get": {
+ "operationId": "SqlPoolReplicationLinks_GetByName",
+ "summary": "Get SQL pool replication link by name",
+ "description": "Get SQL pool replication link by name.",
+ "tags": [
+ "SqlPools, ReplicationLinks"
+ ],
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ },
+ {
+ "type": "string",
+ "in": "path",
+ "name": "sqlPoolName",
+ "description": "SQL pool name",
+ "required": true
+ },
+ {
+ "name": "linkId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the replication link."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ReplicationLink"
+ }
+ },
+ "default": {
+ "schema": {
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
+ },
+ "description": ""
+ }
+ },
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "Lists a Sql Analytic pool's replication links": {
+ "$ref": "./examples/SqlPoolReplicationLinks_GetByName.json"
+ }
+ }
+ }
+ },
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}/transparentDataEncryption/{transparentDataEncryptionName}": {
"get": {
"operationId": "SqlPoolTransparentDataEncryptions_Get",
@@ -1018,6 +1194,12 @@
"schema": {
"$ref": "#/definitions/TransparentDataEncryption"
}
+ },
+ "default": {
+ "schema": {
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
+ },
+ "description": ""
}
},
"consumes": [],
@@ -1094,6 +1276,12 @@
"schema": {
"$ref": "#/definitions/TransparentDataEncryption"
}
+ },
+ "default": {
+ "schema": {
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
+ },
+ "description": ""
}
},
"consumes": [],
@@ -1107,6 +1295,60 @@
}
}
},
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}/transparentDataEncryption": {
+ "get": {
+ "operationId": "SqlPoolTransparentDataEncryptions_List",
+ "summary": "SQL pool's transparent data encryption configurations",
+ "description": "Get list of SQL pool's transparent data encryption configurations.",
+ "tags": [
+ "SqlPools, TransparentDataEncryption"
+ ],
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ },
+ {
+ "type": "string",
+ "in": "path",
+ "name": "sqlPoolName",
+ "description": "SQL pool name",
+ "required": true
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/TransparentDataEncryptionListResult"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***\n\n * 409 UnsupportedWorkspaceType - Unsupported operation for the workspace type.\n\n * 500 InternalServerError - Something went wrong."
+ }
+ },
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Get list of transparent data encryption configurations of a SQL Analytics pool": {
+ "$ref": "./examples/GetSqlPoolTransparentDataEncryptionList.json"
+ }
+ }
+ }
+ },
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}/auditingSettings/{blobAuditingPolicyName}": {
"get": {
"operationId": "SqlPoolBlobAuditingPolicies_Get",
@@ -1336,6 +1578,12 @@
"schema": {
"$ref": "#/definitions/SqlPoolUsageListResult"
}
+ },
+ "default": {
+ "schema": {
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
+ },
+ "description": ""
}
},
"consumes": [],
@@ -1394,6 +1642,12 @@
"schema": {
"$ref": "#/definitions/SensitivityLabelListResult"
}
+ },
+ "default": {
+ "schema": {
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
+ },
+ "description": ""
}
},
"consumes": [],
@@ -1652,6 +1906,9 @@
"200": {
"description": "Successfully deleted the sensitivity label."
},
+ "204": {
+ "description": "No content"
+ },
"default": {
"description": "*** Error Responses: ***\n\n * 400 DatawarehouseDatabaseIsDeactivated - Could not execute Data Classification operation because the database is paused. Please resume it.\n\n * 400 SensitivityLabelSourceNameNotSupported - The specified sensitivity label source is not valid\n\n * 404 SensitivityLabelsColumnNotFound - The specified schema/table/column could not be found\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found\n\n * 404 DatabaseDoesNotExist - User has specified a database name that does not exist on this server instance.\n\n * 404 SensitivityLabelsLabelNotFound - The specified sensitivity label could not be found\n\n * 501 SensitivityLabelRecommendedSourceNameNotSupported - 'Recommended' sensitivity label source is not supported yet"
}
@@ -2165,6 +2422,12 @@
"schema": {
"$ref": "#/definitions/SqlPoolConnectionPolicy"
}
+ },
+ "default": {
+ "schema": {
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
+ },
+ "description": ""
}
},
"consumes": [],
@@ -2445,11 +2708,11 @@
}
}
},
- "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}/securityAlertPolicies/{securityAlertPolicyName}": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}/securityAlertPolicies": {
"get": {
- "operationId": "SqlPoolSecurityAlertPolicies_Get",
- "summary": "Get a Sql pool's security alert policy",
- "description": "Get a Sql pool's security alert policy.",
+ "operationId": "SqlPoolSecurityAlertPolicies_List",
+ "summary": "List Sql pool's security alert policies",
+ "description": "Get a list of Sql pool's security alert policies.",
"tags": [
"SqlPools, SecurityAlertPolicies"
],
@@ -2472,46 +2735,100 @@
"name": "sqlPoolName",
"description": "SQL pool name",
"required": true
- },
- {
- "name": "securityAlertPolicyName",
- "in": "path",
- "description": "The name of the security alert policy.",
- "required": true,
- "type": "string",
- "enum": [
- "default"
- ],
- "x-ms-enum": {
- "name": "SecurityAlertPolicyName",
- "modelAsString": true
- }
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
- "$ref": "#/definitions/SqlPoolSecurityAlertPolicy"
+ "$ref": "#/definitions/ListSqlPoolSecurityAlertPolicies"
}
},
"default": {
- "description": "*** Error Responses: ***\n\n * 400 SecurityAlertPoliciesInvalidStorageAccountName - The provided storage account is not valid or does not exist.\n\n * 400 SecurityAlertPoliciesInvalidStorageAccountCredentials - The provided storage account access key is not valid.\n\n * 400 InvalidDatabaseSecurityAlertPolicyCreateRequest - The create database Threat Detection security alert policy request does not exist or has no properties object.\n\n * 400 DataSecurityInvalidUserSuppliedParameter - An invalid parameter value was provided by the client.\n\n * 400 UpsertDatabaseSecurityAlertPolicyFailed - An error has occurred while saving Threat detection settings, please try again later\n\n * 400 UpsertDatabaseSecurityAlertPolicyFailed - An error has occurred while saving Threat detection settings, please try again later\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found\n\n * 404 DatabaseDoesNotExist - User has specified a database name that does not exist on this server instance.\n\n * 404 UpsertDatabaseSecurityAlertPolicyFailed - An error has occurred while saving Threat detection settings, please try again later\n\n * 409 DatabaseSecurityAlertPolicyInProgress - Set database security alert policy is already in progress\n\n * 409 UpsertDatabaseSecurityAlertPolicyFailed - An error has occurred while saving Threat detection settings, please try again later\n\n * 500 DatabaseIsUnavailable - Loading failed. Please try again later.\n\n * 500 UpsertDatabaseSecurityAlertPolicyFailed - An error has occurred while saving Threat detection settings, please try again later\n\n * 500 GetDatabaseSecurityAlertPolicyFailed - Failed to get Threat Detection settings"
+ "description": "*** Error Responses: ***\n\n * 400 SecurityAlertPoliciesInvalidStorageAccountName - The provided storage account is not valid or does not exist.\n\n * 400 SecurityAlertPoliciesInvalidStorageAccountCredentials - The provided storage account access key is not valid.\n\n * 400 InvalidServerSecurityAlertPolicyCreateRequest - The create server Threat Detection security alert policy request does not exist or has no properties object.\n\n * 400 DataSecurityInvalidUserSuppliedParameter - An invalid parameter value was provided by the client.\n\n * 400 UpsertServerSecurityAlertPolicyFailed - An error has occurred while saving Threat detection settings, please try again later\n\n * 400 UpsertServerSecurityAlertPolicyFailed - An error has occurred while saving Threat detection settings, please try again later\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found\n\n * 404 UpsertServerSecurityAlertPolicyFailed - An error has occurred while saving Threat detection settings, please try again later\n\n * 409 ServerSecurityAlertPolicyInProgress - Set server security alert policy is already in progress\n\n * 409 UpsertServerSecurityAlertPolicyFailed - An error has occurred while saving Threat detection settings, please try again later\n\n * 500 DatabaseIsUnavailable - Loading failed. Please try again later.\n\n * 500 UpsertServerSecurityAlertPolicyFailed - An error has occurred while saving Threat detection settings, please try again later\n\n * 500 GetServerSecurityAlertPolicyFailed - Failed to get Threat Detection settings"
}
},
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
"consumes": [],
"produces": [
"application/json"
],
"x-ms-examples": {
"Get a security alert of a SQL Analytics pool": {
- "$ref": "./examples/GetSqlPoolSecurityAlert.json"
+ "$ref": "./examples/SqlPoolSecurityAlertPolicies_List.json"
}
}
- },
- "put": {
- "operationId": "SqlPoolSecurityAlertPolicies_CreateOrUpdate",
- "summary": "Create or update a Sql pool's security alert policy",
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}/securityAlertPolicies/{securityAlertPolicyName}": {
+ "get": {
+ "operationId": "SqlPoolSecurityAlertPolicies_Get",
+ "summary": "Get a Sql pool's security alert policy",
+ "description": "Get a Sql pool's security alert policy.",
+ "tags": [
+ "SqlPools, SecurityAlertPolicies"
+ ],
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ },
+ {
+ "type": "string",
+ "in": "path",
+ "name": "sqlPoolName",
+ "description": "SQL pool name",
+ "required": true
+ },
+ {
+ "name": "securityAlertPolicyName",
+ "in": "path",
+ "description": "The name of the security alert policy.",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "default"
+ ],
+ "x-ms-enum": {
+ "name": "SecurityAlertPolicyName",
+ "modelAsString": true
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/SqlPoolSecurityAlertPolicy"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***\n\n * 400 SecurityAlertPoliciesInvalidStorageAccountName - The provided storage account is not valid or does not exist.\n\n * 400 SecurityAlertPoliciesInvalidStorageAccountCredentials - The provided storage account access key is not valid.\n\n * 400 InvalidDatabaseSecurityAlertPolicyCreateRequest - The create database Threat Detection security alert policy request does not exist or has no properties object.\n\n * 400 DataSecurityInvalidUserSuppliedParameter - An invalid parameter value was provided by the client.\n\n * 400 UpsertDatabaseSecurityAlertPolicyFailed - An error has occurred while saving Threat detection settings, please try again later\n\n * 400 UpsertDatabaseSecurityAlertPolicyFailed - An error has occurred while saving Threat detection settings, please try again later\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found\n\n * 404 DatabaseDoesNotExist - User has specified a database name that does not exist on this server instance.\n\n * 404 UpsertDatabaseSecurityAlertPolicyFailed - An error has occurred while saving Threat detection settings, please try again later\n\n * 409 DatabaseSecurityAlertPolicyInProgress - Set database security alert policy is already in progress\n\n * 409 UpsertDatabaseSecurityAlertPolicyFailed - An error has occurred while saving Threat detection settings, please try again later\n\n * 500 DatabaseIsUnavailable - Loading failed. Please try again later.\n\n * 500 UpsertDatabaseSecurityAlertPolicyFailed - An error has occurred while saving Threat detection settings, please try again later\n\n * 500 GetDatabaseSecurityAlertPolicyFailed - Failed to get Threat Detection settings"
+ }
+ },
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "Get a security alert of a SQL Analytics pool": {
+ "$ref": "./examples/GetSqlPoolSecurityAlert.json"
+ }
+ }
+ },
+ "put": {
+ "operationId": "SqlPoolSecurityAlertPolicies_CreateOrUpdate",
+ "summary": "Create or update a Sql pool's security alert policy",
"description": "Create or update a Sql pool's security alert policy.",
"tags": [
"SqlPools, SecurityAlertPolicies"
@@ -2752,6 +3069,9 @@
"200": {
"description": "Successfully removed the database vulnerability assessment rule baseline."
},
+ "204": {
+ "description": "No content"
+ },
"default": {
"description": "*** Error Responses: ***\n\n * 400 VulnerabilityAssessmentStorageAuthenticationFailed - Could not authenticate to storage account '{0}' .\n\n * 400 VulnerabilityAssessmentInvalidPolicy - Vulnerability Assessment settings don't exist or invalid storage specified in settings. \n\n * 400 VulnerabilityAssessmentDatawarehouseDatabaseIsDeactivated - Could not execute Vulnerability Assessment operation because the database is paused. Please resume it.\n\n * 400 InvalidVulnerabilityAssessmentOperationRequest - The vulnerability assessment operation request does not exist or has no properties object.\n\n * 400 DataSecurityInvalidUserSuppliedParameter - An invalid parameter value was provided by the client.\n\n * 404 VulnerabilityAssessmentInvalidStorageAccount - The storage account '{0}' that was defined in the policy is invalid.\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found\n\n * 404 SourceDatabaseNotFound - The source database does not exist.\n\n * 404 DatabaseDoesNotExist - User has specified a database name that does not exist on this server instance.\n\n * 404 VulnerabilityAssessmentRuleDoesNotExists - Rule '{0}' does not exist.\n\n * 404 VulnerabilityAssessmentBaselineDoesNotExists - Baseline does not exist for rule '{0}'\n\n * 500 DatabaseIsUnavailable - Loading failed. Please try again later."
}
@@ -3041,6 +3361,9 @@
"200": {
"description": "Successfully removed the Sql pool vulnerability assessment."
},
+ "204": {
+ "description": "No content"
+ },
"default": {
"description": "*** Error Responses: ***\n\n * 400 InvalidStorageAccountName - The provided storage account is not valid or does not exist.\n\n * 400 InvalidStorageAccountCredentials - The provided storage account shared access signature or account storage key is not valid.\n\n * 400 DatabaseVulnerabilityAssessmentMissingStorageContainerPath - Storage container path must be provided if it isn't set in server level policy\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found\n\n * 404 SourceDatabaseNotFound - The source database does not exist.\n\n * 404 DatabaseDoesNotExist - User has specified a database name that does not exist on this server instance.\n\n * 500 DatabaseIsUnavailable - Loading failed. Please try again later."
}
@@ -3833,6 +4156,647 @@
}
}
}
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}/restorePoints/{restorePointName}": {
+ "get": {
+ "tags": [
+ "SqlPools, RestorePoints"
+ ],
+ "description": "Gets a restore point.",
+ "operationId": "SqlPoolRestorePoints_Get",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ },
+ {
+ "type": "string",
+ "in": "path",
+ "name": "sqlPoolName",
+ "description": "SQL pool name",
+ "required": true
+ },
+ {
+ "name": "restorePointName",
+ "in": "path",
+ "description": "The name of the restore point.",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully returned the restore point.",
+ "schema": {
+ "$ref": "#/definitions/RestorePoint"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***\n\n * 400 FeatureDisabledOnSelectedEdition - User attempted to use a feature which is disabled on current database edition.\n\n * 400 BackupNotAllowedOnDeactivatedDatabase - Cannot create restore point on a deactivated database.\n\n * 400 RestorePointLimitReached - A restore point cannot be created because database would exceed the allowed quota of restore points.\n\n * 400 RestorePointAttemptToDeleteSystemBackup - Cannot delete system restore point.\n\n * 404 DatabaseRestorePointNotFound - Can not find database restore point.\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found\n\n * 404 DatabaseDoesNotExist - User has specified a database name that does not exist on this server instance.\n\n * 408 DatabaseRestorePointTimedOut - Create database restore point failed."
+ }
+ },
+ "x-ms-examples": {
+ "Gets a Sql pool restore point.": {
+ "$ref": "./examples/SqlPoolRestorePointsGet.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "SqlPools, RestorePoints"
+ ],
+ "description": "Deletes a restore point.",
+ "operationId": "SqlPoolRestorePoints_Delete",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ },
+ {
+ "type": "string",
+ "in": "path",
+ "name": "sqlPoolName",
+ "description": "SQL pool name",
+ "required": true
+ },
+ {
+ "name": "restorePointName",
+ "in": "path",
+ "description": "The name of the restore point.",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully deleted the restore point."
+ },
+ "default": {
+ "description": "*** Error Responses: ***\n\n * 400 FeatureDisabledOnSelectedEdition - User attempted to use a feature which is disabled on current database edition.\n\n * 400 BackupNotAllowedOnDeactivatedDatabase - Cannot create restore point on a deactivated database.\n\n * 400 RestorePointLimitReached - A restore point cannot be created because database would exceed the allowed quota of restore points.\n\n * 400 RestorePointAttemptToDeleteSystemBackup - Cannot delete system restore point.\n\n * 404 DatabaseRestorePointNotFound - Can not find database restore point.\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found\n\n * 404 DatabaseDoesNotExist - User has specified a database name that does not exist on this server instance.\n\n * 408 DatabaseRestorePointTimedOut - Create database restore point failed."
+ }
+ },
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "Deletes a restore point.": {
+ "$ref": "./examples/SqlPoolRestorePointsDelete.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}/workloadGroups/{workloadGroupName}": {
+ "get": {
+ "operationId": "SqlPoolWorkloadGroup_Get",
+ "summary": "Sql pool's workload group",
+ "description": "Get a Sql pool's workload group.",
+ "tags": [
+ "SqlPools, WorkloadGroups"
+ ],
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ },
+ {
+ "type": "string",
+ "in": "path",
+ "name": "sqlPoolName",
+ "description": "SQL pool name",
+ "required": true
+ },
+ {
+ "name": "workloadGroupName",
+ "in": "path",
+ "description": "The name of the workload group.",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved the specifies workload group.",
+ "schema": {
+ "$ref": "#/definitions/WorkloadGroup"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***\n\n * 400 FeatureDisabledOnSelectedEdition - User attempted to use a feature which is disabled on current database edition.\n\n * 400 OperationNotAllowedOnPausedDatabase - Operation is not allowed on a paused database.\n\n * 404 ServerNotInSubscriptionResourceGroup - Specified server does not exist in the specified resource group and subscription.\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found\n\n * 404 DatabaseDoesNotExist - User has specified a database name that does not exist on this server instance.\n\n * 404 ResourceNotFound - The requested resource was not found.\n\n * 409 ConflictingSystemOperationInProgress - A system maintenance operation is in progress on the database and further operations need to wait until it is completed.\n\n * 409 ConflictingDatabaseOperation - There is already some operation on the database and the current operation should wait till it is done.\n\n * 409 UnsupportedWorkspaceType - Unsupported operation for the workspace type.\n\n * 503 DatabaseUnavailable - The operation failed because the database is unavailable.\n\n * 503 TooManyRequests - Requests beyond max requests that can be processed by available resources.\n\n * 504 RequestTimeout - Service request exceeded the allowed timeout."
+ }
+ },
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "Get a a workload group of a SQL Analytics pool": {
+ "$ref": "./examples/GetSqlPoolWorkloadGroup.json"
+ }
+ }
+ },
+ "put": {
+ "operationId": "SqlPoolWorkloadGroup_CreateOrUpdate",
+ "summary": "Create Or Update workload group",
+ "description": "Create Or Update a Sql pool's workload group.",
+ "tags": [
+ "SqlPools, WorkloadGroups"
+ ],
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ },
+ {
+ "type": "string",
+ "in": "path",
+ "name": "sqlPoolName",
+ "description": "SQL pool name",
+ "required": true
+ },
+ {
+ "name": "workloadGroupName",
+ "in": "path",
+ "description": "The name of the workload group.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "description": "The requested workload group state.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/WorkloadGroup"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully updated the workload group.",
+ "schema": {
+ "$ref": "#/definitions/WorkloadGroup"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***\n\n * 400 FeatureDisabledOnSelectedEdition - User attempted to use a feature which is disabled on current database edition.\n\n * 400 OperationNotAllowedOnPausedDatabase - Operation is not allowed on a paused database.\n\n * 400 InvalidWorkloadGroupNameParameter - Invalid workload group name\n\n * 400 InvalidMinResourcePercentParameter - Invalid min resource percent for this workload group.\n\n * 400 InvalidMinResourcePercentPerRequestParameter - Invalid min resource percent per query for this workload group.\n\n * 400 InvalidMaxResourcePercentParameter - Invalid max resource percent to allocate for this workload group.\n\n * 400 InvalidMaxResourcePercentPerRequestParameter - Invalid max resource percent per query for this workload group.\n\n * 400 InvalidImportanceParameter - Importance must be one of the following strings: Low, Below_Normal, Normal, Above_Normal, High.\n\n * 400 InvalidQueryExecutionTimeoutParameter - Invalid query execution timeout value for this workload group.\n\n * 400 InvalidResourceRequestBody - The resource or resource properties in the request body is empty or invalid.\n\n * 404 ServerNotInSubscriptionResourceGroup - Specified server does not exist in the specified resource group and subscription.\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found\n\n * 404 DatabaseDoesNotExist - User has specified a database name that does not exist on this server instance.\n\n * 404 ResourceNotFound - The requested resource was not found.\n\n * 404 OperationIdNotFound - The operation with Id does not exist.\n\n * 409 ConflictingSystemOperationInProgress - A system maintenance operation is in progress on the database and further operations need to wait until it is completed.\n\n * 409 ConflictingDatabaseOperation - There is already some operation on the database and the current operation should wait till it is done.\n\n * 409 UnsupportedWorkspaceType - Unsupported operation for the workspace type.\n\n * 409 OperationCancelled - The operation has been cancelled by user.\n\n * 409 OperationInterrupted - The operation on the resource could not be completed because it was interrupted by another operation on the same resource.\n\n * 500 OperationTimedOut - The operation timed out and automatically rolled back. Please retry the operation.\n\n * 503 DatabaseUnavailable - The operation failed because the database is unavailable.\n\n * 503 TooManyRequests - Requests beyond max requests that can be processed by available resources.\n\n * 504 RequestTimeout - Service request exceeded the allowed timeout."
+ },
+ "202": {
+ "description": "Create or update for the workload group accepted."
+ },
+ "201": {
+ "description": "Successfully created the workload group.",
+ "schema": {
+ "$ref": "#/definitions/WorkloadGroup"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "Create a workload group with the required properties specified.": {
+ "$ref": "./examples/CreateOrUpdateSqlPoolWorkloadGroupMin.json"
+ },
+ "Create a workload group with all properties specified.": {
+ "$ref": "./examples/CreateOrUpdateSqlPoolWorkloadGroupMax.json"
+ }
+ }
+ },
+ "delete": {
+ "operationId": "SqlPoolWorkloadGroup_Delete",
+ "summary": "Remove workload group",
+ "description": "Remove Sql pool's workload group.",
+ "tags": [
+ "SqlPools, WorkloadGroups"
+ ],
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ },
+ {
+ "type": "string",
+ "in": "path",
+ "name": "sqlPoolName",
+ "description": "SQL pool name",
+ "required": true
+ },
+ {
+ "name": "workloadGroupName",
+ "in": "path",
+ "description": "The name of the workload group.",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully deleted the workload group."
+ },
+ "default": {
+ "description": "*** Error Responses: ***\n\n * 400 FeatureDisabledOnSelectedEdition - User attempted to use a feature which is disabled on current database edition.\n\n * 400 OperationNotAllowedOnPausedDatabase - Operation is not allowed on a paused database.\n\n * 404 ServerNotInSubscriptionResourceGroup - Specified server does not exist in the specified resource group and subscription.\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found\n\n * 404 DatabaseDoesNotExist - User has specified a database name that does not exist on this server instance.\n\n * 404 ResourceNotFound - The requested resource was not found.\n\n * 404 OperationIdNotFound - The operation with Id does not exist.\n\n * 409 ConflictingSystemOperationInProgress - A system maintenance operation is in progress on the database and further operations need to wait until it is completed.\n\n * 409 ConflictingDatabaseOperation - There is already some operation on the database and the current operation should wait till it is done.\n\n * 409 OperationCancelled - The operation has been cancelled by user.\n\n * 409 OperationInterrupted - The operation on the resource could not be completed because it was interrupted by another operation on the same resource.\n\n * 409 UnsupportedWorkspaceType - Unsupported operation for the workspace type.\n\n * 500 OperationTimedOut - The operation timed out and automatically rolled back. Please retry the operation.\n\n * 503 DatabaseUnavailable - The operation failed because the database is unavailable.\n\n * 503 TooManyRequests - Requests beyond max requests that can be processed by available resources.\n\n * 504 RequestTimeout - Service request exceeded the allowed timeout."
+ },
+ "202": {
+ "description": "Deleting the workload group is in progress."
+ },
+ "204": {
+ "description": "The specified workload group does not exist."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "Delete a workload group of a SQL Analytics pool": {
+ "$ref": "./examples/DeleteSqlPoolWorkloadGroup.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}/workloadGroups": {
+ "get": {
+ "operationId": "SqlPoolWorkloadGroup_List",
+ "summary": "Sql pool's workload groups",
+ "description": "Get list of Sql pool's workload groups.",
+ "tags": [
+ "SqlPools, WorkloadGroups"
+ ],
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ },
+ {
+ "type": "string",
+ "in": "path",
+ "name": "sqlPoolName",
+ "description": "SQL pool name",
+ "required": true
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved the list of workload groups.",
+ "schema": {
+ "$ref": "#/definitions/WorkloadGroupListResult"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***\n\n * 400 FeatureDisabledOnSelectedEdition - User attempted to use a feature which is disabled on current database edition.\n\n * 400 OperationNotAllowedOnPausedDatabase - Operation is not allowed on a paused database.\n\n * 404 ServerNotInSubscriptionResourceGroup - Specified server does not exist in the specified resource group and subscription.\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found\n\n * 404 DatabaseDoesNotExist - User has specified a database name that does not exist on this server instance.\n\n * 404 ResourceNotFound - The requested resource was not found.\n\n * 409 ConflictingSystemOperationInProgress - A system maintenance operation is in progress on the database and further operations need to wait until it is completed.\n\n * 409 ConflictingDatabaseOperation - There is already some operation on the database and the current operation should wait till it is done.\n\n * 409 UnsupportedWorkspaceType - Unsupported operation for the workspace type.\n\n * 503 DatabaseUnavailable - The operation failed because the database is unavailable.\n\n * 503 TooManyRequests - Requests beyond max requests that can be processed by available resources.\n\n * 504 RequestTimeout - Service request exceeded the allowed timeout."
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "Get the list of workload groups of a SQL Analytics pool": {
+ "$ref": "./examples/GetSqlPoolWorkloadGroupList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}/workloadGroups/{workloadGroupName}/workloadClassifiers/{workloadClassifierName}": {
+ "get": {
+ "operationId": "SqlPoolWorkloadClassifier_Get",
+ "summary": "Get workload classifier",
+ "description": "Get a workload classifier of Sql pool's workload group.",
+ "tags": [
+ "SqlPools, WorkloadClassifiers"
+ ],
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ },
+ {
+ "type": "string",
+ "in": "path",
+ "name": "sqlPoolName",
+ "description": "SQL pool name",
+ "required": true
+ },
+ {
+ "name": "workloadGroupName",
+ "in": "path",
+ "description": "The name of the workload group.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "workloadClassifierName",
+ "in": "path",
+ "description": "The name of the workload classifier.",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved the specifies workload classifier.",
+ "schema": {
+ "$ref": "#/definitions/WorkloadClassifier"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***\n\n * 400 FeatureDisabledOnSelectedEdition - User attempted to use a feature which is disabled on current database edition.\n\n * 400 OperationNotAllowedOnPausedDatabase - Operation is not allowed on a paused database.\n\n * 404 ServerNotInSubscriptionResourceGroup - Specified server does not exist in the specified resource group and subscription.\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found\n\n * 404 DatabaseDoesNotExist - User has specified a database name that does not exist on this server instance.\n\n * 404 ResourceNotFound - The requested resource was not found.\n\n * 409 ConflictingSystemOperationInProgress - A system maintenance operation is in progress on the database and further operations need to wait until it is completed.\n\n * 409 ConflictingDatabaseOperation - There is already some operation on the database and the current operation should wait till it is done.\n\n * 409 UnsupportedWorkspaceType - Unsupported operation for the workspace type.\n\n * 503 DatabaseUnavailable - The operation failed because the database is unavailable.\n\n * 503 TooManyRequests - Requests beyond max requests that can be processed by available resources.\n\n * 504 RequestTimeout - Service request exceeded the allowed timeout."
+ }
+ },
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "Get a workload classifier for SQL Analytics pool's workload group": {
+ "$ref": "./examples/GetSqlPoolWorkloadGroupWorkloadClassifier.json"
+ }
+ }
+ },
+ "put": {
+ "operationId": "SqlPoolWorkloadClassifier_CreateOrUpdate",
+ "summary": "Create Or Update workload classifier",
+ "description": "Create Or Update workload classifier for a Sql pool's workload group.",
+ "tags": [
+ "SqlPools, WorkloadClassifiers"
+ ],
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ },
+ {
+ "type": "string",
+ "in": "path",
+ "name": "sqlPoolName",
+ "description": "SQL pool name",
+ "required": true
+ },
+ {
+ "name": "workloadGroupName",
+ "in": "path",
+ "description": "The name of the workload group.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "workloadClassifierName",
+ "in": "path",
+ "description": "The name of the workload classifier.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "description": "The properties of the workload classifier.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/WorkloadClassifier"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully updated the workload classifier.",
+ "schema": {
+ "$ref": "#/definitions/WorkloadClassifier"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***\n\n * 400 FeatureDisabledOnSelectedEdition - User attempted to use a feature which is disabled on current database edition.\n\n * 400 OperationNotAllowedOnPausedDatabase - Operation is not allowed on a paused database.\n\n * 400 InvalidMemberNameParameter - Invalid member name parameter for this workload classifier.\n\n * 400 InvalidStartTimeAndEndTimeParameters - Invalid start time and end time parameters for the workload classifier.\n\n * 400 InvalidImportanceParameter - Importance must be one of the following strings: Low, Below_Normal, Normal, Above_Normal, High.\n\n * 400 InvalidResourceRequestBody - The resource or resource properties in the request body is empty or invalid.\n\n * 404 ServerNotInSubscriptionResourceGroup - Specified server does not exist in the specified resource group and subscription.\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found\n\n * 404 DatabaseDoesNotExist - User has specified a database name that does not exist on this server instance.\n\n * 404 ResourceNotFound - The requested resource was not found.\n\n * 404 OperationIdNotFound - The operation with Id does not exist.\n\n * 409 ConflictingSystemOperationInProgress - A system maintenance operation is in progress on the database and further operations need to wait until it is completed.\n\n * 409 UnsupportedWorkspaceType - Unsupported operation for the workspace type.\n\n * 409 ConflictingDatabaseOperation - There is already some operation on the database and the current operation should wait till it is done.\n\n * 409 OperationCancelled - The operation has been cancelled by user.\n\n * 409 OperationInterrupted - The operation on the resource could not be completed because it was interrupted by another operation on the same resource.\n\n * 500 OperationTimedOut - The operation timed out and automatically rolled back. Please retry the operation.\n\n * 503 DatabaseUnavailable - The operation failed because the database is unavailable.\n\n * 503 TooManyRequests - Requests beyond max requests that can be processed by available resources.\n\n * 504 RequestTimeout - Service request exceeded the allowed timeout."
+ },
+ "202": {
+ "description": "Create or update for the workload classifier is in progress."
+ },
+ "201": {
+ "description": "Successfully created the workload classifier.",
+ "schema": {
+ "$ref": "#/definitions/WorkloadClassifier"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "Create a workload classifier with the required properties specified.": {
+ "$ref": "./examples/CreateOrUpdateSqlPoolWorkloadClassifierMin.json"
+ },
+ "Create a workload classifier with all properties specified.": {
+ "$ref": "./examples/CreateOrUpdateSqlPoolWorkloadClassifierMax.json"
+ }
+ }
+ },
+ "delete": {
+ "operationId": "SqlPoolWorkloadClassifier_Delete",
+ "summary": "Remove workload classifier",
+ "description": "Remove workload classifier of a Sql pool's workload group.",
+ "tags": [
+ "SqlPools, WorkloadClassifiers"
+ ],
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ },
+ {
+ "type": "string",
+ "in": "path",
+ "name": "sqlPoolName",
+ "description": "SQL pool name",
+ "required": true
+ },
+ {
+ "name": "workloadGroupName",
+ "in": "path",
+ "description": "The name of the workload group.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "workloadClassifierName",
+ "in": "path",
+ "description": "The name of the workload classifier.",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully deleted the workload classifier."
+ },
+ "default": {
+ "description": "*** Error Responses: ***\n\n * 400 FeatureDisabledOnSelectedEdition - User attempted to use a feature which is disabled on current database edition.\n\n * 400 OperationNotAllowedOnPausedDatabase - Operation is not allowed on a paused database.\n\n * 404 ServerNotInSubscriptionResourceGroup - Specified server does not exist in the specified resource group and subscription.\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found\n\n * 404 DatabaseDoesNotExist - User has specified a database name that does not exist on this server instance.\n\n * 404 ResourceNotFound - The requested resource was not found.\n\n * 404 OperationIdNotFound - The operation with Id does not exist.\n\n * 409 ConflictingSystemOperationInProgress - A system maintenance operation is in progress on the database and further operations need to wait until it is completed.\n\n * 409 ConflictingDatabaseOperation - There is already some operation on the database and the current operation should wait till it is done.\n\n * 409 OperationCancelled - The operation has been cancelled by user.\n\n * 409 OperationInterrupted - The operation on the resource could not be completed because it was interrupted by another operation on the same resource.\n\n * 409 UnsupportedWorkspaceType - Unsupported operation for the workspace type.\n\n * 500 OperationTimedOut - The operation timed out and automatically rolled back. Please retry the operation.\n\n * 503 DatabaseUnavailable - The operation failed because the database is unavailable.\n\n * 503 TooManyRequests - Requests beyond max requests that can be processed by available resources.\n\n * 504 RequestTimeout - Service request exceeded the allowed timeout."
+ },
+ "202": {
+ "description": "Deleting the workload classifier is in progress."
+ },
+ "204": {
+ "description": "The specified workload classifier does not exist."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "Delete a workload classifier of a SQL Analytics pool's workload group": {
+ "$ref": "./examples/DeleteSqlPoolWorkloadGroupWorkloadClassifer.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}/workloadGroups/{workloadGroupName}/workloadClassifiers": {
+ "get": {
+ "operationId": "SqlPoolWorkloadClassifier_List",
+ "summary": "Sql pool's workload classifier",
+ "description": "Get list of Sql pool's workload classifier for workload groups.",
+ "tags": [
+ "SqlPools, WorkloadClassifiers"
+ ],
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ },
+ {
+ "type": "string",
+ "in": "path",
+ "name": "sqlPoolName",
+ "description": "SQL pool name",
+ "required": true
+ },
+ {
+ "name": "workloadGroupName",
+ "in": "path",
+ "description": "The name of the workload group.",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved the list of workload groups.",
+ "schema": {
+ "$ref": "#/definitions/WorkloadClassifierListResult"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***\n\n * 400 FeatureDisabledOnSelectedEdition - User attempted to use a feature which is disabled on current database edition.\n\n * 400 OperationNotAllowedOnPausedDatabase - Operation is not allowed on a paused database.\n\n * 404 ServerNotInSubscriptionResourceGroup - Specified server does not exist in the specified resource group and subscription.\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found\n\n * 404 DatabaseDoesNotExist - User has specified a database name that does not exist on this server instance.\n\n * 404 ResourceNotFound - The requested resource was not found.\n\n * 409 ConflictingSystemOperationInProgress - A system maintenance operation is in progress on the database and further operations need to wait until it is completed.\n\n * 409 UnsupportedWorkspaceType - Unsupported operation for the workspace type.\n\n * 409 ConflictingDatabaseOperation - There is already some operation on the database and the current operation should wait till it is done.\n\n * 503 DatabaseUnavailable - The operation failed because the database is unavailable.\n\n * 503 TooManyRequests - Requests beyond max requests that can be processed by available resources.\n\n * 504 RequestTimeout - Service request exceeded the allowed timeout."
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "Get the list of workload classifiers of a SQL Analytics pool's workload group": {
+ "$ref": "./examples/GetSqlPoolWorkloadGroupWorkloadClassifierList.json"
+ }
+ }
+ }
}
},
"definitions": {
@@ -3985,6 +4949,11 @@
"enabled": {
"type": "boolean",
"description": "Indicates whether the metadata sync is enabled or disabled"
+ },
+ "syncIntervalInMinutes": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The Sync Interval in minutes."
}
},
"x-ms-client-flatten": true
@@ -4045,6 +5014,18 @@
],
"description": "A database geo backup policy."
},
+ "GeoBackupPolicyListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/GeoBackupPolicy"
+ },
+ "description": "The list of geo backup policies."
+ }
+ },
+ "description": "The response to a list geo backup policies request."
+ },
"TopQueries": {
"properties": {
"aggregationFunction": {
@@ -4490,6 +5471,25 @@
],
"description": "Represents a Sql pool transparent data encryption configuration."
},
+ "TransparentDataEncryptionListResult": {
+ "description": "A list of transparent data encryption configurations.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Array of results.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/TransparentDataEncryption"
+ },
+ "readOnly": true
+ },
+ "nextLink": {
+ "description": "Link to retrieve next page of results.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
"SqlPoolBlobAuditingPolicyProperties": {
"description": "Properties of a Sql pool blob auditing policy.",
"required": [
@@ -5310,6 +6310,25 @@
}
}
},
+ "ListSqlPoolSecurityAlertPolicies": {
+ "description": "A list of SQL pool security alert policies.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Array of results.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SqlPoolSecurityAlertPolicy"
+ },
+ "readOnly": true
+ },
+ "nextLink": {
+ "description": "Link to retrieve next page of results.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
"SqlPoolVulnerabilityAssessmentRuleBaselineProperties": {
"description": "Properties of a Sql pool vulnerability assessment rule baseline.",
"required": [
@@ -5411,6 +6430,207 @@
}
}
},
+ "WorkloadGroupProperties": {
+ "description": "Workload group definition. For more information look at sys.workload_management_workload_groups (DMV).",
+ "required": [
+ "minResourcePercent",
+ "maxResourcePercent",
+ "minResourcePercentPerRequest"
+ ],
+ "type": "object",
+ "properties": {
+ "minResourcePercent": {
+ "format": "int32",
+ "description": "The workload group minimum percentage resource.",
+ "type": "integer"
+ },
+ "maxResourcePercent": {
+ "format": "int32",
+ "description": "The workload group cap percentage resource.",
+ "type": "integer"
+ },
+ "minResourcePercentPerRequest": {
+ "format": "double",
+ "description": "The workload group request minimum grant percentage.",
+ "type": "number"
+ },
+ "maxResourcePercentPerRequest": {
+ "format": "double",
+ "description": "The workload group request maximum grant percentage.",
+ "type": "number"
+ },
+ "importance": {
+ "description": "The workload group importance level.",
+ "type": "string"
+ },
+ "queryExecutionTimeout": {
+ "format": "int32",
+ "description": "The workload group query execution timeout.",
+ "type": "integer"
+ }
+ }
+ },
+ "WorkloadGroup": {
+ "description": "Workload group operations for a sql pool",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ProxyResource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/WorkloadGroupProperties",
+ "description": "Resource properties.",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "WorkloadGroupListResult": {
+ "description": "A list of workload groups.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Array of results.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/WorkloadGroup"
+ },
+ "readOnly": true
+ },
+ "nextLink": {
+ "description": "Link to retrieve next page of results.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "WorkloadClassifierProperties": {
+ "description": "Workload classifier definition. For more information look at sys.workload_management_workload_classifiers (DMV).",
+ "required": [
+ "memberName"
+ ],
+ "type": "object",
+ "properties": {
+ "memberName": {
+ "description": "The workload classifier member name.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The workload classifier label.",
+ "type": "string"
+ },
+ "context": {
+ "description": "The workload classifier context.",
+ "type": "string"
+ },
+ "startTime": {
+ "description": "The workload classifier start time for classification.",
+ "type": "string"
+ },
+ "endTime": {
+ "description": "The workload classifier end time for classification.",
+ "type": "string"
+ },
+ "importance": {
+ "description": "The workload classifier importance.",
+ "type": "string"
+ }
+ }
+ },
+ "WorkloadClassifier": {
+ "description": "Workload classifier operations for a data warehouse",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ProxyResource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/WorkloadClassifierProperties",
+ "description": "Resource properties.",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "WorkloadClassifierListResult": {
+ "description": "A list of workload classifiers for a workload group.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Array of results.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/WorkloadClassifier"
+ },
+ "readOnly": true
+ },
+ "nextLink": {
+ "description": "Link to retrieve next page of results.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "DataMaskingPolicyProperties": {
+ "properties": {
+ "dataMaskingState": {
+ "type": "string",
+ "description": "The state of the data masking policy.",
+ "enum": [
+ "Disabled",
+ "Enabled"
+ ],
+ "x-ms-enum": {
+ "modelAsString": false,
+ "name": "DataMaskingState"
+ }
+ },
+ "exemptPrincipals": {
+ "type": "string",
+ "description": "The list of the exempt principals. Specifies the semicolon-separated list of database users for which the data masking policy does not apply. The specified users receive data results without masking for all of the database queries."
+ },
+ "applicationPrincipals": {
+ "type": "string",
+ "description": "The list of the application principals. This is a legacy parameter and is no longer used.",
+ "readOnly": true
+ },
+ "maskingLevel": {
+ "type": "string",
+ "description": "The masking level. This is a legacy parameter and is no longer used.",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "dataMaskingState"
+ ],
+ "description": "The properties of a database data masking policy."
+ },
+ "DataMaskingPolicy": {
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ProxyResource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/DataMaskingPolicyProperties",
+ "description": "The properties of the data masking policy."
+ },
+ "location": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The location of the data masking policy."
+ },
+ "kind": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The kind of data masking policy. Metadata, used for Azure portal."
+ }
+ }
+ },
"ExtendedSqlPoolBlobAuditingPolicy": {
"description": "An extended Sql pool blob auditing policy.",
"type": "object",
@@ -5513,65 +6733,6 @@
}
}
},
- "DataMaskingPolicy": {
- "properties": {
- "properties": {
- "x-ms-client-flatten": true,
- "$ref": "#/definitions/DataMaskingPolicyProperties",
- "description": "The properties of the data masking policy."
- },
- "location": {
- "type": "string",
- "readOnly": true,
- "description": "The location of the data masking policy."
- },
- "kind": {
- "type": "string",
- "readOnly": true,
- "description": "The kind of data masking policy. Metadata, used for Azure portal."
- }
- },
- "allOf": [
- {
- "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ProxyResource"
- }
- ],
- "description": "Represents a database data masking policy."
- },
- "DataMaskingPolicyProperties": {
- "properties": {
- "dataMaskingState": {
- "type": "string",
- "description": "The state of the data masking policy.",
- "enum": [
- "Disabled",
- "Enabled"
- ],
- "x-ms-enum": {
- "modelAsString": false,
- "name": "DataMaskingState"
- }
- },
- "exemptPrincipals": {
- "type": "string",
- "description": "The list of the exempt principals. Specifies the semicolon-separated list of database users for which the data masking policy does not apply. The specified users receive data results without masking for all of the database queries."
- },
- "applicationPrincipals": {
- "type": "string",
- "description": "The list of the application principals. This is a legacy parameter and is no longer used.",
- "readOnly": true
- },
- "maskingLevel": {
- "type": "string",
- "description": "The masking level. This is a legacy parameter and is no longer used.",
- "readOnly": true
- }
- },
- "required": [
- "dataMaskingState"
- ],
- "description": "The properties of a database data masking policy."
- },
"DataMaskingRule": {
"properties": {
"properties": {
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/sqlServer.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/sqlServer.json
new file mode 100644
index 000000000000..ce734177f05d
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/sqlServer.json
@@ -0,0 +1,1783 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2019-06-01-preview",
+ "title": "SynapseManagementClient",
+ "description": "The Azure Synapse SQL management API provides a RESTful set of web APIs that interact with Azure Synapse SQL services to manage your resources. The API enables users to create, retrieve, update, and delete SqlServers sub resources."
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "securityDefinitions": {
+ "azure_auth": {
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "type": "oauth2",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ },
+ "description": "Azure Active Directory OAuth2 Flow"
+ }
+ },
+ "paths": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/auditingSettings/{blobAuditingPolicyName}": {
+ "get": {
+ "operationId": "WorkspaceManagedSqlServerBlobAuditingPolicies_Get",
+ "summary": "Get server's blob auditing policy.",
+ "description": "Get a workspace managed sql server's blob auditing policy.",
+ "tags": [
+ "WorkspaceManagedSqlServer, BlobAuditing"
+ ],
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ },
+ {
+ "name": "blobAuditingPolicyName",
+ "in": "path",
+ "description": "The name of the blob auditing policy.",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "default"
+ ],
+ "x-ms-enum": {
+ "name": "BlobAuditingPolicyName",
+ "modelAsString": true
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved workspace managed sql server's blob auditing policy.",
+ "schema": {
+ "$ref": "#/definitions/ServerBlobAuditingPolicy"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found.\n\n * 404 ServerNotInSubscriptionResourceGroup - Specified server does not exist in the specified resource group and subscription.\n\n * 409 UnsupportedWorkspaceType - Unsupported operation for the workspace type.\n\n * 500 InternalServerError - Something went wrong."
+ }
+ },
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "Get blob auditing setting of workspace managed sql Server": {
+ "$ref": "./examples/GetWorkspaceManagedSqlServerBlobAuditingSettings.json"
+ }
+ }
+ },
+ "put": {
+ "operationId": "WorkspaceManagedqlServerBlobAuditingPolicies_CreateOrUpdate",
+ "summary": "Create or Update server's blob auditing policy.",
+ "description": "Create or Update a workspace managed sql server's blob auditing policy.",
+ "tags": [
+ "WorkspaceManagedSqlServer, BlobAuditing"
+ ],
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ },
+ {
+ "name": "blobAuditingPolicyName",
+ "in": "path",
+ "description": "The name of the blob auditing policy.",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "default"
+ ],
+ "x-ms-enum": {
+ "name": "BlobAuditingPolicyName",
+ "modelAsString": true
+ }
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "description": "Properties of extended blob auditing policy.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ServerBlobAuditingPolicy"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully updated the auditing settings.",
+ "schema": {
+ "$ref": "#/definitions/ServerBlobAuditingPolicy"
+ }
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "*** Error Responses: ***\n\n * 400 InvalidServerBlobAuditingPolicyCreateRequest - The create server blob auditing policy request does not exist or has no properties object.\n\n * 400 InvalidBlobAuditActionsAndGroups - Invalid audit actions or action groups.\n\n * 400 DataSecurityInvalidUserSuppliedParameter - An invalid parameter value was provided by the client.\n\n * 400 BlobAuditingInvalidStorageAccountCredentials - The provided storage account or access key is not valid.\n\n * 400 InvalidBlobAuditActionsAndGroups - Invalid audit actions or action groups.\n\n * 400 InsufficientDiskSpaceForAuditing - Insufficient disk space to save auditing metadata in the database\n\n 400 InvalidBlobAuditActions - Invalid audit action.\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found\n\n * 404 ServerNotInSubscriptionResourceGroup - Specified server does not exist in the specified resource group and subscription.\n\n * 409 UnsupportedWorkspaceType - Unsupported operation for the workspace type.\n\n * 500 InternalServerError - Something went wrong."
+ }
+ },
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Create or update blob auditing policy of workspace managed Sql Server with minimal parameters": {
+ "$ref": "./examples/CreateWorkspaceManagedSqlServerBlobAuditingSettingsWithMinParameters.json"
+ },
+ "Create or update blob auditing policy of workspace SQL Server with all parameters": {
+ "$ref": "./examples/CreateWorkspaceManagedSqlServerBlobAuditingSettingsWithAllParameters.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/auditingSettings": {
+ "get": {
+ "operationId": "WorkspaceManagedSqlServerBlobAuditingPolicies_ListByWorkspace",
+ "summary": "List workspace server's blob auditing policies.",
+ "description": "List workspace managed sql server's blob auditing policies.",
+ "tags": [
+ "WorkspaceManagedSqlServer, BlobAuditing"
+ ],
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved auditing settings.",
+ "schema": {
+ "$ref": "#/definitions/ServerBlobAuditingPolicyListResult"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found.\n\n * 404 ServerNotInSubscriptionResourceGroup - Specified server does not exist in the specified resource group and subscription.\n\n * 409 UnsupportedWorkspaceType - Unsupported operation for the workspace type.\n\n * 500 InternalServerError - Something went wrong."
+ }
+ },
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Get blob auditing policy of workspace manged sql Server": {
+ "$ref": "./examples/ListWorkspaceManagedSqlServerBlobAuditingSettings.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/extendedAuditingSettings/{blobAuditingPolicyName}": {
+ "get": {
+ "operationId": "WorkspaceManagedSqlServerExtendedBlobAuditingPolicies_Get",
+ "summary": "Get server's extended blob auditing policy.",
+ "description": "Get a workspace SQL server's extended blob auditing policy.",
+ "tags": [
+ "WorkspaceManagedSqlServer, BlobAuditing"
+ ],
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ },
+ {
+ "name": "blobAuditingPolicyName",
+ "in": "path",
+ "description": "The name of the blob auditing policy.",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "default"
+ ],
+ "x-ms-enum": {
+ "name": "BlobAuditingPolicyName",
+ "modelAsString": true
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved extended auditing settings.",
+ "schema": {
+ "$ref": "#/definitions/ExtendedServerBlobAuditingPolicy"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found\n\n * 404 ServerNotInSubscriptionResourceGroup - Specified server does not exist in the specified resource group and subscription.\n\n * 409 UnsupportedWorkspaceType - Unsupported operation for the workspace type.\n\n * 500 InternalServerError - Something went wrong."
+ }
+ },
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "Get workspace managed sql servers' extended blob auditing settings": {
+ "$ref": "./examples/GetWorkspaceManagedSqlExtendedServerBlobAuditingSettings.json"
+ }
+ }
+ },
+ "put": {
+ "operationId": "WorkspaceManagedSqlServerExtendedBlobAuditingPolicies_CreateOrUpdate",
+ "summary": "Create or Update server's extended blob auditing policy.",
+ "description": "Create or Update a workspace managed sql server's extended blob auditing policy.",
+ "tags": [
+ "WorkspaceManagedSqlServer, BlobAuditing"
+ ],
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ },
+ {
+ "name": "blobAuditingPolicyName",
+ "in": "path",
+ "description": "The name of the blob auditing policy.",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "default"
+ ],
+ "x-ms-enum": {
+ "name": "BlobAuditingPolicyName",
+ "modelAsString": true
+ }
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "description": "Properties of extended blob auditing policy.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ExtendedServerBlobAuditingPolicy"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully updated the extended auditing settings.",
+ "schema": {
+ "$ref": "#/definitions/ExtendedServerBlobAuditingPolicy"
+ }
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "*** Error Responses: ***\n\n * 400 InvalidServerBlobAuditingPolicyCreateRequest - The create server blob auditing policy request does not exist or has no properties object.\n\n * 400 InvalidBlobAuditActionsAndGroups - Invalid audit actions or action groups.\n\n * 400 DataSecurityInvalidUserSuppliedParameter - An invalid parameter value was provided by the client.\n\n * 400 BlobAuditingPredicateExpressionEmpty - Invalid parameter 'predicateExpression', value can not be empty.\n\n * 400 BlobAuditingInvalidStorageAccountCredentials - The provided storage account or access key is not valid.\n\n * 400 InvalidBlobAuditActionsAndGroups - Invalid audit actions or action groups.\n\n * 400 InsufficientDiskSpaceForAuditing - Insufficient disk space to save auditing metadata in the database\n\n * 400 InvalidBlobAuditActions - Invalid audit action\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found\n\n * 404 ServerNotInSubscriptionResourceGroup - Specified server does not exist in the specified resource group and subscription.\n\n * 409 ServerBlobAuditingPolicyInProgress - Set server blob auditing is already in progress.\n\n * 409 UnsupportedWorkspaceType - Unsupported operation for the workspace type.\n\n * 500 InternalServerError - Something went wrong."
+ }
+ },
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Create or update workspace managed sql server's extended blob auditing policy of with minimal parameters": {
+ "$ref": "./examples/CreateWorkspaceManagedSqlServerExetendedBlobAuditingSettingsWithMinParameters.json"
+ },
+ "Create or update workspace managed sql server's extended blob auditing policy of with all parameters": {
+ "$ref": "./examples/CreateWorkspaceManagedSqlServerExtendedBlobAuditingSettingsWithAllParameters.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/extendedAuditingSettings": {
+ "get": {
+ "operationId": "WorkspaceManagedSqlServerExtendedBlobAuditingPolicies_ListByWorkspace",
+ "summary": "List server's extended blob auditing policies.",
+ "description": "List workspace managed sql server's extended blob auditing policies.",
+ "tags": [
+ "WorkspaceManagedSqlServer, BlobAuditing"
+ ],
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved extended auditing settings.",
+ "schema": {
+ "$ref": "#/definitions/ExtendedServerBlobAuditingPolicyListResult"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found\n\n * 404 ServerNotInSubscriptionResourceGroup - Specified server does not exist in the specified resource group and subscription.\n\n * 409 UnsupportedWorkspaceType - Unsupported operation for the workspace type.n\n * 500 InternalServerError - Something went wrong."
+ }
+ },
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Get workspace managed sql server's extended blob auditing settings": {
+ "$ref": "./examples/ListWorkspaceManagedSqlServerExtendedBlobAuditingSettings.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/securityAlertPolicies/{securityAlertPolicyName}": {
+ "get": {
+ "operationId": "WorkspaceManagedSqlServerSecurityAlertPolicy_Get",
+ "summary": "Get server's security alert policy.",
+ "description": "Get a workspace managed sql server's security alert policy.",
+ "tags": [
+ "WorkspaceManagedSqlServer, SecurityAlertPolicies"
+ ],
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ },
+ {
+ "name": "securityAlertPolicyName",
+ "in": "path",
+ "description": "The name of the security alert policy.",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "Default"
+ ],
+ "x-ms-enum": {
+ "name": "SecurityAlertPolicyName",
+ "modelAsString": true
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved security alert policy.",
+ "schema": {
+ "$ref": "#/definitions/ServerSecurityAlertPolicy"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***\n\n * 400 SecurityAlertPoliciesInvalidStorageAccountName - The provided storage account is not valid or does not exist.\n\n * 400 SecurityAlertPoliciesInvalidStorageAccountCredentials - The provided storage account access key is not valid.\n\n * 400 InvalidServerSecurityAlertPolicyCreateRequest - The create server Threat Detection security alert policy request does not exist or has no properties object.\n\n * 400 DataSecurityInvalidUserSuppliedParameter - An invalid parameter value was provided by the client.\n\n * 400 UpsertServerSecurityAlertPolicyFailed - An error has occurred while saving Threat detection settings, please try again later\n\n * 400 UpsertServerSecurityAlertPolicyFailed - An error has occurred while saving Threat detection settings, please try again later\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found\n\n * 404 UpsertServerSecurityAlertPolicyFailed - An error has occurred while saving Threat detection settings, please try again later\n\n * 409 ServerSecurityAlertPolicyInProgress - Set server security alert policy is already in progress\n\n * 409 UpsertServerSecurityAlertPolicyFailed - An error has occurred while saving Threat detection settings, please try again later\n\n * 409 UnsupportedWorkspaceType - Unsupported operation for the workspace type.n\n * 500 DatabaseIsUnavailable - Loading failed. Please try again later.\n\n * 500 UpsertServerSecurityAlertPolicyFailed - An error has occurred while saving Threat detection settings, please try again later\n\n * 500 GetServerSecurityAlertPolicyFailed - Failed to get Threat Detection settings\n\n * 500 InternalServerError - Something went wrong."
+ }
+ },
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "Get workspace managed sql Server's security alert policy": {
+ "$ref": "./examples/GetWorkspaceManagedSqlServerSecurityAlertPolicy.json"
+ }
+ }
+ },
+ "put": {
+ "operationId": "WorkspaceManagedSqlServerSecurityAlertPolicy_CreateOrUpdate",
+ "summary": "Create or Update server's threat detection policy.",
+ "description": "Create or Update a workspace managed sql server's threat detection policy.",
+ "tags": [
+ "WorkspaceManagedSqlServer, SecurityAlertPolicies"
+ ],
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ },
+ {
+ "name": "securityAlertPolicyName",
+ "in": "path",
+ "description": "The name of the security alert policy.",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "Default"
+ ],
+ "x-ms-enum": {
+ "name": "SecurityAlertPolicyName",
+ "modelAsString": true
+ }
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "description": "The workspace managed sql server security alert policy.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ServerSecurityAlertPolicy"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully updated threat detection policy.",
+ "schema": {
+ "$ref": "#/definitions/ServerSecurityAlertPolicy"
+ }
+ },
+ "202": {
+ "description": "Accepted."
+ },
+ "default": {
+ "description": "*** Error Responses: ***\n\n * 400 SecurityAlertPoliciesInvalidStorageAccountName - The provided storage account is not valid or does not exist.\n\n * 400 SecurityAlertPoliciesInvalidStorageAccountCredentials - The provided storage account access key is not valid.\n\n * 400 InvalidServerSecurityAlertPolicyCreateRequest - The create server Threat Detection security alert policy request does not exist or has no properties object.\n\n * 400 DataSecurityInvalidUserSuppliedParameter - An invalid parameter value was provided by the client.\n\n * 400 UpsertServerSecurityAlertPolicyFailed - An error has occurred while saving Threat detection settings, please try again later\n\n * 400 UpsertServerSecurityAlertPolicyFailed - An error has occurred while saving Threat detection settings, please try again later\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found\n\n * 404 UpsertServerSecurityAlertPolicyFailed - An error has occurred while saving Threat detection settings, please try again later\n\n * 409 ServerSecurityAlertPolicyInProgress - Set server security alert policy is already in progress\n\n * 409 UpsertServerSecurityAlertPolicyFailed - An error has occurred while saving Threat detection settings, please try again later\n\n * 409 UnsupportedWorkspaceType - Unsupported operation for the workspace type.n\n * 500 DatabaseIsUnavailable - Loading failed. Please try again later.\n\n * 500 UpsertServerSecurityAlertPolicyFailed - An error has occurred while saving Threat detection settings, please try again later\n\n * 500 UpsertServerSecurityAlertPolicyFailed - An error has occurred while saving Threat detection settings, please try again later\n\n * 500 InternalServerError - Something went wrong."
+ }
+ },
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Update a workspace managed sql server's threat detection policy with minimal parameters": {
+ "$ref": "./examples/WorkspaceManagedSqlServerSecurityAlertCreateWithMinParameters.json"
+ },
+ "Update a workspace managed sql server's threat detection policy with all parameters": {
+ "$ref": "./examples/WorkspaceManagedSqlServerSecurityAlertWithAllParameters.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/securityAlertPolicies": {
+ "get": {
+ "operationId": "WorkspaceManagedSqlServerSecurityAlertPolicy_List",
+ "summary": "Get server's threat detection policies.",
+ "description": "Get workspace managed sql server's threat detection policies.",
+ "tags": [
+ "WorkspaceManagedSqlServer, SecurityAlertPolicies"
+ ],
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved threat detection policies.",
+ "schema": {
+ "$ref": "#/definitions/ServerSecurityAlertPolicyListResult"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***\n\n * 400 SecurityAlertPoliciesInvalidStorageAccountName - The provided storage account is not valid or does not exist.\n\n * 400 SecurityAlertPoliciesInvalidStorageAccountCredentials - The provided storage account access key is not valid.\n\n * 400 InvalidServerSecurityAlertPolicyCreateRequest - The create server Threat Detection security alert policy request does not exist or has no properties object.\n\n * 400 DataSecurityInvalidUserSuppliedParameter - An invalid parameter value was provided by the client.\n\n * 400 UpsertServerSecurityAlertPolicyFailed - An error has occurred while saving Threat detection settings, please try again later\n\n * 400 UpsertServerSecurityAlertPolicyFailed - An error has occurred while saving Threat detection settings, please try again later\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found\n\n * 404 UpsertServerSecurityAlertPolicyFailed - An error has occurred while saving Threat detection settings, please try again later\n\n * 409 ServerSecurityAlertPolicyInProgress - Set server security alert policy is already in progress\n\n * 409 UpsertServerSecurityAlertPolicyFailed - An error has occurred while saving Threat detection settings, please try again later\n\n * 409 UnsupportedWorkspaceType - Unsupported operation for the workspace type.\n\n * 500 DatabaseIsUnavailable - Loading failed. Please try again later.\n\n * 500 UpsertServerSecurityAlertPolicyFailed - An error has occurred while saving Threat detection settings, please try again later\n\n * 500 GetServerSecurityAlertPolicyFailed - Failed to get Threat Detection settings\n\n * 500 InternalServerError - Something went wrong."
+ }
+ },
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Get workspace managed sql server's security alert policy": {
+ "$ref": "./examples/ListWorkspaceManagedSqlServerSecurityAlertPolicies.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/vulnerabilityAssessments/{vulnerabilityAssessmentName}": {
+ "get": {
+ "operationId": "WorkspaceManagedSqlServerVulnerabilityAssessments_Get",
+ "summary": "Get server's vulnerability assessment.",
+ "description": "Get workspace managed sql server's vulnerability assessment.",
+ "tags": [
+ "WorkspaceManagedSqlServer, ServerVulnerabilityAssessments"
+ ],
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ },
+ {
+ "name": "vulnerabilityAssessmentName",
+ "in": "path",
+ "description": "The name of the vulnerability assessment.",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "default"
+ ],
+ "x-ms-enum": {
+ "name": "VulnerabilityAssessmentName",
+ "modelAsString": true
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved vulnerability assessment.",
+ "schema": {
+ "$ref": "#/definitions/ServerVulnerabilityAssessment"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***\n\n * 400 InvalidStorageAccountName - The provided storage account is not valid or does not exist.\n\n * 400 InvalidStorageAccountCredentials - The provided storage account shared access signature or account storage key is not valid.\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found\n\n * 409 UnsupportedWorkspaceType - Unsupported operation for the workspace type.\n\n * 500 InternalServerError - Something went wrong."
+ }
+ },
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "Get workspace managed sql Server's vulnerability assessment": {
+ "$ref": "./examples/GetWorkspaceManagedSqlServerVulnerabilityAssessment.json"
+ }
+ }
+ },
+ "put": {
+ "operationId": "WorkspaceManagedSqlServerVulnerabilityAssessments_CreateOrUpdate",
+ "summary": "Create or Update server's vulnerability assessment.",
+ "description": "Create or Update workspace managed sql server's vulnerability assessment.",
+ "tags": [
+ "WorkspaceManagedSqlServer, ServerVulnerabilityAssessments"
+ ],
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ },
+ {
+ "name": "vulnerabilityAssessmentName",
+ "in": "path",
+ "description": "The name of the vulnerability assessment.",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "default"
+ ],
+ "x-ms-enum": {
+ "name": "VulnerabilityAssessmentName",
+ "modelAsString": true
+ }
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "description": "Properties for vulnerability assessment.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ServerVulnerabilityAssessment"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully created vulnerability assessment.",
+ "schema": {
+ "$ref": "#/definitions/ServerVulnerabilityAssessment"
+ }
+ },
+ "201": {
+ "description": "Successfully created the vulnerability assessment.",
+ "schema": {
+ "$ref": "#/definitions/ServerVulnerabilityAssessment"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***\n\n * 400 InvalidStorageAccountName - The provided storage account is not valid or does not exist.\n\n * 400 InvalidStorageAccountCredentials - The provided storage account shared access signature or account storage key is not valid.\n\n * 400 InvalidVulnerabilityAssessmentOperationRequest - The vulnerability assessment operation request does not exist or has no properties object.\n\n * 400 DataSecurityInvalidUserSuppliedParameter - An invalid parameter value was provided by the client.\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found\n\n * 409 UnsupportedWorkspaceType - Unsupported operation for the workspace type.\n\n * 500 InternalServerError - Something went wrong."
+ }
+ },
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "Create or Update a workspace managed sql server's vulnerability assessment with minimal parameters, when storageContainerSasKey is specified": {
+ "$ref": "./examples/PutWorkspaceMangedSqlServerVulnerabilityAssessmentCreateContainerSasKeyMin.json"
+ },
+ "Create or Update a workspace managed sql server's vulnerability assessment with minimal parameters, when storageAccountAccessKey is specified": {
+ "$ref": "./examples/PutWorkspaceMangedSqlServerVulnerabilityAssessmentCreateStorageAccessKeyMin.json"
+ },
+ "Create or Update a workspace managed sql server's vulnerability assessment with all parameters": {
+ "$ref": "./examples/PutWorkspaceManagedSqlServerVulnerabilityAssessmentWithAllParameters.json"
+ }
+ }
+ },
+ "delete": {
+ "operationId": "WorkspaceManagedSqlServerVulnerabilityAssessments_Delete",
+ "summary": "Remove server's vulnerability assessment.",
+ "description": "Remove workspace managed sql server's vulnerability assessment.",
+ "tags": [
+ "WorkspaceManagedSqlServer, ServerVulnerabilityAssessments"
+ ],
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ },
+ {
+ "name": "vulnerabilityAssessmentName",
+ "in": "path",
+ "description": "The name of the vulnerability assessment.",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "default"
+ ],
+ "x-ms-enum": {
+ "name": "VulnerabilityAssessmentName",
+ "modelAsString": true
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully removed vulnerability assessment."
+ },
+ "204": {
+ "description": "Specified vulnerability assessment policy does not exists."
+ },
+ "default": {
+ "description": "*** Error Responses: ***\n\n * 400 InvalidStorageAccountName - The provided storage account is not valid or does not exist.\n\n * 400 InvalidStorageAccountCredentials - The provided storage account shared access signature or account storage key is not valid.\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found\n\n * 409 UnsupportedWorkspaceType - Unsupported operation for the workspace type.\n\n * 500 InternalServerError - Something went wrong."
+ }
+ },
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "Remove workspace managed sql Server's vulnerability assessment": {
+ "$ref": "./examples/DeleteWorkspaceManagedSqlServerVulnerabilityAssessment.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/vulnerabilityAssessments": {
+ "get": {
+ "operationId": "WorkspaceManagedSqlServerVulnerabilityAssessments_List",
+ "summary": "Lists the vulnerability assessment policies associated with a server.",
+ "description": "Lists the vulnerability assessment policies associated with a workspace managed sql server.",
+ "tags": [
+ "WorkspaceManagedSqlServer, ServerVulnerabilityAssessments"
+ ],
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved vulnerability assessment policies.",
+ "schema": {
+ "$ref": "#/definitions/ServerVulnerabilityAssessmentListResult"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***\n\n * 400 InvalidStorageAccountName - The provided storage account is not valid or does not exist.\n\n * 400 InvalidStorageAccountCredentials - The provided storage account shared access signature or account storage key is not valid.\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found\n\n * 409 UnsupportedWorkspaceType - Unsupported operation for the workspace type.\n\n * 500 InternalServerError - Something went wrong."
+ }
+ },
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Get workspace managed sql Server's vulnerability assessment policies": {
+ "$ref": "./examples/ListWorkspaceManagedSqlServerVulnerabilityAssessmentPolicies.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/encryptionProtector/{encryptionProtectorName}": {
+ "get": {
+ "operationId": "WorkspaceManagedSqlServerEncryptionProtector_Get",
+ "summary": "Get workspace server's encryption protector.",
+ "description": "Get workspace managed sql server's encryption protector.",
+ "tags": [
+ "WorkspaceManagedSqlServer, ServerEncryptionProtector"
+ ],
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ },
+ {
+ "name": "encryptionProtectorName",
+ "in": "path",
+ "description": "The name of the encryption protector.",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "current"
+ ],
+ "x-ms-enum": {
+ "name": "EncryptionProtectorName",
+ "modelAsString": true
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved encryption protector.",
+ "schema": {
+ "$ref": "#/definitions/EncryptionProtector"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***\n\n * 400 InvalidKeyName - An invalid value was given for the server key name.\n\n * 400 InvalidKeyType - The create server key type is not supported.\n\n * 400 InvalidUpsertKeyType - Service Managed type keys are managed by Azure SQL. This key type does not support create or update by the user.\n\n * 400 InvalidKeyUpsertRequest - The create server key request does not exist or has no properties object.\n\n * 400 InvalidEncryptionProtectorName - The encryption protector key name is not supported.\n\n * 404 ServerNotInSubscriptionResourceGroup - Specified server does not exist in the specified resource group and subscription.\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found\n\n * 404 ResourceNotFound - The requested resource was not found.\n\n * 409 UnsupportedWorkspaceType - Unsupported operation for the workspace type.\n\n * 500 InternalServerError - Something went wrong."
+ }
+ },
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "Get workspace managed sql Server's encryption protector": {
+ "$ref": "./examples/GetWorkspaceManagedSqlServerEncryptionProtector.json"
+ }
+ }
+ },
+ "put": {
+ "operationId": "WorkspaceManagedSqlServerEncryptionProtector_CreateOrUpdate",
+ "summary": "Updates workspace server's encryption protector.",
+ "description": "Updates workspace managed sql server's encryption protector.",
+ "tags": [
+ "WorkspaceManagedSqlServer, ServerEncryptionProtector"
+ ],
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ },
+ {
+ "name": "encryptionProtectorName",
+ "in": "path",
+ "description": "The name of the encryption protector.",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "current"
+ ],
+ "x-ms-enum": {
+ "name": "EncryptionProtectorName",
+ "modelAsString": true
+ }
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "description": "The requested encryption protector resource state.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/EncryptionProtector"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved encryption protector.",
+ "schema": {
+ "$ref": "#/definitions/EncryptionProtector"
+ }
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "*** Error Responses: ***\n\n * 400 InvalidKeyName - An invalid value was given for the server key name.\n\n * 400 InvalidKeyType - The create server key type is not supported.\n\n * 400 InvalidUpsertKeyType - Service Managed type keys are managed by Azure SQL. This key type does not support create or update by the user.\n\n * 400 InvalidKeyUpsertRequest - The create server key request does not exist or has no properties object.\n\n * 400 InvalidEncryptionProtectorName - The encryption protector key name is not supported.\n\n * 400 SecurityAzureKeyVaultGeoChainError - Creating secondary of secondary (a process known as chaining) is not supported when enabling Transparent Data Encryption using Azure Key Vault (BYOK).\n\n * 400 AzureKeyVaultInvalidExpirationDate - The operation could not be completed because the Azure Key Vault key expiration date is invalid.\n\n * 400 SecurityAzureKeyVaultUrlNullOrEmpty - The operation could not be completed because the Azure Key Vault Uri is null or empty.\n\n * 400 AzureKeyVaultInvalidUri - An invalid response from Azure Key Vault. Please use a valid Azure Key Vault URI.\n\n * 400 SecurityAzureKeyVaultInvalidKeyName - The operation could not be completed because of an invalid Server Key name.\n\n * 400 AzureKeyVaultMalformedVaultUri - The provided Key Vault uri is not valid.\n\n * 400 SecurityAdalPrincipalCertExpiredError - The operation could not be completed because the Azure Key Vault principal certificate has expired.\n\n * 400 SecurityInvalidAzureKeyVaultRecoveryLevel - The provided Key Vault uri is not valid.\n\n * 400 KeyMaterialNotFoundOnRemoteServer - Remote server does not have access to key material used as a TDE protector.\n\n * 400 AzureKeyVaultMismatchError - Unexpected Key Vault region found in the http response.\n\n * 400 AzureKeyVaultRsaKeyNotSupported - The provided key vault uses unsupported RSA Key Size or Key Type. The supported RSA key size is 2048 and Key Type is RSA.\n\n * 401 AzureKeyVaultKeyDisabled - The operation could not be completed on the server because the Azure Key Vault key is disabled.\n\n * 401 AzureKeyVaultNoServerIdentity - The server identity is not correctly configured.\n\n * 401 AzureKeyVaultMissingPermissions - The server is missing required permissions on the Azure Key Vault. \n\n * 401 AdalGenericError - The operation could not be completed because an Azure Active Directory error was encountered.\n\n * 401 AdalServicePrincipalNotFound - The operation could not be completed because an Azure Active Directory library Service Principal not found error was encountered.\n\n * 404 ServerNotInSubscriptionResourceGroup - Specified server does not exist in the specified resource group and subscription.\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found\n\n * 404 ResourceNotFound - The requested resource was not found.\n\n * 404 ServerKeyNotFound - The requested server key was not found on the current subscription.\n\n * 409 ServerKeyNameAlreadyExists - The server key already exists on the server.\n\n * 409 ServerKeyUriAlreadyExists - The server key URI already exists on the server.\n\n * 409 ServerKeyDoesNotExists - The server key does not exist.\n\n * 409 AzureKeyVaultKeyNameNotFound - The operation could not be completed because the Azure Key Vault Key name does not exist.\n\n * 409 AzureKeyVaultKeyInUse - The key is currently being used by the server.\n\n * 409 UnsupportedWorkspaceType - Unsupported operation for the workspace type.\n\n * 500 InternalServerError - Something went wrong.\n\n * 503 AzureKeyVaultConnectionFailed - The operation could not be completed on the server because attempts to connect to Azure Key Vault have failed\n\n * 503 AzureKeyVaultGenericConnectionError - The operation could not be completed because an error was encountered when attempting to retrieve Key Vault information."
+ }
+ },
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Update the encryption protector to key vault": {
+ "$ref": "./examples/WorkspaceManagedSqlServerEncryptionProtectorCreateOrUpdateKeyVault.json"
+ },
+ "Update the encryption protector to service managed": {
+ "$ref": "./examples/WorkspaceManagedSqlServerEncryptionProtectorCreateOrUpdateServiceManaged.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/encryptionProtector": {
+ "get": {
+ "operationId": "WorkspaceManagedSqlServerEncryptionProtector_List",
+ "summary": "Get list of encryption protectors for the server.",
+ "description": "Get list of encryption protectors for workspace managed sql server.",
+ "tags": [
+ "WorkspaceManagedSqlServer, ServerEncryptionProtector"
+ ],
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved encryption protectors.",
+ "schema": {
+ "$ref": "#/definitions/EncryptionProtectorListResult"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***\n\n * 400 InvalidKeyName - An invalid value was given for the server key name.\n\n * 400 InvalidKeyType - The create server key type is not supported.\n\n * 400 InvalidUpsertKeyType - Service Managed type keys are managed by Azure SQL. This key type does not support create or update by the user.\n\n * 400 InvalidKeyUpsertRequest - The create server key request does not exist or has no properties object.\n\n * 400 InvalidEncryptionProtectorName - The encryption protector key name is not supported.\n\n * 404 ServerNotInSubscriptionResourceGroup - Specified server does not exist in the specified resource group and subscription.\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found.\n\n * 409 UnsupportedWorkspaceType - Unsupported operation for the workspace type.\n\n * 500 InternalServerError - Something went wrong."
+ }
+ },
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Get workspace managed sql Server's encryption protectors": {
+ "$ref": "./examples/GetWorkspaceManagedSqlServerEncryptionProtectorList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/encryptionProtector/{encryptionProtectorName}/revalidate": {
+ "post": {
+ "operationId": "WorkspaceManagedSqlServerEncryptionProtector_Revalidate",
+ "summary": "Revalidates server's existing encryption protector.",
+ "description": "Revalidates workspace managed sql server's existing encryption protector.",
+ "tags": [
+ "WorkspaceManagedSqlServer, ServerEncryptionProtector"
+ ],
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ },
+ {
+ "name": "encryptionProtectorName",
+ "in": "path",
+ "description": "The name of the encryption protector.",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "current"
+ ],
+ "x-ms-enum": {
+ "name": "EncryptionProtectorName",
+ "modelAsString": true
+ }
+ }
+ ],
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully revalidated the encryption protector."
+ },
+ "default": {
+ "description": "*** Error Responses: ***\n\n * 400 InvalidKeyName - An invalid value was given for the server key name.\n\n * 400 InvalidKeyType - The create server key type is not supported.\n\n * 400 InvalidUpsertKeyType - Service Managed type keys are managed by Azure SQL. This key type does not support create or update by the user.\n\n * 400 InvalidKeyUpsertRequest - The create server key request does not exist or has no properties object.\n\n * 400 InvalidEncryptionProtectorName - The encryption protector key name is not supported.\n\n * 400 SecurityAzureKeyVaultGeoChainError - Creating secondary of secondary (a process known as chaining) is not supported when enabling Transparent Data Encryption using Azure Key Vault (BYOK).\n\n * 400 AzureKeyVaultInvalidExpirationDate - The operation could not be completed because the Azure Key Vault key expiration date is invalid.\n\n * 400 SecurityAzureKeyVaultUrlNullOrEmpty - The operation could not be completed because the Azure Key Vault Uri is null or empty.\n\n * 400 AzureKeyVaultInvalidUri - An invalid response from Azure Key Vault. Please use a valid Azure Key Vault URI.\n\n * 400 SecurityAzureKeyVaultInvalidKeyName - The operation could not be completed because of an invalid Server Key name.\n\n * 400 AzureKeyVaultMalformedVaultUri - The provided Key Vault uri is not valid.\n\n * 400 SecurityAdalPrincipalCertExpiredError - The operation could not be completed because the Azure Key Vault principal certificate has expired.\n\n * 400 SecurityInvalidAzureKeyVaultRecoveryLevel - The provided Key Vault uri is not valid.\n\n * 400 KeyMaterialNotFoundOnRemoteServer - Remote server does not have access to key material used as a TDE protector.\n\n * 400 AzureKeyVaultMismatchError - Unexpected Key Vault region found in the http response.\n\n * 400 AzureKeyVaultRsaKeyNotSupported - The provided key vault uses unsupported RSA Key Size or Key Type. The supported RSA key size is 2048 and Key Type is RSA.\n\n * 401 AzureKeyVaultKeyDisabled - The operation could not be completed on the server because the Azure Key Vault key is disabled.\n\n * 401 AzureKeyVaultNoServerIdentity - The server identity is not correctly configured.\n\n * 401 AzureKeyVaultMissingPermissions - The server is missing required permissions on the Azure Key Vault. \n\n * 401 AdalGenericError - The operation could not be completed because an Azure Active Directory error was encountered.\n\n * 401 AdalServicePrincipalNotFound - The operation could not be completed because an Azure Active Directory library Service Principal not found error was encountered.\n\n * 404 ServerNotInSubscriptionResourceGroup - Specified server does not exist in the specified resource group and subscription.\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found\n\n * 404 ResourceNotFound - The requested resource was not found.\n\n * 404 ServerKeyNotFound - The requested server key was not found on the current subscription.\n\n * 409 ServerKeyNameAlreadyExists - The server key already exists on the server.\n\n * 409 ServerKeyUriAlreadyExists - The server key URI already exists on the server.\n\n * 409 ServerKeyDoesNotExists - The server key does not exist.\n\n * 409 AzureKeyVaultKeyNameNotFound - The operation could not be completed because the Azure Key Vault Key name does not exist.\n\n * 409 AzureKeyVaultKeyInUse - The key is currently being used by the server.\n\n * 409 UnsupportedWorkspaceType - Unsupported operation for the workspace type.\n\n * 500 InternalServerError - Something went wrong.\n\n * 503 AzureKeyVaultConnectionFailed - The operation could not be completed on the server because attempts to connect to Azure Key Vault have failed\n\n * 503 AzureKeyVaultGenericConnectionError - The operation could not be completed because an error was encountered when attempting to retrieve Key Vault information ."
+ },
+ "202": {
+ "description": "Accepted"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Revalidates the encryption protector": {
+ "$ref": "./examples/WorkspaceManagedSqlServerEncryptionProtectorRevalidate.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlUsages": {
+ "get": {
+ "tags": [
+ "WorkspaceManagedSqlServer, sqlUsages"
+ ],
+ "operationId": "WorkspaceManagedSqlServerUsages_List",
+ "summary": "Get list of usages metric for the server.",
+ "description": "Get list of server usages metric for workspace managed sql server.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ServerUsageListResult"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found.\n\n * 404 ServerNotInSubscriptionResourceGroup - Specified server does not exist in the specified resource group and subscription.\n\n * 409 UnsupportedWorkspaceType - Unsupported operation for the workspace type.\n\n * 500 InternalServerError - Something went wrong."
+ }
+ },
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "List usages metric for the workspace managed sql server": {
+ "$ref": "./examples/ListWorkspaceManagedSqlServerUsages.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/recoverableSqlpools": {
+ "get": {
+ "tags": [
+ "WorkspaceManagedSqlServer",
+ "recoverableSqlpools"
+ ],
+ "operationId": "WorkspaceManagedSqlServerRecoverableSqlpools_List",
+ "summary": "Get list of recoverable sql pools for the server.",
+ "description": "Get list of recoverable sql pools for workspace managed sql server.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/RecoverableSqlPoolListResult"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found.\n\n * 404 ServerNotInSubscriptionResourceGroup - Specified server does not exist in the specified resource group and subscription.\n\n * 409 UnsupportedWorkspaceType - Unsupported operation for the workspace type.\n\n * 500 InternalServerError - Something went wrong."
+ }
+ },
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "List recoverable sql pools for the server": {
+ "$ref": "./examples/ListWorkspaceManagedSqlServerRecoverableSqlPool.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/recoverableSqlPools/{sqlComputeName}": {
+ "get": {
+ "tags": [
+ "WorkspaceManagedSqlServer",
+ "recoverableSqlPools"
+ ],
+ "operationId": "WorkspaceManagedSqlServerRecoverableSqlPools_Get",
+ "summary": "Get recoverable sql pools for the server.",
+ "description": "Get recoverable sql pools for workspace managed sql server.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ },
+ {
+ "name": "sqlComputeName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the sql compute"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/RecoverableSqlPool"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found.\n\n * 404 ServerNotInSubscriptionResourceGroup - Specified server does not exist in the specified resource group and subscription.\n\n * 409 UnsupportedWorkspaceType - Unsupported operation for the workspace type.\n\n * 500 InternalServerError - Something went wrong."
+ }
+ },
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "Get recoverable sql pools for the server": {
+ "$ref": "./examples/GetWorkspaceManagedSqlServerRecoverableSqlPool.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "ServerBlobAuditingPolicyProperties": {
+ "description": "Properties of a server blob auditing policy.",
+ "required": [
+ "state"
+ ],
+ "type": "object",
+ "properties": {
+ "state": {
+ "description": "Specifies the state of the policy. If state is Enabled, storageEndpoint or isAzureMonitorTargetEnabled are required.",
+ "enum": [
+ "Enabled",
+ "Disabled"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "BlobAuditingPolicyState",
+ "modelAsString": false
+ }
+ },
+ "storageEndpoint": {
+ "description": "Specifies the blob storage endpoint (e.g. https://MyAccount.blob.core.windows.net). If state is Enabled, storageEndpoint or isAzureMonitorTargetEnabled is required.",
+ "type": "string"
+ },
+ "storageAccountAccessKey": {
+ "description": "Specifies the identifier key of the auditing storage account. \r\nIf state is Enabled and storageEndpoint is specified, not specifying the storageAccountAccessKey will use SQL server system-assigned managed identity to access the storage.\r\nPrerequisites for using managed identity authentication:\r\n1. Assign SQL Server a system-assigned managed identity in Azure Active Directory (AAD).\r\n2. Grant SQL Server identity access to the storage account by adding 'Storage Blob Data Contributor' RBAC role to the server identity.\r\nFor more information, see [Auditing to storage using Managed Identity authentication](https://go.microsoft.com/fwlink/?linkid=2114355)",
+ "type": "string",
+ "x-ms-mutability": [
+ "create",
+ "update"
+ ]
+ },
+ "retentionDays": {
+ "format": "int32",
+ "description": "Specifies the number of days to keep in the audit logs in the storage account.",
+ "type": "integer"
+ },
+ "auditActionsAndGroups": {
+ "description": "Specifies the Actions-Groups and Actions to audit.\r\n\r\nThe recommended set of action groups to use is the following combination - this will audit all the queries and stored procedures executed against the database, as well as successful and failed logins:\r\n\r\nBATCH_COMPLETED_GROUP,\r\nSUCCESSFUL_DATABASE_AUTHENTICATION_GROUP,\r\nFAILED_DATABASE_AUTHENTICATION_GROUP.\r\n\r\nThis above combination is also the set that is configured by default when enabling auditing from the Azure portal.\r\n\r\nThe supported action groups to audit are (note: choose only specific groups that cover your auditing needs. Using unnecessary groups could lead to very large quantities of audit records):\r\n\r\nAPPLICATION_ROLE_CHANGE_PASSWORD_GROUP\r\nBACKUP_RESTORE_GROUP\r\nDATABASE_LOGOUT_GROUP\r\nDATABASE_OBJECT_CHANGE_GROUP\r\nDATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP\r\nDATABASE_OBJECT_PERMISSION_CHANGE_GROUP\r\nDATABASE_OPERATION_GROUP\r\nDATABASE_PERMISSION_CHANGE_GROUP\r\nDATABASE_PRINCIPAL_CHANGE_GROUP\r\nDATABASE_PRINCIPAL_IMPERSONATION_GROUP\r\nDATABASE_ROLE_MEMBER_CHANGE_GROUP\r\nFAILED_DATABASE_AUTHENTICATION_GROUP\r\nSCHEMA_OBJECT_ACCESS_GROUP\r\nSCHEMA_OBJECT_CHANGE_GROUP\r\nSCHEMA_OBJECT_OWNERSHIP_CHANGE_GROUP\r\nSCHEMA_OBJECT_PERMISSION_CHANGE_GROUP\r\nSUCCESSFUL_DATABASE_AUTHENTICATION_GROUP\r\nUSER_CHANGE_PASSWORD_GROUP\r\nBATCH_STARTED_GROUP\r\nBATCH_COMPLETED_GROUP\r\n\r\nThese are groups that cover all sql statements and stored procedures executed against the database, and should not be used in combination with other groups as this will result in duplicate audit logs.\r\n\r\nFor more information, see [Database-Level Audit Action Groups](https://docs.microsoft.com/en-us/sql/relational-databases/security/auditing/sql-server-audit-action-groups-and-actions#database-level-audit-action-groups).\r\n\r\nFor Database auditing policy, specific Actions can also be specified (note that Actions cannot be specified for Server auditing policy). The supported actions to audit are:\r\nSELECT\r\nUPDATE\r\nINSERT\r\nDELETE\r\nEXECUTE\r\nRECEIVE\r\nREFERENCES\r\n\r\nThe general form for defining an action to be audited is:\r\n{action} ON {object} BY {principal}\r\n\r\nNote that in the above format can refer to an object like a table, view, or stored procedure, or an entire database or schema. For the latter cases, the forms DATABASE::{db_name} and SCHEMA::{schema_name} are used, respectively.\r\n\r\nFor example:\r\nSELECT on dbo.myTable by public\r\nSELECT on DATABASE::myDatabase by public\r\nSELECT on SCHEMA::mySchema by public\r\n\r\nFor more information, see [Database-Level Audit Actions](https://docs.microsoft.com/en-us/sql/relational-databases/security/auditing/sql-server-audit-action-groups-and-actions#database-level-audit-actions)",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "storageAccountSubscriptionId": {
+ "format": "uuid",
+ "description": "Specifies the blob storage subscription Id.",
+ "type": "string"
+ },
+ "isStorageSecondaryKeyInUse": {
+ "description": "Specifies whether storageAccountAccessKey value is the storage's secondary key.",
+ "type": "boolean"
+ },
+ "isAzureMonitorTargetEnabled": {
+ "description": "Specifies whether audit events are sent to Azure Monitor. \r\nIn order to send the events to Azure Monitor, specify 'state' as 'Enabled' and 'isAzureMonitorTargetEnabled' as true.\r\n\r\nWhen using REST API to configure auditing, Diagnostic Settings with 'SQLSecurityAuditEvents' diagnostic logs category on the database should be also created.\r\nNote that for server level audit you should use the 'master' database as {databaseName}.\r\n\r\nDiagnostic Settings URI format:\r\nPUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/providers/microsoft.insights/diagnosticSettings/{settingsName}?api-version=2017-05-01-preview\r\n\r\nFor more information, see [Diagnostic Settings REST API](https://go.microsoft.com/fwlink/?linkid=2033207)\r\nor [Diagnostic Settings PowerShell](https://go.microsoft.com/fwlink/?linkid=2033043)\r\n",
+ "type": "boolean"
+ },
+ "queueDelayMs": {
+ "format": "int32",
+ "description": "Specifies the amount of time in milliseconds that can elapse before audit actions are forced to be processed.\r\nThe default minimum value is 1000 (1 second). The maximum is 2,147,483,647.",
+ "type": "integer"
+ }
+ }
+ },
+ "ServerBlobAuditingPolicy": {
+ "description": "A server blob auditing policy.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ProxyResource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/ServerBlobAuditingPolicyProperties",
+ "description": "Resource properties.",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "ServerBlobAuditingPolicyListResult": {
+ "description": "A list of server auditing settings.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Array of results.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ServerBlobAuditingPolicy"
+ },
+ "readOnly": true
+ },
+ "nextLink": {
+ "description": "Link to retrieve next page of results.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "ExtendedServerBlobAuditingPolicyProperties": {
+ "description": "Properties of an extended server blob auditing policy.",
+ "required": [
+ "state"
+ ],
+ "type": "object",
+ "properties": {
+ "predicateExpression": {
+ "description": "Specifies condition of where clause when creating an audit.",
+ "type": "string"
+ },
+ "state": {
+ "description": "Specifies the state of the policy. If state is Enabled, storageEndpoint or isAzureMonitorTargetEnabled are required.",
+ "enum": [
+ "Enabled",
+ "Disabled"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "BlobAuditingPolicyState",
+ "modelAsString": false
+ }
+ },
+ "storageEndpoint": {
+ "description": "Specifies the blob storage endpoint (e.g. https://MyAccount.blob.core.windows.net). If state is Enabled, storageEndpoint or isAzureMonitorTargetEnabled is required.",
+ "type": "string"
+ },
+ "storageAccountAccessKey": {
+ "description": "Specifies the identifier key of the auditing storage account. \r\nIf state is Enabled and storageEndpoint is specified, not specifying the storageAccountAccessKey will use SQL server system-assigned managed identity to access the storage.\r\nPrerequisites for using managed identity authentication:\r\n1. Assign SQL Server a system-assigned managed identity in Azure Active Directory (AAD).\r\n2. Grant SQL Server identity access to the storage account by adding 'Storage Blob Data Contributor' RBAC role to the server identity.\r\nFor more information, see [Auditing to storage using Managed Identity authentication](https://go.microsoft.com/fwlink/?linkid=2114355)",
+ "type": "string",
+ "x-ms-mutability": [
+ "create",
+ "update"
+ ]
+ },
+ "retentionDays": {
+ "format": "int32",
+ "description": "Specifies the number of days to keep in the audit logs in the storage account.",
+ "type": "integer"
+ },
+ "auditActionsAndGroups": {
+ "description": "Specifies the Actions-Groups and Actions to audit.\r\n\r\nThe recommended set of action groups to use is the following combination - this will audit all the queries and stored procedures executed against the database, as well as successful and failed logins:\r\n\r\nBATCH_COMPLETED_GROUP,\r\nSUCCESSFUL_DATABASE_AUTHENTICATION_GROUP,\r\nFAILED_DATABASE_AUTHENTICATION_GROUP.\r\n\r\nThis above combination is also the set that is configured by default when enabling auditing from the Azure portal.\r\n\r\nThe supported action groups to audit are (note: choose only specific groups that cover your auditing needs. Using unnecessary groups could lead to very large quantities of audit records):\r\n\r\nAPPLICATION_ROLE_CHANGE_PASSWORD_GROUP\r\nBACKUP_RESTORE_GROUP\r\nDATABASE_LOGOUT_GROUP\r\nDATABASE_OBJECT_CHANGE_GROUP\r\nDATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP\r\nDATABASE_OBJECT_PERMISSION_CHANGE_GROUP\r\nDATABASE_OPERATION_GROUP\r\nDATABASE_PERMISSION_CHANGE_GROUP\r\nDATABASE_PRINCIPAL_CHANGE_GROUP\r\nDATABASE_PRINCIPAL_IMPERSONATION_GROUP\r\nDATABASE_ROLE_MEMBER_CHANGE_GROUP\r\nFAILED_DATABASE_AUTHENTICATION_GROUP\r\nSCHEMA_OBJECT_ACCESS_GROUP\r\nSCHEMA_OBJECT_CHANGE_GROUP\r\nSCHEMA_OBJECT_OWNERSHIP_CHANGE_GROUP\r\nSCHEMA_OBJECT_PERMISSION_CHANGE_GROUP\r\nSUCCESSFUL_DATABASE_AUTHENTICATION_GROUP\r\nUSER_CHANGE_PASSWORD_GROUP\r\nBATCH_STARTED_GROUP\r\nBATCH_COMPLETED_GROUP\r\n\r\nThese are groups that cover all sql statements and stored procedures executed against the database, and should not be used in combination with other groups as this will result in duplicate audit logs.\r\n\r\nFor more information, see [Database-Level Audit Action Groups](https://docs.microsoft.com/en-us/sql/relational-databases/security/auditing/sql-server-audit-action-groups-and-actions#database-level-audit-action-groups).\r\n\r\nFor Database auditing policy, specific Actions can also be specified (note that Actions cannot be specified for Server auditing policy). The supported actions to audit are:\r\nSELECT\r\nUPDATE\r\nINSERT\r\nDELETE\r\nEXECUTE\r\nRECEIVE\r\nREFERENCES\r\n\r\nThe general form for defining an action to be audited is:\r\n{action} ON {object} BY {principal}\r\n\r\nNote that in the above format can refer to an object like a table, view, or stored procedure, or an entire database or schema. For the latter cases, the forms DATABASE::{db_name} and SCHEMA::{schema_name} are used, respectively.\r\n\r\nFor example:\r\nSELECT on dbo.myTable by public\r\nSELECT on DATABASE::myDatabase by public\r\nSELECT on SCHEMA::mySchema by public\r\n\r\nFor more information, see [Database-Level Audit Actions](https://docs.microsoft.com/en-us/sql/relational-databases/security/auditing/sql-server-audit-action-groups-and-actions#database-level-audit-actions)",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "storageAccountSubscriptionId": {
+ "format": "uuid",
+ "description": "Specifies the blob storage subscription Id.",
+ "type": "string"
+ },
+ "isStorageSecondaryKeyInUse": {
+ "description": "Specifies whether storageAccountAccessKey value is the storage's secondary key.",
+ "type": "boolean"
+ },
+ "isAzureMonitorTargetEnabled": {
+ "description": "Specifies whether audit events are sent to Azure Monitor. \r\nIn order to send the events to Azure Monitor, specify 'state' as 'Enabled' and 'isAzureMonitorTargetEnabled' as true.\r\n\r\nWhen using REST API to configure auditing, Diagnostic Settings with 'SQLSecurityAuditEvents' diagnostic logs category on the database should be also created.\r\nNote that for server level audit you should use the 'master' database as {databaseName}.\r\n\r\nDiagnostic Settings URI format:\r\nPUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/providers/microsoft.insights/diagnosticSettings/{settingsName}?api-version=2017-05-01-preview\r\n\r\nFor more information, see [Diagnostic Settings REST API](https://go.microsoft.com/fwlink/?linkid=2033207)\r\nor [Diagnostic Settings PowerShell](https://go.microsoft.com/fwlink/?linkid=2033043)\r\n",
+ "type": "boolean"
+ },
+ "queueDelayMs": {
+ "format": "int32",
+ "description": "Specifies the amount of time in milliseconds that can elapse before audit actions are forced to be processed.\r\nThe default minimum value is 1000 (1 second). The maximum is 2,147,483,647.",
+ "type": "integer"
+ }
+ }
+ },
+ "ExtendedServerBlobAuditingPolicy": {
+ "description": "An extended server blob auditing policy.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ProxyResource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/ExtendedServerBlobAuditingPolicyProperties",
+ "description": "Resource properties.",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "ExtendedServerBlobAuditingPolicyListResult": {
+ "description": "A list of server extended auditing settings.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Array of results.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ExtendedServerBlobAuditingPolicy"
+ },
+ "readOnly": true
+ },
+ "nextLink": {
+ "description": "Link to retrieve next page of results.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "ServerSecurityAlertPolicyProperties": {
+ "description": "Properties of a security alert policy.",
+ "required": [
+ "state"
+ ],
+ "type": "object",
+ "properties": {
+ "state": {
+ "description": "Specifies the state of the policy, whether it is enabled or disabled or a policy has not been applied yet on the specific server",
+ "enum": [
+ "New",
+ "Enabled",
+ "Disabled"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "SecurityAlertPolicyState",
+ "modelAsString": false
+ }
+ },
+ "disabledAlerts": {
+ "description": "Specifies an array of alerts that are disabled. Allowed values are: Sql_Injection, Sql_Injection_Vulnerability, Access_Anomaly, Data_Exfiltration, Unsafe_Action",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "emailAddresses": {
+ "description": "Specifies an array of e-mail addresses to which the alert is sent.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "emailAccountAdmins": {
+ "description": "Specifies that the alert is sent to the account administrators.",
+ "type": "boolean"
+ },
+ "storageEndpoint": {
+ "description": "Specifies the blob storage endpoint (e.g. https://MyAccount.blob.core.windows.net). This blob storage will hold all Threat Detection audit logs.",
+ "type": "string"
+ },
+ "storageAccountAccessKey": {
+ "description": "Specifies the identifier key of the Threat Detection audit storage account.",
+ "type": "string"
+ },
+ "retentionDays": {
+ "format": "int32",
+ "description": "Specifies the number of days to keep in the Threat Detection audit logs.",
+ "type": "integer"
+ },
+ "creationTime": {
+ "format": "date-time",
+ "description": "Specifies the UTC creation time of the policy.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "ServerSecurityAlertPolicy": {
+ "description": "Workspace managed Sql server security alert policy.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ProxyResource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/ServerSecurityAlertPolicyProperties",
+ "description": "Resource properties.",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "ServerSecurityAlertPolicyListResult": {
+ "description": "A list of the workspace managed sql server's security alert policies.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Array of results.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ServerSecurityAlertPolicy"
+ },
+ "readOnly": true
+ },
+ "nextLink": {
+ "description": "Link to retrieve next page of results.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "ServerVulnerabilityAssessmentProperties": {
+ "description": "Properties of a server Vulnerability Assessment.",
+ "required": [
+ "storageContainerPath"
+ ],
+ "type": "object",
+ "properties": {
+ "storageContainerPath": {
+ "description": "A blob storage container path to hold the scan results (e.g. https://myStorage.blob.core.windows.net/VaScans/).",
+ "type": "string"
+ },
+ "storageContainerSasKey": {
+ "description": "A shared access signature (SAS Key) that has read and write access to the blob container specified in 'storageContainerPath' parameter. If 'storageAccountAccessKey' isn't specified, StorageContainerSasKey is required.",
+ "type": "string",
+ "x-ms-mutability": [
+ "create",
+ "update"
+ ]
+ },
+ "storageAccountAccessKey": {
+ "description": "Specifies the identifier key of the storage account for vulnerability assessment scan results. If 'StorageContainerSasKey' isn't specified, storageAccountAccessKey is required.",
+ "type": "string",
+ "x-ms-mutability": [
+ "create",
+ "update"
+ ]
+ },
+ "recurringScans": {
+ "$ref": "#/definitions/VulnerabilityAssessmentRecurringScansProperties",
+ "description": "The recurring scans settings"
+ }
+ }
+ },
+ "VulnerabilityAssessmentRecurringScansProperties": {
+ "description": "Properties of a Vulnerability Assessment recurring scans.",
+ "type": "object",
+ "properties": {
+ "isEnabled": {
+ "description": "Recurring scans state.",
+ "type": "boolean"
+ },
+ "emailSubscriptionAdmins": {
+ "description": "Specifies that the schedule scan notification will be is sent to the subscription administrators.",
+ "default": true,
+ "type": "boolean"
+ },
+ "emails": {
+ "description": "Specifies an array of e-mail addresses to which the scan notification is sent.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "ServerVulnerabilityAssessment": {
+ "description": "A server vulnerability assessment.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ProxyResource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/ServerVulnerabilityAssessmentProperties",
+ "description": "Resource properties.",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "ServerVulnerabilityAssessmentListResult": {
+ "description": "A list of the server's vulnerability assessments.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Array of results.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ServerVulnerabilityAssessment"
+ },
+ "readOnly": true
+ },
+ "nextLink": {
+ "description": "Link to retrieve next page of results.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "EncryptionProtectorListResult": {
+ "description": "A list of server encryption protectors.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Array of results.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EncryptionProtector"
+ },
+ "readOnly": true
+ },
+ "nextLink": {
+ "description": "Link to retrieve next page of results.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "EncryptionProtectorProperties": {
+ "description": "Properties for an encryption protector execution.",
+ "required": [
+ "serverKeyType"
+ ],
+ "type": "object",
+ "properties": {
+ "subregion": {
+ "description": "Subregion of the encryption protector.",
+ "type": "string",
+ "readOnly": true
+ },
+ "serverKeyName": {
+ "description": "The name of the server key.",
+ "type": "string"
+ },
+ "serverKeyType": {
+ "description": "The encryption protector type like 'ServiceManaged', 'AzureKeyVault'.",
+ "enum": [
+ "ServiceManaged",
+ "AzureKeyVault"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "ServerKeyType",
+ "modelAsString": true
+ }
+ },
+ "uri": {
+ "description": "The URI of the server key.",
+ "type": "string",
+ "readOnly": true
+ },
+ "thumbprint": {
+ "description": "Thumbprint of the server key.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "EncryptionProtector": {
+ "description": "The server encryption protector.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ProxyResource"
+ }
+ ],
+ "properties": {
+ "kind": {
+ "description": "Kind of encryption protector. This is metadata used for the Azure portal experience.",
+ "type": "string",
+ "readOnly": true
+ },
+ "location": {
+ "description": "Resource location.",
+ "type": "string",
+ "readOnly": true
+ },
+ "properties": {
+ "$ref": "#/definitions/EncryptionProtectorProperties",
+ "description": "Resource properties.",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "ServerUsage": {
+ "properties": {
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Name of the server usage metric."
+ },
+ "resourceName": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The name of the resource."
+ },
+ "displayName": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The metric display name."
+ },
+ "currentValue": {
+ "readOnly": true,
+ "type": "number",
+ "format": "double",
+ "description": "The current value of the metric."
+ },
+ "limit": {
+ "readOnly": true,
+ "type": "number",
+ "format": "double",
+ "description": "The current limit of the metric."
+ },
+ "unit": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The units of the metric."
+ },
+ "nextResetTime": {
+ "readOnly": true,
+ "type": "string",
+ "format": "date-time",
+ "description": "The next reset time for the metric (ISO8601 format)."
+ }
+ },
+ "description": "Represents server metrics."
+ },
+ "ServerUsageListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ServerUsage"
+ },
+ "description": "The list of server metrics for the server."
+ },
+ "nextLink": {
+ "description": "Link to retrieve next page of results.",
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "value"
+ ],
+ "description": "Represents the response to a list server metrics request."
+ },
+ "RecoverableSqlPoolProperties": {
+ "type": "object",
+ "properties": {
+ "edition": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The edition of the database"
+ },
+ "serviceLevelObjective": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The service level objective name of the database"
+ },
+ "elasticPoolName": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The elastic pool name of the database"
+ },
+ "lastAvailableBackupDate": {
+ "readOnly": true,
+ "type": "string",
+ "format": "date-time",
+ "description": "The last available backup date of the database (ISO8601 format)"
+ }
+ },
+ "description": "The properties of a recoverable sql pool"
+ },
+ "RecoverableSqlPool": {
+ "type": "object",
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/RecoverableSqlPoolProperties",
+ "description": "The properties of a recoverable sql pool",
+ "x-ms-client-flatten": true
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ProxyResource"
+ }
+ ],
+ "description": "A recoverable sql pool"
+ },
+ "RecoverableSqlPoolListResult": {
+ "description": "The response to a list recoverable sql pools request",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "A list of recoverable sql pool",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RecoverableSqlPool"
+ },
+ "readOnly": true
+ },
+ "nextLink": {
+ "description": "Link to retrieve next page of results.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/workspace.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/workspace.json
index 5a4a4feaabb0..85f949e0d810 100644
--- a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/workspace.json
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/workspace.json
@@ -46,6 +46,12 @@
"$ref": "#/definitions/WorkspaceInfoListResult"
},
"description": ""
+ },
+ "default": {
+ "schema": {
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
+ },
+ "description": ""
}
},
"consumes": [],
@@ -93,7 +99,7 @@
},
"default": {
"schema": {
- "$ref": "#/definitions/ErrorContract"
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
},
"description": ""
}
@@ -153,7 +159,7 @@
},
"default": {
"schema": {
- "$ref": "#/definitions/ErrorContract"
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
},
"description": ""
}
@@ -219,7 +225,7 @@
},
"default": {
"schema": {
- "$ref": "#/definitions/ErrorContract"
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
},
"description": ""
}
@@ -279,7 +285,7 @@
},
"default": {
"schema": {
- "$ref": "#/definitions/ErrorContract"
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
},
"description": ""
}
@@ -321,6 +327,12 @@
"$ref": "#/definitions/WorkspaceInfoListResult"
},
"description": ""
+ },
+ "default": {
+ "schema": {
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
+ },
+ "description": ""
}
},
"consumes": [],
@@ -365,6 +377,12 @@
"$ref": "#/definitions/WorkspaceAadAdminInfo"
},
"description": "OK"
+ },
+ "default": {
+ "schema": {
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
+ },
+ "description": ""
}
},
"consumes": [],
@@ -422,7 +440,7 @@
},
"default": {
"schema": {
- "$ref": "#/definitions/ErrorContract"
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
},
"description": ""
}
@@ -468,12 +486,180 @@
"200": {
"description": ""
},
+ "204": {
+ "description": "Accepted"
+ },
"202": {
"description": ""
},
"default": {
"schema": {
- "$ref": "#/definitions/ErrorContract"
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
+ },
+ "description": ""
+ }
+ },
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "x-ms-examples": {
+ "Delete workspace active directory admin": {
+ "$ref": "./examples/DeleteWorkspaceAadAdmin.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlAdministrators/activeDirectory": {
+ "get": {
+ "operationId": "WorkspaceSqlAadAdmins_Get",
+ "description": "Gets a workspace SQL active directory admin",
+ "tags": [
+ "Workspaces"
+ ],
+ "deprecated": false,
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/workspaceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "schema": {
+ "$ref": "#/definitions/WorkspaceAadAdminInfo"
+ },
+ "description": "OK"
+ },
+ "default": {
+ "schema": {
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
+ },
+ "description": ""
+ }
+ },
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "Get workspace active directory admin": {
+ "$ref": "./examples/GetWorkspaceAadAdmin.json"
+ }
+ }
+ },
+ "put": {
+ "operationId": "WorkspaceSqlAadAdmins_CreateOrUpdate",
+ "description": "Creates or updates a workspace SQL active directory admin",
+ "tags": [
+ "Workspaces"
+ ],
+ "deprecated": false,
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/workspaceNameParameter"
+ },
+ {
+ "description": "Workspace active directory administrator properties",
+ "schema": {
+ "$ref": "#/definitions/WorkspaceAadAdminInfo"
+ },
+ "in": "body",
+ "name": "aadAdminInfo",
+ "required": true
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "",
+ "schema": {
+ "$ref": "#/definitions/WorkspaceAadAdminInfo"
+ }
+ },
+ "202": {
+ "description": "",
+ "schema": {
+ "$ref": "#/definitions/WorkspaceAadAdminInfo"
+ }
+ },
+ "default": {
+ "schema": {
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
+ },
+ "description": ""
+ }
+ },
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "x-ms-examples": {
+ "Create or update workspace active directory admin": {
+ "$ref": "./examples/CreateOrUpdateWorkspaceAadAdmin.json"
+ }
+ }
+ },
+ "delete": {
+ "operationId": "WorkspaceSqlAadAdmins_Delete",
+ "description": "Deletes a workspace SQL active directory admin",
+ "tags": [
+ "Workspaces"
+ ],
+ "deprecated": false,
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/workspaceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": ""
+ },
+ "204": {
+ "description": "Accepted"
+ },
+ "202": {
+ "description": ""
+ },
+ "default": {
+ "schema": {
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
},
"description": ""
}
@@ -508,7 +694,7 @@
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "./workspace.json#/parameters/workspaceNameParameter"
+ "$ref": "#/parameters/workspaceNameParameter"
}
],
"responses": {
@@ -520,7 +706,7 @@
},
"default": {
"schema": {
- "$ref": "./workspace.json#/definitions/ErrorContract"
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
},
"description": "Error"
}
@@ -569,7 +755,7 @@
},
"default": {
"schema": {
- "$ref": "./workspace.json#/definitions/ErrorContract"
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
},
"description": "Error"
}
@@ -583,27 +769,111 @@
}
}
}
- }
- },
- "definitions": {
- "ErrorDetail": {
- "description": "Error details",
- "type": "object",
- "properties": {
- "message": {
- "description": "Error message",
- "type": "string"
- },
- "code": {
- "description": "Error code",
- "type": "string"
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/restorableDroppedSqlPools/{restorableDroppedSqlPoolId}": {
+ "get": {
+ "tags": [
+ "RestorableDroppedSqlPools"
+ ],
+ "operationId": "RestorableDroppedSqlPools_Get",
+ "description": "Gets a deleted sql pool that can be restored",
+ "x-ms-examples": {
+ "Get a restorable dropped Sql pool": {
+ "$ref": "./examples/RestorableDroppedSqlPoolGet.json"
+ }
},
- "target": {
- "description": "Error target",
- "type": "string"
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/workspaceNameParameter"
+ },
+ {
+ "name": "restorableDroppedSqlPoolId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The id of the deleted Sql Pool in the form of sqlPoolName,deletionTimeInFileTimeFormat"
+ }
+ ],
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/RestorableDroppedSqlPool"
+ }
+ },
+ "default": {
+ "schema": {
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
+ },
+ "description": "Error"
+ }
}
}
},
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/restorableDroppedSqlPools": {
+ "get": {
+ "tags": [
+ "RestorableDroppedSqlPools"
+ ],
+ "operationId": "RestorableDroppedSqlPools_ListByWorkspace",
+ "description": "Gets a list of deleted Sql pools that can be restored",
+ "x-ms-examples": {
+ "Get list of restorable dropped Sql pools": {
+ "$ref": "./examples/RestorableDroppedSqlpoolList.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/workspaceNameParameter"
+ }
+ ],
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/RestorableDroppedSqlPoolListResult"
+ }
+ },
+ "default": {
+ "schema": {
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
+ },
+ "description": "Error"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ }
+ }
+ }
+ },
+ "definitions": {
"ErrorContract": {
"title": "Error details.",
"description": "Contains details when the response code indicates an error.",
@@ -668,6 +938,50 @@
}
}
},
+ "EncryptionDetails": {
+ "description": "Details of the encryption associated with the workspace",
+ "type": "object",
+ "properties": {
+ "doubleEncryptionEnabled": {
+ "description": "Double Encryption enabled",
+ "type": "boolean",
+ "readOnly": true
+ },
+ "cmk": {
+ "description": "Customer Managed Key Details",
+ "$ref": "#/definitions/CustomerManagedKeyDetails"
+ }
+ }
+ },
+ "CustomerManagedKeyDetails": {
+ "description": "Details of the customer managed key associated with the workspace",
+ "type": "object",
+ "properties": {
+ "status": {
+ "description": "The customer managed key status on the workspace",
+ "type": "string",
+ "readOnly": true
+ },
+ "key": {
+ "description": "The key object of the workspace",
+ "$ref": "#/definitions/WorkspaceKeyDetails"
+ }
+ }
+ },
+ "WorkspaceKeyDetails": {
+ "description": "Details of the customer managed key associated with the workspace",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Workspace Key sub-resource name",
+ "type": "string"
+ },
+ "keyVaultUrl": {
+ "description": "Workspace Key sub-resource key vault url",
+ "type": "string"
+ }
+ }
+ },
"ManagedIdentity": {
"description": "The workspace managed identity",
"type": "object",
@@ -680,6 +994,7 @@
"tenantId": {
"description": "The tenant ID of the workspace managed identity",
"type": "string",
+ "format": "uuid",
"readOnly": true
},
"type": {
@@ -728,6 +1043,50 @@
}
}
},
+ "WorkspaceRepositoryConfiguration": {
+ "description": "Git integration settings",
+ "type": "object",
+ "properties": {
+ "type": {
+ "description": "Type of workspace repositoryID configuration. Example WorkspaceVSTSConfiguration, WorkspaceGitHubConfiguration",
+ "type": "string"
+ },
+ "hostName": {
+ "description": "GitHub Enterprise host name. For example: https://github.mydomain.com",
+ "type": "string"
+ },
+ "accountName": {
+ "description": "Account name",
+ "type": "string"
+ },
+ "projectName": {
+ "description": "VSTS project name",
+ "type": "string"
+ },
+ "repositoryName": {
+ "description": "Repository name",
+ "type": "string"
+ },
+ "collaborationBranch": {
+ "description": "Collaboration branch",
+ "type": "string"
+ },
+ "rootFolder": {
+ "description": "Root folder to use in the repository",
+ "type": "string"
+ }
+ }
+ },
+ "BabylonConfiguration": {
+ "description": "Babylon Configuration",
+ "type": "object",
+ "properties": {
+ "babylonResourceId": {
+ "description": "Babylon Resource ID",
+ "type": "string"
+ }
+ }
+ },
"WorkspaceAadAdminInfo": {
"description": "Workspace active directory administrator",
"type": "object",
@@ -809,9 +1168,19 @@
"description": "Private endpoint connections to the workspace",
"type": "array",
"items": {
- "$ref": "./privateEndpointConnections.json#/definitions/PrivateEndpointConnection"
+ "$ref": "../../../../common/v1/privateEndpointConnection.json#/definitions/PrivateEndpointConnection"
}
},
+ "encryption": {
+ "description": "The encryption details of the workspace",
+ "$ref": "#/definitions/EncryptionDetails"
+ },
+ "workspaceUID": {
+ "description": "The workspace unique identifier",
+ "type": "string",
+ "readOnly": true,
+ "format": "uuid"
+ },
"extraProperties": {
"description": "Workspace level configs and feature flags",
"additionalProperties": {
@@ -823,6 +1192,14 @@
"managedVirtualNetworkSettings": {
"description": "Managed Virtual Network Settings",
"$ref": "#/definitions/ManagedVirtualNetworkSettings"
+ },
+ "workspaceRepositoryConfiguration": {
+ "description": "Git integration settings",
+ "$ref": "#/definitions/WorkspaceRepositoryConfiguration"
+ },
+ "babylonConfiguration": {
+ "description": "Babylon Configuration",
+ "$ref": "#/definitions/BabylonConfiguration"
}
}
},
@@ -841,28 +1218,6 @@
"description": "The identity of the workspace",
"$ref": "#/definitions/ManagedIdentity"
},
- "managedVirtualNetworkSettings": {
- "description": "Managed Virtual Network Settings",
- "type": "object",
- "properties": {
- "preventDataExfiltration": {
- "description": "Prevent Data Exfiltration",
- "type": "boolean"
- },
- "linkedAccessCheckOnTargetResource": {
- "description": "Linked Access Check On Target Resource",
- "type": "boolean"
- },
- "allowedAadTenantIdsForLinking": {
- "description": "Allowed Aad Tenant Ids For Linking",
- "type": "array",
- "items": {
- "type": "string",
- "description": "Tenant Id"
- }
- }
- }
- },
"properties": {
"description": "Workspace patch properties",
"$ref": "#/definitions/WorkspacePatchProperties",
@@ -878,6 +1233,18 @@
"description": "SQL administrator login password",
"type": "string"
},
+ "managedVirtualNetworkSettings": {
+ "description": "Managed Virtual Network Settings",
+ "$ref": "#/definitions/ManagedVirtualNetworkSettings"
+ },
+ "workspaceRepositoryConfiguration": {
+ "description": "Git integration settings",
+ "$ref": "#/definitions/WorkspaceRepositoryConfiguration"
+ },
+ "babylonConfiguration": {
+ "description": "Babylon Configuration",
+ "$ref": "#/definitions/BabylonConfiguration"
+ },
"provisioningState": {
"description": "Resource provisioning state",
"type": "string",
@@ -929,6 +1296,89 @@
"x-ms-client-flatten": true
}
}
+ },
+ "RestorableDroppedSqlPoolProperties": {
+ "properties": {
+ "databaseName": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The name of the database"
+ },
+ "edition": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The edition of the database"
+ },
+ "maxSizeBytes": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The max size in bytes of the database"
+ },
+ "serviceLevelObjective": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The service level objective name of the database"
+ },
+ "elasticPoolName": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The elastic pool name of the database"
+ },
+ "creationDate": {
+ "readOnly": true,
+ "type": "string",
+ "format": "date-time",
+ "description": "The creation date of the database (ISO8601 format)"
+ },
+ "deletionDate": {
+ "readOnly": true,
+ "type": "string",
+ "format": "date-time",
+ "description": "The deletion date of the database (ISO8601 format)"
+ },
+ "earliestRestoreDate": {
+ "readOnly": true,
+ "type": "string",
+ "format": "date-time",
+ "description": "The earliest restore date of the database (ISO8601 format)"
+ }
+ },
+ "description": "The properties of a restorable dropped Sql pool"
+ },
+ "RestorableDroppedSqlPool": {
+ "properties": {
+ "location": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The geo-location where the resource lives"
+ },
+ "properties": {
+ "$ref": "#/definitions/RestorableDroppedSqlPoolProperties",
+ "description": "The properties of a restorable dropped Sql pool",
+ "x-ms-client-flatten": true
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ProxyResource"
+ }
+ ],
+ "description": "A restorable dropped Sql pool"
+ },
+ "RestorableDroppedSqlPoolListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RestorableDroppedSqlPool"
+ },
+ "description": "A list of restorable dropped Sql pools"
+ }
+ },
+ "required": [
+ "value"
+ ],
+ "description": "The response to a list restorable dropped Sql pools request"
}
},
"parameters": {
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2020-04-01-preview/sqlDatabase.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2020-04-01-preview/sqlDatabase.json
index 1730cb88fb49..e5d4529274ec 100644
--- a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2020-04-01-preview/sqlDatabase.json
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2020-04-01-preview/sqlDatabase.json
@@ -295,6 +295,11 @@
"description": "The Guid of the database.",
"type": "string",
"readOnly": true
+ },
+ "status": {
+ "description": "Status of the database.",
+ "type": "string",
+ "readOnly": true
}
}
},
diff --git a/specification/synapse/resource-manager/readme.azureresourceschema.md b/specification/synapse/resource-manager/readme.azureresourceschema.md
index 6921a744f8ed..94d5741d6bd6 100644
--- a/specification/synapse/resource-manager/readme.azureresourceschema.md
+++ b/specification/synapse/resource-manager/readme.azureresourceschema.md
@@ -43,5 +43,6 @@ input-file:
- Microsoft.Synapse/preview/2019-06-01-preview/privateLinkResources.json
- Microsoft.Synapse/preview/2019-06-01-preview/privateEndpointConnections.json
- Microsoft.Synapse/preview/2019-06-01-preview/privatelinkhub.json
+ - Microsoft.Synapse/preview/2019-06-01-preview/sqlServer.json
```
diff --git a/specification/synapse/resource-manager/readme.md b/specification/synapse/resource-manager/readme.md
index 5ae9da8e960e..06c04d1ec37f 100644
--- a/specification/synapse/resource-manager/readme.md
+++ b/specification/synapse/resource-manager/readme.md
@@ -28,6 +28,7 @@ description: Azure Synapse Analytics Management Client
openapi-type: arm
azure-arm: true
tag: package-2019-06-01-preview
+generate-empty-classes: true
```
### Tag: package-2019-06-01-preview
@@ -46,6 +47,8 @@ input-file:
- Microsoft.Synapse/preview/2019-06-01-preview/privateLinkResources.json
- Microsoft.Synapse/preview/2019-06-01-preview/privateEndpointConnections.json
- Microsoft.Synapse/preview/2019-06-01-preview/privatelinkhub.json
+- Microsoft.Synapse/preview/2019-06-01-preview/sqlServer.json
+- Microsoft.Synapse/preview/2019-06-01-preview/keys.json
```
### Tag: package-sqlGen3-2020-04-01-preview
@@ -77,9 +80,38 @@ directive:
where:
- $.definitions.SqlPoolVulnerabilityAssessmentRuleBaseline
- $.definitions.DataMaskingPolicy
+ - $.definitions.DataWarehouseUserActivities
+ - $.definitions.SqlPoolConnectionPolicy
+ - $.definitions.TransparentDataEncryption
suppress:
- R4015
reason: SQL doesn't support 'list' operation everywhere, so we cannot support List for certain Sql pool operations
+ - from: Microsoft.Synapse/preview/2019-06-01-preview/sqlPool.json
+ where :
+ - '$.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}/restorePoints/{restorePointName}"].delete.responses'
+ suppress:
+ - R4011
+ reason: SQL Pools APIs are proxy APIs that call SQL DB APIs. The SQL DB delete restore points API only supports return method 200, so we cannot support 204. It is not possible for the SQL DB team to add 204 support for delete restore points.
+ - suppress: AllResourcesMustHaveGetOperation
+ from: Microsoft.Synapse/preview/2019-06-01-preview/sqlPool.json
+ where:
+ - $.definitions.DataMaskingRule
+ - $.definitions.SqlPoolOperation
+ - suppress: R4015
+ reason: Needs implmentation
+ from: Microsoft.Synapse/preview/2019-06-01-preview/workspace_managedIdentity.json
+ where:
+ - $.definitions.ManagedIdentitySqlControlSettingsInfo
+ - suppress: R2010
+ reason: x-ms-long-running-operation-options not available in datafactory swagger
+ from: Microsoft.Synapse/preview/2019-06-01-preview/integrationRuntime.json
+ - suppress: AvoidNestedProperties
+ reason: Existing models
+ from: Microsoft.Synapse/preview/2019-06-01-preview/integrationRuntime.json
+ where:
+ - $.definitions.IntegrationRuntimeResource.properties.properties
+ - $.definitions.IntegrationRuntimeStatusResponse.properties.properties
+ - $.definitions.SsisObjectMetadataStatusResponse.properties.properties
```
---
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2019-08-09-preview/examples/Operations_List.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2019-08-09-preview/examples/Operations_List.json
index 6f4f28c7ce33..e4b1f95b3031 100644
--- a/specification/vmware/resource-manager/Microsoft.AVS/preview/2019-08-09-preview/examples/Operations_List.json
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2019-08-09-preview/examples/Operations_List.json
@@ -4,36 +4,366 @@
},
"responses": {
"200": {
+ "headers": {},
"body": {
"value": [
{
"display": {
- "description": "Creates a private cloud",
- "operation": "Create Private Cloud",
- "provider": "Azure VMware Solution",
- "resource": "Private Cloud"
+ "description": "Lists operations available on Microsoft.AVS resource provider.",
+ "operation": "List available Microsoft.AVS operations",
+ "provider": "Microsoft.AVS",
+ "resource": "operations"
},
- "name": "Microsoft.AVS/privateClouds/create",
- "origin": "user,system"
+ "isDataAction": false,
+ "name": "Microsoft.AVS/operations/read",
+ "origin": "user,system",
+ "properties": {}
},
{
- "origin": "system",
- "name": "Microsoft.AVS/privateClouds/providers/Microsoft.Insights/metricDefinitions/read",
"display": {
- "provider": "Microsoft Azure Dedicated",
- "resource": "Private Cloud",
+ "description": "Register Subscription for Microsoft.AVS resource provider.",
+ "operation": "Register Subscription for Microsoft.AVS",
+ "provider": "Microsoft.AVS",
+ "resource": ""
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/register/action",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Unregister Subscription for Microsoft.AVS resource provider.",
+ "operation": "Unregister Subscription for Microsoft.AVS",
+ "provider": "Microsoft.AVS",
+ "resource": ""
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/unregister/action",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Checks if the privateCloud Name is available",
+ "operation": "Check Name Availability",
+ "provider": "Microsoft.AVS",
+ "resource": "checkNameAvailability"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/checkNameAvailability/read",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Checks if the privateCloud Name is available",
+ "operation": "Check Name Availability",
+ "provider": "Microsoft.AVS",
+ "resource": "locations/checkNameAvailability"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/locations/checkNameAvailability/read",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Checks if quota is available for the subscription",
+ "operation": "Check Quota Availability",
+ "provider": "Microsoft.AVS",
+ "resource": "locations/checkQuotaAvailability"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/locations/checkQuotaAvailability/read",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Checks if trial is available for the subscription",
+ "operation": "Check Trial Availability",
+ "provider": "Microsoft.AVS",
+ "resource": "locations/checkTrialAvailability"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/locations/checkTrialAvailability/read",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Registers the Microsoft Microsoft.AVS resource provider and enables creation of Private Clouds.",
+ "operation": "Register Microsoft.AVS resource provider.",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/register/action",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Creates or updates a PrivateCloud resource.",
+ "operation": "Create or update a PrivateCloud.",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/write",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Gets the settings for the specified PrivateCloud.",
+ "operation": "Read PrivateCloud settings",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/read",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Delete a specific PrivateCloud.",
+ "operation": "Delete a PrivateCloud.",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/delete",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Reads privateClouds operationstatuses.",
+ "operation": "Read privateClouds operationstatuses",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds/operationstatuses"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/operationstatuses/read",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Gets the cluster settings for a PrivateCloud cluster.",
+ "operation": "Read Cluster settings.",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds/clusters"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/clusters/read",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Create or update a PrivateCloud cluster resource.",
+ "operation": "Create or update a PrivateCloud cluster.",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds/clusters"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/clusters/write",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Delete a specific PrivateCloud cluster.",
+ "operation": "Delete a PriveCloud cluster.",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds/clusters"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/clusters/delete",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Reads privateClouds/clusters operationstatuses.",
+ "operation": "Read privateClouds/clusters operationstatuses",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds/clusters/operationstatuses"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/clusters/operationstatuses/read",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Reads privateClouds/clusters operationresults.",
+ "operation": "Read privateClouds/clusters operationresults",
+ "provider": "Microsoft.AVS",
+ "resource": "privateclouds/clusters/operationresults"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateclouds/clusters/operationresults/read",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Reads privateClouds operationresults.",
+ "operation": "Read privateClouds operationresults",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds/operationresults"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/operationresults/read",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Gets the authorization settings for a PrivateCloud cluster.",
+ "operation": "Read Authorization settings.",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds/authorizations"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/authorizations/read",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Create or update a PrivateCloud authorization resource.",
+ "operation": "Create or update a PrivateCloud authorization.",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds/authorizations"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/authorizations/write",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Delete a specific PrivateCloud authorization.",
+ "operation": "Delete a PriveCloud authorization.",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds/authorizations"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/authorizations/delete",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Lists the AdminCredentials for privateClouds.",
+ "operation": "List privateClouds AdminCredentials",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds"
+ },
+ "isDataAction": true,
+ "name": "Microsoft.AVS/privateClouds/listAdminCredentials/action",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Gets the hcxEnterpriseSites for a PrivateCloud.",
+ "operation": "Read hcxEnterpriseSites",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds/hcxEnterpriseSites"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/hcxEnterpriseSites/read",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Create or update a hcxEnterpriseSites.",
+ "operation": "Create or update a hcxEnterpriseSites",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds/hcxEnterpriseSites"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/hcxEnterpriseSites/write",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Delete a specific hcxEnterpriseSites.",
+ "operation": "Delete a hcxEnterpriseSites",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds/hcxEnterpriseSites"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/hcxEnterpriseSites/delete",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Gets the hostInstances for a PrivateCloud.",
+ "operation": "Read hostInstances",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds/hostInstances"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/hostInstances/read",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Create or update a hostInstances.",
+ "operation": "Create or update a hostInstances",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds/hostInstances"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/hostInstances/write",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Delete a specific hostInstances.",
+ "operation": "Delete a hostInstances",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds/hostInstances"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/hostInstances/delete",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Gets the available metrics for Private Cloud",
"operation": "Read Private Cloud metric definitions",
- "description": "Gets the available metrics for Private Cloud"
+ "provider": "Microsoft Azure Dedicated",
+ "resource": "privateClouds"
},
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/providers/Microsoft.Insights/metricDefinitions/read",
+ "origin": "system",
"properties": {
"serviceSpecification": {
"metricSpecifications": [
{
- "name": "UsedLatest",
- "displayName": "Datastore disk used",
+ "aggregationType": "Average",
"displayDescription": "The total amount of disk used in SDDC",
- "unit": "Average",
- "aggregationType": "Total",
+ "displayName": "Datastore disk used",
+ "enableRegionalMdmAccount": "true",
+ "name": "UsedLatest",
+ "sourceMdmAccount": "AVSShoebox2",
+ "sourceMdmNamespace": "Vsphere.Datastore.Disk",
"supportedTimeGrainTypes": [
"PT5M",
"PT15M",
@@ -43,16 +373,16 @@
"PT12H",
"P1D"
],
- "enableRegionalMdmAccount": "false",
- "sourceMdmAccount": "AVSShoebox2WestEurope",
- "sourceMdmNamespace": "Vsphere.Datastore.Disk"
+ "unit": "Bytes"
},
{
- "name": "CapacityLatest",
- "displayName": "Datastore disk total capacity",
+ "aggregationType": "Average",
"displayDescription": "The total capacity of disk in SDDC",
- "unit": "Average",
- "aggregationType": "Total",
+ "displayName": "Datastore disk total capacity",
+ "enableRegionalMdmAccount": "true",
+ "name": "CapacityLatest",
+ "sourceMdmAccount": "AVSShoebox2",
+ "sourceMdmNamespace": "Vsphere.Datastore.Disk",
"supportedTimeGrainTypes": [
"PT5M",
"PT15M",
@@ -62,54 +392,16 @@
"PT12H",
"P1D"
],
- "enableRegionalMdmAccount": "false",
- "sourceMdmAccount": "AVSShoebox2WestEurope",
- "sourceMdmNamespace": "Vsphere.Datastore.Disk"
+ "unit": "Bytes"
},
{
- "name": "EffectiveMemAverage",
- "displayName": "Average Effective Memory",
+ "aggregationType": "Average",
"displayDescription": "Total amount of machine memory in cluster that is available",
- "unit": "Average",
- "aggregationType": "Total",
- "supportedTimeGrainTypes": [
- "PT5M",
- "PT15M",
- "PT30M",
- "PT1H",
- "PT6H",
- "PT12H",
- "P1D"
- ],
- "enableRegionalMdmAccount": "false",
- "sourceMdmAccount": "AVSShoebox2WestEurope",
- "sourceMdmNamespace": "Vsphere.Cluster.ClusterServices"
- },
- {
- "name": "EffectiveCpuAverage",
- "displayName": "Average Effective CPU",
- "displayDescription": "Total available CPU resources in cluster",
- "unit": "Average",
- "aggregationType": "Total",
- "supportedTimeGrainTypes": [
- "PT5M",
- "PT15M",
- "PT30M",
- "PT1H",
- "PT6H",
- "PT12H",
- "P1D"
- ],
- "enableRegionalMdmAccount": "false",
- "sourceMdmAccount": "AVSShoebox2WestEurope",
- "sourceMdmNamespace": "Vsphere.Cluster.ClusterServices"
- },
- {
- "name": "FailoverLatest",
- "displayName": "Failover",
- "displayDescription": "vSphere HA number of failures that can be tolerated",
- "unit": "Average",
- "aggregationType": "Total",
+ "displayName": "Average Effective Memory",
+ "enableRegionalMdmAccount": "true",
+ "name": "EffectiveMemAverage",
+ "sourceMdmAccount": "AVSShoebox2",
+ "sourceMdmNamespace": "Vsphere.Cluster.ClusterServices",
"supportedTimeGrainTypes": [
"PT5M",
"PT15M",
@@ -119,16 +411,16 @@
"PT12H",
"P1D"
],
- "enableRegionalMdmAccount": "false",
- "sourceMdmAccount": "AVSShoebox2WestEurope",
- "sourceMdmNamespace": "Vsphere.Cluster.ClusterServices"
+ "unit": "Bytes"
},
{
- "name": "TotalMhzAverage",
- "displayName": "Average Total CPU",
- "displayDescription": "Total CPU resources in cluster",
- "unit": "Average",
- "aggregationType": "Total",
+ "aggregationType": "Average",
+ "displayDescription": "Total memory in cluster",
+ "displayName": "Average Total Memory",
+ "enableRegionalMdmAccount": "true",
+ "name": "TotalMbAverage",
+ "sourceMdmAccount": "AVSShoebox2",
+ "sourceMdmNamespace": "Vsphere.Cluster.Mem",
"supportedTimeGrainTypes": [
"PT5M",
"PT15M",
@@ -138,16 +430,16 @@
"PT12H",
"P1D"
],
- "enableRegionalMdmAccount": "false",
- "sourceMdmAccount": "AVSShoebox2WestEurope",
- "sourceMdmNamespace": "Vsphere.Cluster.Cpu"
+ "unit": "Bytes"
},
{
- "name": "TotalMbAverage",
- "displayName": "Average Total Memory",
- "displayDescription": "Total memory in cluster",
- "unit": "Average",
- "aggregationType": "Total",
+ "aggregationType": "Average",
+ "displayDescription": "Host physical memory consumed by the virtualization infrastructure",
+ "displayName": "Average Memory Overhead",
+ "enableRegionalMdmAccount": "true",
+ "name": "OverheadAverage",
+ "sourceMdmAccount": "AVSShoebox2",
+ "sourceMdmNamespace": "Vsphere.Cluster.Mem",
"supportedTimeGrainTypes": [
"PT5M",
"PT15M",
@@ -157,16 +449,16 @@
"PT12H",
"P1D"
],
- "enableRegionalMdmAccount": "false",
- "sourceMdmAccount": "AVSShoebox2WestEurope",
- "sourceMdmNamespace": "Vsphere.Cluster.Mem"
+ "unit": "Bytes"
},
{
- "name": "OverheadAverage",
- "displayName": "Average Memory Overhead",
- "displayDescription": "Host physical memory consumed by the virtualization infrastructure",
- "unit": "Average",
- "aggregationType": "Total",
+ "aggregationType": "Average",
+ "displayDescription": "Memory usage as percentage of total configured or available memory",
+ "displayName": "Average Memory Usage",
+ "enableRegionalMdmAccount": "true",
+ "name": "UsageAverage",
+ "sourceMdmAccount": "AVSShoebox2",
+ "sourceMdmNamespace": "Vsphere.Cluster.Mem",
"supportedTimeGrainTypes": [
"PT5M",
"PT15M",
@@ -176,16 +468,16 @@
"PT12H",
"P1D"
],
- "enableRegionalMdmAccount": "false",
- "sourceMdmAccount": "AVSShoebox2WestEurope",
- "sourceMdmNamespace": "Vsphere.Cluster.Mem"
+ "unit": "Percent"
},
{
- "name": "UsageAverage",
- "displayName": "Average Memory Usage",
- "displayDescription": "Memory usage as percentage of total configured or available memory",
- "unit": "Average",
- "aggregationType": "Total",
+ "aggregationType": "Average",
+ "displayDescription": "Total available CPU resources in cluster",
+ "displayName": "Effective CPU available",
+ "enableRegionalMdmAccount": "true",
+ "name": "EffectiveCpuAverage",
+ "sourceMdmAccount": "AVSShoebox2",
+ "sourceMdmNamespace": "Vsphere.Cluster.ClusterServices",
"supportedTimeGrainTypes": [
"PT5M",
"PT15M",
@@ -195,37 +487,38 @@
"PT12H",
"P1D"
],
- "enableRegionalMdmAccount": "false",
- "sourceMdmAccount": "AVSShoebox2WestEurope",
- "sourceMdmNamespace": "Vsphere.Cluster.Mem"
+ "unit": "Percent"
}
]
}
}
},
{
- "origin": "system",
- "name": "Microsoft.AVS/privateClouds/providers/Microsoft.Insights/diagnosticSettings/read",
"display": {
- "provider": "Microsoft.AVS",
- "resource": "Private Cloud",
+ "description": "Gets the diagnostic setting for the resource",
"operation": "Read diagnostic setting",
- "description": "Gets the diagnostic setting for the resource"
- }
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/providers/Microsoft.Insights/diagnosticSettings/read",
+ "origin": "system",
+ "properties": {}
},
{
- "origin": "system",
- "name": "Microsoft.AVS/privateClouds/providers/Microsoft.Insights/diagnosticSettings/write",
"display": {
- "provider": "Microsoft.AVS",
- "resource": "Private Cloud",
+ "description": "Creates or updates the diagnostic setting for the resource",
"operation": "Write diagnostic setting",
- "description": "Creates or updates the diagnostic setting for the resource"
- }
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/providers/Microsoft.Insights/diagnosticSettings/write",
+ "origin": "system",
+ "properties": {}
}
]
- },
- "nextLink": "string"
+ }
}
}
}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2019-08-09-preview/vmware.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2019-08-09-preview/vmware.json
index 8c6fb346d26d..d789d36a0152 100644
--- a/specification/vmware/resource-manager/Microsoft.AVS/preview/2019-08-09-preview/vmware.json
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2019-08-09-preview/vmware.json
@@ -812,6 +812,7 @@
"availableHosts": {
"description": "Number of trial hosts available",
"type": "integer",
+ "format": "int32",
"readOnly": true
}
}
@@ -825,6 +826,7 @@
"readOnly": true,
"additionalProperties": {
"type": "integer",
+ "format": "int32",
"readOnly": true
}
},
@@ -963,6 +965,152 @@
"readOnly": true
}
}
+ },
+ "isDataAction": {
+ "description": "Gets or sets a value indicating whether the operation is a data action or not",
+ "type": "boolean"
+ },
+ "origin": {
+ "description": "Origin of the operation",
+ "type": "string"
+ },
+ "properties": {
+ "$ref": "#/definitions/OperationProperties",
+ "description": "Properties of the operation"
+ }
+ }
+ },
+ "OperationProperties": {
+ "description": "Extra Operation properties",
+ "type": "object",
+ "properties": {
+ "serviceSpecification": {
+ "$ref": "#/definitions/ServiceSpecification",
+ "description": "Service specifications of the operation"
+ }
+ }
+ },
+ "ServiceSpecification": {
+ "description": "Service specification payload",
+ "type": "object",
+ "properties": {
+ "logSpecifications": {
+ "description": "Specifications of the Log for Azure Monitoring",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/LogSpecification"
+ }
+ },
+ "metricSpecifications": {
+ "description": "Specifications of the Metrics for Azure Monitoring",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MetricSpecification"
+ }
+ }
+ }
+ },
+ "LogSpecification": {
+ "description": "Specifications of the Log for Azure Monitoring",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Name of the log",
+ "type": "string"
+ },
+ "displayName": {
+ "description": "Localized friendly display name of the log",
+ "type": "string"
+ },
+ "blobDuration": {
+ "description": "Blob duration of the log",
+ "type": "string"
+ }
+ }
+ },
+ "MetricSpecification": {
+ "description": "Specifications of the Metrics for Azure Monitoring",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Name of the metric",
+ "type": "string"
+ },
+ "displayName": {
+ "description": "Localized friendly display name of the metric",
+ "type": "string"
+ },
+ "displayDescription": {
+ "description": "Localized friendly description of the metric",
+ "type": "string"
+ },
+ "unit": {
+ "description": "Unit that makes sense for the metric",
+ "type": "string"
+ },
+ "category": {
+ "description": "Name of the metric category that the metric belongs to. A metric can only belong to a single category.",
+ "type": "string"
+ },
+ "aggregationType": {
+ "description": "Only provide one value for this field. Valid values: Average, Minimum, Maximum, Total, Count.",
+ "type": "string"
+ },
+ "supportedAggregationTypes": {
+ "description": "Supported aggregation types",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "supportedTimeGrainTypes": {
+ "description": "Supported time grain types",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "fillGapWithZero": {
+ "description": "Optional. If set to true, then zero will be returned for time duration where no metric is emitted/published.",
+ "type": "boolean"
+ },
+ "dimensions": {
+ "description": "Dimensions of the metric",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MetricDimension"
+ }
+ },
+ "enableRegionalMdmAccount": {
+ "description": "Whether or not the service is using regional MDM accounts.",
+ "type": "string"
+ },
+ "sourceMdmAccount": {
+ "description": "The name of the MDM account.",
+ "type": "string"
+ },
+ "sourceMdmNamespace": {
+ "description": "The name of the MDM namespace.",
+ "type": "string"
+ }
+ }
+ },
+ "MetricDimension": {
+ "description": "Specifications of the Dimension of metrics",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Name of the dimension",
+ "type": "string"
+ },
+ "displayName": {
+ "description": "Localized friendly display name of the dimension",
+ "type": "string"
}
}
},
@@ -1219,14 +1367,22 @@
"DefaultClusterProperties": {
"description": "The properties of a default cluster",
"properties": {
+ "clusterID": {
+ "description": "The deprecated identity",
+ "type": "integer",
+ "format": "int32",
+ "readOnly": true
+ },
"clusterId": {
"description": "The identity",
"type": "integer",
+ "format": "int32",
"readOnly": true
},
"clusterSize": {
"description": "The cluster size",
- "type": "integer"
+ "type": "integer",
+ "format": "int32"
},
"hosts": {
"description": "The hosts",
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/Authorizations_CreateOrUpdate.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/Authorizations_CreateOrUpdate.json
new file mode 100644
index 000000000000..e81f3e11d0ac
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/Authorizations_CreateOrUpdate.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17-preview",
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "group1",
+ "privateCloudName": "cloud1",
+ "authorizationName": "authorization1",
+ "authorization": {}
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1/authorizations/authorization1",
+ "name": "authorization1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "expressRouteAuthorizationId": "/subscriptions/5206f269-120b-41ef-a95b-0dce7109de61/resourceGroups/tnt34-cust-mockp02-spearj2dev/providers/Microsoft.Network/expressroutecircuits/tnt34-cust-mockp02-spearj2dev-er/authorizations/myauth",
+ "expressRouteAuthorizationKey": "37b0db3b-3b17-4c7b-bf76-bf13b01bcadc"
+ },
+ "type": "Microsoft.AVS/privateClouds/authorizations"
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1/authorizations/authorization1",
+ "name": "authorization1",
+ "properties": {
+ "provisioningState": "Updating"
+ },
+ "type": "Microsoft.AVS/privateClouds/authorizations"
+ }
+ }
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/Authorizations_Delete.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/Authorizations_Delete.json
new file mode 100644
index 000000000000..6834402dd83b
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/Authorizations_Delete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17-preview",
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "group1",
+ "privateCloudName": "cloud1",
+ "authorizationName": "authorization1"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/Authorizations_Get.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/Authorizations_Get.json
new file mode 100644
index 000000000000..3dc0a479b661
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/Authorizations_Get.json
@@ -0,0 +1,23 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17-preview",
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "group1",
+ "privateCloudName": "cloud1",
+ "authorizationName": "authorization1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1/authorizations/authorization1",
+ "name": "authorization1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "expressRouteAuthorizationId": "/subscriptions/5206f269-120b-41ef-a95b-0dce7109de61/resourceGroups/tnt34-cust-mockp02-spearj2dev/providers/Microsoft.Network/expressroutecircuits/tnt34-cust-mockp02-spearj2dev-er/authorizations/myauth",
+ "expressRouteAuthorizationKey": "37b0db3b-3b17-4c7b-bf76-bf13b01bcadc"
+ },
+ "type": "Microsoft.AVS/privateClouds/authorizations"
+ }
+ }
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/Authorizations_List.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/Authorizations_List.json
new file mode 100644
index 000000000000..d1b84209b612
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/Authorizations_List.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17-preview",
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "group1",
+ "privateCloudName": "cloud1"
+ },
+ "responses": {
+ "200": {
+ "body": [
+ {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1/authorizations/authorization1",
+ "name": "authorization1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "expressRouteAuthorizationId": "/subscriptions/5206f269-120b-41ef-a95b-0dce7109de61/resourceGroups/tnt34-cust-mockp02-spearj2dev/providers/Microsoft.Network/expressroutecircuits/tnt34-cust-mockp02-spearj2dev-er/authorizations/myauth",
+ "expressRouteAuthorizationKey": "37b0db3b-3b17-4c7b-bf76-bf13b01bcadc"
+ },
+ "type": "Microsoft.AVS/privateClouds/authorizations"
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/Clusters_CreateOrUpdate.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/Clusters_CreateOrUpdate.json
new file mode 100644
index 000000000000..c1e11f54cad5
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/Clusters_CreateOrUpdate.json
@@ -0,0 +1,52 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17-preview",
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "group1",
+ "privateCloudName": "cloud1",
+ "clusterName": "cluster1",
+ "cluster": {
+ "sku": {
+ "name": "AV20"
+ },
+ "properties": {
+ "clusterSize": 3
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1/clusters/cluster1",
+ "name": "cluster1",
+ "sku": {
+ "name": "AV20"
+ },
+ "properties": {
+ "clusterSize": 3,
+ "hosts": [
+ "fakehost22.nyc1.kubernetes.center",
+ "fakehost23.nyc1.kubernetes.center",
+ "fakehost24.nyc1.kubernetes.center"
+ ],
+ "provisioningState": "Succeeded"
+ },
+ "type": "Microsoft.AVS/privateClouds/clusters"
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1/clusters/cluster1",
+ "name": "cluster1",
+ "sku": {
+ "name": "AV20"
+ },
+ "properties": {
+ "clusterSize": 3,
+ "provisioningState": "Updating"
+ },
+ "type": "Microsoft.AVS/privateClouds/clusters"
+ }
+ }
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/Clusters_Delete.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/Clusters_Delete.json
new file mode 100644
index 000000000000..6bf8785a7cdc
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/Clusters_Delete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17-preview",
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "group1",
+ "privateCloudName": "cloud1",
+ "clusterName": "cluster1"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/Clusters_Get.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/Clusters_Get.json
new file mode 100644
index 000000000000..e94f1df7185c
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/Clusters_Get.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17-preview",
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "group1",
+ "privateCloudName": "cloud1",
+ "clusterName": "cluster1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1/clusters/cluster1",
+ "name": "cluster1",
+ "sku": {
+ "name": "AV20"
+ },
+ "properties": {
+ "clusterSize": 4,
+ "hosts": [
+ "fakehost22.nyc1.kubernetes.center",
+ "fakehost23.nyc1.kubernetes.center",
+ "fakehost24.nyc1.kubernetes.center",
+ "fakehost25.nyc1.kubernetes.center"
+ ],
+ "provisioningState": "Succeeded"
+ },
+ "type": "Microsoft.AVS/privateClouds/clusters"
+ }
+ }
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/Clusters_List.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/Clusters_List.json
new file mode 100644
index 000000000000..49dfccf8f99a
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/Clusters_List.json
@@ -0,0 +1,33 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17-preview",
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "group1",
+ "privateCloudName": "cloud1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1/clusters/cluster1",
+ "name": "cluster1",
+ "sku": {
+ "name": "AV20"
+ },
+ "properties": {
+ "clusterSize": 3,
+ "hosts": [
+ "fakehost22.nyc1.kubernetes.center",
+ "fakehost23.nyc1.kubernetes.center",
+ "fakehost24.nyc1.kubernetes.center"
+ ],
+ "provisioningState": "Succeeded"
+ },
+ "type": "Microsoft.AVS/privateClouds/clusters"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/Clusters_Update.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/Clusters_Update.json
new file mode 100644
index 000000000000..5f2558046b82
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/Clusters_Update.json
@@ -0,0 +1,50 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17-preview",
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "group1",
+ "privateCloudName": "cloud1",
+ "clusterName": "cluster1",
+ "clusterUpdate": {
+ "properties": {
+ "clusterSize": 4
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1/clusters/cluster1",
+ "name": "cluster1",
+ "sku": {
+ "name": "AV20"
+ },
+ "properties": {
+ "clusterSize": 4,
+ "hosts": [
+ "fakehost22.nyc1.kubernetes.center",
+ "fakehost23.nyc1.kubernetes.center",
+ "fakehost24.nyc1.kubernetes.center",
+ "fakehost25.nyc1.kubernetes.center"
+ ],
+ "provisioningState": "Succeeded"
+ },
+ "type": "Microsoft.AVS/privateClouds/clusters"
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1/clusters/cluster1",
+ "name": "cluster1",
+ "sku": {
+ "name": "AV20"
+ },
+ "properties": {
+ "clusterSize": 4,
+ "provisioningState": "Updating"
+ },
+ "type": "Microsoft.AVS/privateClouds/clusters"
+ }
+ }
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/GlobalReachConnections_CreateOrUpdate.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/GlobalReachConnections_CreateOrUpdate.json
new file mode 100644
index 000000000000..c1c9b4b22d73
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/GlobalReachConnections_CreateOrUpdate.json
@@ -0,0 +1,45 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17-preview",
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "group1",
+ "privateCloudName": "cloud1",
+ "globalReachConnectionName": "connection1",
+ "globalReachConnection": {
+ "properties": {
+ "peerExpressRouteCircuit": "/subscriptions/12341234-1234-1234-1234-123412341234/resourceGroups/mygroup/providers/Microsoft.Network/expressRouteCircuits/mypeer",
+ "authorizationKey": "01010101-0101-0101-0101-010101010101"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1/globalReachConnections/connection1",
+ "name": "connection1",
+ "properties": {
+ "addressPrefix": "10.2.3.16/29",
+ "authorizationKey": "01010101-0101-0101-0101-010101010101",
+ "circuitConnectionStatus": "Connected",
+ "peerExpressRouteCircuit": "/subscriptions/12341234-1234-1234-1234-123412341234/resourceGroups/mygroup/providers/Microsoft.Network/expressRouteCircuits/mypeer",
+ "provisioningState": "Succeeded"
+ },
+ "type": "Microsoft.AVS/privateClouds/globalReachConnections"
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1/globalReachConnections/connection1",
+ "name": "connection1",
+ "properties": {
+ "addressPrefix": "10.2.3.16/29",
+ "authorizationKey": "01010101-0101-0101-0101-010101010101",
+ "circuitConnectionStatus": "Connected",
+ "peerExpressRouteCircuit": "/subscriptions/12341234-1234-1234-1234-123412341234/resourceGroups/mygroup/providers/Microsoft.Network/expressRouteCircuits/mypeer",
+ "provisioningState": "Updating"
+ },
+ "type": "Microsoft.AVS/privateClouds/globalReachConnections"
+ }
+ }
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/GlobalReachConnections_Delete.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/GlobalReachConnections_Delete.json
new file mode 100644
index 000000000000..3044207cdf37
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/GlobalReachConnections_Delete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17-preview",
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "group1",
+ "privateCloudName": "cloud1",
+ "globalReachConnectionName": "connection1"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/GlobalReachConnections_Get.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/GlobalReachConnections_Get.json
new file mode 100644
index 000000000000..cf900951cbe9
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/GlobalReachConnections_Get.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17-preview",
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "group1",
+ "privateCloudName": "cloud1",
+ "globalReachConnectionName": "connection1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1/globalReachConnections/connection1",
+ "name": "connection1",
+ "properties": {
+ "addressPrefix": "10.2.3.16/29",
+ "authorizationKey": "01010101-0101-0101-0101-010101010101",
+ "circuitConnectionStatus": "Connected",
+ "peerExpressRouteCircuit": "/subscriptions/12341234-1234-1234-1234-123412341234/resourceGroups/mygroup/providers/Microsoft.Network/expressRouteCircuits/mypeer",
+ "provisioningState": "Succeeded"
+ },
+ "type": "Microsoft.AVS/privateClouds/globalReachConnections"
+ }
+ }
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/GlobalReachConnections_List.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/GlobalReachConnections_List.json
new file mode 100644
index 000000000000..d8f0b11ae8b2
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/GlobalReachConnections_List.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17-preview",
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "group1",
+ "privateCloudName": "cloud1"
+ },
+ "responses": {
+ "200": {
+ "body": [
+ {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1/globalReachConnections/connection1",
+ "name": "connection1",
+ "properties": {
+ "addressPrefix": "10.2.3.16/29",
+ "authorizationKey": "01010101-0101-0101-0101-010101010101",
+ "circuitConnectionStatus": "Connected",
+ "peerExpressRouteCircuit": "/subscriptions/12341234-1234-1234-1234-123412341234/resourceGroups/mygroup/providers/Microsoft.Network/expressRouteCircuits/mypeer",
+ "provisioningState": "Succeeded"
+ },
+ "type": "Microsoft.AVS/privateClouds/globalReachConnections"
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/HcxEnterpriseSites_CreateOrUpdate.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/HcxEnterpriseSites_CreateOrUpdate.json
new file mode 100644
index 000000000000..ddeaa8b1c8d4
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/HcxEnterpriseSites_CreateOrUpdate.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17-preview",
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "group1",
+ "privateCloudName": "cloud1",
+ "hcxEnterpriseSiteName": "site1",
+ "hcxEnterpriseSite": {}
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1/hcxEnterpriseSites/site1",
+ "name": "site1",
+ "properties": {
+ "activationKey": "0276EF1A9A1749A5A362BF73EA9F8D0D",
+ "status": "Available"
+ },
+ "type": "Microsoft.AVS/privateClouds/hcxEnterpriseSites"
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1/hcxEnterpriseSites/site1",
+ "name": "site1",
+ "properties": {
+ "activationKey": "0276EF1A9A1749A5A362BF73EA9F8D0D",
+ "status": "Available"
+ },
+ "type": "Microsoft.AVS/privateClouds/hcxEnterpriseSites"
+ }
+ }
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/HcxEnterpriseSites_Delete.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/HcxEnterpriseSites_Delete.json
new file mode 100644
index 000000000000..6cf33758f443
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/HcxEnterpriseSites_Delete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17-preview",
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "group1",
+ "privateCloudName": "cloud1",
+ "hcxEnterpriseSiteName": "site1"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/HcxEnterpriseSites_Get.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/HcxEnterpriseSites_Get.json
new file mode 100644
index 000000000000..bb6319d2cd37
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/HcxEnterpriseSites_Get.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17-preview",
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "group1",
+ "privateCloudName": "cloud1",
+ "hcxEnterpriseSiteName": "site1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1/hcxEnterpriseSites/site1",
+ "name": "site1",
+ "properties": {
+ "activationKey": "0276EF1A9A1749A5A362BF73EA9F8D0D",
+ "status": "Available"
+ },
+ "type": "Microsoft.AVS/privateClouds/hcxEnterpriseSites"
+ }
+ }
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/HcxEnterpriseSites_List.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/HcxEnterpriseSites_List.json
new file mode 100644
index 000000000000..9a020844859f
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/HcxEnterpriseSites_List.json
@@ -0,0 +1,23 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17-preview",
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "group1",
+ "privateCloudName": "cloud1"
+ },
+ "responses": {
+ "200": {
+ "body": [
+ {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1/hcxEnterpriseSites/site1",
+ "name": "site1",
+ "properties": {
+ "activationKey": "0276EF1A9A1749A5A362BF73EA9F8D0D",
+ "status": "Available"
+ },
+ "type": "Microsoft.AVS/privateClouds/hcxEnterpriseSites"
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/Locations_CheckQuotaAvailability.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/Locations_CheckQuotaAvailability.json
new file mode 100644
index 000000000000..cc619942e720
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/Locations_CheckQuotaAvailability.json
@@ -0,0 +1,18 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "api-version": "2020-07-17-preview",
+ "location": "eastus"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "hostsRemaining": {
+ "AV20": 0,
+ "AV36": 999
+ },
+ "quotaEnabled": "Enabled"
+ }
+ }
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/Locations_CheckTrialAvailability.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/Locations_CheckTrialAvailability.json
new file mode 100644
index 000000000000..5e0e05f4e359
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/Locations_CheckTrialAvailability.json
@@ -0,0 +1,15 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "api-version": "2020-07-17-preview",
+ "location": "eastus"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "status": "TrialAvailable",
+ "availableHosts": 4
+ }
+ }
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/Operations_List.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/Operations_List.json
new file mode 100644
index 000000000000..bafcbfda541e
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/Operations_List.json
@@ -0,0 +1,524 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17-preview"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "value": [
+ {
+ "display": {
+ "description": "Lists operations available on Microsoft.AVS resource provider.",
+ "operation": "List available Microsoft.AVS operations",
+ "provider": "Microsoft.AVS",
+ "resource": "operations"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/operations/read",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Register Subscription for Microsoft.AVS resource provider.",
+ "operation": "Register Subscription for Microsoft.AVS",
+ "provider": "Microsoft.AVS",
+ "resource": ""
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/register/action",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Unregister Subscription for Microsoft.AVS resource provider.",
+ "operation": "Unregister Subscription for Microsoft.AVS",
+ "provider": "Microsoft.AVS",
+ "resource": ""
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/unregister/action",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Checks if the privateCloud Name is available",
+ "operation": "Check Name Availability",
+ "provider": "Microsoft.AVS",
+ "resource": "checkNameAvailability"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/checkNameAvailability/read",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Checks if the privateCloud Name is available",
+ "operation": "Check Name Availability",
+ "provider": "Microsoft.AVS",
+ "resource": "locations/checkNameAvailability"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/locations/checkNameAvailability/read",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Checks if quota is available for the subscription",
+ "operation": "Check Quota Availability",
+ "provider": "Microsoft.AVS",
+ "resource": "locations/checkQuotaAvailability"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/locations/checkQuotaAvailability/read",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Checks if trial is available for the subscription",
+ "operation": "Check Trial Availability",
+ "provider": "Microsoft.AVS",
+ "resource": "locations/checkTrialAvailability"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/locations/checkTrialAvailability/read",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Registers the Microsoft Microsoft.AVS resource provider and enables creation of Private Clouds.",
+ "operation": "Register Microsoft.AVS resource provider.",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/register/action",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Creates or updates a PrivateCloud resource.",
+ "operation": "Create or update a PrivateCloud.",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/write",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Gets the settings for the specified PrivateCloud.",
+ "operation": "Read PrivateCloud settings",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/read",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Delete a specific PrivateCloud.",
+ "operation": "Delete a PrivateCloud.",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/delete",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Reads privateClouds operationstatuses.",
+ "operation": "Read privateClouds operationstatuses",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds/operationstatuses"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/operationstatuses/read",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Gets the cluster settings for a PrivateCloud cluster.",
+ "operation": "Read Cluster settings.",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds/clusters"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/clusters/read",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Create or update a PrivateCloud cluster resource.",
+ "operation": "Create or update a PrivateCloud cluster.",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds/clusters"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/clusters/write",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Delete a specific PrivateCloud cluster.",
+ "operation": "Delete a PriveCloud cluster.",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds/clusters"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/clusters/delete",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Reads privateClouds/clusters operationstatuses.",
+ "operation": "Read privateClouds/clusters operationstatuses",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds/clusters/operationstatuses"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/clusters/operationstatuses/read",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Reads privateClouds/clusters operationresults.",
+ "operation": "Read privateClouds/clusters operationresults",
+ "provider": "Microsoft.AVS",
+ "resource": "privateclouds/clusters/operationresults"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateclouds/clusters/operationresults/read",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Reads privateClouds operationresults.",
+ "operation": "Read privateClouds operationresults",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds/operationresults"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/operationresults/read",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Gets the authorization settings for a PrivateCloud cluster.",
+ "operation": "Read Authorization settings.",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds/authorizations"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/authorizations/read",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Create or update a PrivateCloud authorization resource.",
+ "operation": "Create or update a PrivateCloud authorization.",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds/authorizations"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/authorizations/write",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Delete a specific PrivateCloud authorization.",
+ "operation": "Delete a PriveCloud authorization.",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds/authorizations"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/authorizations/delete",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Lists the AdminCredentials for privateClouds.",
+ "operation": "List privateClouds AdminCredentials",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds"
+ },
+ "isDataAction": true,
+ "name": "Microsoft.AVS/privateClouds/listAdminCredentials/action",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Gets the hcxEnterpriseSites for a PrivateCloud.",
+ "operation": "Read hcxEnterpriseSites",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds/hcxEnterpriseSites"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/hcxEnterpriseSites/read",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Create or update a hcxEnterpriseSites.",
+ "operation": "Create or update a hcxEnterpriseSites",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds/hcxEnterpriseSites"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/hcxEnterpriseSites/write",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Delete a specific hcxEnterpriseSites.",
+ "operation": "Delete a hcxEnterpriseSites",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds/hcxEnterpriseSites"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/hcxEnterpriseSites/delete",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Gets the hostInstances for a PrivateCloud.",
+ "operation": "Read hostInstances",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds/hostInstances"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/hostInstances/read",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Create or update a hostInstances.",
+ "operation": "Create or update a hostInstances",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds/hostInstances"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/hostInstances/write",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Delete a specific hostInstances.",
+ "operation": "Delete a hostInstances",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds/hostInstances"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/hostInstances/delete",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Gets the available metrics for Private Cloud",
+ "operation": "Read Private Cloud metric definitions",
+ "provider": "Microsoft Azure Dedicated",
+ "resource": "privateClouds"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/providers/Microsoft.Insights/metricDefinitions/read",
+ "origin": "system",
+ "properties": {
+ "serviceSpecification": {
+ "metricSpecifications": [
+ {
+ "aggregationType": "Average",
+ "displayDescription": "The total amount of disk used in SDDC",
+ "displayName": "Datastore disk used",
+ "enableRegionalMdmAccount": "true",
+ "name": "UsedLatest",
+ "sourceMdmAccount": "AVSShoebox2",
+ "sourceMdmNamespace": "Vsphere.Datastore.Disk",
+ "supportedTimeGrainTypes": [
+ "PT5M",
+ "PT15M",
+ "PT30M",
+ "PT1H",
+ "PT6H",
+ "PT12H",
+ "P1D"
+ ],
+ "unit": "Bytes"
+ },
+ {
+ "aggregationType": "Average",
+ "displayDescription": "The total capacity of disk in SDDC",
+ "displayName": "Datastore disk total capacity",
+ "enableRegionalMdmAccount": "true",
+ "name": "CapacityLatest",
+ "sourceMdmAccount": "AVSShoebox2",
+ "sourceMdmNamespace": "Vsphere.Datastore.Disk",
+ "supportedTimeGrainTypes": [
+ "PT5M",
+ "PT15M",
+ "PT30M",
+ "PT1H",
+ "PT6H",
+ "PT12H",
+ "P1D"
+ ],
+ "unit": "Bytes"
+ },
+ {
+ "aggregationType": "Average",
+ "displayDescription": "Total amount of machine memory in cluster that is available",
+ "displayName": "Average Effective Memory",
+ "enableRegionalMdmAccount": "true",
+ "name": "EffectiveMemAverage",
+ "sourceMdmAccount": "AVSShoebox2",
+ "sourceMdmNamespace": "Vsphere.Cluster.ClusterServices",
+ "supportedTimeGrainTypes": [
+ "PT5M",
+ "PT15M",
+ "PT30M",
+ "PT1H",
+ "PT6H",
+ "PT12H",
+ "P1D"
+ ],
+ "unit": "Bytes"
+ },
+ {
+ "aggregationType": "Average",
+ "displayDescription": "Total memory in cluster",
+ "displayName": "Average Total Memory",
+ "enableRegionalMdmAccount": "true",
+ "name": "TotalMbAverage",
+ "sourceMdmAccount": "AVSShoebox2",
+ "sourceMdmNamespace": "Vsphere.Cluster.Mem",
+ "supportedTimeGrainTypes": [
+ "PT5M",
+ "PT15M",
+ "PT30M",
+ "PT1H",
+ "PT6H",
+ "PT12H",
+ "P1D"
+ ],
+ "unit": "Bytes"
+ },
+ {
+ "aggregationType": "Average",
+ "displayDescription": "Host physical memory consumed by the virtualization infrastructure",
+ "displayName": "Average Memory Overhead",
+ "enableRegionalMdmAccount": "true",
+ "name": "OverheadAverage",
+ "sourceMdmAccount": "AVSShoebox2",
+ "sourceMdmNamespace": "Vsphere.Cluster.Mem",
+ "supportedTimeGrainTypes": [
+ "PT5M",
+ "PT15M",
+ "PT30M",
+ "PT1H",
+ "PT6H",
+ "PT12H",
+ "P1D"
+ ],
+ "unit": "Bytes"
+ },
+ {
+ "aggregationType": "Average",
+ "displayDescription": "Memory usage as percentage of total configured or available memory",
+ "displayName": "Average Memory Usage",
+ "enableRegionalMdmAccount": "true",
+ "name": "UsageAverage",
+ "sourceMdmAccount": "AVSShoebox2",
+ "sourceMdmNamespace": "Vsphere.Cluster.Mem",
+ "supportedTimeGrainTypes": [
+ "PT5M",
+ "PT15M",
+ "PT30M",
+ "PT1H",
+ "PT6H",
+ "PT12H",
+ "P1D"
+ ],
+ "unit": "Percent"
+ },
+ {
+ "aggregationType": "Average",
+ "displayDescription": "Total available CPU resources in cluster",
+ "displayName": "Effective CPU available",
+ "enableRegionalMdmAccount": "true",
+ "name": "EffectiveCpuAverage",
+ "sourceMdmAccount": "AVSShoebox2",
+ "sourceMdmNamespace": "Vsphere.Cluster.ClusterServices",
+ "supportedTimeGrainTypes": [
+ "PT5M",
+ "PT15M",
+ "PT30M",
+ "PT1H",
+ "PT6H",
+ "PT12H",
+ "P1D"
+ ],
+ "unit": "Percent"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "display": {
+ "description": "Gets the diagnostic setting for the resource",
+ "operation": "Read diagnostic setting",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/providers/Microsoft.Insights/diagnosticSettings/read",
+ "origin": "system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Creates or updates the diagnostic setting for the resource",
+ "operation": "Write diagnostic setting",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/providers/Microsoft.Insights/diagnosticSettings/write",
+ "origin": "system",
+ "properties": {}
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/PrivateClouds_CreateOrUpdate.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/PrivateClouds_CreateOrUpdate.json
new file mode 100644
index 000000000000..4ef38a724504
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/PrivateClouds_CreateOrUpdate.json
@@ -0,0 +1,119 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17-preview",
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "group1",
+ "privateCloudName": "cloud1",
+ "privateCloud": {
+ "location": "eastus2",
+ "sku": {
+ "name": "AV36"
+ },
+ "properties": {
+ "networkBlock": "192.168.48.0/22",
+ "managementCluster": {
+ "clusterSize": 4
+ }
+ },
+ "tags": {}
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1",
+ "location": "eastus2",
+ "name": "cloud1",
+ "sku": {
+ "name": "AV36"
+ },
+ "properties": {
+ "networkBlock": "192.168.48.0/22",
+ "circuit": {
+ "expressRouteID": "/subscriptions/{subscription-id}/resourceGroups/tnt13-41a90db2-9d5e-4bd5-a77a-5ce7b58213d6-eastus2/providers/Microsoft.Network/expressroutecircuits/tnt13-41a90db2-9d5e-4bd5-a77a-5ce7b58213d6-eastus2-xconnect",
+ "primarySubnet": "192.168.53.0/30",
+ "secondarySubnet": "192.168.53.4/30"
+ },
+ "managementCluster": {
+ "clusterId": 1,
+ "clusterSize": 4,
+ "hosts": [
+ "fakehost18.nyc1.kubernetes.center",
+ "fakehost19.nyc1.kubernetes.center",
+ "fakehost20.nyc1.kubernetes.center",
+ "fakehost21.nyc1.kubernetes.center"
+ ]
+ },
+ "endpoints": {
+ "nsxtManager": "https://192.168.50.3/",
+ "vcsa": "https://192.168.50.2/"
+ },
+ "identitySources": [
+ {
+ "alias": "groupAlias",
+ "baseGroupDN": "ou=baseGroup",
+ "baseUserDN": "ou=baseUser",
+ "domain": "domain1",
+ "name": "group1",
+ "primaryServer": "ldaps://1.1.1.1:636/",
+ "secondaryServer": "ldaps://1.1.1.2:636/",
+ "ssl": "Enabled"
+ }
+ ],
+ "internet": "Disabled",
+ "provisioningState": "Succeeded"
+ },
+ "tags": {},
+ "type": "Microsoft.AVS/privateClouds"
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1",
+ "location": "eastus2",
+ "name": "cloud1",
+ "sku": {
+ "name": "AV36"
+ },
+ "properties": {
+ "networkBlock": "192.168.48.0/22",
+ "circuit": {
+ "expressRouteID": "/subscriptions/{subscription-id}/resourceGroups/tnt13-41a90db2-9d5e-4bd5-a77a-5ce7b58213d6-eastus2/providers/Microsoft.Network/expressroutecircuits/tnt13-41a90db2-9d5e-4bd5-a77a-5ce7b58213d6-eastus2-xconnect",
+ "primarySubnet": "192.168.53.0/30",
+ "secondarySubnet": "192.168.53.4/30"
+ },
+ "managementCluster": {
+ "clusterId": 1,
+ "clusterSize": 4,
+ "hosts": [
+ "fakehost18.nyc1.kubernetes.center",
+ "fakehost19.nyc1.kubernetes.center",
+ "fakehost20.nyc1.kubernetes.center",
+ "fakehost21.nyc1.kubernetes.center"
+ ]
+ },
+ "endpoints": {
+ "nsxtManager": "https://192.168.50.3/",
+ "vcsa": "https://192.168.50.2/"
+ },
+ "identitySources": [
+ {
+ "alias": "groupAlias",
+ "baseGroupDN": "ou=baseGroup",
+ "baseUserDN": "ou=baseUser",
+ "domain": "domain1",
+ "name": "group1",
+ "primaryServer": "ldaps://1.1.1.1:636/",
+ "secondaryServer": "ldaps://1.1.1.2:636/",
+ "ssl": "Enabled"
+ }
+ ],
+ "internet": "Disabled",
+ "provisioningState": "Updating"
+ },
+ "tags": {},
+ "type": "Microsoft.AVS/privateClouds"
+ }
+ }
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/PrivateClouds_Delete.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/PrivateClouds_Delete.json
new file mode 100644
index 000000000000..0b442b2a59f6
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/PrivateClouds_Delete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17-preview",
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "group1",
+ "privateCloudName": "cloud1"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/PrivateClouds_Get.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/PrivateClouds_Get.json
new file mode 100644
index 000000000000..534e534d445f
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/PrivateClouds_Get.json
@@ -0,0 +1,60 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17-preview",
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "group1",
+ "privateCloudName": "cloud1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1",
+ "location": "eastus2",
+ "name": "cloud1",
+ "sku": {
+ "name": "AV36"
+ },
+ "properties": {
+ "networkBlock": "192.168.48.0/22",
+ "circuit": {
+ "expressRouteID": "/subscriptions/{subscription-id}/resourceGroups/tnt13-41a90db2-9d5e-4bd5-a77a-5ce7b58213d6-eastus2/providers/Microsoft.Network/expressroutecircuits/tnt13-41a90db2-9d5e-4bd5-a77a-5ce7b58213d6-eastus2-xconnect",
+ "primarySubnet": "192.168.53.0/30",
+ "secondarySubnet": "192.168.53.4/30",
+ "expressRoutePrivatePeeringID": "/subscriptions/{subscription-id}/resourceGroups/tnt42-cust-p01-dmo01/providers/Microsoft.Network/expressroutecircuits/tnt42-cust-p01-dmo01-er/peerings/AzurePrivatePeering"
+ },
+ "managementCluster": {
+ "clusterId": 1,
+ "clusterSize": 4,
+ "hosts": [
+ "fakehost18.nyc1.kubernetes.center",
+ "fakehost19.nyc1.kubernetes.center",
+ "fakehost20.nyc1.kubernetes.center",
+ "fakehost21.nyc1.kubernetes.center"
+ ]
+ },
+ "endpoints": {
+ "nsxtManager": "https://192.168.50.3/",
+ "vcsa": "https://192.168.50.2/",
+ "hcxCloudManager": "https://192.168.50.4/"
+ },
+ "identitySources": [
+ {
+ "alias": "groupAlias",
+ "baseGroupDN": "ou=baseGroup",
+ "baseUserDN": "ou=baseUser",
+ "domain": "domain1",
+ "name": "group1",
+ "primaryServer": "ldaps://1.1.1.1:636/",
+ "secondaryServer": "ldaps://1.1.1.2:636/",
+ "ssl": "Enabled"
+ }
+ ],
+ "internet": "Disabled",
+ "provisioningState": "Succeeded"
+ },
+ "tags": {},
+ "type": "Microsoft.AVS/privateClouds"
+ }
+ }
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/PrivateClouds_List.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/PrivateClouds_List.json
new file mode 100644
index 000000000000..cb0f084538ed
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/PrivateClouds_List.json
@@ -0,0 +1,63 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17-preview",
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "group1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1",
+ "location": "eastus2",
+ "name": "cloud1",
+ "sku": {
+ "name": "AV36"
+ },
+ "properties": {
+ "networkBlock": "192.168.48.0/22",
+ "circuit": {
+ "expressRouteID": "/subscriptions/{subscription-id}/resourceGroups/tnt13-41a90db2-9d5e-4bd5-a77a-5ce7b58213d6-eastus2/providers/Microsoft.Network/expressroutecircuits/tnt13-41a90db2-9d5e-4bd5-a77a-5ce7b58213d6-eastus2-xconnect",
+ "primarySubnet": "192.168.53.0/30",
+ "secondarySubnet": "192.168.53.4/30",
+ "expressRoutePrivatePeeringID": "/subscriptions/{subscription-id}/resourceGroups/tnt42-cust-p01-dmo01/providers/Microsoft.Network/expressroutecircuits/tnt42-cust-p01-dmo01-er/peerings/AzurePrivatePeering"
+ },
+ "managementCluster": {
+ "clusterId": 1,
+ "clusterSize": 4,
+ "hosts": [
+ "fakehost18.nyc1.kubernetes.center",
+ "fakehost19.nyc1.kubernetes.center",
+ "fakehost20.nyc1.kubernetes.center",
+ "fakehost21.nyc1.kubernetes.center"
+ ]
+ },
+ "endpoints": {
+ "nsxtManager": "https://192.168.50.3/",
+ "vcsa": "https://192.168.50.2/",
+ "hcxCloudManager": "https://192.168.50.4/"
+ },
+ "identitySources": [
+ {
+ "alias": "groupAlias",
+ "baseGroupDN": "ou=baseGroup",
+ "baseUserDN": "ou=baseUser",
+ "domain": "domain1",
+ "name": "group1",
+ "primaryServer": "ldaps://1.1.1.1:636/",
+ "secondaryServer": "ldaps://1.1.1.2:636/",
+ "ssl": "Enabled"
+ }
+ ],
+ "internet": "Disabled",
+ "provisioningState": "Succeeded"
+ },
+ "tags": {},
+ "type": "Microsoft.AVS/privateClouds"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/PrivateClouds_ListAdminCredentials.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/PrivateClouds_ListAdminCredentials.json
new file mode 100644
index 000000000000..0c8723983d06
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/PrivateClouds_ListAdminCredentials.json
@@ -0,0 +1,18 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17-preview",
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "group1",
+ "privateCloudName": "cloud1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "nsxtPassword": "$(1X4Dkk",
+ "nsxtUsername": "admin",
+ "vcenterPassword": "iG17wC^-",
+ "vcenterUsername": "cloudadmin@vmcp.local"
+ }
+ }
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/PrivateClouds_ListInSubscription.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/PrivateClouds_ListInSubscription.json
new file mode 100644
index 000000000000..5186ca0a2029
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/PrivateClouds_ListInSubscription.json
@@ -0,0 +1,60 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17-preview",
+ "subscriptionId": "{subscription-id}"
+ },
+ "responses": {
+ "200": {
+ "body": [
+ {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1",
+ "location": "eastus2",
+ "name": "cloud1",
+ "sku": {
+ "name": "AV36"
+ },
+ "properties": {
+ "networkBlock": "192.168.48.0/22",
+ "circuit": {
+ "expressRouteID": "/subscriptions/{subscription-id}/resourceGroups/tnt13-41a90db2-9d5e-4bd5-a77a-5ce7b58213d6-eastus2/providers/Microsoft.Network/expressroutecircuits/tnt13-41a90db2-9d5e-4bd5-a77a-5ce7b58213d6-eastus2-xconnect",
+ "primarySubnet": "192.168.53.0/30",
+ "secondarySubnet": "192.168.53.4/30",
+ "expressRoutePrivatePeeringID": "/subscriptions/{subscription-id}/resourceGroups/tnt42-cust-p01-dmo01/providers/Microsoft.Network/expressroutecircuits/tnt42-cust-p01-dmo01-er/peerings/AzurePrivatePeering"
+ },
+ "managementCluster": {
+ "clusterId": 1,
+ "clusterSize": 4,
+ "hosts": [
+ "fakehost18.nyc1.kubernetes.center",
+ "fakehost19.nyc1.kubernetes.center",
+ "fakehost20.nyc1.kubernetes.center",
+ "fakehost21.nyc1.kubernetes.center"
+ ]
+ },
+ "endpoints": {
+ "nsxtManager": "https://192.168.50.3/",
+ "vcsa": "https://192.168.50.2/",
+ "hcxCloudManager": "https://192.168.50.4/"
+ },
+ "identitySources": [
+ {
+ "alias": "groupAlias",
+ "baseGroupDN": "ou=baseGroup",
+ "baseUserDN": "ou=baseUser",
+ "domain": "domain1",
+ "name": "group1",
+ "primaryServer": "ldaps://1.1.1.1:636/",
+ "secondaryServer": "ldaps://1.1.1.2:636/",
+ "ssl": "Enabled"
+ }
+ ],
+ "internet": "Disabled",
+ "provisioningState": "Succeeded"
+ },
+ "tags": {},
+ "type": "Microsoft.AVS/privateClouds"
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/PrivateClouds_Update.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/PrivateClouds_Update.json
new file mode 100644
index 000000000000..0ae9f9daadfc
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/PrivateClouds_Update.json
@@ -0,0 +1,116 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17-preview",
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "group1",
+ "privateCloudName": "cloud1",
+ "privateCloudUpdate": {
+ "properties": {
+ "managementCluster": {
+ "clusterSize": 4
+ },
+ "vcenterPassword": "OnetimeRotate",
+ "nsxtPassword": "OnetimeRotate"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1",
+ "location": "eastus2",
+ "name": "cloud1",
+ "sku": {
+ "name": "AV36"
+ },
+ "properties": {
+ "networkBlock": "192.168.48.0/22",
+ "circuit": {
+ "expressRouteID": "/subscriptions/{subscription-id}/resourceGroups/tnt13-41a90db2-9d5e-4bd5-a77a-5ce7b58213d6-eastus2/providers/Microsoft.Network/expressroutecircuits/tnt13-41a90db2-9d5e-4bd5-a77a-5ce7b58213d6-eastus2-xconnect",
+ "primarySubnet": "192.168.53.0/30",
+ "secondarySubnet": "192.168.53.4/30",
+ "expressRoutePrivatePeeringID": "/subscriptions/{subscription-id}/resourceGroups/tnt42-cust-p01-dmo01/providers/Microsoft.Network/expressroutecircuits/tnt42-cust-p01-dmo01-er/peerings/AzurePrivatePeering"
+ },
+ "managementCluster": {
+ "clusterId": 1,
+ "clusterSize": 4,
+ "hosts": [
+ "fakehost18.nyc1.kubernetes.center",
+ "fakehost19.nyc1.kubernetes.center",
+ "fakehost20.nyc1.kubernetes.center",
+ "fakehost21.nyc1.kubernetes.center"
+ ]
+ },
+ "endpoints": {
+ "nsxtManager": "https://192.168.50.3/",
+ "vcsa": "https://192.168.50.2/",
+ "hcxCloudManager": "https://192.168.50.4/"
+ },
+ "identitySources": [
+ {
+ "alias": "groupAlias",
+ "baseGroupDN": "ou=baseGroup",
+ "baseUserDN": "ou=baseUser",
+ "domain": "domain1",
+ "name": "group1",
+ "primaryServer": "ldaps://1.1.1.1:636/",
+ "secondaryServer": "ldaps://1.1.1.2:636/",
+ "ssl": "Enabled"
+ }
+ ],
+ "internet": "Disabled",
+ "provisioningState": "Succeeded"
+ },
+ "tags": {},
+ "type": "Microsoft.AVS/privateClouds"
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1",
+ "location": "eastus2",
+ "name": "cloud1",
+ "sku": "AV36",
+ "properties": {
+ "networkBlock": "192.168.48.0/22",
+ "circuit": {
+ "expressRouteID": "/subscriptions/{subscription-id}/resourceGroups/tnt13-41a90db2-9d5e-4bd5-a77a-5ce7b58213d6-eastus2/providers/Microsoft.Network/expressroutecircuits/tnt13-41a90db2-9d5e-4bd5-a77a-5ce7b58213d6-eastus2-xconnect",
+ "primarySubnet": "192.168.53.0/30",
+ "secondarySubnet": "192.168.53.4/30",
+ "expressRoutePrivatePeeringID": "/subscriptions/{subscription-id}/resourceGroups/tnt42-cust-p01-dmo01/providers/Microsoft.Network/expressroutecircuits/tnt42-cust-p01-dmo01-er/peerings/AzurePrivatePeering"
+ },
+ "managementCluster": {
+ "clusterId": 1,
+ "clusterSize": 4,
+ "hosts": [
+ "fakehost18.nyc1.kubernetes.center",
+ "fakehost19.nyc1.kubernetes.center",
+ "fakehost20.nyc1.kubernetes.center",
+ "fakehost21.nyc1.kubernetes.center"
+ ]
+ },
+ "endpoints": {
+ "nsxtManager": "https://192.168.50.3/",
+ "vcsa": "https://192.168.50.2/"
+ },
+ "identitySources": [
+ {
+ "alias": "groupAlias",
+ "baseGroupDN": "ou=baseGroup",
+ "baseUserDN": "ou=baseUser",
+ "domain": "domain1",
+ "name": "group1",
+ "primaryServer": "ldaps://1.1.1.1:636/",
+ "secondaryServer": "ldaps://1.1.1.2:636/",
+ "ssl": "Enabled"
+ }
+ ],
+ "internet": "Disabled",
+ "provisioningState": "Updating"
+ },
+ "tags": {},
+ "type": "Microsoft.AVS/privateClouds"
+ }
+ }
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_CreateDhcpConfigurations.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_CreateDhcpConfigurations.json
new file mode 100644
index 000000000000..d4847d0391ac
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_CreateDhcpConfigurations.json
@@ -0,0 +1,56 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17",
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "group1",
+ "privateCloudName": "cloud1",
+ "dhcpId": "dhcp1",
+ "workloadNetworkDhcp": {
+ "properties": {
+ "dhcpType": "SERVER",
+ "displayName": "dhcpConfigurations1",
+ "serverAddress": "40.1.5.1/24",
+ "leaseTime": 86400,
+ "revision": 1
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1/workloadNetworks/default/dhcpConfigurations/dhcpConfigurations1",
+ "name": "dhcp1",
+ "properties": {
+ "dhcpType": "SERVER",
+ "displayName": "dhcpConfigurations1",
+ "segments": [
+ "segment1",
+ "segment2"
+ ],
+ "serverAddress": "40.1.5.1/24",
+ "leaseTime": 86400,
+ "revision": 1
+ },
+ "type": "Microsoft.AVS/privateClouds/workloadNetworks/dhcpConfigurations"
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1/workloadNetworks/default/dhcpConfigurations/dhcpConfigurations1",
+ "name": "dhcp1",
+ "properties": {
+ "dhcpType": "SERVER",
+ "displayName": "dhcpConfigurations1",
+ "segments": [
+ "segment1",
+ "segment2"
+ ],
+ "serverAddress": "40.1.5.1/24",
+ "leaseTime": 86400,
+ "revision": 1
+ },
+ "type": "Microsoft.AVS/privateClouds/workloadNetworks/dhcpConfigurations"
+ }
+ }
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_CreatePortMirroringProfiles.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_CreatePortMirroringProfiles.json
new file mode 100644
index 000000000000..89cd2f7b1833
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_CreatePortMirroringProfiles.json
@@ -0,0 +1,50 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17",
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "group1",
+ "privateCloudName": "cloud1",
+ "portMirroringId": "portMirroring1",
+ "workloadNetworkPortMirroring": {
+ "properties": {
+ "displayName": "portMirroring1",
+ "direction": "BIDIRECTIONAL",
+ "source": "vmGroup1",
+ "destination": "vmGroup2",
+ "revision": 1
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1/workloadNetworks/default/portMirroringProfiles/portMirroring1",
+ "name": "portMirroring1",
+ "properties": {
+ "displayName": "portMirroring1",
+ "direction": "BIDIRECTIONAL",
+ "source": "vmGroup1",
+ "destination": "vmGroup2",
+ "status": "SUCCESS",
+ "revision": 1
+ },
+ "type": "Microsoft.AVS/privateClouds/workloadNetworks/portMirroringProfiles"
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1/workloadNetworks/default/portMirroringProfiles/portMirroring1",
+ "name": "portMirroring1",
+ "properties": {
+ "displayName": "portMirroring1",
+ "direction": "BIDIRECTIONAL",
+ "source": "vmGroup1",
+ "destination": "vmGroup2",
+ "status": "SUCCESS",
+ "revision": 1
+ },
+ "type": "Microsoft.AVS/privateClouds/workloadNetworks/portMirroringProfiles"
+ }
+ }
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_CreateSegments.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_CreateSegments.json
new file mode 100644
index 000000000000..4d8123f30815
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_CreateSegments.json
@@ -0,0 +1,64 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17",
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "group1",
+ "privateCloudName": "cloud1",
+ "segmentId": "segment1",
+ "workloadNetworkSegment": {
+ "properties": {
+ "displayName": "segment1",
+ "connectedGateway": "/infra/tier-1s/gateway",
+ "subnet": {
+ "dhcpRanges": [
+ "40.20.0.0-40.20.0.1"
+ ],
+ "gatewayAddress": "40.20.20.20/16"
+ },
+ "revision": 1
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1/workloadNetworks/default/segments/segment1",
+ "name": "segment1",
+ "properties": {
+ "displayName": "segment1",
+ "connectedGateway": "/infra/tier-1s/gateway",
+ "subnet": {
+ "dhcpRanges": [
+ "40.20.0.0-40.20.0.1"
+ ],
+ "gatewayAddress": "40.20.20.20/16"
+ },
+ "portVif": [],
+ "status": "SUCCESS",
+ "revision": 1
+ },
+ "type": "Microsoft.AVS/privateClouds/workloadNetworks/segments"
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1/workloadNetworks/default/segments/segment1",
+ "name": "segment1",
+ "properties": {
+ "displayName": "segment1",
+ "connectedGateway": "/infra/tier-1s/gateway",
+ "subnet": {
+ "dhcpRanges": [
+ "40.20.0.0-40.20.0.1"
+ ],
+ "gatewayAddress": "40.20.20.20/16"
+ },
+ "portVif": [],
+ "status": "SUCCESS",
+ "revision": 1
+ },
+ "type": "Microsoft.AVS/privateClouds/workloadNetworks/segments"
+ }
+ }
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_CreateVMGroups.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_CreateVMGroups.json
new file mode 100644
index 000000000000..23b598799242
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_CreateVMGroups.json
@@ -0,0 +1,50 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17",
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "group1",
+ "privateCloudName": "cloud1",
+ "vmGroupId": "vmGroup1",
+ "workloadNetworkVMGroup": {
+ "properties": {
+ "displayName": "vmGroup1",
+ "members": [
+ "564d43da-fefc-2a3b-1d92-42855622fa50"
+ ],
+ "revision": 1
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1/workloadNetworks/default/vmGroups/vmGroup1",
+ "name": "vmGroup1",
+ "properties": {
+ "displayName": "vmGroup1",
+ "members": [
+ "564d43da-fefc-2a3b-1d92-42855622fa50"
+ ],
+ "status": "SUCCESS",
+ "revision": 1
+ },
+ "type": "Microsoft.AVS/privateClouds/workloadNetworks/vmGroups"
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1/workloadNetworks/default/vmGroups/vmGroup1",
+ "name": "vmGroup1",
+ "properties": {
+ "displayName": "vmGroup1",
+ "members": [
+ "564d43da-fefc-2a3b-1d92-42855622fa50"
+ ],
+ "status": "SUCCESS",
+ "revision": 1
+ },
+ "type": "Microsoft.AVS/privateClouds/workloadNetworks/vmGroups"
+ }
+ }
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_DeleteDhcpConfigurations.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_DeleteDhcpConfigurations.json
new file mode 100644
index 000000000000..0b465075255d
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_DeleteDhcpConfigurations.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17",
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "group1",
+ "privateCloudName": "cloud1",
+ "dhcpId": "dhcp1"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_DeletePortMirroringProfiles.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_DeletePortMirroringProfiles.json
new file mode 100644
index 000000000000..70e5b21a4621
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_DeletePortMirroringProfiles.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17",
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "group1",
+ "privateCloudName": "cloud1",
+ "portMirroringId": "portMirroring1"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_DeleteSegments.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_DeleteSegments.json
new file mode 100644
index 000000000000..a2106228c766
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_DeleteSegments.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17",
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "group1",
+ "privateCloudName": "cloud1",
+ "segmentId": "segment1"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_DeleteVMGroups.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_DeleteVMGroups.json
new file mode 100644
index 000000000000..1ad2e22be802
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_DeleteVMGroups.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17",
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "group1",
+ "privateCloudName": "cloud1",
+ "vmGroupId": "vmGroup1"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_GetDhcpConfigurations.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_GetDhcpConfigurations.json
new file mode 100644
index 000000000000..65df221505ce
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_GetDhcpConfigurations.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17",
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "group1",
+ "privateCloudName": "cloud1",
+ "dhcpId": "dhcp1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1/workloadNetworks/default/dhcpConfigurations/dhcpConfigurations1",
+ "name": "dhcp1",
+ "properties": {
+ "displayName": "dhcpConfigurations1",
+ "dhcpType": "SERVER",
+ "segments": [
+ "segment1",
+ "segment2"
+ ],
+ "serverAddress": "40.1.5.1/24",
+ "leaseTime": 86400,
+ "revision": 1
+ },
+ "type": "Microsoft.AVS/privateClouds/workloadNetworks/dhcpConfigurations"
+ }
+ }
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_GetGateway.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_GetGateway.json
new file mode 100644
index 000000000000..d2ff42b6b75f
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_GetGateway.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17",
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "group1",
+ "privateCloudName": "cloud1",
+ "gatewayId": "gateway1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1/workloadNetworks/default/gateways/gateway1",
+ "name": "gateway1",
+ "properties": {
+ "displayName": "gateway1",
+ "path": "/infra/tier-1s/gateway1"
+ },
+ "type": "Microsoft.AVS/privateClouds/workloadNetworks/gateways"
+ }
+ }
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_GetPortMirroringProfiles.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_GetPortMirroringProfiles.json
new file mode 100644
index 000000000000..545bb3a063f9
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_GetPortMirroringProfiles.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17",
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "group1",
+ "privateCloudName": "cloud1",
+ "portMirroringId": "portMirroring1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1/workloadNetworks/default/portMirroringProfiles/portMirroring1",
+ "name": "portMirroring1",
+ "properties": {
+ "displayName": "portMirroring1",
+ "direction": "BIDIRECTIONAL",
+ "source": "vmGroup1",
+ "destination": "vmGroup2",
+ "status": "SUCCESS",
+ "revision": 1
+ },
+ "type": "Microsoft.AVS/privateClouds/workloadNetworks/portMirroringProfiles"
+ }
+ }
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_GetSegments.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_GetSegments.json
new file mode 100644
index 000000000000..477dea9e2bec
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_GetSegments.json
@@ -0,0 +1,35 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17",
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "group1",
+ "privateCloudName": "cloud1",
+ "segmentId": "segment1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1/workloadNetworks/default/segments/segment1",
+ "name": "segment1",
+ "properties": {
+ "displayName": "segment1",
+ "connectedGateway": "/infra/tier-1s/gateway",
+ "subnet": {
+ "dhcpRanges": [
+ "40.20.0.0-40.20.0.1"
+ ],
+ "gatewayAddress": "40.20.20.20/16"
+ },
+ "portVif": [
+ {
+ "portName": "vm1"
+ }
+ ],
+ "status": "SUCCESS",
+ "revision": 1
+ },
+ "type": "Microsoft.AVS/privateClouds/workloadNetworks/segments"
+ }
+ }
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_GetVMGroups.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_GetVMGroups.json
new file mode 100644
index 000000000000..10f2761410ef
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_GetVMGroups.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17",
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "group1",
+ "privateCloudName": "cloud1",
+ "vmGroupId": "vmGroup1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1/workloadNetworks/default/vmGroups/vmGroup1",
+ "name": "cloud1",
+ "properties": {
+ "displayName": "vmGroup1",
+ "members": [
+ "564d43da-fefc-2a3b-1d92-42855622fa50"
+ ],
+ "status": "SUCCESS",
+ "revision": 1
+ },
+ "type": "Microsoft.AVS/privateClouds/workloadNetworks/vmGroups"
+ }
+ }
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_GetVirtualMachine.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_GetVirtualMachine.json
new file mode 100644
index 000000000000..9e649c3baaaf
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_GetVirtualMachine.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17",
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "group1",
+ "privateCloudName": "cloud1",
+ "virtualMachineId": "vm1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1/workloadNetworks/default/virtualMachines/vm1",
+ "name": "vm1",
+ "properties": {
+ "displayName": "vm1",
+ "vmType": "REGULAR"
+ },
+ "type": "Microsoft.AVS/privateClouds/workloadNetworks/virtualMachines"
+ }
+ }
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_ListDhcpConfigurations.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_ListDhcpConfigurations.json
new file mode 100644
index 000000000000..9b022b6c8c5a
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_ListDhcpConfigurations.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17",
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "group1",
+ "privateCloudName": "cloud1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1/workloadNetworks/default/dhcpConfigurations/dhcpConfigurations1",
+ "name": "dhcp1",
+ "properties": {
+ "displayName": "dhcpConfigurations1",
+ "dhcpType": "SERVER",
+ "segments": [
+ "segment1",
+ "segment2"
+ ],
+ "serverAddress": "40.1.5.1/24",
+ "leaseTime": 86400,
+ "revision": 1
+ },
+ "type": "Microsoft.AVS/privateClouds/workloadNetworks/dhcpConfigurations"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_ListGateways.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_ListGateways.json
new file mode 100644
index 000000000000..8c96a22db015
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_ListGateways.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17",
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "group1",
+ "privateCloudName": "cloud1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1/workloadNetworks/default/gateways/gateway1",
+ "name": "gateway1",
+ "properties": {
+ "displayName": "gateway1",
+ "path": "/infra/tier-1s/gateway1"
+ },
+ "type": "Microsoft.AVS/privateClouds/workloadNetworks/segments"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_ListPortMirroringProfiles.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_ListPortMirroringProfiles.json
new file mode 100644
index 000000000000..cf62194cdcd5
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_ListPortMirroringProfiles.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17",
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "group1",
+ "privateCloudName": "cloud1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1/workloadNetworks/default/portMirroringProfiles/portMirroring1",
+ "name": "cloud1",
+ "properties": {
+ "displayName": "portMirroring1",
+ "direction": "BIDIRECTIONAL",
+ "source": "vmGroup1",
+ "destination": "vmGroup2",
+ "status": "SUCCESS",
+ "revision": 1
+ },
+ "type": "Microsoft.AVS/privateClouds/workloadNetworks/portMirroringProfiles"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_ListSegments.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_ListSegments.json
new file mode 100644
index 000000000000..31e170f96b84
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_ListSegments.json
@@ -0,0 +1,38 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17",
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "group1",
+ "privateCloudName": "cloud1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1/workloadNetworks/default/segments/segment1",
+ "name": "segment1",
+ "properties": {
+ "displayName": "segment1",
+ "connectedGateway": "/infra/tier-1s/gateway",
+ "subnet": {
+ "dhcpRanges": [
+ "40.20.0.0-40.20.0.1"
+ ],
+ "gatewayAddress": "40.20.20.20/16"
+ },
+ "portVif": [
+ {
+ "portName": "vm1"
+ }
+ ],
+ "status": "SUCCESS",
+ "revision": 1
+ },
+ "type": "Microsoft.AVS/privateClouds/workloadNetworks/segments"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_ListVMGroups.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_ListVMGroups.json
new file mode 100644
index 000000000000..94584c65c5e7
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_ListVMGroups.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17",
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "group1",
+ "privateCloudName": "cloud1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1/workloadNetworks/default/vmGroups/vmGroup1",
+ "name": "cloud1",
+ "properties": {
+ "displayName": "vmGroup1",
+ "members": [
+ "564d43da-fefc-2a3b-1d92-42855622fa50"
+ ],
+ "status": "SUCCESS",
+ "revision": 1
+ },
+ "type": "Microsoft.AVS/privateClouds/workloadNetworks/vmGroups"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_ListVirtualMachines.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_ListVirtualMachines.json
new file mode 100644
index 000000000000..31ddde1c7dc3
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_ListVirtualMachines.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17",
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "group1",
+ "privateCloudName": "cloud1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1/workloadNetworks/default/virtualMachines/vm1",
+ "name": "vm1",
+ "properties": {
+ "displayName": "vm1",
+ "vmType": "REGULAR"
+ },
+ "type": "Microsoft.AVS/privateClouds/workloadNetworks/virtualMachines"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_UpdateDhcpConfigurations.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_UpdateDhcpConfigurations.json
new file mode 100644
index 000000000000..a77d47a0019b
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_UpdateDhcpConfigurations.json
@@ -0,0 +1,38 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17",
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "group1",
+ "privateCloudName": "cloud1",
+ "dhcpId": "dhcp1",
+ "workloadNetworkDhcp": {
+ "properties": {
+ "dhcpType": "SERVER",
+ "serverAddress": "40.1.5.1/24",
+ "leaseTime": 86400,
+ "revision": 1
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1/workloadNetworks/default/dhcpConfigurations/dhcpConfigurations1",
+ "name": "dhcp1",
+ "properties": {
+ "displayName": "dhcpConfigurations1",
+ "dhcpType": "SERVER",
+ "segments": [
+ "segment1",
+ "segment2"
+ ],
+ "serverAddress": "40.1.5.1/24",
+ "leaseTime": 86400,
+ "revision": 2
+ },
+ "type": "Microsoft.AVS/privateClouds/workloadNetworks/dhcpConfigurations"
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_UpdatePortMirroringProfiles.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_UpdatePortMirroringProfiles.json
new file mode 100644
index 000000000000..f77f89bd8227
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_UpdatePortMirroringProfiles.json
@@ -0,0 +1,35 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17",
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "group1",
+ "privateCloudName": "cloud1",
+ "portMirroringId": "portMirroring1",
+ "workloadNetworkPortMirroring": {
+ "properties": {
+ "direction": "BIDIRECTIONAL",
+ "source": "vmGroup1",
+ "destination": "vmGroup2",
+ "revision": 1
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1/workloadNetworks/default/portMirroringProfiles/portMirroring1",
+ "name": "portMirroring1",
+ "properties": {
+ "displayName": "portMirroring1",
+ "direction": "BIDIRECTIONAL",
+ "source": "vmGroup1",
+ "destination": "vmGroup2",
+ "status": "SUCCESS",
+ "revision": 2
+ },
+ "type": "Microsoft.AVS/privateClouds/workloadNetworks/portMirroringProfiles"
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_UpdateSegments.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_UpdateSegments.json
new file mode 100644
index 000000000000..62acb0fb0031
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_UpdateSegments.json
@@ -0,0 +1,48 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17",
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "group1",
+ "privateCloudName": "cloud1",
+ "segmentId": "segment1",
+ "workloadNetworkSegment": {
+ "properties": {
+ "connectedGateway": "/infra/tier-1s/gateway",
+ "subnet": {
+ "dhcpRanges": [
+ "40.20.0.0-40.20.0.1"
+ ],
+ "gatewayAddress": "40.20.20.20/16"
+ },
+ "revision": 1
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1/workloadNetworks/default/segments/segment1",
+ "name": "segment1",
+ "properties": {
+ "displayName": "segment1",
+ "connectedGateway": "/infra/tier-1s/gateway",
+ "subnet": {
+ "dhcpRanges": [
+ "40.20.0.0-40.20.0.1"
+ ],
+ "gatewayAddress": "40.20.20.20/16"
+ },
+ "portVif": [
+ {
+ "portName": "vm1"
+ }
+ ],
+ "status": "SUCCESS",
+ "revision": 2
+ },
+ "type": "Microsoft.AVS/privateClouds/workloadNetworks/segments"
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_UpdateVMGroups.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_UpdateVMGroups.json
new file mode 100644
index 000000000000..b54a26d75c3f
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/examples/WorkloadNetworks_UpdateVMGroups.json
@@ -0,0 +1,35 @@
+{
+ "parameters": {
+ "api-version": "2020-07-17",
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "group1",
+ "privateCloudName": "cloud1",
+ "vmGroupId": "vmGroup1",
+ "workloadNetworkVMGroup": {
+ "properties": {
+ "members": [
+ "564d43da-fefc-2a3b-1d92-42855622fa50"
+ ],
+ "revision": 1
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1/workloadNetworks/default/vmGroups/vmGroup1",
+ "name": "cloud1",
+ "properties": {
+ "displayName": "vmGroup1",
+ "members": [
+ "564d43da-fefc-2a3b-1d92-42855622fa50"
+ ],
+ "status": "SUCCESS",
+ "revision": 2
+ },
+ "type": "Microsoft.AVS/privateClouds/workloadNetworks/vmGroups"
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/vmware.json b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/vmware.json
new file mode 100644
index 000000000000..ac54baebcdf8
--- /dev/null
+++ b/specification/vmware/resource-manager/Microsoft.AVS/preview/2020-07-17-preview/vmware.json
@@ -0,0 +1,4137 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "Azure VMware Solution API",
+ "description": "Azure VMware Solution API",
+ "version": "2020-07-17-preview"
+ },
+ "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"
+ }
+ }
+ },
+ "tags": [
+ {
+ "name": "PrivateClouds",
+ "description": ""
+ },
+ {
+ "name": "Clusters",
+ "description": ""
+ },
+ {
+ "name": "Operations",
+ "description": ""
+ },
+ {
+ "name": "Locations",
+ "description": ""
+ },
+ {
+ "name": "HcxEnterpriseSites",
+ "description": ""
+ },
+ {
+ "name": "Authorizations",
+ "description": ""
+ },
+ {
+ "name": "GlobalReachConnections",
+ "description": ""
+ },
+ {
+ "name": "WorkloadNetworks",
+ "description": ""
+ }
+ ],
+ "parameters": {
+ "privateCloudName": {
+ "name": "privateCloudName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of the private cloud",
+ "x-ms-parameter-location": "method"
+ },
+ "clusterName": {
+ "name": "clusterName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of the cluster in the private cloud",
+ "x-ms-parameter-location": "method"
+ },
+ "hcxEnterpriseSiteName": {
+ "name": "hcxEnterpriseSiteName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of the HCX Enterprise Site in the private cloud",
+ "x-ms-parameter-location": "method"
+ },
+ "authorizationName": {
+ "name": "authorizationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of the ExpressRoute Circuit Authorization in the private cloud",
+ "x-ms-parameter-location": "method"
+ },
+ "globalReachConnectionName": {
+ "name": "globalReachConnectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of the global reach connection in the private cloud",
+ "x-ms-parameter-location": "method"
+ },
+ "segmentId": {
+ "name": "segmentId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "NSX Segment identifier. Generally the same as the Segment's display name",
+ "x-ms-parameter-location": "method"
+ },
+ "dhcpId": {
+ "name": "dhcpId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "NSX DHCP identifier. Generally the same as the DHCP display name",
+ "x-ms-parameter-location": "method"
+ },
+ "portMirroringId": {
+ "name": "portMirroringId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "NSX Port Mirroring identifier. Generally the same as the Port Mirroring display name",
+ "x-ms-parameter-location": "method"
+ },
+ "vmGroupId": {
+ "name": "vmGroupId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "NSX VM Group identifier. Generally the same as the VM Group's display name",
+ "x-ms-parameter-location": "method"
+ },
+ "virtualMachineId": {
+ "name": "virtualMachineId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "NSX Virtual Machine identifier.",
+ "x-ms-parameter-location": "method"
+ },
+ "gatewayId": {
+ "name": "gatewayId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "NSX Gateway identifier. Generally the same as the Gateway's display name",
+ "x-ms-parameter-location": "method"
+ }
+ },
+ "paths": {
+ "/providers/Microsoft.AVS/operations": {
+ "get": {
+ "tags": [
+ "Operations"
+ ],
+ "description": "Lists all of the available operations",
+ "operationId": "Operations_List",
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request has succeeded",
+ "schema": {
+ "$ref": "#/definitions/OperationList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Operations_List": {
+ "$ref": "./examples/Operations_List.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.AVS/locations/{location}/checkTrialAvailability": {
+ "post": {
+ "tags": [
+ "Locations"
+ ],
+ "description": "Return trial status for subscription by region",
+ "operationId": "Locations_CheckTrialAvailability",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Azure region"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request has succeeded",
+ "schema": {
+ "$ref": "#/definitions/Trial"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "CheckQuotaAvailability": {
+ "$ref": "./examples/Locations_CheckTrialAvailability.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.AVS/locations/{location}/checkQuotaAvailability": {
+ "post": {
+ "tags": [
+ "Locations"
+ ],
+ "description": "Return quota for subscription by region",
+ "operationId": "Locations_CheckQuotaAvailability",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Azure region"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request has succeeded",
+ "schema": {
+ "$ref": "#/definitions/Quota"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "CheckQuotaAvailability": {
+ "$ref": "./examples/Locations_CheckQuotaAvailability.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds": {
+ "get": {
+ "operationId": "PrivateClouds_List",
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "tags": [
+ "PrivateClouds"
+ ],
+ "summary": "List private clouds in a resource group",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/PrivateCloudList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "PrivateClouds_List": {
+ "$ref": "./examples/PrivateClouds_List.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.AVS/privateClouds": {
+ "get": {
+ "operationId": "PrivateClouds_ListInSubscription",
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "tags": [
+ "PrivateClouds"
+ ],
+ "summary": "List private clouds in a subscription",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/PrivateCloudList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "PrivateClouds_List": {
+ "$ref": "./examples/PrivateClouds_ListInSubscription.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds/{privateCloudName}": {
+ "get": {
+ "operationId": "PrivateClouds_Get",
+ "tags": [
+ "PrivateClouds"
+ ],
+ "summary": "Get a private cloud",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/privateCloudName"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/PrivateCloud"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "PrivateClouds_Get": {
+ "$ref": "./examples/PrivateClouds_Get.json"
+ }
+ }
+ },
+ "put": {
+ "operationId": "PrivateClouds_CreateOrUpdate",
+ "x-ms-long-running-operation": true,
+ "tags": [
+ "PrivateClouds"
+ ],
+ "summary": "Create or update a private cloud",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/privateCloudName"
+ },
+ {
+ "name": "privateCloud",
+ "description": "The private cloud",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/PrivateCloud"
+ }
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/PrivateCloud"
+ }
+ },
+ "201": {
+ "description": "accepted operation",
+ "schema": {
+ "$ref": "#/definitions/PrivateCloud"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "PrivateClouds_CreateOrUpdate": {
+ "$ref": "./examples/PrivateClouds_CreateOrUpdate.json"
+ }
+ }
+ },
+ "patch": {
+ "operationId": "PrivateClouds_Update",
+ "x-ms-long-running-operation": true,
+ "tags": [
+ "PrivateClouds"
+ ],
+ "summary": "Update a private cloud",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/privateCloudName"
+ },
+ {
+ "name": "privateCloudUpdate",
+ "description": "The private cloud properties to be updated",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/PrivateCloudUpdate"
+ }
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/PrivateCloud"
+ }
+ },
+ "201": {
+ "description": "accepted operation",
+ "schema": {
+ "$ref": "#/definitions/PrivateCloud"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "PrivateClouds_Update": {
+ "$ref": "./examples/PrivateClouds_Update.json"
+ }
+ }
+ },
+ "delete": {
+ "operationId": "PrivateClouds_Delete",
+ "x-ms-long-running-operation": true,
+ "tags": [
+ "PrivateClouds"
+ ],
+ "summary": "Delete a private cloud",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/privateCloudName"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The delete has succeeded"
+ },
+ "202": {
+ "description": "Accepted. The delete will complete asynchronously"
+ },
+ "204": {
+ "description": "No Content. No private cloud to delete"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "PrivateClouds_Delete": {
+ "$ref": "./examples/PrivateClouds_Delete.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds/{privateCloudName}/clusters": {
+ "get": {
+ "operationId": "Clusters_List",
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "tags": [
+ "Clusters"
+ ],
+ "summary": "List clusters in a private cloud",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/privateCloudName"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/ClusterList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Clusters_List": {
+ "$ref": "./examples/Clusters_List.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds/{privateCloudName}/clusters/{clusterName}": {
+ "get": {
+ "operationId": "Clusters_Get",
+ "tags": [
+ "Clusters"
+ ],
+ "summary": "Get a cluster by name in a private cloud",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/privateCloudName"
+ },
+ {
+ "$ref": "#/parameters/clusterName"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/Cluster"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Clusters_Get": {
+ "$ref": "./examples/Clusters_Get.json"
+ }
+ }
+ },
+ "put": {
+ "operationId": "Clusters_CreateOrUpdate",
+ "x-ms-long-running-operation": true,
+ "tags": [
+ "Clusters"
+ ],
+ "summary": "Create or update a cluster in a private cloud",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "name": "privateCloudName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the private cloud."
+ },
+ {
+ "$ref": "#/parameters/clusterName"
+ },
+ {
+ "name": "cluster",
+ "description": "A cluster in the private cloud",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/Cluster"
+ }
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/Cluster"
+ }
+ },
+ "201": {
+ "description": "accepted operation",
+ "schema": {
+ "$ref": "#/definitions/Cluster"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Clusters_CreateOrUpdate": {
+ "$ref": "./examples/Clusters_CreateOrUpdate.json"
+ }
+ }
+ },
+ "patch": {
+ "operationId": "Clusters_Update",
+ "x-ms-long-running-operation": true,
+ "tags": [
+ "Clusters"
+ ],
+ "summary": "Update a cluster in a private cloud",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/privateCloudName"
+ },
+ {
+ "$ref": "#/parameters/clusterName"
+ },
+ {
+ "name": "clusterUpdate",
+ "description": "The cluster properties to be updated",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ClusterUpdate"
+ }
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/Cluster"
+ }
+ },
+ "201": {
+ "description": "accepted operation",
+ "schema": {
+ "$ref": "#/definitions/Cluster"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Clusters_Update": {
+ "$ref": "./examples/Clusters_Update.json"
+ }
+ }
+ },
+ "delete": {
+ "operationId": "Clusters_Delete",
+ "x-ms-long-running-operation": true,
+ "tags": [
+ "Clusters"
+ ],
+ "summary": "Delete a cluster in a private cloud",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/privateCloudName"
+ },
+ {
+ "$ref": "#/parameters/clusterName"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The delete has succeeded"
+ },
+ "202": {
+ "description": "Accepted. The delete will complete asynchronously"
+ },
+ "204": {
+ "description": "No Content. No cluster to delete"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Clusters_Delete": {
+ "$ref": "./examples/Clusters_Delete.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds/{privateCloudName}/listAdminCredentials": {
+ "post": {
+ "operationId": "PrivateClouds_ListAdminCredentials",
+ "tags": [
+ "PrivateClouds"
+ ],
+ "summary": "List the admin credentials for the private cloud",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/privateCloudName"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/AdminCredentials"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "PrivateClouds_ListAdminCredentials": {
+ "$ref": "./examples/PrivateClouds_ListAdminCredentials.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds/{privateCloudName}/hcxEnterpriseSites": {
+ "get": {
+ "operationId": "HcxEnterpriseSites_List",
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "tags": [
+ "HcxEnterpriseSites"
+ ],
+ "summary": "List HCX Enterprise Sites in a private cloud",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/privateCloudName"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/HcxEnterpriseSiteList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "HcxEnterpriseSites_List": {
+ "$ref": "./examples/HcxEnterpriseSites_List.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds/{privateCloudName}/hcxEnterpriseSites/{hcxEnterpriseSiteName}": {
+ "get": {
+ "operationId": "HcxEnterpriseSites_Get",
+ "tags": [
+ "HcxEnterpriseSites"
+ ],
+ "summary": "Get an HCX Enterprise Site by name in a private cloud",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/privateCloudName"
+ },
+ {
+ "$ref": "#/parameters/hcxEnterpriseSiteName"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/HcxEnterpriseSite"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "HcxEnterpriseSites_Get": {
+ "$ref": "./examples/HcxEnterpriseSites_Get.json"
+ }
+ }
+ },
+ "put": {
+ "operationId": "HcxEnterpriseSites_CreateOrUpdate",
+ "tags": [
+ "HcxEnterpriseSites"
+ ],
+ "summary": "Create or update an HCX Enterprise Site in a private cloud",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "name": "privateCloudName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the private cloud."
+ },
+ {
+ "$ref": "#/parameters/hcxEnterpriseSiteName"
+ },
+ {
+ "name": "hcxEnterpriseSite",
+ "description": "The HCX Enterprise Site",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/HcxEnterpriseSite"
+ }
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful update",
+ "schema": {
+ "$ref": "#/definitions/HcxEnterpriseSite"
+ }
+ },
+ "201": {
+ "description": "successful create",
+ "schema": {
+ "$ref": "#/definitions/HcxEnterpriseSite"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "HcxEnterpriseSites_CreateOrUpdate": {
+ "$ref": "./examples/HcxEnterpriseSites_CreateOrUpdate.json"
+ }
+ }
+ },
+ "delete": {
+ "operationId": "HcxEnterpriseSites_Delete",
+ "tags": [
+ "HcxEnterpriseSites"
+ ],
+ "summary": "Delete an HCX Enterprise Site in a private cloud",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/privateCloudName"
+ },
+ {
+ "$ref": "#/parameters/hcxEnterpriseSiteName"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The delete has succeeded"
+ },
+ "204": {
+ "description": "No Content. No HCX Enterprise Site to delete"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "HcxEnterpriseSites_Delete": {
+ "$ref": "./examples/HcxEnterpriseSites_Delete.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds/{privateCloudName}/authorizations": {
+ "get": {
+ "operationId": "Authorizations_List",
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "tags": [
+ "Authorizations"
+ ],
+ "summary": "List ExpressRoute Circuit Authorizations in a private cloud",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/privateCloudName"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteAuthorizationList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Authorizations_List": {
+ "$ref": "./examples/Authorizations_List.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds/{privateCloudName}/authorizations/{authorizationName}": {
+ "get": {
+ "operationId": "Authorizations_Get",
+ "tags": [
+ "Authorizations"
+ ],
+ "summary": "Get an ExpressRoute Circuit Authorization by name in a private cloud",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/privateCloudName"
+ },
+ {
+ "$ref": "#/parameters/authorizationName"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteAuthorization"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Authorizations_Get": {
+ "$ref": "./examples/Authorizations_Get.json"
+ }
+ }
+ },
+ "put": {
+ "operationId": "Authorizations_CreateOrUpdate",
+ "x-ms-long-running-operation": true,
+ "tags": [
+ "Authorizations"
+ ],
+ "summary": "Create or update an ExpressRoute Circuit Authorization in a private cloud",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "name": "privateCloudName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the private cloud."
+ },
+ {
+ "$ref": "#/parameters/authorizationName"
+ },
+ {
+ "name": "authorization",
+ "description": "An ExpressRoute Circuit Authorization",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteAuthorization"
+ }
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteAuthorization"
+ }
+ },
+ "201": {
+ "description": "accepted operation",
+ "schema": {
+ "$ref": "#/definitions/ExpressRouteAuthorization"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Authorizations_CreateOrUpdate": {
+ "$ref": "./examples/Authorizations_CreateOrUpdate.json"
+ }
+ }
+ },
+ "delete": {
+ "operationId": "Authorizations_Delete",
+ "x-ms-long-running-operation": true,
+ "tags": [
+ "Authorizations"
+ ],
+ "summary": "Delete an ExpressRoute Circuit Authorization in a private cloud",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/privateCloudName"
+ },
+ {
+ "$ref": "#/parameters/authorizationName"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The delete has succeeded"
+ },
+ "202": {
+ "description": "Accepted. The delete will complete asynchronously"
+ },
+ "204": {
+ "description": "No Content. No ExpressRoute Circuit Authorization to delete"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Authorizations_Delete": {
+ "$ref": "./examples/Authorizations_Delete.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds/{privateCloudName}/globalReachConnections": {
+ "get": {
+ "operationId": "GlobalReachConnections_List",
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "tags": [
+ "GlobalReachConnections"
+ ],
+ "summary": "List global reach connections in a private cloud",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/privateCloudName"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/GlobalReachConnectionList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "GlobalReachConnections_List": {
+ "$ref": "./examples/GlobalReachConnections_List.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds/{privateCloudName}/globalReachConnections/{globalReachConnectionName}": {
+ "get": {
+ "operationId": "GlobalReachConnections_Get",
+ "tags": [
+ "GlobalReachConnections"
+ ],
+ "summary": "Get a global reach connection by name in a private cloud",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/privateCloudName"
+ },
+ {
+ "$ref": "#/parameters/globalReachConnectionName"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/GlobalReachConnection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "GlobalReachConnections_Get": {
+ "$ref": "./examples/GlobalReachConnections_Get.json"
+ }
+ }
+ },
+ "put": {
+ "operationId": "GlobalReachConnections_CreateOrUpdate",
+ "x-ms-long-running-operation": true,
+ "tags": [
+ "GlobalReachConnections"
+ ],
+ "summary": "Create or update a global reach connection in a private cloud",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "name": "privateCloudName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the private cloud."
+ },
+ {
+ "$ref": "#/parameters/globalReachConnectionName"
+ },
+ {
+ "name": "globalReachConnection",
+ "description": "A global reach connection in the private cloud",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/GlobalReachConnection"
+ }
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/GlobalReachConnection"
+ }
+ },
+ "201": {
+ "description": "accepted operation",
+ "schema": {
+ "$ref": "#/definitions/GlobalReachConnection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "GlobalReachConnections_CreateOrUpdate": {
+ "$ref": "./examples/GlobalReachConnections_CreateOrUpdate.json"
+ }
+ }
+ },
+ "delete": {
+ "operationId": "GlobalReachConnections_Delete",
+ "x-ms-long-running-operation": true,
+ "tags": [
+ "GlobalReachConnections"
+ ],
+ "summary": "Delete a global reach connection in a private cloud",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/privateCloudName"
+ },
+ {
+ "$ref": "#/parameters/globalReachConnectionName"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The delete has succeeded"
+ },
+ "202": {
+ "description": "Accepted. The delete will complete asynchronously"
+ },
+ "204": {
+ "description": "No Content. No global reach connection to delete"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "GlobalReachConnections_Delete": {
+ "$ref": "./examples/GlobalReachConnections_Delete.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds/{privateCloudName}/workloadNetworks/default/segments": {
+ "get": {
+ "operationId": "WorkloadNetworks_ListSegments",
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "tags": [
+ "WorkloadNetworks"
+ ],
+ "summary": "List of segments in a private cloud workload network.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/privateCloudName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/WorkloadNetworkSegmentsList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkloadNetworks_ListSegments": {
+ "$ref": "./examples/WorkloadNetworks_ListSegments.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds/{privateCloudName}/workloadNetworks/default/segments/{segmentId}": {
+ "get": {
+ "operationId": "WorkloadNetworks_GetSegment",
+ "tags": [
+ "WorkloadNetworks"
+ ],
+ "summary": "Get a segment by id in a private cloud workload network.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/privateCloudName"
+ },
+ {
+ "$ref": "#/parameters/segmentId"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/WorkloadNetworkSegment"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkloadNetworks_GetSegment": {
+ "$ref": "./examples/WorkloadNetworks_GetSegments.json"
+ }
+ }
+ },
+ "put": {
+ "operationId": "WorkloadNetworks_CreateSegments",
+ "x-ms-long-running-operation": true,
+ "tags": [
+ "WorkloadNetworks"
+ ],
+ "summary": "Create a segment by id in a private cloud workload network.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/privateCloudName"
+ },
+ {
+ "$ref": "#/parameters/segmentId"
+ },
+ {
+ "name": "workloadNetworkSegment",
+ "description": "NSX Segment",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/WorkloadNetworkSegment"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/WorkloadNetworkSegment"
+ }
+ },
+ "201": {
+ "description": "accepted operation",
+ "schema": {
+ "$ref": "#/definitions/WorkloadNetworkSegment"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkloadNetworks_CreateSegments": {
+ "$ref": "./examples/WorkloadNetworks_CreateSegments.json"
+ }
+ }
+ },
+ "patch": {
+ "operationId": "WorkloadNetworks_UpdateSegments",
+ "x-ms-long-running-operation": true,
+ "tags": [
+ "WorkloadNetworks"
+ ],
+ "summary": "Create or update a segment by id in a private cloud workload network.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/privateCloudName"
+ },
+ {
+ "$ref": "#/parameters/segmentId"
+ },
+ {
+ "name": "workloadNetworkSegment",
+ "description": "NSX Segment",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/WorkloadNetworkSegment"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/WorkloadNetworkSegment"
+ }
+ },
+ "202": {
+ "description": "Accepted. The patch will complete asynchronously"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkloadNetworks_UpdateSegments": {
+ "$ref": "./examples/WorkloadNetworks_UpdateSegments.json"
+ }
+ }
+ },
+ "delete": {
+ "operationId": "WorkloadNetworks_DeleteSegment",
+ "x-ms-long-running-operation": true,
+ "tags": [
+ "WorkloadNetworks"
+ ],
+ "summary": "Delete a segment by id in a private cloud workload network.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/privateCloudName"
+ },
+ {
+ "$ref": "#/parameters/segmentId"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The delete has succeeded"
+ },
+ "202": {
+ "description": "Accepted. The delete will complete asynchronously"
+ },
+ "204": {
+ "description": "No Content. No segment to delete"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkloadNetworks_DeleteSegment": {
+ "$ref": "./examples/WorkloadNetworks_DeleteSegments.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds/{privateCloudName}/workloadNetworks/default/dhcpConfigurations": {
+ "get": {
+ "operationId": "WorkloadNetworks_ListDhcp",
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "tags": [
+ "WorkloadNetworks"
+ ],
+ "summary": "List dhcp in a private cloud workload network.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/privateCloudName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/WorkloadNetworkDhcpList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkloadNetworks_ListDhcp": {
+ "$ref": "./examples/WorkloadNetworks_ListDhcpConfigurations.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds/{privateCloudName}/workloadNetworks/default/dhcpConfigurations/{dhcpId}": {
+ "get": {
+ "operationId": "WorkloadNetworks_GetDhcp",
+ "tags": [
+ "WorkloadNetworks"
+ ],
+ "summary": "Get dhcp by id in a private cloud workload network.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/dhcpId"
+ },
+ {
+ "$ref": "#/parameters/privateCloudName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/WorkloadNetworkDhcp"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkloadNetworks_GetDhcp": {
+ "$ref": "./examples/WorkloadNetworks_GetDhcpConfigurations.json"
+ }
+ }
+ },
+ "put": {
+ "operationId": "WorkloadNetworks_CreateDhcp",
+ "x-ms-long-running-operation": true,
+ "tags": [
+ "WorkloadNetworks"
+ ],
+ "summary": "Create dhcp by id in a private cloud workload network.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/privateCloudName"
+ },
+ {
+ "$ref": "#/parameters/dhcpId"
+ },
+ {
+ "name": "workloadNetworkDhcp",
+ "description": "NSX DHCP",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/WorkloadNetworkDhcp"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/WorkloadNetworkDhcp"
+ }
+ },
+ "201": {
+ "description": "accepted operation",
+ "schema": {
+ "$ref": "#/definitions/WorkloadNetworkDhcp"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkloadNetworks_CreateDhcp": {
+ "$ref": "./examples/WorkloadNetworks_CreateDhcpConfigurations.json"
+ }
+ }
+ },
+ "patch": {
+ "operationId": "WorkloadNetworks_UpdateDhcp",
+ "x-ms-long-running-operation": true,
+ "tags": [
+ "WorkloadNetworks"
+ ],
+ "summary": "Create or update dhcp by id in a private cloud workload network.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/privateCloudName"
+ },
+ {
+ "$ref": "#/parameters/dhcpId"
+ },
+ {
+ "name": "workloadNetworkDhcp",
+ "description": "NSX DHCP",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/WorkloadNetworkDhcp"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/WorkloadNetworkDhcp"
+ }
+ },
+ "202": {
+ "description": "Accepted. The patch will complete asynchronously"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkloadNetworks_UpdateDhcp": {
+ "$ref": "./examples/WorkloadNetworks_UpdateDhcpConfigurations.json"
+ }
+ }
+ },
+ "delete": {
+ "operationId": "WorkloadNetworks_DeleteDhcp",
+ "x-ms-long-running-operation": true,
+ "tags": [
+ "WorkloadNetworks"
+ ],
+ "summary": "Delete dhcp by id in a private cloud workload network.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/privateCloudName"
+ },
+ {
+ "$ref": "#/parameters/dhcpId"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The delete has succeeded"
+ },
+ "202": {
+ "description": "Accepted. The delete will complete asynchronously"
+ },
+ "204": {
+ "description": "No Content. No DHCP configuration to delete"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkloadNetworks_DeleteDhcp": {
+ "$ref": "./examples/WorkloadNetworks_DeleteDhcpConfigurations.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds/{privateCloudName}/workloadNetworks/default/gateways": {
+ "get": {
+ "operationId": "WorkloadNetworks_ListGateways",
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "tags": [
+ "WorkloadNetworks"
+ ],
+ "summary": "List of gateways in a private cloud workload network.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/privateCloudName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/WorkloadNetworkGatewayList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkloadNetworks_ListGateways": {
+ "$ref": "./examples/WorkloadNetworks_ListGateways.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds/{privateCloudName}/workloadNetworks/default/gateways/{gatewayId}": {
+ "get": {
+ "operationId": "WorkloadNetworks_GetGateway",
+ "tags": [
+ "WorkloadNetworks"
+ ],
+ "summary": "Get a gateway by id in a private cloud workload network.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/privateCloudName"
+ },
+ {
+ "$ref": "#/parameters/gatewayId"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/WorkloadNetworkGateway"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkloadNetworks_GetGateway": {
+ "$ref": "./examples/WorkloadNetworks_GetGateway.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds/{privateCloudName}/workloadNetworks/default/portMirroringProfiles": {
+ "get": {
+ "operationId": "WorkloadNetworks_ListPortMirroring",
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "tags": [
+ "WorkloadNetworks"
+ ],
+ "summary": "List of port mirroring profiles in a private cloud workload network.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/privateCloudName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/WorkloadNetworkPortMirroringList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkloadNetworks_ListPortMirroring": {
+ "$ref": "./examples/WorkloadNetworks_ListPortMirroringProfiles.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds/{privateCloudName}/workloadNetworks/default/portMirroringProfiles/{portMirroringId}": {
+ "get": {
+ "operationId": "WorkloadNetworks_GetPortMirroring",
+ "tags": [
+ "WorkloadNetworks"
+ ],
+ "summary": "Get a port mirroring profile by id in a private cloud workload network.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/privateCloudName"
+ },
+ {
+ "$ref": "#/parameters/portMirroringId"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/WorkloadNetworkPortMirroring"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkloadNetworks_GetPortMirroring": {
+ "$ref": "./examples/WorkloadNetworks_GetPortMirroringProfiles.json"
+ }
+ }
+ },
+ "put": {
+ "operationId": "WorkloadNetworks_CreatePortMirroring",
+ "x-ms-long-running-operation": true,
+ "tags": [
+ "WorkloadNetworks"
+ ],
+ "summary": "Create a port mirroring profile by id in a private cloud workload network.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/privateCloudName"
+ },
+ {
+ "$ref": "#/parameters/portMirroringId"
+ },
+ {
+ "name": "workloadNetworkPortMirroring",
+ "description": "NSX port mirroring",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/WorkloadNetworkPortMirroring"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/WorkloadNetworkPortMirroring"
+ }
+ },
+ "201": {
+ "description": "accepted operation",
+ "schema": {
+ "$ref": "#/definitions/WorkloadNetworkPortMirroring"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkloadNetworks_CreatePortMirroring": {
+ "$ref": "./examples/WorkloadNetworks_CreatePortMirroringProfiles.json"
+ }
+ }
+ },
+ "patch": {
+ "operationId": "WorkloadNetworks_UpdatePortMirroring",
+ "x-ms-long-running-operation": true,
+ "tags": [
+ "WorkloadNetworks"
+ ],
+ "summary": "Create or update a port mirroring profile by id in a private cloud workload network.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/privateCloudName"
+ },
+ {
+ "$ref": "#/parameters/portMirroringId"
+ },
+ {
+ "name": "workloadNetworkPortMirroring",
+ "description": "NSX port mirroring",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/WorkloadNetworkPortMirroring"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/WorkloadNetworkPortMirroring"
+ }
+ },
+ "202": {
+ "description": "Accepted. The patch will complete asynchronously"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkloadNetworks_UpdatePortMirroring": {
+ "$ref": "./examples/WorkloadNetworks_UpdatePortMirroringProfiles.json"
+ }
+ }
+ },
+ "delete": {
+ "operationId": "WorkloadNetworks_DeletePortMirroring",
+ "x-ms-long-running-operation": true,
+ "tags": [
+ "WorkloadNetworks"
+ ],
+ "summary": "Delete a port mirroring profile by id in a private cloud workload network.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/portMirroringId"
+ },
+ {
+ "$ref": "#/parameters/privateCloudName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The delete has succeeded"
+ },
+ "202": {
+ "description": "Accepted. The delete will complete asynchronously"
+ },
+ "204": {
+ "description": "No Content. No port mirroring profile to delete"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkloadNetworks_DeletePortMirroring": {
+ "$ref": "./examples/WorkloadNetworks_DeletePortMirroringProfiles.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds/{privateCloudName}/workloadNetworks/default/vmGroups": {
+ "get": {
+ "operationId": "WorkloadNetworks_ListVMGroups",
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "tags": [
+ "WorkloadNetworks"
+ ],
+ "summary": "List of vm groups in a private cloud workload network.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/privateCloudName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/WorkloadNetworkVMGroupsList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkloadNetworks_ListVMGroups": {
+ "$ref": "./examples/WorkloadNetworks_ListVMGroups.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds/{privateCloudName}/workloadNetworks/default/vmGroups/{vmGroupId}": {
+ "get": {
+ "operationId": "WorkloadNetworks_GetVMGroup",
+ "tags": [
+ "WorkloadNetworks"
+ ],
+ "summary": "Get a vm group by id in a private cloud workload network.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/privateCloudName"
+ },
+ {
+ "$ref": "#/parameters/vmGroupId"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/WorkloadNetworkVMGroup"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkloadNetworks_GetVMGroup": {
+ "$ref": "./examples/WorkloadNetworks_GetVMGroups.json"
+ }
+ }
+ },
+ "put": {
+ "operationId": "WorkloadNetworks_CreateVMGroup",
+ "x-ms-long-running-operation": true,
+ "tags": [
+ "WorkloadNetworks"
+ ],
+ "summary": "Create a vm group by id in a private cloud workload network.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/privateCloudName"
+ },
+ {
+ "$ref": "#/parameters/vmGroupId"
+ },
+ {
+ "name": "workloadNetworkVMGroup",
+ "description": "NSX VM Group",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/WorkloadNetworkVMGroup"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/WorkloadNetworkVMGroup"
+ }
+ },
+ "201": {
+ "description": "accepted operation",
+ "schema": {
+ "$ref": "#/definitions/WorkloadNetworkVMGroup"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkloadNetworks_CreateVMGroup": {
+ "$ref": "./examples/WorkloadNetworks_CreateVMGroups.json"
+ }
+ }
+ },
+ "patch": {
+ "operationId": "WorkloadNetworks_UpdateVMGroup",
+ "x-ms-long-running-operation": true,
+ "tags": [
+ "WorkloadNetworks"
+ ],
+ "summary": "Create or update a vm group by id in a private cloud workload network.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/privateCloudName"
+ },
+ {
+ "$ref": "#/parameters/vmGroupId"
+ },
+ {
+ "name": "workloadNetworkVMGroup",
+ "description": "NSX VM Group",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/WorkloadNetworkVMGroup"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/WorkloadNetworkVMGroup"
+ }
+ },
+ "202": {
+ "description": "Accepted. The patch will complete asynchronously"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkloadNetworks_UpdateVMGroup": {
+ "$ref": "./examples/WorkloadNetworks_UpdateVMGroups.json"
+ }
+ }
+ },
+ "delete": {
+ "operationId": "WorkloadNetworks_DeleteVMGroup",
+ "x-ms-long-running-operation": true,
+ "tags": [
+ "WorkloadNetworks"
+ ],
+ "summary": "Delete a vm group by id in a private cloud workload network.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/vmGroupId"
+ },
+ {
+ "$ref": "#/parameters/privateCloudName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The delete has succeeded"
+ },
+ "202": {
+ "description": "Accepted. The delete will complete asynchronously"
+ },
+ "204": {
+ "description": "No Content. No VM group to delete"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkloadNetworks_DeleteVMGroup": {
+ "$ref": "./examples/WorkloadNetworks_DeleteVMGroups.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds/{privateCloudName}/workloadNetworks/default/virtualMachines": {
+ "get": {
+ "operationId": "WorkloadNetworks_ListVirtualMachines",
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "tags": [
+ "WorkloadNetworks"
+ ],
+ "summary": "List of virtual machines in a private cloud workload network.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/privateCloudName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/WorkloadNetworkVirtualMachinesList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkloadNetworks_ListVirtualMachines": {
+ "$ref": "./examples/WorkloadNetworks_ListVirtualMachines.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds/{privateCloudName}/workloadNetworks/default/virtualMachines/{virtualMachineId}": {
+ "get": {
+ "operationId": "WorkloadNetworks_GetVirtualMachine",
+ "tags": [
+ "WorkloadNetworks"
+ ],
+ "summary": "Get a virtual machine by id in a private cloud workload network.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/privateCloudName"
+ },
+ {
+ "$ref": "#/parameters/virtualMachineId"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/WorkloadNetworkVirtualMachine"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkloadNetworks_GetVirtualMachine": {
+ "$ref": "./examples/WorkloadNetworks_GetVirtualMachine.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "Trial": {
+ "description": "Subscription trial availability",
+ "properties": {
+ "status": {
+ "description": "Trial status",
+ "type": "string",
+ "enum": [
+ "TrialAvailable",
+ "TrialUsed",
+ "TrialDisabled"
+ ],
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "TrialStatus",
+ "modelAsString": true
+ }
+ },
+ "availableHosts": {
+ "description": "Number of trial hosts available",
+ "type": "integer",
+ "format": "int32",
+ "readOnly": true
+ }
+ }
+ },
+ "Quota": {
+ "description": "Subscription quotas",
+ "properties": {
+ "hostsRemaining": {
+ "description": "Remaining hosts quota by sku type",
+ "type": "object",
+ "readOnly": true,
+ "additionalProperties": {
+ "type": "integer",
+ "format": "int32",
+ "readOnly": true
+ }
+ },
+ "quotaEnabled": {
+ "description": "Host quota is active for current subscription",
+ "type": "string",
+ "enum": [
+ "Enabled",
+ "Disabled"
+ ],
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "QuotaEnabled",
+ "modelAsString": true
+ }
+ }
+ }
+ },
+ "Resource": {
+ "description": "The core properties of ARM resources",
+ "properties": {
+ "id": {
+ "description": "Resource ID.",
+ "readOnly": true,
+ "type": "string"
+ },
+ "name": {
+ "description": "Resource name.",
+ "readOnly": true,
+ "type": "string"
+ },
+ "type": {
+ "description": "Resource type.",
+ "readOnly": true,
+ "type": "string"
+ }
+ },
+ "x-ms-azure-resource": true
+ },
+ "TrackedResource": {
+ "description": "The resource model definition for a ARM tracked top level resource",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "Resource location"
+ },
+ "tags": {
+ "description": "Resource tags",
+ "$ref": "#/definitions/ResourceTags"
+ }
+ }
+ },
+ "ResourceTags": {
+ "description": "Resource tags",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "x-ms-mutability": [
+ "read",
+ "create",
+ "update"
+ ]
+ },
+ "ProxyResource": {
+ "description": "The resource model definition for a ARM proxy resource",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "properties": {}
+ },
+ "CloudError": {
+ "x-ms-external": true,
+ "properties": {
+ "error": {
+ "description": "An error returned by the API",
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ErrorResponse"
+ }
+ },
+ "description": "API error response"
+ },
+ "OperationList": {
+ "description": "Pageable list of operations",
+ "properties": {
+ "value": {
+ "description": "List of operations",
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/Operation"
+ }
+ },
+ "nextLink": {
+ "description": "URL to get the next page if any",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "Operation": {
+ "description": "A REST API operation",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Name of the operation being performed on this object",
+ "type": "string",
+ "readOnly": true
+ },
+ "display": {
+ "description": "Contains the localized display information for this operation",
+ "readOnly": true,
+ "properties": {
+ "provider": {
+ "description": "Localized friendly form of the resource provider name",
+ "type": "string",
+ "readOnly": true
+ },
+ "resource": {
+ "description": "Localized friendly form of the resource type related to this operation",
+ "type": "string",
+ "readOnly": true
+ },
+ "operation": {
+ "description": "Localized friendly name for the operation",
+ "type": "string",
+ "readOnly": true
+ },
+ "description": {
+ "description": "Localized friendly description for the operation",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "isDataAction": {
+ "description": "Gets or sets a value indicating whether the operation is a data action or not",
+ "type": "boolean"
+ },
+ "origin": {
+ "description": "Origin of the operation",
+ "type": "string"
+ },
+ "properties": {
+ "$ref": "#/definitions/OperationProperties",
+ "description": "Properties of the operation"
+ }
+ }
+ },
+ "OperationProperties": {
+ "description": "Extra Operation properties",
+ "type": "object",
+ "properties": {
+ "serviceSpecification": {
+ "$ref": "#/definitions/ServiceSpecification",
+ "description": "Service specifications of the operation"
+ }
+ }
+ },
+ "ServiceSpecification": {
+ "description": "Service specification payload",
+ "type": "object",
+ "properties": {
+ "logSpecifications": {
+ "description": "Specifications of the Log for Azure Monitoring",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/LogSpecification"
+ }
+ },
+ "metricSpecifications": {
+ "description": "Specifications of the Metrics for Azure Monitoring",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MetricSpecification"
+ }
+ }
+ }
+ },
+ "LogSpecification": {
+ "description": "Specifications of the Log for Azure Monitoring",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Name of the log",
+ "type": "string"
+ },
+ "displayName": {
+ "description": "Localized friendly display name of the log",
+ "type": "string"
+ },
+ "blobDuration": {
+ "description": "Blob duration of the log",
+ "type": "string"
+ }
+ }
+ },
+ "MetricSpecification": {
+ "description": "Specifications of the Metrics for Azure Monitoring",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Name of the metric",
+ "type": "string"
+ },
+ "displayName": {
+ "description": "Localized friendly display name of the metric",
+ "type": "string"
+ },
+ "displayDescription": {
+ "description": "Localized friendly description of the metric",
+ "type": "string"
+ },
+ "unit": {
+ "description": "Unit that makes sense for the metric",
+ "type": "string"
+ },
+ "category": {
+ "description": "Name of the metric category that the metric belongs to. A metric can only belong to a single category.",
+ "type": "string"
+ },
+ "aggregationType": {
+ "description": "Only provide one value for this field. Valid values: Average, Minimum, Maximum, Total, Count.",
+ "type": "string"
+ },
+ "supportedAggregationTypes": {
+ "description": "Supported aggregation types",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "supportedTimeGrainTypes": {
+ "description": "Supported time grain types",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "fillGapWithZero": {
+ "description": "Optional. If set to true, then zero will be returned for time duration where no metric is emitted/published.",
+ "type": "boolean"
+ },
+ "dimensions": {
+ "description": "Dimensions of the metric",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MetricDimension"
+ }
+ },
+ "enableRegionalMdmAccount": {
+ "description": "Whether or not the service is using regional MDM accounts.",
+ "type": "string"
+ },
+ "sourceMdmAccount": {
+ "description": "The name of the MDM account.",
+ "type": "string"
+ },
+ "sourceMdmNamespace": {
+ "description": "The name of the MDM namespace.",
+ "type": "string"
+ }
+ }
+ },
+ "MetricDimension": {
+ "description": "Specifications of the Dimension of metrics",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Name of the dimension",
+ "type": "string"
+ },
+ "displayName": {
+ "description": "Localized friendly display name of the dimension",
+ "type": "string"
+ }
+ }
+ },
+ "ExpressRouteAuthorization": {
+ "description": "ExpressRoute Circuit Authorization",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "description": "The properties of an ExpressRoute Circuit Authorization resource",
+ "$ref": "#/definitions/ExpressRouteAuthorizationProperties",
+ "x-ms-client-flatten": true,
+ "readOnly": true
+ }
+ }
+ },
+ "ExpressRouteAuthorizationProperties": {
+ "description": "The properties of an ExpressRoute Circuit Authorization resource",
+ "properties": {
+ "provisioningState": {
+ "description": "The state of the ExpressRoute Circuit Authorization provisioning",
+ "type": "string",
+ "readOnly": true,
+ "enum": [
+ "Succeeded",
+ "Failed",
+ "Updating"
+ ],
+ "x-ms-enum": {
+ "name": "ExpressRouteAuthorizationProvisioningState",
+ "modelAsString": true
+ }
+ },
+ "expressRouteAuthorizationId": {
+ "description": "The ID of the ExpressRoute Circuit Authorization",
+ "type": "string",
+ "readOnly": true
+ },
+ "expressRouteAuthorizationKey": {
+ "description": "The key of the ExpressRoute Circuit Authorization",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "ExpressRouteAuthorizationList": {
+ "description": "A paged list of ExpressRoute Circuit Authorizations",
+ "properties": {
+ "value": {
+ "description": "The items on a page",
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/ExpressRouteAuthorization"
+ }
+ },
+ "nextLink": {
+ "description": "URL to get the next page if any",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "Circuit": {
+ "description": "An ExpressRoute Circuit",
+ "properties": {
+ "primarySubnet": {
+ "type": "string",
+ "readOnly": true,
+ "description": "CIDR of primary subnet"
+ },
+ "secondarySubnet": {
+ "type": "string",
+ "readOnly": true,
+ "description": "CIDR of secondary subnet"
+ },
+ "expressRouteID": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Identifier of the ExpressRoute Circuit (Microsoft Colo only)"
+ },
+ "expressRoutePrivatePeeringID": {
+ "type": "string",
+ "readOnly": true,
+ "description": "ExpressRoute Circuit private peering identifier"
+ }
+ }
+ },
+ "Endpoints": {
+ "description": "Endpoint addresses",
+ "properties": {
+ "nsxtManager": {
+ "description": "Endpoint for the NSX-T Data Center manager",
+ "type": "string",
+ "readOnly": true
+ },
+ "vcsa": {
+ "description": "Endpoint for Virtual Center Server Appliance",
+ "type": "string",
+ "readOnly": true
+ },
+ "hcxCloudManager": {
+ "description": "Endpoint for the HCX Cloud Manager",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "IdentitySource": {
+ "description": "vCenter Single Sign On Identity Source",
+ "properties": {
+ "name": {
+ "description": "The name of the identity source",
+ "type": "string"
+ },
+ "alias": {
+ "description": "The domain's NetBIOS name",
+ "type": "string"
+ },
+ "domain": {
+ "description": "The domain's dns name",
+ "type": "string"
+ },
+ "baseUserDN": {
+ "description": "The base distinguished name for users",
+ "type": "string"
+ },
+ "baseGroupDN": {
+ "description": "The base distinguished name for groups",
+ "type": "string"
+ },
+ "primaryServer": {
+ "description": "Primary server URL",
+ "type": "string"
+ },
+ "secondaryServer": {
+ "description": "Secondary server URL",
+ "type": "string"
+ },
+ "ssl": {
+ "description": "Protect LDAP communication using SSL certificate (LDAPS)",
+ "type": "string",
+ "enum": [
+ "Enabled",
+ "Disabled"
+ ],
+ "x-ms-enum": {
+ "name": "SslEnum",
+ "modelAsString": true
+ }
+ },
+ "username": {
+ "description": "The ID of an Active Directory user with a minimum of read-only access to Base DN for users and group",
+ "type": "string"
+ },
+ "password": {
+ "description": "The password of the Active Directory user with a minimum of read-only access to Base DN for users and groups.",
+ "type": "string",
+ "x-ms-secret": true
+ }
+ }
+ },
+ "PrivateCloud": {
+ "description": "A private cloud resource",
+ "required": [
+ "location",
+ "sku"
+ ],
+ "allOf": [
+ {
+ "$ref": "#/definitions/TrackedResource"
+ }
+ ],
+ "properties": {
+ "sku": {
+ "description": "The private cloud SKU",
+ "$ref": "#/definitions/Sku"
+ },
+ "properties": {
+ "description": "The properties of a private cloud resource",
+ "$ref": "#/definitions/PrivateCloudProperties",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "PrivateCloudUpdate": {
+ "description": "An update to a private cloud resource",
+ "properties": {
+ "tags": {
+ "description": "Resource tags",
+ "$ref": "#/definitions/ResourceTags"
+ },
+ "properties": {
+ "description": "The updatable properties of a private cloud resource",
+ "$ref": "#/definitions/PrivateCloudUpdateProperties",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "PrivateCloudUpdateProperties": {
+ "description": "The properties of a private cloud resource that may be updated",
+ "properties": {
+ "managementCluster": {
+ "description": "The default cluster used for management",
+ "$ref": "#/definitions/ManagementCluster"
+ },
+ "internet": {
+ "description": "Connectivity to internet is enabled or disabled",
+ "type": "string",
+ "enum": [
+ "Enabled",
+ "Disabled"
+ ],
+ "default": "Disabled",
+ "x-ms-enum": {
+ "name": "InternetEnum",
+ "modelAsString": true
+ }
+ },
+ "identitySources": {
+ "description": "vCenter Single Sign On Identity Sources",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/IdentitySource"
+ }
+ },
+ "vcenterPassword": {
+ "description": "Indicate to rotate the vCenter admin password for the private cloud",
+ "type": "string",
+ "enum": [
+ "OnetimeRotate"
+ ],
+ "x-ms-enum": {
+ "name": "VcsaAdminRotateEnum",
+ "modelAsString": true
+ }
+ },
+ "nsxtPassword": {
+ "description": "Indicate to rotate the NSX-T Manager password for the private cloud",
+ "type": "string",
+ "enum": [
+ "OnetimeRotate"
+ ],
+ "x-ms-enum": {
+ "name": "NsxtAdminRotateEnum",
+ "modelAsString": true
+ }
+ }
+ }
+ },
+ "PrivateCloudProperties": {
+ "description": "The properties of a private cloud resource",
+ "required": [
+ "managementCluster",
+ "networkBlock"
+ ],
+ "allOf": [
+ {
+ "$ref": "#/definitions/PrivateCloudUpdateProperties"
+ }
+ ],
+ "properties": {
+ "provisioningState": {
+ "description": "The provisioning state",
+ "type": "string",
+ "readOnly": true,
+ "enum": [
+ "Succeeded",
+ "Failed",
+ "Cancelled",
+ "Pending",
+ "Building",
+ "Deleting",
+ "Updating"
+ ],
+ "x-ms-enum": {
+ "name": "PrivateCloudProvisioningState",
+ "modelAsString": true
+ }
+ },
+ "circuit": {
+ "description": "An ExpressRoute Circuit",
+ "$ref": "#/definitions/Circuit"
+ },
+ "endpoints": {
+ "description": "The endpoints",
+ "readOnly": true,
+ "$ref": "#/definitions/Endpoints"
+ },
+ "networkBlock": {
+ "description": "The block of addresses should be unique across VNet in your subscription as well as on-premise. Make sure the CIDR format is conformed to (A.B.C.D/X) where A,B,C,D are between 0 and 255, and X is between 0 and 22",
+ "type": "string"
+ },
+ "managementNetwork": {
+ "description": "Network used to access vCenter Server and NSX-T Manager",
+ "type": "string",
+ "readOnly": true
+ },
+ "provisioningNetwork": {
+ "description": "Used for virtual machine cold migration, cloning, and snapshot migration",
+ "type": "string",
+ "readOnly": true
+ },
+ "vmotionNetwork": {
+ "description": "Used for live migration of virtual machines",
+ "type": "string",
+ "readOnly": true
+ },
+ "vcenterPassword": {
+ "description": "Optionally, set the vCenter admin password when the private cloud is created",
+ "type": "string",
+ "x-ms-secret": true
+ },
+ "nsxtPassword": {
+ "description": "Optionally, set the NSX-T Manager password when the private cloud is created",
+ "type": "string",
+ "x-ms-secret": true
+ },
+ "vcenterCertificateThumbprint": {
+ "description": "Thumbprint of the vCenter Server SSL certificate",
+ "type": "string",
+ "readOnly": true
+ },
+ "nsxtCertificateThumbprint": {
+ "description": "Thumbprint of the NSX-T Manager SSL certificate",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "Cluster": {
+ "description": "A cluster resource",
+ "required": [
+ "sku"
+ ],
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "sku": {
+ "description": "The cluster SKU",
+ "$ref": "#/definitions/Sku"
+ },
+ "properties": {
+ "description": "The properties of a cluster resource",
+ "$ref": "#/definitions/ClusterProperties",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "ClusterUpdate": {
+ "description": "An update of a cluster resource",
+ "properties": {
+ "properties": {
+ "description": "The properties of a cluster resource that may be updated",
+ "$ref": "#/definitions/ClusterUpdateProperties",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "ClusterUpdateProperties": {
+ "description": "The properties of a cluster that may be updated",
+ "properties": {
+ "clusterSize": {
+ "description": "The cluster size",
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ },
+ "CommonClusterProperties": {
+ "description": "The common properties of a cluster",
+ "properties": {
+ "provisioningState": {
+ "description": "The state of the cluster provisioning",
+ "type": "string",
+ "readOnly": true,
+ "enum": [
+ "Succeeded",
+ "Failed",
+ "Cancelled",
+ "Deleting",
+ "Updating"
+ ],
+ "x-ms-enum": {
+ "name": "ClusterProvisioningState",
+ "modelAsString": true
+ }
+ },
+ "clusterSize": {
+ "description": "The cluster size",
+ "type": "integer",
+ "format": "int32"
+ },
+ "clusterId": {
+ "description": "The identity",
+ "type": "integer",
+ "format": "int32",
+ "readOnly": true
+ },
+ "hosts": {
+ "description": "The hosts",
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "ManagementCluster": {
+ "description": "The properties of a management cluster",
+ "required": [
+ "clusterSize"
+ ],
+ "allOf": [
+ {
+ "$ref": "#/definitions/CommonClusterProperties"
+ }
+ ]
+ },
+ "ClusterProperties": {
+ "description": "The properties of a cluster",
+ "allOf": [
+ {
+ "$ref": "#/definitions/CommonClusterProperties"
+ }
+ ],
+ "properties": {}
+ },
+ "PrivateCloudList": {
+ "description": "A paged list of private clouds",
+ "properties": {
+ "value": {
+ "description": "The items on the page",
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/PrivateCloud"
+ }
+ },
+ "nextLink": {
+ "description": "URL to get the next page if any",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "ClusterList": {
+ "description": "A paged list of clusters",
+ "properties": {
+ "value": {
+ "description": "The items on a page",
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/Cluster"
+ }
+ },
+ "nextLink": {
+ "description": "URL to get the next page if any",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "AdminCredentials": {
+ "description": "Administrative credentials for accessing vCenter and NSX-T",
+ "properties": {
+ "nsxtUsername": {
+ "description": "NSX-T Manager username",
+ "type": "string",
+ "readOnly": true
+ },
+ "nsxtPassword": {
+ "description": "NSX-T Manager password",
+ "type": "string",
+ "readOnly": true,
+ "x-ms-secret": true
+ },
+ "vcenterUsername": {
+ "description": "vCenter admin username",
+ "type": "string",
+ "readOnly": true
+ },
+ "vcenterPassword": {
+ "description": "vCenter admin password",
+ "type": "string",
+ "readOnly": true,
+ "x-ms-secret": true
+ }
+ }
+ },
+ "Sku": {
+ "description": "The resource model definition representing SKU",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the SKU."
+ }
+ },
+ "required": [
+ "name"
+ ]
+ },
+ "HcxEnterpriseSiteList": {
+ "description": "A paged list of HCX Enterprise Sites",
+ "properties": {
+ "value": {
+ "description": "The items on a page",
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/HcxEnterpriseSite"
+ }
+ },
+ "nextLink": {
+ "description": "URL to get the next page if any",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "HcxEnterpriseSite": {
+ "description": "An HCX Enterprise Site resource",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "description": "The properties of an HCX Enterprise Site resource",
+ "$ref": "#/definitions/HcxEnterpriseSiteProperties",
+ "x-ms-client-flatten": true,
+ "readOnly": true
+ }
+ }
+ },
+ "HcxEnterpriseSiteProperties": {
+ "description": "The properties of an HCX Enterprise Site",
+ "properties": {
+ "activationKey": {
+ "description": "The activation key",
+ "type": "string",
+ "readOnly": true
+ },
+ "status": {
+ "description": "The status of the HCX Enterprise Site",
+ "type": "string",
+ "readOnly": true,
+ "enum": [
+ "Available",
+ "Consumed",
+ "Deactivated",
+ "Deleted"
+ ],
+ "x-ms-enum": {
+ "name": "HcxEnterpriseSiteStatus",
+ "modelAsString": true
+ }
+ }
+ }
+ },
+ "GlobalReachConnectionList": {
+ "description": "A paged list of global reach connections",
+ "properties": {
+ "value": {
+ "description": "The items on a page",
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/GlobalReachConnection"
+ }
+ },
+ "nextLink": {
+ "description": "URL to get the next page if any",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "GlobalReachConnection": {
+ "description": "A global reach connection resource",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "description": "The properties of a global reach connection resource",
+ "$ref": "#/definitions/GlobalReachConnectionProperties",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "GlobalReachConnectionProperties": {
+ "description": "The properties of a global reach connection",
+ "properties": {
+ "provisioningState": {
+ "description": "The state of the ExpressRoute Circuit Authorization provisioning",
+ "type": "string",
+ "readOnly": true,
+ "enum": [
+ "Succeeded",
+ "Failed",
+ "Updating"
+ ],
+ "x-ms-enum": {
+ "name": "GlobalReachConnectionProvisioningState",
+ "modelAsString": true
+ }
+ },
+ "addressPrefix": {
+ "description": "The network used for global reach carved out from the original network block provided for the private cloud",
+ "type": "string",
+ "readOnly": true
+ },
+ "authorizationKey": {
+ "description": "Authorization key from the peer express route used for the global reach connection",
+ "type": "string"
+ },
+ "circuitConnectionStatus": {
+ "description": "The connection status of the global reach connection",
+ "type": "string",
+ "readOnly": true,
+ "enum": [
+ "Connected",
+ "Connecting",
+ "Disconnected"
+ ],
+ "x-ms-enum": {
+ "name": "GlobalReachConnectionStatus",
+ "modelAsString": true
+ }
+ },
+ "peerExpressRouteCircuit": {
+ "type": "string",
+ "description": "Identifier of the ExpressRoute Circuit to peer with in the global reach connection"
+ }
+ }
+ },
+ "WorkloadNetworkSegmentSubnet": {
+ "description": "Subnet configuration for segment",
+ "properties": {
+ "dhcpRanges": {
+ "description": "DHCP Range assigned for subnet.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "gatewayAddress": {
+ "description": "Gateway address.",
+ "type": "string"
+ }
+ }
+ },
+ "WorkloadNetworkSegmentPortVif": {
+ "description": "Ports and any VIF attached to segment.",
+ "properties": {
+ "portName": {
+ "description": "Name of port or VIF attached to segment.",
+ "type": "string"
+ }
+ }
+ },
+ "WorkloadNetworkSegmentProperties": {
+ "description": "NSX Segment Properties",
+ "properties": {
+ "displayName": {
+ "description": "Display name of the segment.",
+ "type": "string"
+ },
+ "connectedGateway": {
+ "description": "Gateway which to connect segment to.",
+ "type": "string"
+ },
+ "subnet": {
+ "description": "Subnet which to connect segment to.",
+ "$ref": "#/definitions/WorkloadNetworkSegmentSubnet"
+ },
+ "portVif": {
+ "description": "Port Vif which segment is associated with.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/WorkloadNetworkSegmentPortVif"
+ },
+ "readOnly": true
+ },
+ "status": {
+ "description": "Segment status.",
+ "type": "string",
+ "enum": [
+ "SUCCESS, FAILURE"
+ ],
+ "x-ms-enum": {
+ "name": "SegmentStatusEnum",
+ "modelAsString": true
+ },
+ "readOnly": true
+ },
+ "provisioningState": {
+ "description": "The provisioning state",
+ "type": "string",
+ "readOnly": true,
+ "enum": [
+ "Succeeded",
+ "Failed",
+ "Building",
+ "Deleting",
+ "Updating"
+ ],
+ "x-ms-enum": {
+ "name": "WorkloadNetworkSegmentProvisioningState",
+ "modelAsString": true
+ }
+ },
+ "revision": {
+ "description": "NSX revision number.",
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ },
+ "WorkloadNetworkSegment": {
+ "description": "NSX Segment",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ProxyResource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "description": "The properties of a Workload Segment proxy resource.",
+ "$ref": "#/definitions/WorkloadNetworkSegmentProperties",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "WorkloadNetworkSegmentsList": {
+ "description": "A list of NSX Segments",
+ "properties": {
+ "value": {
+ "description": "The items on the page",
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/WorkloadNetworkSegment"
+ }
+ },
+ "nextLink": {
+ "description": "URL to get the next page if any",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "WorkloadNetworkDhcpEntity": {
+ "description": "Base class for WorkloadNetworkDhcpServer and WorkloadNetworkDhcpRelay to inherit from",
+ "discriminator": "dhcpType",
+ "properties": {
+ "dhcpType": {
+ "description": "Type of DHCP: SERVER or RELAY.",
+ "type": "string",
+ "enum": [
+ "SERVER, RELAY"
+ ],
+ "x-ms-enum": {
+ "name": "DhcpTypeEnum",
+ "modelAsString": true
+ }
+ },
+ "displayName": {
+ "description": "Display name of the DHCP entity.",
+ "type": "string"
+ },
+ "segments": {
+ "description": "NSX Segments consuming DHCP.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "readOnly": true
+ },
+ "provisioningState": {
+ "description": "The provisioning state",
+ "type": "string",
+ "readOnly": true,
+ "enum": [
+ "Succeeded",
+ "Failed",
+ "Building",
+ "Deleting",
+ "Updating"
+ ],
+ "x-ms-enum": {
+ "name": "WorkloadNetworkDhcpProvisioningState",
+ "modelAsString": true
+ }
+ },
+ "revision": {
+ "description": "NSX revision number.",
+ "type": "integer",
+ "format": "int64"
+ }
+ },
+ "required": [
+ "dhcpType"
+ ]
+ },
+ "WorkloadNetworkDhcpServer": {
+ "description": "NSX DHCP Server",
+ "x-ms-discriminator-value": "SERVER",
+ "allOf": [
+ {
+ "$ref": "#/definitions/WorkloadNetworkDhcpEntity"
+ }
+ ],
+ "properties": {
+ "serverAddress": {
+ "description": "DHCP Server Address.",
+ "type": "string"
+ },
+ "leaseTime": {
+ "description": "DHCP Server Lease Time.",
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ },
+ "WorkloadNetworkDhcpRelay": {
+ "description": "NSX DHCP Relay",
+ "x-ms-discriminator-value": "RELAY",
+ "allOf": [
+ {
+ "$ref": "#/definitions/WorkloadNetworkDhcpEntity"
+ }
+ ],
+ "properties": {
+ "serverAddresses": {
+ "description": "DHCP Relay Addresses. Max 3.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "minItems": 1,
+ "maxItems": 3
+ }
+ }
+ },
+ "WorkloadNetworkDhcp": {
+ "description": "NSX DHCP",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ProxyResource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "description": "DHCP properties.",
+ "$ref": "#/definitions/WorkloadNetworkDhcpEntity",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "WorkloadNetworkDhcpList": {
+ "description": "A list of NSX dhcp entities",
+ "properties": {
+ "value": {
+ "description": "The items on the page",
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/WorkloadNetworkDhcp"
+ }
+ },
+ "nextLink": {
+ "description": "URL to get the next page if any",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "WorkloadNetworkPortMirroringProperties": {
+ "description": "NSX Port Mirroring Properties",
+ "properties": {
+ "displayName": {
+ "description": "Display name of the port mirroring profile.",
+ "type": "string"
+ },
+ "direction": {
+ "description": "Direction of port mirroring profile.",
+ "type": "string",
+ "enum": [
+ "INGRESS, EGRESS, BIDIRECTIONAL"
+ ],
+ "x-ms-enum": {
+ "name": "PortMirroringDirectionEnum",
+ "modelAsString": true
+ }
+ },
+ "source": {
+ "description": "Source VM Group.",
+ "type": "string"
+ },
+ "destination": {
+ "description": "Destination VM Group.",
+ "type": "string"
+ },
+ "status": {
+ "description": "Port Mirroring Status.",
+ "type": "string",
+ "enum": [
+ "SUCCESS, FAILURE"
+ ],
+ "x-ms-enum": {
+ "name": "PortMirroringStatusEnum",
+ "modelAsString": true
+ },
+ "readOnly": true
+ },
+ "provisioningState": {
+ "description": "The provisioning state",
+ "type": "string",
+ "readOnly": true,
+ "enum": [
+ "Succeeded",
+ "Failed",
+ "Building",
+ "Deleting",
+ "Updating"
+ ],
+ "x-ms-enum": {
+ "name": "WorkloadNetworkPortMirroringProvisioningState",
+ "modelAsString": true
+ }
+ },
+ "revision": {
+ "description": "NSX revision number.",
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ },
+ "WorkloadNetworkPortMirroring": {
+ "description": "NSX Port Mirroring",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ProxyResource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "description": "Port Mirroring Properties.",
+ "$ref": "#/definitions/WorkloadNetworkPortMirroringProperties",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "WorkloadNetworkPortMirroringList": {
+ "description": "A list of NSX Port Mirroring",
+ "properties": {
+ "value": {
+ "description": "The items on the page",
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/WorkloadNetworkPortMirroring"
+ }
+ },
+ "nextLink": {
+ "description": "URL to get the next page if any",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "WorkloadNetworkVMGroupProperties": {
+ "description": "NSX VM Group Properties",
+ "properties": {
+ "displayName": {
+ "description": "Display name of the VM group.",
+ "type": "string"
+ },
+ "members": {
+ "description": "Virtual machine members of this group.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "status": {
+ "description": "VM Group status.",
+ "type": "string",
+ "enum": [
+ "SUCCESS, FAILURE"
+ ],
+ "x-ms-enum": {
+ "name": "VMGroupStatusEnum",
+ "modelAsString": true
+ },
+ "readOnly": true
+ },
+ "provisioningState": {
+ "description": "The provisioning state",
+ "type": "string",
+ "readOnly": true,
+ "enum": [
+ "Succeeded",
+ "Failed",
+ "Building",
+ "Deleting",
+ "Updating"
+ ],
+ "x-ms-enum": {
+ "name": "WorkloadNetworkVMGroupProvisioningState",
+ "modelAsString": true
+ }
+ },
+ "revision": {
+ "description": "NSX revision number.",
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ },
+ "WorkloadNetworkVMGroup": {
+ "description": "NSX VM Group",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ProxyResource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "description": "VM Group properties.",
+ "$ref": "#/definitions/WorkloadNetworkVMGroupProperties",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "WorkloadNetworkVMGroupsList": {
+ "description": "A list of NSX VM Groups",
+ "properties": {
+ "value": {
+ "description": "The items on the page",
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/WorkloadNetworkVMGroup"
+ }
+ },
+ "nextLink": {
+ "description": "URL to get the next page if any",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "WorkloadNetworkVirtualMachineProperties": {
+ "description": "NSX Virtual Machine Properties",
+ "properties": {
+ "displayName": {
+ "description": "Display name of the VM.",
+ "type": "string"
+ },
+ "vmType": {
+ "description": "Virtual machine type.",
+ "type": "string",
+ "enum": [
+ "REGULAR, EDGE, SERVICE"
+ ],
+ "x-ms-enum": {
+ "name": "VMTypeEnum",
+ "modelAsString": true
+ },
+ "readOnly": true
+ }
+ }
+ },
+ "WorkloadNetworkVirtualMachine": {
+ "description": "NSX Virtual Machine",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ProxyResource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "description": "Virtual machine properties.",
+ "$ref": "#/definitions/WorkloadNetworkVirtualMachineProperties",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "WorkloadNetworkVirtualMachinesList": {
+ "description": "A list of NSX Virtual Machines",
+ "properties": {
+ "value": {
+ "description": "The items on the page",
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/WorkloadNetworkVirtualMachine"
+ }
+ },
+ "nextLink": {
+ "description": "URL to get the next page if any",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "WorkloadNetworkGatewayProperties": {
+ "description": "Properties of a NSX Gateway.",
+ "properties": {
+ "displayName": {
+ "description": "Display name of the DHCP entity.",
+ "type": "string"
+ },
+ "path": {
+ "description": "NSX Gateway Path.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "WorkloadNetworkGateway": {
+ "description": "NSX Gateway.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ProxyResource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "description": "Gateway properties.",
+ "$ref": "#/definitions/WorkloadNetworkGatewayProperties",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "WorkloadNetworkGatewayList": {
+ "description": "A list of NSX Gateways",
+ "properties": {
+ "value": {
+ "description": "The items on the page",
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/WorkloadNetworkGateway"
+ }
+ },
+ "nextLink": {
+ "description": "URL to get the next page if any",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ }
+ }
+}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/stable/2020-03-20/examples/Operations_List.json b/specification/vmware/resource-manager/Microsoft.AVS/stable/2020-03-20/examples/Operations_List.json
index 36fea5ade871..91e66c3b4daf 100644
--- a/specification/vmware/resource-manager/Microsoft.AVS/stable/2020-03-20/examples/Operations_List.json
+++ b/specification/vmware/resource-manager/Microsoft.AVS/stable/2020-03-20/examples/Operations_List.json
@@ -4,19 +4,521 @@
},
"responses": {
"200": {
- "body": [
- {
- "display": {
- "description": "Creates a private cloud",
- "operation": "Create Private Cloud",
- "provider": "Azure VMware Solution",
- "resource": "Private Cloud"
- },
- "name": "Microsoft.AVS/privateClouds/create",
- "origin": "user,system"
- }
- ],
- "nextLink": "string"
+ "headers": {},
+ "body": {
+ "value": [
+ {
+ "display": {
+ "description": "Lists operations available on Microsoft.AVS resource provider.",
+ "operation": "List available Microsoft.AVS operations",
+ "provider": "Microsoft.AVS",
+ "resource": "operations"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/operations/read",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Register Subscription for Microsoft.AVS resource provider.",
+ "operation": "Register Subscription for Microsoft.AVS",
+ "provider": "Microsoft.AVS",
+ "resource": ""
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/register/action",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Unregister Subscription for Microsoft.AVS resource provider.",
+ "operation": "Unregister Subscription for Microsoft.AVS",
+ "provider": "Microsoft.AVS",
+ "resource": ""
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/unregister/action",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Checks if the privateCloud Name is available",
+ "operation": "Check Name Availability",
+ "provider": "Microsoft.AVS",
+ "resource": "checkNameAvailability"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/checkNameAvailability/read",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Checks if the privateCloud Name is available",
+ "operation": "Check Name Availability",
+ "provider": "Microsoft.AVS",
+ "resource": "locations/checkNameAvailability"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/locations/checkNameAvailability/read",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Checks if quota is available for the subscription",
+ "operation": "Check Quota Availability",
+ "provider": "Microsoft.AVS",
+ "resource": "locations/checkQuotaAvailability"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/locations/checkQuotaAvailability/read",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Checks if trial is available for the subscription",
+ "operation": "Check Trial Availability",
+ "provider": "Microsoft.AVS",
+ "resource": "locations/checkTrialAvailability"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/locations/checkTrialAvailability/read",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Registers the Microsoft Microsoft.AVS resource provider and enables creation of Private Clouds.",
+ "operation": "Register Microsoft.AVS resource provider.",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/register/action",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Creates or updates a PrivateCloud resource.",
+ "operation": "Create or update a PrivateCloud.",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/write",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Gets the settings for the specified PrivateCloud.",
+ "operation": "Read PrivateCloud settings",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/read",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Delete a specific PrivateCloud.",
+ "operation": "Delete a PrivateCloud.",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/delete",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Reads privateClouds operationstatuses.",
+ "operation": "Read privateClouds operationstatuses",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds/operationstatuses"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/operationstatuses/read",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Gets the cluster settings for a PrivateCloud cluster.",
+ "operation": "Read Cluster settings.",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds/clusters"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/clusters/read",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Create or update a PrivateCloud cluster resource.",
+ "operation": "Create or update a PrivateCloud cluster.",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds/clusters"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/clusters/write",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Delete a specific PrivateCloud cluster.",
+ "operation": "Delete a PriveCloud cluster.",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds/clusters"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/clusters/delete",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Reads privateClouds/clusters operationstatuses.",
+ "operation": "Read privateClouds/clusters operationstatuses",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds/clusters/operationstatuses"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/clusters/operationstatuses/read",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Reads privateClouds/clusters operationresults.",
+ "operation": "Read privateClouds/clusters operationresults",
+ "provider": "Microsoft.AVS",
+ "resource": "privateclouds/clusters/operationresults"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateclouds/clusters/operationresults/read",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Reads privateClouds operationresults.",
+ "operation": "Read privateClouds operationresults",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds/operationresults"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/operationresults/read",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Gets the authorization settings for a PrivateCloud cluster.",
+ "operation": "Read Authorization settings.",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds/authorizations"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/authorizations/read",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Create or update a PrivateCloud authorization resource.",
+ "operation": "Create or update a PrivateCloud authorization.",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds/authorizations"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/authorizations/write",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Delete a specific PrivateCloud authorization.",
+ "operation": "Delete a PriveCloud authorization.",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds/authorizations"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/authorizations/delete",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Lists the AdminCredentials for privateClouds.",
+ "operation": "List privateClouds AdminCredentials",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds"
+ },
+ "isDataAction": true,
+ "name": "Microsoft.AVS/privateClouds/listAdminCredentials/action",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Gets the hcxEnterpriseSites for a PrivateCloud.",
+ "operation": "Read hcxEnterpriseSites",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds/hcxEnterpriseSites"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/hcxEnterpriseSites/read",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Create or update a hcxEnterpriseSites.",
+ "operation": "Create or update a hcxEnterpriseSites",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds/hcxEnterpriseSites"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/hcxEnterpriseSites/write",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Delete a specific hcxEnterpriseSites.",
+ "operation": "Delete a hcxEnterpriseSites",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds/hcxEnterpriseSites"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/hcxEnterpriseSites/delete",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Gets the hostInstances for a PrivateCloud.",
+ "operation": "Read hostInstances",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds/hostInstances"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/hostInstances/read",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Create or update a hostInstances.",
+ "operation": "Create or update a hostInstances",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds/hostInstances"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/hostInstances/write",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Delete a specific hostInstances.",
+ "operation": "Delete a hostInstances",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds/hostInstances"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/hostInstances/delete",
+ "origin": "user,system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Gets the available metrics for Private Cloud",
+ "operation": "Read Private Cloud metric definitions",
+ "provider": "Microsoft Azure Dedicated",
+ "resource": "privateClouds"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/providers/Microsoft.Insights/metricDefinitions/read",
+ "origin": "system",
+ "properties": {
+ "serviceSpecification": {
+ "metricSpecifications": [
+ {
+ "aggregationType": "Average",
+ "displayDescription": "The total amount of disk used in SDDC",
+ "displayName": "Datastore disk used",
+ "enableRegionalMdmAccount": "true",
+ "name": "UsedLatest",
+ "sourceMdmAccount": "AVSShoebox2",
+ "sourceMdmNamespace": "Vsphere.Datastore.Disk",
+ "supportedTimeGrainTypes": [
+ "PT5M",
+ "PT15M",
+ "PT30M",
+ "PT1H",
+ "PT6H",
+ "PT12H",
+ "P1D"
+ ],
+ "unit": "Bytes"
+ },
+ {
+ "aggregationType": "Average",
+ "displayDescription": "The total capacity of disk in SDDC",
+ "displayName": "Datastore disk total capacity",
+ "enableRegionalMdmAccount": "true",
+ "name": "CapacityLatest",
+ "sourceMdmAccount": "AVSShoebox2",
+ "sourceMdmNamespace": "Vsphere.Datastore.Disk",
+ "supportedTimeGrainTypes": [
+ "PT5M",
+ "PT15M",
+ "PT30M",
+ "PT1H",
+ "PT6H",
+ "PT12H",
+ "P1D"
+ ],
+ "unit": "Bytes"
+ },
+ {
+ "aggregationType": "Average",
+ "displayDescription": "Total amount of machine memory in cluster that is available",
+ "displayName": "Average Effective Memory",
+ "enableRegionalMdmAccount": "true",
+ "name": "EffectiveMemAverage",
+ "sourceMdmAccount": "AVSShoebox2",
+ "sourceMdmNamespace": "Vsphere.Cluster.ClusterServices",
+ "supportedTimeGrainTypes": [
+ "PT5M",
+ "PT15M",
+ "PT30M",
+ "PT1H",
+ "PT6H",
+ "PT12H",
+ "P1D"
+ ],
+ "unit": "Bytes"
+ },
+ {
+ "aggregationType": "Average",
+ "displayDescription": "Total memory in cluster",
+ "displayName": "Average Total Memory",
+ "enableRegionalMdmAccount": "true",
+ "name": "TotalMbAverage",
+ "sourceMdmAccount": "AVSShoebox2",
+ "sourceMdmNamespace": "Vsphere.Cluster.Mem",
+ "supportedTimeGrainTypes": [
+ "PT5M",
+ "PT15M",
+ "PT30M",
+ "PT1H",
+ "PT6H",
+ "PT12H",
+ "P1D"
+ ],
+ "unit": "Bytes"
+ },
+ {
+ "aggregationType": "Average",
+ "displayDescription": "Host physical memory consumed by the virtualization infrastructure",
+ "displayName": "Average Memory Overhead",
+ "enableRegionalMdmAccount": "true",
+ "name": "OverheadAverage",
+ "sourceMdmAccount": "AVSShoebox2",
+ "sourceMdmNamespace": "Vsphere.Cluster.Mem",
+ "supportedTimeGrainTypes": [
+ "PT5M",
+ "PT15M",
+ "PT30M",
+ "PT1H",
+ "PT6H",
+ "PT12H",
+ "P1D"
+ ],
+ "unit": "Bytes"
+ },
+ {
+ "aggregationType": "Average",
+ "displayDescription": "Memory usage as percentage of total configured or available memory",
+ "displayName": "Average Memory Usage",
+ "enableRegionalMdmAccount": "true",
+ "name": "UsageAverage",
+ "sourceMdmAccount": "AVSShoebox2",
+ "sourceMdmNamespace": "Vsphere.Cluster.Mem",
+ "supportedTimeGrainTypes": [
+ "PT5M",
+ "PT15M",
+ "PT30M",
+ "PT1H",
+ "PT6H",
+ "PT12H",
+ "P1D"
+ ],
+ "unit": "Percent"
+ },
+ {
+ "aggregationType": "Average",
+ "displayDescription": "Total available CPU resources in cluster",
+ "displayName": "Effective CPU available",
+ "enableRegionalMdmAccount": "true",
+ "name": "EffectiveCpuAverage",
+ "sourceMdmAccount": "AVSShoebox2",
+ "sourceMdmNamespace": "Vsphere.Cluster.ClusterServices",
+ "supportedTimeGrainTypes": [
+ "PT5M",
+ "PT15M",
+ "PT30M",
+ "PT1H",
+ "PT6H",
+ "PT12H",
+ "P1D"
+ ],
+ "unit": "Percent"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "display": {
+ "description": "Gets the diagnostic setting for the resource",
+ "operation": "Read diagnostic setting",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/providers/Microsoft.Insights/diagnosticSettings/read",
+ "origin": "system",
+ "properties": {}
+ },
+ {
+ "display": {
+ "description": "Creates or updates the diagnostic setting for the resource",
+ "operation": "Write diagnostic setting",
+ "provider": "Microsoft.AVS",
+ "resource": "privateClouds"
+ },
+ "isDataAction": false,
+ "name": "Microsoft.AVS/privateClouds/providers/Microsoft.Insights/diagnosticSettings/write",
+ "origin": "system",
+ "properties": {}
+ }
+ ]
+ }
}
}
}
diff --git a/specification/vmware/resource-manager/Microsoft.AVS/stable/2020-03-20/vmware.json b/specification/vmware/resource-manager/Microsoft.AVS/stable/2020-03-20/vmware.json
index 1a8d82df26ce..f968128343d7 100644
--- a/specification/vmware/resource-manager/Microsoft.AVS/stable/2020-03-20/vmware.json
+++ b/specification/vmware/resource-manager/Microsoft.AVS/stable/2020-03-20/vmware.json
@@ -1213,6 +1213,7 @@
"availableHosts": {
"description": "Number of trial hosts available",
"type": "integer",
+ "format": "int32",
"readOnly": true
}
}
@@ -1226,6 +1227,7 @@
"readOnly": true,
"additionalProperties": {
"type": "integer",
+ "format": "int32",
"readOnly": true
}
},
@@ -1353,6 +1355,152 @@
"readOnly": true
}
}
+ },
+ "isDataAction": {
+ "description": "Gets or sets a value indicating whether the operation is a data action or not",
+ "type": "boolean"
+ },
+ "origin": {
+ "description": "Origin of the operation",
+ "type": "string"
+ },
+ "properties": {
+ "$ref": "#/definitions/OperationProperties",
+ "description": "Properties of the operation"
+ }
+ }
+ },
+ "OperationProperties": {
+ "description": "Extra Operation properties",
+ "type": "object",
+ "properties": {
+ "serviceSpecification": {
+ "$ref": "#/definitions/ServiceSpecification",
+ "description": "Service specifications of the operation"
+ }
+ }
+ },
+ "ServiceSpecification": {
+ "description": "Service specification payload",
+ "type": "object",
+ "properties": {
+ "logSpecifications": {
+ "description": "Specifications of the Log for Azure Monitoring",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/LogSpecification"
+ }
+ },
+ "metricSpecifications": {
+ "description": "Specifications of the Metrics for Azure Monitoring",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MetricSpecification"
+ }
+ }
+ }
+ },
+ "LogSpecification": {
+ "description": "Specifications of the Log for Azure Monitoring",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Name of the log",
+ "type": "string"
+ },
+ "displayName": {
+ "description": "Localized friendly display name of the log",
+ "type": "string"
+ },
+ "blobDuration": {
+ "description": "Blob duration of the log",
+ "type": "string"
+ }
+ }
+ },
+ "MetricSpecification": {
+ "description": "Specifications of the Metrics for Azure Monitoring",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Name of the metric",
+ "type": "string"
+ },
+ "displayName": {
+ "description": "Localized friendly display name of the metric",
+ "type": "string"
+ },
+ "displayDescription": {
+ "description": "Localized friendly description of the metric",
+ "type": "string"
+ },
+ "unit": {
+ "description": "Unit that makes sense for the metric",
+ "type": "string"
+ },
+ "category": {
+ "description": "Name of the metric category that the metric belongs to. A metric can only belong to a single category.",
+ "type": "string"
+ },
+ "aggregationType": {
+ "description": "Only provide one value for this field. Valid values: Average, Minimum, Maximum, Total, Count.",
+ "type": "string"
+ },
+ "supportedAggregationTypes": {
+ "description": "Supported aggregation types",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "supportedTimeGrainTypes": {
+ "description": "Supported time grain types",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "fillGapWithZero": {
+ "description": "Optional. If set to true, then zero will be returned for time duration where no metric is emitted/published.",
+ "type": "boolean"
+ },
+ "dimensions": {
+ "description": "Dimensions of the metric",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MetricDimension"
+ }
+ },
+ "enableRegionalMdmAccount": {
+ "description": "Whether or not the service is using regional MDM accounts.",
+ "type": "string"
+ },
+ "sourceMdmAccount": {
+ "description": "The name of the MDM account.",
+ "type": "string"
+ },
+ "sourceMdmNamespace": {
+ "description": "The name of the MDM namespace.",
+ "type": "string"
+ }
+ }
+ },
+ "MetricDimension": {
+ "description": "Specifications of the Dimension of metrics",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Name of the dimension",
+ "type": "string"
+ },
+ "displayName": {
+ "description": "Localized friendly display name of the dimension",
+ "type": "string"
}
}
},
@@ -1704,7 +1852,8 @@
"properties": {
"clusterSize": {
"description": "The cluster size",
- "type": "integer"
+ "type": "integer",
+ "format": "int32"
}
}
},
@@ -1719,9 +1868,14 @@
}
],
"properties": {
+ "provisioningState": {
+ "description": "The state of the cluster provisioning",
+ "$ref": "#/definitions/ClusterProvisioningState"
+ },
"clusterId": {
"description": "The identity",
"type": "integer",
+ "format": "int32",
"readOnly": true
},
"hosts": {
@@ -1744,22 +1898,26 @@
"properties": {
"provisioningState": {
"description": "The state of the cluster provisioning",
- "type": "string",
- "readOnly": true,
- "enum": [
- "Succeeded",
- "Failed",
- "Cancelled",
- "Deleting",
- "Updating"
- ],
- "x-ms-enum": {
- "name": "ClusterProvisioningState",
- "modelAsString": true
- }
+ "$ref": "#/definitions/ClusterProvisioningState"
}
}
},
+ "ClusterProvisioningState": {
+ "description": "The state of the cluster provisioning",
+ "type": "string",
+ "readOnly": true,
+ "enum": [
+ "Succeeded",
+ "Failed",
+ "Cancelled",
+ "Deleting",
+ "Updating"
+ ],
+ "x-ms-enum": {
+ "name": "ClusterProvisioningState",
+ "modelAsString": true
+ }
+ },
"PrivateCloudList": {
"description": "A paged list of private clouds",
"properties": {
diff --git a/specification/vmware/resource-manager/readme.azureresourceschema.md b/specification/vmware/resource-manager/readme.azureresourceschema.md
index 7d16e23c5336..685b539ae8b9 100644
--- a/specification/vmware/resource-manager/readme.azureresourceschema.md
+++ b/specification/vmware/resource-manager/readme.azureresourceschema.md
@@ -6,12 +6,23 @@ These settings apply only when `--azureresourceschema` is specified on the comma
``` yaml $(azureresourceschema) && $(multiapi)
batch:
+ - tag: schema-avs-2020-07-17-preview
- tag: schema-avs-2020-03-20
- tag: schema-avs-2019-08-09-preview
```
Please also specify `--azureresourceschema-folder=`.
+### Tag: schema-avs-2020-07-17-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-avs-2020-07-17-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.AVS/preview/2020-07-17-preview/vmware.json
+
+```
### Tag: schema-avs-2020-03-20 and azureresourceschema
diff --git a/specification/vmware/resource-manager/readme.go.md b/specification/vmware/resource-manager/readme.go.md
index 86e7eb2df060..c72c15e83fda 100644
--- a/specification/vmware/resource-manager/readme.go.md
+++ b/specification/vmware/resource-manager/readme.go.md
@@ -13,10 +13,20 @@ go:
``` yaml $(go) && $(multiapi)
batch:
+ - tag: package-2020-07-17-preview
- tag: package-2020-03-20
- tag: package-2019-08-09-preview
```
+### Tag: package-2020-07-17-preview and go
+
+These settings apply only when `--tag=package-2020-07-17-preview --go` is specified on the command line.
+Please also specify `--go-sdk-folder=`.
+
+``` yaml $(tag) == 'package-2020-07-17-preview' && $(go)
+output-folder: $(go-sdk-folder)/services/preview/$(namespace)/mgmt/2020-07-17-preview/$(namespace)
+```
+
### Tag: package-2020-03-20 and go
These settings apply only when `--tag=package-2020-03-20 --go` is specified on the command line.
diff --git a/specification/vmware/resource-manager/readme.java.md b/specification/vmware/resource-manager/readme.java.md
index 48dbcd130384..4b53aa68da31 100644
--- a/specification/vmware/resource-manager/readme.java.md
+++ b/specification/vmware/resource-manager/readme.java.md
@@ -15,10 +15,24 @@ output-folder: $(azure-libraries-for-java-folder)/azure-mgmt-avs
``` yaml $(java) && $(multiapi)
batch:
+ - tag: package-2020-07-17-preview
- tag: package-2020-03-20
- tag: package-2019-08-09-preview
```
+### Tag: package-2020-07-17-preview and java
+
+These settings apply only when `--tag=package-2020-07-17-preview -java` is specified on the command line.
+Please also specify the `--azure-libraries-for-java-folder=`.
+
+``` yaml $(tag) == 'package-2020-07-17-preview' && $(java) && $(multiapi)
+java:
+ namespace: com.microsoft.azure.management.avs.v2020_07_17_preview
+ output-folder: $(azure-libraries-for-java-folder)/sdk/avs/mgmt-v2020_07_17_preview
+regenerate-manager: true
+generate-interface: true
+```
+
### Tag: package-2020-03-20 and java
These settings apply only when `--tag=package-2020-03-20 --java` is specified on the command line.
@@ -43,4 +57,4 @@ java:
output-folder: $(azure-libraries-for-java-folder)/sdk/avs/mgmt-v2019_08_09_preview
regenerate-manager: true
generate-interface: true
-```
\ No newline at end of file
+```
diff --git a/specification/vmware/resource-manager/readme.md b/specification/vmware/resource-manager/readme.md
index a381bf23160b..cdf8d4d21f35 100644
--- a/specification/vmware/resource-manager/readme.md
+++ b/specification/vmware/resource-manager/readme.md
@@ -21,7 +21,38 @@ These are the global settings for the VMware Solution API.
``` yaml
openapi-type: arm
-tag: package-2020-03-20
+tag: package-2020-07-17-preview
+```
+
+### Tag: package-2020-07-17-preview
+
+These settings apply only when `--tag=package-2020-07-17-preview` is specified on the command line.
+
+``` yaml $(tag) == 'package-2020-07-17-preview'
+input-file:
+- Microsoft.AVS/preview/2020-07-17-preview/vmware.json
+directive:
+ - suppress: R3020
+ from: Microsoft.AVS/preview/2020-07-17-preview/vmware.json
+ reason: Microsoft.AVS was chosen over Microsoft.AzureVMwareSolution
+ - suppress: R3010
+ from: Microsoft.AVS/preview/2020-07-17-preview/vmware.json
+ reason: list by immediate parent operations are defined
+ - suppress: R3027
+ from: Microsoft.AVS/preview/2020-07-17-preview/vmware.json
+ reasons: the PrivateClouds_List operation is by resource group
+ - suppress: R3018
+ from: Microsoft.AVS/preview/2020-07-17-preview/vmware.json
+ where: $.definitions.Operation.properties.isDataAction
+ reason: standard property for Operation
+ - suppress: R3018
+ from: Microsoft.AVS/preview/2020-07-17-preview/vmware.json
+ where: $.definitions.MetricSpecification.properties.fillGapWithZero
+ reason: standard property for MetricSpecification
+ - suppress: R2001
+ from: Microsoft.AVS/preview/2020-07-17-preview/vmware.json
+ where: $.definitions.Operation.properties.properties
+ reason: x-ms-client-flatten not needed for Operation
```
### Tag: package-2020-03-20
@@ -33,11 +64,26 @@ input-file:
- Microsoft.AVS/stable/2020-03-20/vmware.json
directive:
- suppress: R3020
- from: vmware.json
+ from: Microsoft.AVS/stable/2020-03-20/vmware.json
reason: Microsoft.AVS was chosen over Microsoft.AzureVMwareSolution
- suppress: R3010
- from: vmware.json
+ from: Microsoft.AVS/stable/2020-03-20/vmware.json
reason: list by immediate parent operations are defined
+ - suppress: R3027
+ from: Microsoft.AVS/stable/2020-03-20/vmware.json
+ reasons: the PrivateClouds_List operation is by resource group
+ - suppress: R3018
+ from: Microsoft.AVS/stable/2020-03-20/vmware.json
+ where: $.definitions.Operation.properties.isDataAction
+ reason: standard property for Operation
+ - suppress: R3018
+ from: Microsoft.AVS/stable/2020-03-20/vmware.json
+ where: $.definitions.MetricSpecification.properties.fillGapWithZero
+ reason: standard property for MetricSpecification
+ - suppress: R2001
+ from: Microsoft.AVS/stable/2020-03-20/vmware.json
+ where: $.definitions.Operation.properties.properties
+ reason: x-ms-client-flatten not needed for Operation
```
### Tag: package-2019-08-09-preview
@@ -49,13 +95,13 @@ input-file:
- Microsoft.AVS/preview/2019-08-09-preview/vmware.json
directive:
- suppress: R3020
- from: vmware.json
+ from: Microsoft.AVS/preview/2019-08-09-preview/vmware.json
reason: Microsoft.AVS was chosen over Microsoft.AzureVMwareSolution
- suppress: R3010
- from: vmware.json
+ from: Microsoft.AVS/preview/2019-08-09-preview/vmware.json
reason: list by immediate parent operations are defined
- suppress: R2001
- from: vmware.json
+ from: Microsoft.AVS/preview/2019-08-09-preview/vmware.json
reason: x-ms-client-flatten will be used in next API version
```
@@ -79,6 +125,20 @@ swagger-to-sdk:
- node sdkauto_afterscript.js vmware/resource-manager
```
+## Suppression
+```
+directive:
+ - suppress: SECRET_PROPERTY
+ from:
+ - Microsoft.AVS/preview/2020-07-17-preview/vmware.json
+ - Microsoft.AVS/stable/2020-03-20/vmware.json
+ - Microsoft.AVS/preview/2019-08-09-preview/vmware.json
+ where:
+ - $.definitions.AdminCredentials.properties.nsxtPassword
+ - $.definitions.AdminCredentials.properties.vcenterPassword
+ reason: Secrets are OK to return in a POST response.
+```
+
## TypeScript
See configuration in [readme.typescript.md](./readme.typescript.md)
diff --git a/specification/web/resource-manager/readme.csharp.md b/specification/web/resource-manager/readme.csharp.md
index c2f601c03a77..27232dee72b4 100644
--- a/specification/web/resource-manager/readme.csharp.md
+++ b/specification/web/resource-manager/readme.csharp.md
@@ -55,4 +55,15 @@ namespace: Microsoft.Azure.Management.Profiles.$(csharp-profile).WebSites
output-folder: $(csharp-sdks-folder)/$(csharp-profile)/Websites/Management.Websites/Generated
batch:
- tag: profile-hybrid-2019-03-01
+```
+
+### Profile: hybrid_2020_09_01
+
+These settings apply only when `--csharp-profile=hybrid_2020_09_01` is specified on the command line.
+
+``` yaml $(csharp-profile)=='hybrid_2019_03_01'
+namespace: Microsoft.Azure.Management.Profiles.$(csharp-profile).WebSites
+output-folder: $(csharp-sdks-folder)/$(csharp-profile)/Websites/Management.Websites/Generated
+batch:
+ - tag: profile-hybrid-2020-09-01
```
\ No newline at end of file
diff --git a/specification/web/resource-manager/readme.md b/specification/web/resource-manager/readme.md
index 066d4cda40a8..e4782e3877c9 100644
--- a/specification/web/resource-manager/readme.md
+++ b/specification/web/resource-manager/readme.md
@@ -1220,6 +1220,22 @@ input-file:
- Microsoft.Web/stable/2018-02-01/Recommendations.json
```
+### Tag: profile-hybrid-2020-09-01
+
+These settings apply only when `--tag=profile-hybrid-2020-09-01` is specified on the command line.
+Creating this tag to pick proper resources from the hybrid profile.
+
+``` yaml $(tag) == 'profile-hybrid-2020-09-01'
+input-file:
+- Microsoft.Web/stable/2018-02-01/Certificates.json
+- Microsoft.Web/stable/2018-02-01/WebApps.json
+- Microsoft.Web/stable/2018-02-01/ResourceProvider.json
+- Microsoft.Web/stable/2018-02-01/AppServicePlans.json
+- Microsoft.Web/stable/2018-02-01/Provider.json
+- Microsoft.Web/stable/2018-02-01/ResourceProvider.json
+- Microsoft.Web/stable/2018-02-01/Recommendations.json
+```
+
## AzureResourceSchema
See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/web/resource-manager/readme.typescript.md b/specification/web/resource-manager/readme.typescript.md
index 272e671d559e..1b774f390af7 100644
--- a/specification/web/resource-manager/readme.typescript.md
+++ b/specification/web/resource-manager/readme.typescript.md
@@ -30,4 +30,19 @@ typescript:
clear-output-folder: true
batch:
- tag: profile-hybrid-2019-03-01
+```
+
+### Profile: profile-hybrid-2020-09-01
+
+These settings apply only when `--profile=profile-hybrid-2020-09-01` is specified on the command line.
+
+``` yaml $(profile)=='profile-hybrid-2020-09-01'
+typescript:
+ package-name: "@azure/arm-appservice-profile-2020-09-01-hybrid"
+ output-folder: "$(typescript-sdks-folder)/sdk/appservice/arm-appservice-profile-2020-09-01-hybrid"
+ clear-output-folder: true
+ azure-arm: true
+ generate-metadata: true
+ batch:
+ - tag: profile-hybrid-2020-09-01
```
\ No newline at end of file